diff --git a/.github/actions/setup-caddy/action.yml b/.github/actions/setup-caddy/action.yml index 8c3969bd28248..ba89cae4ecc54 100644 --- a/.github/actions/setup-caddy/action.yml +++ b/.github/actions/setup-caddy/action.yml @@ -3,8 +3,11 @@ runs: using: composite steps: - shell: bash + env: + GH_TOKEN: ${{ github.token }} run: | set -x - sudo curl 'https://caddyserver.com/api/download?os=linux&arch=amd64' -o /usr/bin/caddy + gh release -R caddyserver/caddy download --pattern 'caddy_*_linux_amd64.tar.gz' -O - | sudo tar -xz -C /usr/bin caddy sudo chmod +x /usr/bin/caddy sudo caddy start --config ext/curl/tests/Caddyfile + continue-on-error: true diff --git a/.github/actions/test-linux/action.yml b/.github/actions/test-linux/action.yml index 876ef3ff84d11..f3bd55365ac7c 100644 --- a/.github/actions/test-linux/action.yml +++ b/.github/actions/test-linux/action.yml @@ -55,7 +55,7 @@ runs: --show-diff \ --show-slow 1000 \ --set-timeout 120 - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 if: always() && inputs.testArtifacts != null with: name: ${{ github.job }}_${{ inputs.testArtifacts }} diff --git a/.github/actions/test-macos/action.yml b/.github/actions/test-macos/action.yml index 46cd64d2aa5b5..15b077a4ea8a9 100644 --- a/.github/actions/test-macos/action.yml +++ b/.github/actions/test-macos/action.yml @@ -29,7 +29,7 @@ runs: --show-diff \ --show-slow 1000 \ --set-timeout 120 - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 if: always() && inputs.testArtifacts != null with: name: ${{ github.job }}_${{ inputs.testArtifacts }} diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 6ccd524a062bd..eb8c4929a1305 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -2,7 +2,7 @@ name: Push on: push: paths-ignore: - - docs/* + - docs/** - NEWS - UPGRADING - UPGRADING.INTERNALS @@ -11,8 +11,8 @@ on: - CODING_STANDARDS.md - .cirrus.yml - .travis.yml - - travis/* - - .circleci/* + - travis/** + - .circleci/** branches: - PHP-7.4 - PHP-8.0 @@ -22,7 +22,7 @@ on: - master pull_request: paths-ignore: - - docs/* + - docs/** - NEWS - UPGRADING - UPGRADING.INTERNALS @@ -31,8 +31,8 @@ on: - CODING_STANDARDS.md - .cirrus.yml - .travis.yml - - travis/* - - .circleci/* + - travis/** + - .circleci/** branches: - '**' permissions: diff --git a/CODEOWNERS b/CODEOWNERS index dc79939aeae13..40ec5651f1c59 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -37,12 +37,14 @@ /Zend/zend.* @dstogov /Zend/zend_alloc.* @dstogov /Zend/zend_API.* @dstogov +/Zend/zend_call_stack.* @arnaud-lb /Zend/zend_closures.* @dstogov /Zend/zend_execute.* @dstogov /Zend/zend_execute_API.c @dstogov -/Zend/zend_gc.* @dstogov +/Zend/zend_gc.* @dstogov @arnaud-lb /Zend/zend_hash.* @dstogov /Zend/zend_inheritance.* @dstogov +/Zend/zend_max_execution_timer.* @arnaud-lb /Zend/zend_object_handlers.* @dstogov /Zend/zend_objects.* @dstogov /Zend/zend_objects_API.* @dstogov diff --git a/NEWS b/NEWS index a03d4e86ae906..9269a9b96fcba 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,57 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| -?? ??? ????, PHP 8.3.3 +14 Mar 2024, PHP 8.3.4 + +- Core: + . Fix ZTS persistent resource crashes on shutdown. (nielsdos) + +- Curl: + . Fix failing tests due to string changes in libcurl 8.6.0. (Ayesh) + +- DOM: + . Fix unlikely memory leak in case of namespace removal with extremely deep + trees. (nielsdos) + . Fix reference access in dimensions for DOMNodeList and DOMNodeMap. + (nielsdos) + +- Fileinfo: + . Fixed bug GH-13344 (finfo::buffer(): Failed identify data 0:(null), + backport). (nielsdos) + +- FPM: + . Fixed bug #75712 (getenv in php-fpm should not read $_ENV, $_SERVER). + (Jakub Zelenka) + +- GD: + . Fixed bug GH-12019 (detection of image formats in system gd library). + (Michael Orlitzky) + +- MySQLnd: + . Fixed bug GH-11950 ([mysqlnd] Fixed not to set CR_MALFORMED_PACKET to error + if CR_SERVER_GONE_ERROR is already set). (Saki Takamachi) + +- PDO: + . Fix various PDORow bugs. (Girgias) + +- PGSQL: + . Fixed bug GH-13354 (pg_execute/pg_send_query_params/pg_send_execute + with null value passed by reference). (George Barbarosie) + +- SPL: + . Fixed bug GH-13531 (Unable to resize SplfixedArray after being unserialized + in PHP 8.2.15). (nielsdos) + +- Standard: + . Fixed bug GH-13279 (Instable array during in-place modification in uksort). + (ilutov) + . Fixed array key as hash to string (case insensitive) comparison typo + for the second operand buffer size (albeit unused for now). (A. Slepykh) + +- XML: + . Fixed bug GH-13517 (Multiple test failures when building with + --with-expat). (nielsdos) + +15 Feb 2024, PHP 8.3.3 - Core: . Fixed timer leak in zend-max-execution-timers builds. (withinboredom) diff --git a/Zend/zend.c b/Zend/zend.c index cb2419cd87dd2..d154c67382a72 100644 --- a/Zend/zend.c +++ b/Zend/zend.c @@ -1167,6 +1167,8 @@ void zend_shutdown(void) /* {{{ */ #endif zend_destroy_rsrc_list_dtors(); + zend_unload_modules(); + zend_optimizer_shutdown(); startup_done = false; } diff --git a/Zend/zend.h b/Zend/zend.h index cddd0f3b04521..4331889ac1883 100644 --- a/Zend/zend.h +++ b/Zend/zend.h @@ -20,7 +20,7 @@ #ifndef ZEND_H #define ZEND_H -#define ZEND_VERSION "4.3.3-dev" +#define ZEND_VERSION "4.3.4" #define ZEND_ENGINE_3 @@ -279,6 +279,7 @@ void zend_shutdown(void); void zend_register_standard_ini_entries(void); zend_result zend_post_startup(void); void zend_set_utility_values(zend_utility_values *utility_values); +void zend_unload_modules(void); ZEND_API ZEND_COLD ZEND_NORETURN void _zend_bailout(const char *filename, uint32_t lineno); ZEND_API size_t zend_get_page_size(void); diff --git a/Zend/zend_API.c b/Zend/zend_API.c index 02b015c43b6a7..cb7f3b6d29b43 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -41,6 +41,7 @@ ZEND_API HashTable module_registry; static zend_module_entry **module_request_startup_handlers; static zend_module_entry **module_request_shutdown_handlers; static zend_module_entry **module_post_deactivate_handlers; +static zend_module_entry **modules_dl_loaded; static zend_class_entry **class_cleanup_handlers; @@ -2368,6 +2369,7 @@ ZEND_API void zend_collect_module_handlers(void) /* {{{ */ int startup_count = 0; int shutdown_count = 0; int post_deactivate_count = 0; + int dl_loaded_count = 0; zend_class_entry *ce; int class_count = 0; @@ -2382,6 +2384,9 @@ ZEND_API void zend_collect_module_handlers(void) /* {{{ */ if (module->post_deactivate_func) { post_deactivate_count++; } + if (module->handle) { + dl_loaded_count++; + } } ZEND_HASH_FOREACH_END(); module_request_startup_handlers = (zend_module_entry**)realloc( module_request_startup_handlers, @@ -2394,6 +2399,9 @@ ZEND_API void zend_collect_module_handlers(void) /* {{{ */ module_request_shutdown_handlers[shutdown_count] = NULL; module_post_deactivate_handlers = module_request_shutdown_handlers + shutdown_count + 1; module_post_deactivate_handlers[post_deactivate_count] = NULL; + /* Cannot reuse module_request_startup_handlers because it is freed in zend_destroy_modules, which happens before zend_unload_modules. */ + modules_dl_loaded = realloc(modules_dl_loaded, sizeof(zend_module_entry*) * (dl_loaded_count + 1)); + modules_dl_loaded[dl_loaded_count] = NULL; startup_count = 0; ZEND_HASH_MAP_FOREACH_PTR(&module_registry, module) { @@ -2406,6 +2414,9 @@ ZEND_API void zend_collect_module_handlers(void) /* {{{ */ if (module->post_deactivate_func) { module_post_deactivate_handlers[--post_deactivate_count] = module; } + if (module->handle) { + modules_dl_loaded[--dl_loaded_count] = module; + } } ZEND_HASH_FOREACH_END(); /* Collect internal classes with static members */ @@ -3180,18 +3191,23 @@ void module_destructor(zend_module_entry *module) /* {{{ */ clean_module_functions(module); } -#if HAVE_LIBDL - if (module->handle && !getenv("ZEND_DONT_UNLOAD_MODULES")) { - DL_UNLOAD(module->handle); - } -#endif - #if ZEND_RC_DEBUG zend_rc_debug = orig_rc_debug; #endif } /* }}} */ +void module_registry_unload(const zend_module_entry *module) +{ +#if HAVE_LIBDL + if (!getenv("ZEND_DONT_UNLOAD_MODULES")) { + DL_UNLOAD(module->handle); + } +#else + ZEND_IGNORE_VALUE(module); +#endif +} + ZEND_API void zend_activate_modules(void) /* {{{ */ { zend_module_entry **p = module_request_startup_handlers; @@ -3236,6 +3252,18 @@ ZEND_API void zend_deactivate_modules(void) /* {{{ */ } /* }}} */ +void zend_unload_modules(void) /* {{{ */ +{ + zend_module_entry **modules = modules_dl_loaded; + while (*modules) { + module_registry_unload(*modules); + modules++; + } + free(modules_dl_loaded); + modules_dl_loaded = NULL; +} +/* }}} */ + ZEND_API void zend_post_deactivate_modules(void) /* {{{ */ { if (EG(full_tables_cleanup)) { @@ -3254,6 +3282,9 @@ ZEND_API void zend_post_deactivate_modules(void) /* {{{ */ break; } module_destructor(module); + if (module->handle) { + module_registry_unload(module); + } zend_string_release_ex(key, 0); } ZEND_HASH_MAP_FOREACH_END_DEL(); } else { diff --git a/Zend/zend_modules.h b/Zend/zend_modules.h index 09661e6a2b862..4b6d71556aaa0 100644 --- a/Zend/zend_modules.h +++ b/Zend/zend_modules.h @@ -125,7 +125,7 @@ extern ZEND_API HashTable module_registry; void module_destructor(zend_module_entry *module); int module_registry_request_startup(zend_module_entry *module); -int module_registry_unload_temp(const zend_module_entry *module); +void module_registry_unload(const zend_module_entry *module); END_EXTERN_C() #endif diff --git a/configure.ac b/configure.ac index a9e96f3cef952..17213efe30799 100644 --- a/configure.ac +++ b/configure.ac @@ -17,7 +17,7 @@ dnl Basic autoconf initialization, generation of config.nice. dnl ---------------------------------------------------------------------------- AC_PREREQ([2.68]) -AC_INIT([PHP],[8.3.3-dev],[https://github.com/php/php-src/issues],[php],[https://www.php.net]) +AC_INIT([PHP],[8.3.4],[https://github.com/php/php-src/issues],[php],[https://www.php.net]) AC_CONFIG_SRCDIR([main/php_version.h]) AC_CONFIG_AUX_DIR([build]) AC_PRESERVE_HELP_ORDER diff --git a/ext/bz2/tests/bzerr_functions_on_invalid_stream.phpt b/ext/bz2/tests/bzerr_functions_on_invalid_stream.phpt index 82cb357352998..a9fd3a2118697 100644 --- a/ext/bz2/tests/bzerr_functions_on_invalid_stream.phpt +++ b/ext/bz2/tests/bzerr_functions_on_invalid_stream.phpt @@ -1,7 +1,7 @@ --TEST-- Calling bzerr* functions on non-bz2 streams ---SKIPIF-- - +--EXTENSIONS-- +bz2 --FILE-- --FILE-- diff --git a/ext/curl/tests/bug77946.phpt b/ext/curl/tests/bug77946.phpt index 8b1e70675554f..7b836187d6bfb 100644 --- a/ext/curl/tests/bug77946.phpt +++ b/ext/curl/tests/bug77946.phpt @@ -34,4 +34,4 @@ curl_multi_close($mh); --EXPECTF-- int(1) int(1) -string(%d) "Protocol %Sunknown%S not supported or disabled in libcurl" +string(%d) "Protocol %Sunknown%S %rnot supported( or disabled in libcurl)?%r" diff --git a/ext/date/lib/timezonedb.h b/ext/date/lib/timezonedb.h index 366c85c7a7786..26c104b2a20e5 100644 --- a/ext/date/lib/timezonedb.h +++ b/ext/date/lib/timezonedb.h @@ -242,370 +242,370 @@ const timelib_tzdb_index_entry timezonedb_idx_builtin[597] = { { (char*) "Arctic/Longyearbyen" , 0x022757 }, { (char*) "Asia/Aden" , 0x022A24 }, { (char*) "Asia/Almaty" , 0x022AB5 }, - { (char*) "Asia/Amman" , 0x022D34 }, - { (char*) "Asia/Anadyr" , 0x0230E0 }, - { (char*) "Asia/Aqtau" , 0x0233E6 }, - { (char*) "Asia/Aqtobe" , 0x023665 }, - { (char*) "Asia/Ashgabat" , 0x0238E5 }, - { (char*) "Asia/Ashkhabad" , 0x023A68 }, - { (char*) "Asia/Atyrau" , 0x023BEB }, - { (char*) "Asia/Baghdad" , 0x023E74 }, - { (char*) "Asia/Bahrain" , 0x0240F6 }, - { (char*) "Asia/Baku" , 0x0241AF }, - { (char*) "Asia/Bangkok" , 0x0244A3 }, - { (char*) "Asia/Barnaul" , 0x024547 }, - { (char*) "Asia/Beirut" , 0x024852 }, - { (char*) "Asia/Bishkek" , 0x024B3A }, - { (char*) "Asia/Brunei" , 0x024DB0 }, - { (char*) "Asia/Calcutta" , 0x024E56 }, - { (char*) "Asia/Chita" , 0x024F3E }, - { (char*) "Asia/Choibalsan" , 0x02524C }, - { (char*) "Asia/Chongqing" , 0x0254D5 }, - { (char*) "Asia/Chungking" , 0x02566A }, - { (char*) "Asia/Colombo" , 0x0257FF }, - { (char*) "Asia/Dacca" , 0x025902 }, - { (char*) "Asia/Damascus" , 0x0259F5 }, - { (char*) "Asia/Dhaka" , 0x025ED3 }, - { (char*) "Asia/Dili" , 0x025FC6 }, - { (char*) "Asia/Dubai" , 0x02607C }, - { (char*) "Asia/Dushanbe" , 0x02610D }, - { (char*) "Asia/Famagusta" , 0x026287 }, - { (char*) "Asia/Gaza" , 0x02664E }, - { (char*) "Asia/Harbin" , 0x0271FC }, - { (char*) "Asia/Hebron" , 0x027391 }, - { (char*) "Asia/Ho_Chi_Minh" , 0x027F50 }, - { (char*) "Asia/Hong_Kong" , 0x028048 }, - { (char*) "Asia/Hovd" , 0x02835B }, - { (char*) "Asia/Irkutsk" , 0x0285E4 }, - { (char*) "Asia/Istanbul" , 0x028902 }, - { (char*) "Asia/Jakarta" , 0x028DBE }, - { (char*) "Asia/Jayapura" , 0x028ECF }, - { (char*) "Asia/Jerusalem" , 0x028FBC }, - { (char*) "Asia/Kabul" , 0x0293FA }, - { (char*) "Asia/Kamchatka" , 0x0294A5 }, - { (char*) "Asia/Karachi" , 0x02979A }, - { (char*) "Asia/Kashgar" , 0x0298B0 }, - { (char*) "Asia/Kathmandu" , 0x029941 }, - { (char*) "Asia/Katmandu" , 0x0299EE }, - { (char*) "Asia/Khandyga" , 0x029A9B }, - { (char*) "Asia/Kolkata" , 0x029DCC }, - { (char*) "Asia/Krasnoyarsk" , 0x029EB4 }, - { (char*) "Asia/Kuala_Lumpur" , 0x02A1BE }, - { (char*) "Asia/Kuching" , 0x02A2DE }, - { (char*) "Asia/Kuwait" , 0x02A438 }, - { (char*) "Asia/Macao" , 0x02A4C9 }, - { (char*) "Asia/Macau" , 0x02A7EC }, - { (char*) "Asia/Magadan" , 0x02AB0F }, - { (char*) "Asia/Makassar" , 0x02AE1A }, - { (char*) "Asia/Manila" , 0x02AF2D }, - { (char*) "Asia/Muscat" , 0x02B027 }, - { (char*) "Asia/Nicosia" , 0x02B0B8 }, - { (char*) "Asia/Novokuznetsk" , 0x02B327 }, - { (char*) "Asia/Novosibirsk" , 0x02B61A }, - { (char*) "Asia/Omsk" , 0x02B92B }, - { (char*) "Asia/Oral" , 0x02BC29 }, - { (char*) "Asia/Phnom_Penh" , 0x02BEB5 }, - { (char*) "Asia/Pontianak" , 0x02BF89 }, - { (char*) "Asia/Pyongyang" , 0x02C0A2 }, - { (char*) "Asia/Qatar" , 0x02C165 }, - { (char*) "Asia/Qostanay" , 0x02C209 }, - { (char*) "Asia/Qyzylorda" , 0x02C496 }, - { (char*) "Asia/Rangoon" , 0x02C72F }, - { (char*) "Asia/Riyadh" , 0x02C7F6 }, - { (char*) "Asia/Saigon" , 0x02C887 }, - { (char*) "Asia/Sakhalin" , 0x02C97F }, - { (char*) "Asia/Samarkand" , 0x02CC96 }, - { (char*) "Asia/Seoul" , 0x02CE21 }, - { (char*) "Asia/Shanghai" , 0x02CFCC }, - { (char*) "Asia/Singapore" , 0x02D16D }, - { (char*) "Asia/Srednekolymsk" , 0x02D279 }, - { (char*) "Asia/Taipei" , 0x02D589 }, - { (char*) "Asia/Tashkent" , 0x02D794 }, - { (char*) "Asia/Tbilisi" , 0x02D91F }, - { (char*) "Asia/Tehran" , 0x02DBA0 }, - { (char*) "Asia/Tel_Aviv" , 0x02DED8 }, - { (char*) "Asia/Thimbu" , 0x02E316 }, - { (char*) "Asia/Thimphu" , 0x02E3BC }, - { (char*) "Asia/Tokyo" , 0x02E462 }, - { (char*) "Asia/Tomsk" , 0x02E543 }, - { (char*) "Asia/Ujung_Pandang" , 0x02E84E }, - { (char*) "Asia/Ulaanbaatar" , 0x02E918 }, - { (char*) "Asia/Ulan_Bator" , 0x02EB86 }, - { (char*) "Asia/Urumqi" , 0x02EDE4 }, - { (char*) "Asia/Ust-Nera" , 0x02EE82 }, - { (char*) "Asia/Vientiane" , 0x02F1A5 }, - { (char*) "Asia/Vladivostok" , 0x02F28B }, - { (char*) "Asia/Yakutsk" , 0x02F590 }, - { (char*) "Asia/Yangon" , 0x02F894 }, - { (char*) "Asia/Yekaterinburg" , 0x02F95B }, - { (char*) "Asia/Yerevan" , 0x02FC6D }, - { (char*) "Atlantic/Azores" , 0x02FF3D }, - { (char*) "Atlantic/Bermuda" , 0x0304FC }, - { (char*) "Atlantic/Canary" , 0x030908 }, - { (char*) "Atlantic/Cape_Verde" , 0x030B00 }, - { (char*) "Atlantic/Faeroe" , 0x030BBB }, - { (char*) "Atlantic/Faroe" , 0x030D80 }, - { (char*) "Atlantic/Jan_Mayen" , 0x030F45 }, - { (char*) "Atlantic/Madeira" , 0x031212 }, - { (char*) "Atlantic/Reykjavik" , 0x0317DA }, - { (char*) "Atlantic/South_Georgia" , 0x031AD7 }, - { (char*) "Atlantic/St_Helena" , 0x031B67 }, - { (char*) "Atlantic/Stanley" , 0x031C08 }, - { (char*) "Australia/ACT" , 0x031F29 }, - { (char*) "Australia/Adelaide" , 0x0322BD }, - { (char*) "Australia/Brisbane" , 0x032671 }, - { (char*) "Australia/Broken_Hill" , 0x0327B5 }, - { (char*) "Australia/Canberra" , 0x032B8A }, - { (char*) "Australia/Currie" , 0x032F1E }, - { (char*) "Australia/Darwin" , 0x033315 }, - { (char*) "Australia/Eucla" , 0x03341D }, - { (char*) "Australia/Hobart" , 0x03357C }, - { (char*) "Australia/LHI" , 0x03397B }, - { (char*) "Australia/Lindeman" , 0x033C3B }, - { (char*) "Australia/Lord_Howe" , 0x033DAB }, - { (char*) "Australia/Melbourne" , 0x03407B }, - { (char*) "Australia/North" , 0x034417 }, - { (char*) "Australia/NSW" , 0x03450D }, - { (char*) "Australia/Perth" , 0x0348A1 }, - { (char*) "Australia/Queensland" , 0x0349FD }, - { (char*) "Australia/South" , 0x034B2A }, - { (char*) "Australia/Sydney" , 0x034ECF }, - { (char*) "Australia/Tasmania" , 0x03527F }, - { (char*) "Australia/Victoria" , 0x035676 }, - { (char*) "Australia/West" , 0x035A0A }, - { (char*) "Australia/Yancowinna" , 0x035B48 }, - { (char*) "Brazil/Acre" , 0x035F01 }, - { (char*) "Brazil/DeNoronha" , 0x0360AF }, - { (char*) "Brazil/East" , 0x03629F }, - { (char*) "Brazil/West" , 0x036663 }, - { (char*) "Canada/Atlantic" , 0x03680B }, - { (char*) "Canada/Central" , 0x036E9F }, - { (char*) "Canada/Eastern" , 0x0373B9 }, - { (char*) "Canada/Mountain" , 0x037A7A }, - { (char*) "Canada/Newfoundland" , 0x037E50 }, - { (char*) "Canada/Pacific" , 0x0385B2 }, - { (char*) "Canada/Saskatchewan" , 0x038AF0 }, - { (char*) "Canada/Yukon" , 0x038D7A }, - { (char*) "CET" , 0x03918B }, - { (char*) "Chile/Continental" , 0x039404 }, - { (char*) "Chile/EasterIsland" , 0x03995A }, - { (char*) "CST6CDT" , 0x039DFC }, - { (char*) "Cuba" , 0x03A1BF }, - { (char*) "EET" , 0x03A628 }, - { (char*) "Egypt" , 0x03A825 }, - { (char*) "Eire" , 0x03AD4E }, - { (char*) "EST" , 0x03B332 }, - { (char*) "EST5EDT" , 0x03B3AD }, - { (char*) "Etc/GMT" , 0x03B770 }, - { (char*) "Etc/GMT+0" , 0x03B7EB }, - { (char*) "Etc/GMT+1" , 0x03B866 }, - { (char*) "Etc/GMT+10" , 0x03B8E3 }, - { (char*) "Etc/GMT+11" , 0x03B961 }, - { (char*) "Etc/GMT+12" , 0x03B9DF }, - { (char*) "Etc/GMT+2" , 0x03BA5D }, - { (char*) "Etc/GMT+3" , 0x03BADA }, - { (char*) "Etc/GMT+4" , 0x03BB57 }, - { (char*) "Etc/GMT+5" , 0x03BBD4 }, - { (char*) "Etc/GMT+6" , 0x03BC51 }, - { (char*) "Etc/GMT+7" , 0x03BCCE }, - { (char*) "Etc/GMT+8" , 0x03BD4B }, - { (char*) "Etc/GMT+9" , 0x03BDC8 }, - { (char*) "Etc/GMT-0" , 0x03BE45 }, - { (char*) "Etc/GMT-1" , 0x03BEC0 }, - { (char*) "Etc/GMT-10" , 0x03BF3E }, - { (char*) "Etc/GMT-11" , 0x03BFBD }, - { (char*) "Etc/GMT-12" , 0x03C03C }, - { (char*) "Etc/GMT-13" , 0x03C0BB }, - { (char*) "Etc/GMT-14" , 0x03C13A }, - { (char*) "Etc/GMT-2" , 0x03C1B9 }, - { (char*) "Etc/GMT-3" , 0x03C237 }, - { (char*) "Etc/GMT-4" , 0x03C2B5 }, - { (char*) "Etc/GMT-5" , 0x03C333 }, - { (char*) "Etc/GMT-6" , 0x03C3B1 }, - { (char*) "Etc/GMT-7" , 0x03C42F }, - { (char*) "Etc/GMT-8" , 0x03C4AD }, - { (char*) "Etc/GMT-9" , 0x03C52B }, - { (char*) "Etc/GMT0" , 0x03C5A9 }, - { (char*) "Etc/Greenwich" , 0x03C624 }, - { (char*) "Etc/UCT" , 0x03C69F }, - { (char*) "Etc/Universal" , 0x03C71A }, - { (char*) "Etc/UTC" , 0x03C795 }, - { (char*) "Etc/Zulu" , 0x03C810 }, - { (char*) "Europe/Amsterdam" , 0x03C88B }, - { (char*) "Europe/Andorra" , 0x03CCC6 }, - { (char*) "Europe/Astrakhan" , 0x03CE57 }, - { (char*) "Europe/Athens" , 0x03D14B }, - { (char*) "Europe/Belfast" , 0x03D401 }, - { (char*) "Europe/Belgrade" , 0x03DA4C }, - { (char*) "Europe/Berlin" , 0x03DC36 }, - { (char*) "Europe/Bratislava" , 0x03DF12 }, - { (char*) "Europe/Brussels" , 0x03E1F1 }, - { (char*) "Europe/Bucharest" , 0x03E64C }, - { (char*) "Europe/Budapest" , 0x03E8ED }, - { (char*) "Europe/Busingen" , 0x03EBF7 }, - { (char*) "Europe/Chisinau" , 0x03EDFC }, - { (char*) "Europe/Copenhagen" , 0x03F0FB }, - { (char*) "Europe/Dublin" , 0x03F376 }, - { (char*) "Europe/Gibraltar" , 0x03F95A }, - { (char*) "Europe/Guernsey" , 0x03FE2A }, - { (char*) "Europe/Helsinki" , 0x040481 }, - { (char*) "Europe/Isle_of_Man" , 0x04066E }, - { (char*) "Europe/Istanbul" , 0x040CB9 }, - { (char*) "Europe/Jersey" , 0x041175 }, - { (char*) "Europe/Kaliningrad" , 0x0417CC }, - { (char*) "Europe/Kiev" , 0x041B74 }, - { (char*) "Europe/Kirov" , 0x041DAE }, - { (char*) "Europe/Kyiv" , 0x0420A7 }, - { (char*) "Europe/Lisbon" , 0x0422F0 }, - { (char*) "Europe/Ljubljana" , 0x0428BD }, - { (char*) "Europe/London" , 0x042AA7 }, - { (char*) "Europe/Luxembourg" , 0x0430F2 }, - { (char*) "Europe/Madrid" , 0x04353D }, - { (char*) "Europe/Malta" , 0x0438DA }, - { (char*) "Europe/Mariehamn" , 0x043C86 }, - { (char*) "Europe/Minsk" , 0x043E73 }, - { (char*) "Europe/Monaco" , 0x0441A7 }, - { (char*) "Europe/Moscow" , 0x04460D }, - { (char*) "Europe/Nicosia" , 0x0449B9 }, - { (char*) "Europe/Oslo" , 0x044C1A }, - { (char*) "Europe/Paris" , 0x044ECA }, - { (char*) "Europe/Podgorica" , 0x045327 }, - { (char*) "Europe/Prague" , 0x045511 }, - { (char*) "Europe/Riga" , 0x0457F0 }, - { (char*) "Europe/Rome" , 0x045AB2 }, - { (char*) "Europe/Samara" , 0x045E71 }, - { (char*) "Europe/San_Marino" , 0x046172 }, - { (char*) "Europe/Sarajevo" , 0x046531 }, - { (char*) "Europe/Saratov" , 0x04671B }, - { (char*) "Europe/Simferopol" , 0x046A0D }, - { (char*) "Europe/Skopje" , 0x046D80 }, - { (char*) "Europe/Sofia" , 0x046F6A }, - { (char*) "Europe/Stockholm" , 0x0471C6 }, - { (char*) "Europe/Tallinn" , 0x0473C3 }, - { (char*) "Europe/Tirane" , 0x047672 }, - { (char*) "Europe/Tiraspol" , 0x0478DA }, - { (char*) "Europe/Ulyanovsk" , 0x047BD9 }, - { (char*) "Europe/Uzhgorod" , 0x047EEF }, - { (char*) "Europe/Vaduz" , 0x048129 }, - { (char*) "Europe/Vatican" , 0x048313 }, - { (char*) "Europe/Vienna" , 0x0486D2 }, - { (char*) "Europe/Vilnius" , 0x048970 }, - { (char*) "Europe/Volgograd" , 0x048C20 }, - { (char*) "Europe/Warsaw" , 0x048F2F }, - { (char*) "Europe/Zagreb" , 0x0492D6 }, - { (char*) "Europe/Zaporozhye" , 0x0494C0 }, - { (char*) "Europe/Zurich" , 0x0496FA }, - { (char*) "Factory" , 0x0498F7 }, - { (char*) "GB" , 0x049974 }, - { (char*) "GB-Eire" , 0x049FBF }, - { (char*) "GMT" , 0x04A60A }, - { (char*) "GMT+0" , 0x04A685 }, - { (char*) "GMT-0" , 0x04A700 }, - { (char*) "GMT0" , 0x04A77B }, - { (char*) "Greenwich" , 0x04A7F6 }, - { (char*) "Hongkong" , 0x04A871 }, - { (char*) "HST" , 0x04AB84 }, - { (char*) "Iceland" , 0x04AC00 }, - { (char*) "Indian/Antananarivo" , 0x04AC8E }, - { (char*) "Indian/Chagos" , 0x04AD3A }, - { (char*) "Indian/Christmas" , 0x04ADDE }, - { (char*) "Indian/Cocos" , 0x04AE6F }, - { (char*) "Indian/Comoro" , 0x04AF07 }, - { (char*) "Indian/Kerguelen" , 0x04AF96 }, - { (char*) "Indian/Mahe" , 0x04B027 }, - { (char*) "Indian/Maldives" , 0x04B0B8 }, - { (char*) "Indian/Mauritius" , 0x04B15C }, - { (char*) "Indian/Mayotte" , 0x04B21B }, - { (char*) "Indian/Reunion" , 0x04B2AA }, - { (char*) "Iran" , 0x04B33B }, - { (char*) "Israel" , 0x04B673 }, - { (char*) "Jamaica" , 0x04BAB1 }, - { (char*) "Japan" , 0x04BC10 }, - { (char*) "Kwajalein" , 0x04BCF1 }, - { (char*) "Libya" , 0x04BDD8 }, - { (char*) "MET" , 0x04BF93 }, - { (char*) "Mexico/BajaNorte" , 0x04C20C }, - { (char*) "Mexico/BajaSur" , 0x04C619 }, - { (char*) "Mexico/General" , 0x04C8F3 }, - { (char*) "MST" , 0x04CC04 }, - { (char*) "MST7MDT" , 0x04CC7F }, - { (char*) "Navajo" , 0x04D042 }, - { (char*) "NZ" , 0x04D460 }, - { (char*) "NZ-CHAT" , 0x04D87F }, - { (char*) "Pacific/Apia" , 0x04DBB3 }, - { (char*) "Pacific/Auckland" , 0x04DD56 }, - { (char*) "Pacific/Bougainville" , 0x04E188 }, - { (char*) "Pacific/Chatham" , 0x04E269 }, - { (char*) "Pacific/Chuuk" , 0x04E5AC }, - { (char*) "Pacific/Easter" , 0x04E68A }, - { (char*) "Pacific/Efate" , 0x04EB39 }, - { (char*) "Pacific/Enderbury" , 0x04EC9B }, - { (char*) "Pacific/Fakaofo" , 0x04ED53 }, - { (char*) "Pacific/Fiji" , 0x04EDF8 }, - { (char*) "Pacific/Funafuti" , 0x04EF90 }, - { (char*) "Pacific/Galapagos" , 0x04F022 }, - { (char*) "Pacific/Gambier" , 0x04F0EE }, - { (char*) "Pacific/Guadalcanal" , 0x04F18D }, - { (char*) "Pacific/Guam" , 0x04F21F }, - { (char*) "Pacific/Honolulu" , 0x04F389 }, - { (char*) "Pacific/Johnston" , 0x04F478 }, - { (char*) "Pacific/Kanton" , 0x04F561 }, - { (char*) "Pacific/Kiritimati" , 0x04F628 }, - { (char*) "Pacific/Kosrae" , 0x04F6EE }, - { (char*) "Pacific/Kwajalein" , 0x04F7F2 }, - { (char*) "Pacific/Majuro" , 0x04F8E2 }, - { (char*) "Pacific/Marquesas" , 0x04F9E0 }, - { (char*) "Pacific/Midway" , 0x04FA88 }, - { (char*) "Pacific/Nauru" , 0x04FB4B }, - { (char*) "Pacific/Niue" , 0x04FC0E }, - { (char*) "Pacific/Norfolk" , 0x04FCB4 }, - { (char*) "Pacific/Noumea" , 0x04FDAD }, - { (char*) "Pacific/Pago_Pago" , 0x04FE7F }, - { (char*) "Pacific/Palau" , 0x04FF1D }, - { (char*) "Pacific/Pitcairn" , 0x04FFBD }, - { (char*) "Pacific/Pohnpei" , 0x050062 }, - { (char*) "Pacific/Ponape" , 0x050152 }, - { (char*) "Pacific/Port_Moresby" , 0x0501E4 }, - { (char*) "Pacific/Rarotonga" , 0x0502A2 }, - { (char*) "Pacific/Saipan" , 0x050444 }, - { (char*) "Pacific/Samoa" , 0x0505A5 }, - { (char*) "Pacific/Tahiti" , 0x050643 }, - { (char*) "Pacific/Tarawa" , 0x0506E3 }, - { (char*) "Pacific/Tongatapu" , 0x050784 }, - { (char*) "Pacific/Truk" , 0x05087D }, - { (char*) "Pacific/Wake" , 0x050923 }, - { (char*) "Pacific/Wallis" , 0x0509C0 }, - { (char*) "Pacific/Yap" , 0x050A52 }, - { (char*) "Poland" , 0x050AF8 }, - { (char*) "Portugal" , 0x050E9F }, - { (char*) "PRC" , 0x051459 }, - { (char*) "PST8PDT" , 0x0515EE }, - { (char*) "ROC" , 0x0519B1 }, - { (char*) "ROK" , 0x051BBC }, - { (char*) "Singapore" , 0x051D67 }, - { (char*) "Turkey" , 0x051E73 }, - { (char*) "UCT" , 0x05232F }, - { (char*) "Universal" , 0x0523AA }, - { (char*) "US/Alaska" , 0x052425 }, - { (char*) "US/Aleutian" , 0x052802 }, - { (char*) "US/Arizona" , 0x052BD7 }, - { (char*) "US/Central" , 0x052CD3 }, - { (char*) "US/East-Indiana" , 0x0533B9 }, - { (char*) "US/Eastern" , 0x0535D8 }, - { (char*) "US/Hawaii" , 0x053CB4 }, - { (char*) "US/Indiana-Starke" , 0x053D9D }, - { (char*) "US/Michigan" , 0x0541A1 }, - { (char*) "US/Mountain" , 0x054530 }, - { (char*) "US/Pacific" , 0x05494E }, - { (char*) "US/Samoa" , 0x054E68 }, - { (char*) "UTC" , 0x054F06 }, - { (char*) "W-SU" , 0x054F81 }, - { (char*) "WET" , 0x055319 }, - { (char*) "Zulu" , 0x055513 }, + { (char*) "Asia/Amman" , 0x022D3D }, + { (char*) "Asia/Anadyr" , 0x0230E9 }, + { (char*) "Asia/Aqtau" , 0x0233EF }, + { (char*) "Asia/Aqtobe" , 0x02366E }, + { (char*) "Asia/Ashgabat" , 0x0238EE }, + { (char*) "Asia/Ashkhabad" , 0x023A71 }, + { (char*) "Asia/Atyrau" , 0x023BF4 }, + { (char*) "Asia/Baghdad" , 0x023E7D }, + { (char*) "Asia/Bahrain" , 0x0240FF }, + { (char*) "Asia/Baku" , 0x0241B8 }, + { (char*) "Asia/Bangkok" , 0x0244AC }, + { (char*) "Asia/Barnaul" , 0x024550 }, + { (char*) "Asia/Beirut" , 0x02485B }, + { (char*) "Asia/Bishkek" , 0x024B43 }, + { (char*) "Asia/Brunei" , 0x024DB9 }, + { (char*) "Asia/Calcutta" , 0x024E5F }, + { (char*) "Asia/Chita" , 0x024F47 }, + { (char*) "Asia/Choibalsan" , 0x025255 }, + { (char*) "Asia/Chongqing" , 0x0254DE }, + { (char*) "Asia/Chungking" , 0x025673 }, + { (char*) "Asia/Colombo" , 0x025808 }, + { (char*) "Asia/Dacca" , 0x02590B }, + { (char*) "Asia/Damascus" , 0x0259FE }, + { (char*) "Asia/Dhaka" , 0x025EDC }, + { (char*) "Asia/Dili" , 0x025FCF }, + { (char*) "Asia/Dubai" , 0x026085 }, + { (char*) "Asia/Dushanbe" , 0x026116 }, + { (char*) "Asia/Famagusta" , 0x026290 }, + { (char*) "Asia/Gaza" , 0x026657 }, + { (char*) "Asia/Harbin" , 0x0271F3 }, + { (char*) "Asia/Hebron" , 0x027388 }, + { (char*) "Asia/Ho_Chi_Minh" , 0x027F35 }, + { (char*) "Asia/Hong_Kong" , 0x02802D }, + { (char*) "Asia/Hovd" , 0x028340 }, + { (char*) "Asia/Irkutsk" , 0x0285C9 }, + { (char*) "Asia/Istanbul" , 0x0288E7 }, + { (char*) "Asia/Jakarta" , 0x028DA3 }, + { (char*) "Asia/Jayapura" , 0x028EB4 }, + { (char*) "Asia/Jerusalem" , 0x028FA1 }, + { (char*) "Asia/Kabul" , 0x0293DF }, + { (char*) "Asia/Kamchatka" , 0x02948A }, + { (char*) "Asia/Karachi" , 0x02977F }, + { (char*) "Asia/Kashgar" , 0x029895 }, + { (char*) "Asia/Kathmandu" , 0x029926 }, + { (char*) "Asia/Katmandu" , 0x0299D3 }, + { (char*) "Asia/Khandyga" , 0x029A80 }, + { (char*) "Asia/Kolkata" , 0x029DB1 }, + { (char*) "Asia/Krasnoyarsk" , 0x029E99 }, + { (char*) "Asia/Kuala_Lumpur" , 0x02A1A3 }, + { (char*) "Asia/Kuching" , 0x02A2C3 }, + { (char*) "Asia/Kuwait" , 0x02A41D }, + { (char*) "Asia/Macao" , 0x02A4AE }, + { (char*) "Asia/Macau" , 0x02A7D1 }, + { (char*) "Asia/Magadan" , 0x02AAF4 }, + { (char*) "Asia/Makassar" , 0x02ADFF }, + { (char*) "Asia/Manila" , 0x02AF12 }, + { (char*) "Asia/Muscat" , 0x02B00C }, + { (char*) "Asia/Nicosia" , 0x02B09D }, + { (char*) "Asia/Novokuznetsk" , 0x02B30C }, + { (char*) "Asia/Novosibirsk" , 0x02B5FF }, + { (char*) "Asia/Omsk" , 0x02B910 }, + { (char*) "Asia/Oral" , 0x02BC0E }, + { (char*) "Asia/Phnom_Penh" , 0x02BE9A }, + { (char*) "Asia/Pontianak" , 0x02BF6E }, + { (char*) "Asia/Pyongyang" , 0x02C087 }, + { (char*) "Asia/Qatar" , 0x02C14A }, + { (char*) "Asia/Qostanay" , 0x02C1EE }, + { (char*) "Asia/Qyzylorda" , 0x02C484 }, + { (char*) "Asia/Rangoon" , 0x02C71D }, + { (char*) "Asia/Riyadh" , 0x02C7E4 }, + { (char*) "Asia/Saigon" , 0x02C875 }, + { (char*) "Asia/Sakhalin" , 0x02C96D }, + { (char*) "Asia/Samarkand" , 0x02CC84 }, + { (char*) "Asia/Seoul" , 0x02CE0F }, + { (char*) "Asia/Shanghai" , 0x02CFBA }, + { (char*) "Asia/Singapore" , 0x02D15B }, + { (char*) "Asia/Srednekolymsk" , 0x02D267 }, + { (char*) "Asia/Taipei" , 0x02D577 }, + { (char*) "Asia/Tashkent" , 0x02D782 }, + { (char*) "Asia/Tbilisi" , 0x02D90D }, + { (char*) "Asia/Tehran" , 0x02DB8E }, + { (char*) "Asia/Tel_Aviv" , 0x02DEC6 }, + { (char*) "Asia/Thimbu" , 0x02E304 }, + { (char*) "Asia/Thimphu" , 0x02E3AA }, + { (char*) "Asia/Tokyo" , 0x02E450 }, + { (char*) "Asia/Tomsk" , 0x02E531 }, + { (char*) "Asia/Ujung_Pandang" , 0x02E83C }, + { (char*) "Asia/Ulaanbaatar" , 0x02E906 }, + { (char*) "Asia/Ulan_Bator" , 0x02EB74 }, + { (char*) "Asia/Urumqi" , 0x02EDD2 }, + { (char*) "Asia/Ust-Nera" , 0x02EE70 }, + { (char*) "Asia/Vientiane" , 0x02F193 }, + { (char*) "Asia/Vladivostok" , 0x02F279 }, + { (char*) "Asia/Yakutsk" , 0x02F57E }, + { (char*) "Asia/Yangon" , 0x02F882 }, + { (char*) "Asia/Yekaterinburg" , 0x02F949 }, + { (char*) "Asia/Yerevan" , 0x02FC5B }, + { (char*) "Atlantic/Azores" , 0x02FF2B }, + { (char*) "Atlantic/Bermuda" , 0x0304EA }, + { (char*) "Atlantic/Canary" , 0x0308F6 }, + { (char*) "Atlantic/Cape_Verde" , 0x030AEE }, + { (char*) "Atlantic/Faeroe" , 0x030BA9 }, + { (char*) "Atlantic/Faroe" , 0x030D6E }, + { (char*) "Atlantic/Jan_Mayen" , 0x030F33 }, + { (char*) "Atlantic/Madeira" , 0x031200 }, + { (char*) "Atlantic/Reykjavik" , 0x0317C8 }, + { (char*) "Atlantic/South_Georgia" , 0x031AC5 }, + { (char*) "Atlantic/St_Helena" , 0x031B55 }, + { (char*) "Atlantic/Stanley" , 0x031BF6 }, + { (char*) "Australia/ACT" , 0x031F17 }, + { (char*) "Australia/Adelaide" , 0x0322AB }, + { (char*) "Australia/Brisbane" , 0x03265F }, + { (char*) "Australia/Broken_Hill" , 0x0327A3 }, + { (char*) "Australia/Canberra" , 0x032B78 }, + { (char*) "Australia/Currie" , 0x032F0C }, + { (char*) "Australia/Darwin" , 0x033303 }, + { (char*) "Australia/Eucla" , 0x03340B }, + { (char*) "Australia/Hobart" , 0x03356A }, + { (char*) "Australia/LHI" , 0x033969 }, + { (char*) "Australia/Lindeman" , 0x033C29 }, + { (char*) "Australia/Lord_Howe" , 0x033D99 }, + { (char*) "Australia/Melbourne" , 0x034069 }, + { (char*) "Australia/North" , 0x034405 }, + { (char*) "Australia/NSW" , 0x0344FB }, + { (char*) "Australia/Perth" , 0x03488F }, + { (char*) "Australia/Queensland" , 0x0349EB }, + { (char*) "Australia/South" , 0x034B18 }, + { (char*) "Australia/Sydney" , 0x034EBD }, + { (char*) "Australia/Tasmania" , 0x03526D }, + { (char*) "Australia/Victoria" , 0x035664 }, + { (char*) "Australia/West" , 0x0359F8 }, + { (char*) "Australia/Yancowinna" , 0x035B36 }, + { (char*) "Brazil/Acre" , 0x035EEF }, + { (char*) "Brazil/DeNoronha" , 0x03609D }, + { (char*) "Brazil/East" , 0x03628D }, + { (char*) "Brazil/West" , 0x036651 }, + { (char*) "Canada/Atlantic" , 0x0367F9 }, + { (char*) "Canada/Central" , 0x036E8D }, + { (char*) "Canada/Eastern" , 0x0373A7 }, + { (char*) "Canada/Mountain" , 0x037A68 }, + { (char*) "Canada/Newfoundland" , 0x037E3E }, + { (char*) "Canada/Pacific" , 0x0385A0 }, + { (char*) "Canada/Saskatchewan" , 0x038ADE }, + { (char*) "Canada/Yukon" , 0x038D68 }, + { (char*) "CET" , 0x039179 }, + { (char*) "Chile/Continental" , 0x0393F2 }, + { (char*) "Chile/EasterIsland" , 0x039948 }, + { (char*) "CST6CDT" , 0x039DEA }, + { (char*) "Cuba" , 0x03A1AD }, + { (char*) "EET" , 0x03A616 }, + { (char*) "Egypt" , 0x03A813 }, + { (char*) "Eire" , 0x03AD3C }, + { (char*) "EST" , 0x03B320 }, + { (char*) "EST5EDT" , 0x03B39B }, + { (char*) "Etc/GMT" , 0x03B75E }, + { (char*) "Etc/GMT+0" , 0x03B7D9 }, + { (char*) "Etc/GMT+1" , 0x03B854 }, + { (char*) "Etc/GMT+10" , 0x03B8D1 }, + { (char*) "Etc/GMT+11" , 0x03B94F }, + { (char*) "Etc/GMT+12" , 0x03B9CD }, + { (char*) "Etc/GMT+2" , 0x03BA4B }, + { (char*) "Etc/GMT+3" , 0x03BAC8 }, + { (char*) "Etc/GMT+4" , 0x03BB45 }, + { (char*) "Etc/GMT+5" , 0x03BBC2 }, + { (char*) "Etc/GMT+6" , 0x03BC3F }, + { (char*) "Etc/GMT+7" , 0x03BCBC }, + { (char*) "Etc/GMT+8" , 0x03BD39 }, + { (char*) "Etc/GMT+9" , 0x03BDB6 }, + { (char*) "Etc/GMT-0" , 0x03BE33 }, + { (char*) "Etc/GMT-1" , 0x03BEAE }, + { (char*) "Etc/GMT-10" , 0x03BF2C }, + { (char*) "Etc/GMT-11" , 0x03BFAB }, + { (char*) "Etc/GMT-12" , 0x03C02A }, + { (char*) "Etc/GMT-13" , 0x03C0A9 }, + { (char*) "Etc/GMT-14" , 0x03C128 }, + { (char*) "Etc/GMT-2" , 0x03C1A7 }, + { (char*) "Etc/GMT-3" , 0x03C225 }, + { (char*) "Etc/GMT-4" , 0x03C2A3 }, + { (char*) "Etc/GMT-5" , 0x03C321 }, + { (char*) "Etc/GMT-6" , 0x03C39F }, + { (char*) "Etc/GMT-7" , 0x03C41D }, + { (char*) "Etc/GMT-8" , 0x03C49B }, + { (char*) "Etc/GMT-9" , 0x03C519 }, + { (char*) "Etc/GMT0" , 0x03C597 }, + { (char*) "Etc/Greenwich" , 0x03C612 }, + { (char*) "Etc/UCT" , 0x03C68D }, + { (char*) "Etc/Universal" , 0x03C708 }, + { (char*) "Etc/UTC" , 0x03C783 }, + { (char*) "Etc/Zulu" , 0x03C7FE }, + { (char*) "Europe/Amsterdam" , 0x03C879 }, + { (char*) "Europe/Andorra" , 0x03CCB4 }, + { (char*) "Europe/Astrakhan" , 0x03CE45 }, + { (char*) "Europe/Athens" , 0x03D139 }, + { (char*) "Europe/Belfast" , 0x03D3EF }, + { (char*) "Europe/Belgrade" , 0x03DA3A }, + { (char*) "Europe/Berlin" , 0x03DC24 }, + { (char*) "Europe/Bratislava" , 0x03DF00 }, + { (char*) "Europe/Brussels" , 0x03E1DF }, + { (char*) "Europe/Bucharest" , 0x03E63A }, + { (char*) "Europe/Budapest" , 0x03E8DB }, + { (char*) "Europe/Busingen" , 0x03EBE5 }, + { (char*) "Europe/Chisinau" , 0x03EDEA }, + { (char*) "Europe/Copenhagen" , 0x03F0E9 }, + { (char*) "Europe/Dublin" , 0x03F364 }, + { (char*) "Europe/Gibraltar" , 0x03F948 }, + { (char*) "Europe/Guernsey" , 0x03FE18 }, + { (char*) "Europe/Helsinki" , 0x04046F }, + { (char*) "Europe/Isle_of_Man" , 0x04065C }, + { (char*) "Europe/Istanbul" , 0x040CA7 }, + { (char*) "Europe/Jersey" , 0x041163 }, + { (char*) "Europe/Kaliningrad" , 0x0417BA }, + { (char*) "Europe/Kiev" , 0x041B62 }, + { (char*) "Europe/Kirov" , 0x041D9C }, + { (char*) "Europe/Kyiv" , 0x042095 }, + { (char*) "Europe/Lisbon" , 0x0422DE }, + { (char*) "Europe/Ljubljana" , 0x0428AB }, + { (char*) "Europe/London" , 0x042A95 }, + { (char*) "Europe/Luxembourg" , 0x0430E0 }, + { (char*) "Europe/Madrid" , 0x04352B }, + { (char*) "Europe/Malta" , 0x0438C8 }, + { (char*) "Europe/Mariehamn" , 0x043C74 }, + { (char*) "Europe/Minsk" , 0x043E61 }, + { (char*) "Europe/Monaco" , 0x044195 }, + { (char*) "Europe/Moscow" , 0x0445FB }, + { (char*) "Europe/Nicosia" , 0x0449A7 }, + { (char*) "Europe/Oslo" , 0x044C08 }, + { (char*) "Europe/Paris" , 0x044EB8 }, + { (char*) "Europe/Podgorica" , 0x045315 }, + { (char*) "Europe/Prague" , 0x0454FF }, + { (char*) "Europe/Riga" , 0x0457DE }, + { (char*) "Europe/Rome" , 0x045AA0 }, + { (char*) "Europe/Samara" , 0x045E5F }, + { (char*) "Europe/San_Marino" , 0x046160 }, + { (char*) "Europe/Sarajevo" , 0x04651F }, + { (char*) "Europe/Saratov" , 0x046709 }, + { (char*) "Europe/Simferopol" , 0x0469FB }, + { (char*) "Europe/Skopje" , 0x046D6E }, + { (char*) "Europe/Sofia" , 0x046F58 }, + { (char*) "Europe/Stockholm" , 0x0471B4 }, + { (char*) "Europe/Tallinn" , 0x0473B1 }, + { (char*) "Europe/Tirane" , 0x047660 }, + { (char*) "Europe/Tiraspol" , 0x0478C8 }, + { (char*) "Europe/Ulyanovsk" , 0x047BC7 }, + { (char*) "Europe/Uzhgorod" , 0x047EDD }, + { (char*) "Europe/Vaduz" , 0x048117 }, + { (char*) "Europe/Vatican" , 0x048301 }, + { (char*) "Europe/Vienna" , 0x0486C0 }, + { (char*) "Europe/Vilnius" , 0x04895E }, + { (char*) "Europe/Volgograd" , 0x048C0E }, + { (char*) "Europe/Warsaw" , 0x048F1D }, + { (char*) "Europe/Zagreb" , 0x0492C4 }, + { (char*) "Europe/Zaporozhye" , 0x0494AE }, + { (char*) "Europe/Zurich" , 0x0496E8 }, + { (char*) "Factory" , 0x0498E5 }, + { (char*) "GB" , 0x049962 }, + { (char*) "GB-Eire" , 0x049FAD }, + { (char*) "GMT" , 0x04A5F8 }, + { (char*) "GMT+0" , 0x04A673 }, + { (char*) "GMT-0" , 0x04A6EE }, + { (char*) "GMT0" , 0x04A769 }, + { (char*) "Greenwich" , 0x04A7E4 }, + { (char*) "Hongkong" , 0x04A85F }, + { (char*) "HST" , 0x04AB72 }, + { (char*) "Iceland" , 0x04ABEE }, + { (char*) "Indian/Antananarivo" , 0x04AC7C }, + { (char*) "Indian/Chagos" , 0x04AD28 }, + { (char*) "Indian/Christmas" , 0x04ADCC }, + { (char*) "Indian/Cocos" , 0x04AE5D }, + { (char*) "Indian/Comoro" , 0x04AEF5 }, + { (char*) "Indian/Kerguelen" , 0x04AF84 }, + { (char*) "Indian/Mahe" , 0x04B015 }, + { (char*) "Indian/Maldives" , 0x04B0A6 }, + { (char*) "Indian/Mauritius" , 0x04B14A }, + { (char*) "Indian/Mayotte" , 0x04B209 }, + { (char*) "Indian/Reunion" , 0x04B298 }, + { (char*) "Iran" , 0x04B329 }, + { (char*) "Israel" , 0x04B661 }, + { (char*) "Jamaica" , 0x04BA9F }, + { (char*) "Japan" , 0x04BBFE }, + { (char*) "Kwajalein" , 0x04BCDF }, + { (char*) "Libya" , 0x04BDC6 }, + { (char*) "MET" , 0x04BF81 }, + { (char*) "Mexico/BajaNorte" , 0x04C1FA }, + { (char*) "Mexico/BajaSur" , 0x04C607 }, + { (char*) "Mexico/General" , 0x04C8E1 }, + { (char*) "MST" , 0x04CBF2 }, + { (char*) "MST7MDT" , 0x04CC6D }, + { (char*) "Navajo" , 0x04D030 }, + { (char*) "NZ" , 0x04D44E }, + { (char*) "NZ-CHAT" , 0x04D86D }, + { (char*) "Pacific/Apia" , 0x04DBA1 }, + { (char*) "Pacific/Auckland" , 0x04DD44 }, + { (char*) "Pacific/Bougainville" , 0x04E176 }, + { (char*) "Pacific/Chatham" , 0x04E257 }, + { (char*) "Pacific/Chuuk" , 0x04E59A }, + { (char*) "Pacific/Easter" , 0x04E678 }, + { (char*) "Pacific/Efate" , 0x04EB27 }, + { (char*) "Pacific/Enderbury" , 0x04EC89 }, + { (char*) "Pacific/Fakaofo" , 0x04ED41 }, + { (char*) "Pacific/Fiji" , 0x04EDE6 }, + { (char*) "Pacific/Funafuti" , 0x04EF7E }, + { (char*) "Pacific/Galapagos" , 0x04F010 }, + { (char*) "Pacific/Gambier" , 0x04F0DC }, + { (char*) "Pacific/Guadalcanal" , 0x04F17B }, + { (char*) "Pacific/Guam" , 0x04F20D }, + { (char*) "Pacific/Honolulu" , 0x04F377 }, + { (char*) "Pacific/Johnston" , 0x04F466 }, + { (char*) "Pacific/Kanton" , 0x04F54F }, + { (char*) "Pacific/Kiritimati" , 0x04F616 }, + { (char*) "Pacific/Kosrae" , 0x04F6DC }, + { (char*) "Pacific/Kwajalein" , 0x04F7E0 }, + { (char*) "Pacific/Majuro" , 0x04F8D0 }, + { (char*) "Pacific/Marquesas" , 0x04F9CE }, + { (char*) "Pacific/Midway" , 0x04FA76 }, + { (char*) "Pacific/Nauru" , 0x04FB39 }, + { (char*) "Pacific/Niue" , 0x04FBFC }, + { (char*) "Pacific/Norfolk" , 0x04FCA2 }, + { (char*) "Pacific/Noumea" , 0x04FD9B }, + { (char*) "Pacific/Pago_Pago" , 0x04FE6D }, + { (char*) "Pacific/Palau" , 0x04FF0B }, + { (char*) "Pacific/Pitcairn" , 0x04FFAB }, + { (char*) "Pacific/Pohnpei" , 0x050050 }, + { (char*) "Pacific/Ponape" , 0x050140 }, + { (char*) "Pacific/Port_Moresby" , 0x0501D2 }, + { (char*) "Pacific/Rarotonga" , 0x050290 }, + { (char*) "Pacific/Saipan" , 0x050432 }, + { (char*) "Pacific/Samoa" , 0x050593 }, + { (char*) "Pacific/Tahiti" , 0x050631 }, + { (char*) "Pacific/Tarawa" , 0x0506D1 }, + { (char*) "Pacific/Tongatapu" , 0x050772 }, + { (char*) "Pacific/Truk" , 0x05086B }, + { (char*) "Pacific/Wake" , 0x050911 }, + { (char*) "Pacific/Wallis" , 0x0509AE }, + { (char*) "Pacific/Yap" , 0x050A40 }, + { (char*) "Poland" , 0x050AE6 }, + { (char*) "Portugal" , 0x050E8D }, + { (char*) "PRC" , 0x051447 }, + { (char*) "PST8PDT" , 0x0515DC }, + { (char*) "ROC" , 0x05199F }, + { (char*) "ROK" , 0x051BAA }, + { (char*) "Singapore" , 0x051D55 }, + { (char*) "Turkey" , 0x051E61 }, + { (char*) "UCT" , 0x05231D }, + { (char*) "Universal" , 0x052398 }, + { (char*) "US/Alaska" , 0x052413 }, + { (char*) "US/Aleutian" , 0x0527F0 }, + { (char*) "US/Arizona" , 0x052BC5 }, + { (char*) "US/Central" , 0x052CC1 }, + { (char*) "US/East-Indiana" , 0x0533A7 }, + { (char*) "US/Eastern" , 0x0535C6 }, + { (char*) "US/Hawaii" , 0x053CA2 }, + { (char*) "US/Indiana-Starke" , 0x053D8B }, + { (char*) "US/Michigan" , 0x05418F }, + { (char*) "US/Mountain" , 0x05451E }, + { (char*) "US/Pacific" , 0x05493C }, + { (char*) "US/Samoa" , 0x054E56 }, + { (char*) "UTC" , 0x054EF4 }, + { (char*) "W-SU" , 0x054F6F }, + { (char*) "WET" , 0x055307 }, + { (char*) "Zulu" , 0x055501 }, }; -const unsigned char timelib_timezone_db_data_builtin[349582] = { +const unsigned char timelib_timezone_db_data_builtin[349564] = { /* Africa/Abidjan */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -6509,7 +6509,7 @@ const unsigned char timelib_timezone_db_data_builtin[349582] = { 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0xFF, -0xFF, 0xFF, 0xFF, 0x91, 0xB6, 0x38, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x13, 0x6E, 0x63, 0xC0, 0x00, +0xFF, 0xFF, 0xFF, 0x91, 0xDF, 0x17, 0x28, 0x00, 0x00, 0x00, 0x00, 0x13, 0x6E, 0x63, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x20, 0x75, 0xE4, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x21, 0x81, 0x77, 0x40, 0x00, 0x00, 0x00, 0x00, 0x22, 0x55, 0xC6, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x23, 0x6A, 0x93, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x24, 0x35, 0xA8, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x25, 0x4A, 0x75, 0xC0, 0x00, @@ -6781,10 +6781,10 @@ const unsigned char timelib_timezone_db_data_builtin[349582] = { 0xFF, 0xFF, 0xFF, 0xC7, 0x0F, 0x3A, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x2D, 0x5E, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x88, 0xF0, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xFB, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD3, 0x75, 0xE4, 0xF0, 0xFF, -0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xAA, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xA3, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0x8C, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0x85, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x6E, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x76, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, +0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xC6, 0xF0, 0xFF, +0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xBF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0xA8, 0xF0, 0xFF, +0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0xA1, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x8A, 0xF0, 0xFF, +0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x92, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x13, 0x74, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0xDE, 0x89, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0xA9, 0x82, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xBE, 0x6B, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x89, 0x64, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x9E, 0x4D, 0x70, 0xFF, @@ -7083,10 +7083,10 @@ const unsigned char timelib_timezone_db_data_builtin[349582] = { 0xFF, 0xFF, 0xFF, 0xC7, 0x0F, 0x3A, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x2D, 0x5E, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x88, 0xF0, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xFB, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD3, 0x75, 0xE4, 0xF0, 0xFF, -0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xAA, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xA3, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0x8C, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0x85, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x6E, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x76, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, +0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xC6, 0xF0, 0xFF, +0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xBF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0xA8, 0xF0, 0xFF, +0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0xA1, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x8A, 0xF0, 0xFF, +0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x92, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x13, 0x74, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0xDE, 0x89, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0xA9, 0x82, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xBE, 0x6B, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x89, 0x64, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x9E, 0x4D, 0x70, 0xFF, @@ -9002,10 +9002,10 @@ const unsigned char timelib_timezone_db_data_builtin[349582] = { 0xFF, 0xFF, 0xFF, 0xC7, 0x0F, 0x3A, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x2D, 0x5E, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x88, 0xF0, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xFB, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD3, 0x75, 0xE4, 0xF0, 0xFF, -0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xAA, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xA3, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0x8C, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0x85, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x6E, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x76, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, +0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xC6, 0xF0, 0xFF, +0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xBF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0xA8, 0xF0, 0xFF, +0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0xA1, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x8A, 0xF0, 0xFF, +0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x92, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x13, 0x74, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0xDE, 0x89, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0xA9, 0x82, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xBE, 0x6B, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x89, 0x64, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x9E, 0x4D, 0x70, 0xFF, @@ -9181,10 +9181,10 @@ const unsigned char timelib_timezone_db_data_builtin[349582] = { 0xFF, 0xFF, 0xFF, 0xC7, 0x0F, 0x3A, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x2D, 0x5E, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x88, 0xF0, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xFB, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD3, 0x75, 0xE4, 0xF0, 0xFF, -0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xAA, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xA3, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0x8C, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0x85, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x6E, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x76, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, +0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xC6, 0xF0, 0xFF, +0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xBF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0xA8, 0xF0, 0xFF, +0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0xA1, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x8A, 0xF0, 0xFF, +0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x92, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x13, 0x74, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0xDE, 0x89, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0xA9, 0x82, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xBE, 0x6B, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x89, 0x64, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x9E, 0x4D, 0x70, 0xFF, @@ -10083,7 +10083,7 @@ const unsigned char timelib_timezone_db_data_builtin[349582] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x10, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xAA, 0x19, 0x7B, 0xDC, 0xFF, 0xFF, 0xFF, 0xFF, 0xB5, 0xA3, 0xEF, 0x30, 0x00, 0x00, 0x00, 0x00, 0x15, 0x27, 0x7D, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x16, 0x18, 0xB2, 0x10, 0x00, 0x00, 0x00, 0x00, 0x17, 0x08, 0xB1, 0x20, 0x00, 0x00, 0x00, 0x00, 0x17, 0xF9, 0xE5, 0x90, 0x00, @@ -10109,15 +10109,16 @@ const unsigned char timelib_timezone_db_data_builtin[349582] = { 0x00, 0x00, 0x00, 0x3B, 0xDB, 0x12, 0x40, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xA6, 0x19, 0x40, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBA, 0xF4, 0x40, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x85, 0xFB, 0x40, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9A, 0xD6, 0x40, 0x00, 0x00, 0x00, 0x00, 0x40, 0x65, 0xDD, 0x40, 0x00, -0x00, 0x00, 0x00, 0x41, 0x83, 0xF2, 0xC0, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x04, 0x01, 0x03, +0x00, 0x00, 0x00, 0x41, 0x83, 0xF2, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x65, 0xE0, 0xC6, 0x20, 0x01, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x04, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, -0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x00, 0x00, 0x48, 0x24, 0x00, 0x00, -0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x01, 0x08, 0x00, 0x00, 0x54, 0x60, -0x00, 0x0C, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x2B, 0x30, 0x35, 0x00, -0x2B, 0x30, 0x37, 0x00, 0x2B, 0x30, 0x36, 0x00, 0x0A, 0x3C, 0x2B, 0x30, 0x36, 0x3E, 0x2D, 0x36, -0x0A, 0x00, 0xCB, 0x52, 0xC8, 0x01, 0x88, 0x13, 0x18, 0x00, 0x00, 0x00, 0x12, 0x6D, 0x6F, 0x73, -0x74, 0x20, 0x6F, 0x66, 0x20, 0x4B, 0x61, 0x7A, 0x61, 0x6B, 0x68, 0x73, 0x74, 0x61, 0x6E, +0x02, 0x03, 0x01, 0x00, 0x00, 0x48, 0x24, 0x00, 0x00, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, +0x00, 0x62, 0x70, 0x01, 0x08, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x54, 0x60, 0x01, +0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x2B, 0x30, 0x35, 0x00, 0x2B, 0x30, 0x37, 0x00, 0x2B, 0x30, 0x36, +0x00, 0x0A, 0x3C, 0x2B, 0x30, 0x35, 0x3E, 0x2D, 0x35, 0x0A, 0x00, 0xCB, 0x52, 0xC8, 0x01, 0x88, +0x13, 0x18, 0x00, 0x00, 0x00, 0x12, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x6F, 0x66, 0x20, 0x4B, 0x61, +0x7A, 0x61, 0x6B, 0x68, 0x73, 0x74, 0x61, 0x6E, /* Asia/Amman */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x4A, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -11111,7 +11112,7 @@ const unsigned char timelib_timezone_db_data_builtin[349582] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x36, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x15, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x34, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x15, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0xBD, 0x4A, 0xB0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x59, 0xCF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0xFA, 0xA6, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x38, 0x9C, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCC, 0xE5, 0xEB, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCD, 0xAC, 0xFE, 0x00, 0xFF, @@ -11173,8 +11174,8 @@ const unsigned char timelib_timezone_db_data_builtin[349582] = { 0x00, 0x00, 0x00, 0x60, 0x5E, 0x59, 0x60, 0x00, 0x00, 0x00, 0x00, 0x61, 0x7B, 0x1D, 0x60, 0x00, 0x00, 0x00, 0x00, 0x62, 0x3F, 0x8C, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x63, 0x5C, 0x5E, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x64, 0x4C, 0x5E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0x3C, 0x40, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x66, 0x19, 0xCB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x1C, 0x22, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x67, 0xF0, 0x72, 0x80, 0x00, 0x00, 0x00, 0x00, 0x68, 0xFC, 0x04, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x66, 0x23, 0x05, 0x80, 0x00, 0x00, 0x00, 0x00, 0x67, 0x1C, 0x22, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x67, 0xF9, 0xAD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0xFC, 0x04, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x69, 0xC7, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xDB, 0xE6, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x6B, 0xA6, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xC5, 0x03, 0x70, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x86, 0xDE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6E, 0xA4, 0xE5, 0x70, 0x00, @@ -11189,41 +11190,40 @@ const unsigned char timelib_timezone_db_data_builtin[349582] = { 0x00, 0x00, 0x00, 0x7E, 0x78, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7A, 0x9C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x80, 0x58, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x48, 0x09, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x82, 0x38, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x1E, 0xB1, 0x70, 0x00, -0x00, 0x00, 0x00, 0x83, 0x4C, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x56, 0x10, 0x70, 0x00, 0x00, 0x00, 0x00, 0x84, 0x17, 0xEB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0xEC, 0x1E, 0x70, 0x00, -0x00, 0x00, 0x00, 0x85, 0x23, 0x8B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x85, 0x35, 0xF2, 0x70, 0x00, +0x00, 0x00, 0x00, 0x85, 0x2C, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x35, 0xF2, 0x70, 0x00, 0x00, 0x00, 0x00, 0x86, 0x01, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x86, 0xC2, 0xC5, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x86, 0xF0, 0xF8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x87, 0x15, 0xD4, 0x70, 0x00, +0x00, 0x00, 0x00, 0x86, 0xFA, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x15, 0xD4, 0x70, 0x00, 0x00, 0x00, 0x00, 0x87, 0xE0, 0xE9, 0x80, 0x00, 0x00, 0x00, 0x00, 0x88, 0x99, 0x6D, 0x70, 0x00, -0x00, 0x00, 0x00, 0x88, 0xC7, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xF5, 0xB6, 0x70, 0x00, +0x00, 0x00, 0x00, 0x88, 0xD0, 0xDA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x88, 0xF5, 0xB6, 0x70, 0x00, 0x00, 0x00, 0x00, 0x89, 0xC0, 0xCB, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x66, 0xDA, 0x70, 0x00, -0x00, 0x00, 0x00, 0x8A, 0x9E, 0x47, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8A, 0xD5, 0x98, 0x70, 0x00, +0x00, 0x00, 0x00, 0x8A, 0xA7, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8A, 0xD5, 0x98, 0x70, 0x00, 0x00, 0x00, 0x00, 0x8B, 0xA0, 0xAD, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x3D, 0x81, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x8C, 0x6B, 0xB4, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8C, 0xBE, 0xB4, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x8C, 0x74, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0xBE, 0xB4, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x8D, 0x80, 0x8F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x14, 0x29, 0x70, 0x00, -0x00, 0x00, 0x00, 0x8E, 0x42, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x9E, 0x96, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x8E, 0x4B, 0x96, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x9E, 0x96, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x8F, 0x60, 0x71, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8F, 0xE1, 0x96, 0x70, 0x00, -0x00, 0x00, 0x00, 0x90, 0x19, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x90, 0x7E, 0x78, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x90, 0x22, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x7E, 0x78, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x91, 0x49, 0x8E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0xB8, 0x3D, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x91, 0xE6, 0x70, 0x80, 0x00, 0x00, 0x00, 0x00, 0x92, 0x5E, 0x5A, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x91, 0xEF, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x5E, 0x5A, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x93, 0x29, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x93, 0x85, 0xAA, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x93, 0xBD, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x94, 0x3E, 0x3C, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x93, 0xC6, 0x52, 0x80, 0x00, 0x00, 0x00, 0x00, 0x94, 0x3E, 0x3C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x95, 0x09, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x95, 0x5C, 0x52, 0x70, 0x00, -0x00, 0x00, 0x00, 0x95, 0x8A, 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x27, 0x59, 0x70, 0x00, +0x00, 0x00, 0x00, 0x95, 0x93, 0xBF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x96, 0x27, 0x59, 0x70, 0x00, 0x00, 0x00, 0x00, 0x96, 0xE9, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x97, 0x32, 0xF9, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x97, 0x61, 0x2C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x98, 0x07, 0x3B, 0x70, 0x00, +0x00, 0x00, 0x00, 0x97, 0x6A, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x07, 0x3B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x98, 0xC9, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0x00, 0x66, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x99, 0x37, 0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0xE7, 0x1D, 0x70, 0x00, +0x00, 0x00, 0x00, 0x99, 0x41, 0x0E, 0x80, 0x00, 0x00, 0x00, 0x00, 0x99, 0xE7, 0x1D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xB2, 0x32, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xD7, 0x0E, 0x70, 0x00, -0x00, 0x00, 0x00, 0x9B, 0x05, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9B, 0xC6, 0xFF, 0x70, 0x00, +0x00, 0x00, 0x00, 0x9B, 0x0E, 0x7B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9B, 0xC6, 0xFF, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9C, 0x92, 0x14, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9C, 0xA4, 0x7B, 0x70, 0x00, -0x00, 0x00, 0x00, 0x9C, 0xDB, 0xE8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9D, 0xA6, 0xE1, 0x70, 0x00, +0x00, 0x00, 0x00, 0x9C, 0xE5, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9D, 0xA6, 0xE1, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9E, 0x71, 0xF6, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9E, 0x7B, 0x22, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x9E, 0xB2, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9F, 0x86, 0xC3, 0x70, 0x00, -0x00, 0x00, 0x00, 0xA0, 0x7F, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA1, 0x6F, 0xDF, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xA2, 0x56, 0xA4, 0x80, 0x00, 0x00, 0x00, 0x00, 0xA3, 0x4F, 0xC1, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xA4, 0x24, 0x11, 0x80, 0x00, 0x00, 0x00, 0x00, 0xA5, 0x2F, 0xA3, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xA5, 0xFA, 0xB9, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA7, 0x0F, 0x85, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x9E, 0xBB, 0xCA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9F, 0x86, 0xC3, 0x70, 0x00, +0x00, 0x00, 0x00, 0xA0, 0x89, 0x37, 0x80, 0x00, 0x00, 0x00, 0x00, 0xA1, 0x6F, 0xDF, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xA2, 0x5F, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA3, 0x4F, 0xC1, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xA4, 0x2D, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA5, 0x2F, 0xA3, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xA6, 0x03, 0xF3, 0x80, 0x00, 0x00, 0x00, 0x00, 0xA7, 0x0F, 0x85, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA7, 0xDA, 0x9B, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA8, 0xEF, 0x67, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA9, 0xBA, 0x7D, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xD8, 0x84, 0x70, 0x00, 0x00, 0x00, 0x00, 0xAB, 0x9A, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAC, 0xB8, 0x66, 0x70, 0x00, @@ -11238,35 +11238,35 @@ const unsigned char timelib_timezone_db_data_builtin[349582] = { 0x00, 0x00, 0x00, 0xBC, 0x8B, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBD, 0x84, 0xE3, 0x70, 0x00, 0x00, 0x00, 0x00, 0xBE, 0x6B, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBF, 0x52, 0x50, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x4B, 0x8A, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x28, 0xF7, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xC1, 0x57, 0x2A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x69, 0x91, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC1, 0x60, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x69, 0x91, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC2, 0x2B, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0xFF, 0x9F, 0x70, 0x00, -0x00, 0x00, 0x00, 0xC3, 0x2D, 0xD2, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x49, 0x73, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC3, 0x37, 0x0C, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x49, 0x73, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x0B, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0xCD, 0x0C, 0x70, 0x00, -0x00, 0x00, 0x00, 0xC5, 0x04, 0x79, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC5, 0x29, 0x55, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC5, 0x0D, 0xB4, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC5, 0x29, 0x55, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC5, 0xF4, 0x6A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xA3, 0xB3, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xC6, 0xD1, 0xE6, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC7, 0x09, 0x37, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC6, 0xDB, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC7, 0x09, 0x37, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC7, 0xD4, 0x4C, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x71, 0x20, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xC8, 0xA8, 0x8E, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0xE9, 0x19, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC8, 0xB1, 0xC8, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC8, 0xE9, 0x19, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC9, 0xB4, 0x2E, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCA, 0x47, 0xC8, 0x70, 0x00, -0x00, 0x00, 0x00, 0xCA, 0x7F, 0x35, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCA, 0xD2, 0x35, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xCA, 0x88, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCA, 0xD2, 0x35, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xCB, 0x94, 0x10, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x1E, 0x6F, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xCC, 0x4C, 0xA2, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCC, 0xB2, 0x17, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xCC, 0x55, 0xDD, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0xB2, 0x17, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xCD, 0x73, 0xF2, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCD, 0xEB, 0xDC, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xCE, 0x23, 0x4A, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCE, 0x91, 0xF9, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xCE, 0x2C, 0x84, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCE, 0x91, 0xF9, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xCF, 0x5D, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCF, 0xC2, 0x84, 0x70, 0x00, -0x00, 0x00, 0x00, 0xCF, 0xF0, 0xB7, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x71, 0xDB, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xCF, 0xF9, 0xF1, 0x80, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x71, 0xDB, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xD1, 0x3C, 0xF1, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD1, 0x99, 0x2B, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xD1, 0xC7, 0x5E, 0x80, 0x00, 0x00, 0x00, 0x00, 0xD2, 0x51, 0xBD, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xD1, 0xD0, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD2, 0x51, 0xBD, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xD3, 0x1C, 0xD3, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD3, 0x66, 0x98, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xD3, 0x9E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD4, 0x31, 0x9F, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xD3, 0xA7, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0xD4, 0x31, 0x9F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xD4, 0xFC, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD5, 0x3D, 0x40, 0x70, 0x00, -0x00, 0x00, 0x00, 0xD5, 0x6B, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD6, 0x1A, 0xBC, 0x70, 0x00, +0x00, 0x00, 0x00, 0xD5, 0x74, 0xAD, 0x80, 0x00, 0x00, 0x00, 0x00, 0xD6, 0x1A, 0xBC, 0x70, 0x00, 0x00, 0x00, 0x00, 0xD6, 0xDC, 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD7, 0x0A, 0xAD, 0x70, 0x00, -0x00, 0x00, 0x00, 0xD7, 0x42, 0x1A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xD7, 0xFA, 0x9E, 0x70, 0x00, +0x00, 0x00, 0x00, 0xD7, 0x4B, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD7, 0xFA, 0x9E, 0x70, 0x00, 0x00, 0x00, 0x00, 0xD8, 0xBC, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0xE1, 0x54, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xD9, 0x18, 0xC2, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD9, 0xDA, 0x80, 0x70, 0x00, +0x00, 0x00, 0x00, 0xD9, 0x21, 0xFC, 0x80, 0x00, 0x00, 0x00, 0x00, 0xD9, 0xDA, 0x80, 0x70, 0x00, 0x00, 0x00, 0x00, 0xDA, 0xA5, 0x95, 0x80, 0x00, 0x00, 0x00, 0x00, 0xDA, 0xB7, 0xFC, 0x70, 0x00, -0x00, 0x00, 0x00, 0xDA, 0xE6, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDB, 0xBA, 0x62, 0x70, 0x02, +0x00, 0x00, 0x00, 0xDA, 0xEF, 0x69, 0x80, 0x00, 0x00, 0x00, 0x00, 0xDB, 0xBA, 0x62, 0x70, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, @@ -11286,13 +11286,13 @@ const unsigned char timelib_timezone_db_data_builtin[349582] = { 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, -0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x20, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, -0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, -0x20, 0x00, 0x11, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, -0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x0A, 0x45, 0x45, 0x54, 0x2D, 0x32, 0x45, 0x45, -0x53, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x2C, 0x4D, 0x31, 0x30, -0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x0A, 0x00, 0xB9, 0x64, 0xF0, 0x01, 0x47, 0x40, 0x0A, -0x00, 0x00, 0x00, 0x0A, 0x47, 0x61, 0x7A, 0x61, 0x20, 0x53, 0x74, 0x72, 0x69, 0x70, +0x02, 0x01, 0x02, 0x00, 0x00, 0x20, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, +0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, +0x11, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x49, 0x44, +0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x0A, 0x45, 0x45, 0x54, 0x2D, 0x32, 0x45, 0x45, 0x53, 0x54, +0x2C, 0x4D, 0x33, 0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x34, +0x2E, 0x34, 0x2F, 0x35, 0x30, 0x0A, 0x00, 0xB9, 0x64, 0xF0, 0x01, 0x47, 0x40, 0x0A, 0x00, 0x00, +0x00, 0x0A, 0x47, 0x61, 0x7A, 0x61, 0x20, 0x53, 0x74, 0x72, 0x69, 0x70, /* Asia/Harbin */ 0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -11328,7 +11328,7 @@ const unsigned char timelib_timezone_db_data_builtin[349582] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x38, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x15, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x36, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x15, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0xBD, 0x4A, 0x19, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x59, 0xCF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0xFA, 0xA6, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x38, 0x9C, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCC, 0xE5, 0xEB, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCD, 0xAC, 0xFE, 0x00, 0xFF, @@ -11391,8 +11391,8 @@ const unsigned char timelib_timezone_db_data_builtin[349582] = { 0x00, 0x00, 0x00, 0x60, 0x5E, 0x59, 0x60, 0x00, 0x00, 0x00, 0x00, 0x61, 0x7B, 0x1D, 0x60, 0x00, 0x00, 0x00, 0x00, 0x62, 0x3F, 0x8C, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x63, 0x5C, 0x5E, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x64, 0x4C, 0x5E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0x3C, 0x40, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x66, 0x19, 0xCB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x1C, 0x22, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x67, 0xF0, 0x72, 0x80, 0x00, 0x00, 0x00, 0x00, 0x68, 0xFC, 0x04, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x66, 0x23, 0x05, 0x80, 0x00, 0x00, 0x00, 0x00, 0x67, 0x1C, 0x22, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x67, 0xF9, 0xAD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0xFC, 0x04, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x69, 0xC7, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xDB, 0xE6, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x6B, 0xA6, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xC5, 0x03, 0x70, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x86, 0xDE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6E, 0xA4, 0xE5, 0x70, 0x00, @@ -11407,41 +11407,40 @@ const unsigned char timelib_timezone_db_data_builtin[349582] = { 0x00, 0x00, 0x00, 0x7E, 0x78, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7A, 0x9C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x80, 0x58, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x48, 0x09, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x82, 0x38, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x1E, 0xB1, 0x70, 0x00, -0x00, 0x00, 0x00, 0x83, 0x4C, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x56, 0x10, 0x70, 0x00, 0x00, 0x00, 0x00, 0x84, 0x17, 0xEB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0xEC, 0x1E, 0x70, 0x00, -0x00, 0x00, 0x00, 0x85, 0x23, 0x8B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x85, 0x35, 0xF2, 0x70, 0x00, +0x00, 0x00, 0x00, 0x85, 0x2C, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x35, 0xF2, 0x70, 0x00, 0x00, 0x00, 0x00, 0x86, 0x01, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x86, 0xC2, 0xC5, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x86, 0xF0, 0xF8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x87, 0x15, 0xD4, 0x70, 0x00, +0x00, 0x00, 0x00, 0x86, 0xFA, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x15, 0xD4, 0x70, 0x00, 0x00, 0x00, 0x00, 0x87, 0xE0, 0xE9, 0x80, 0x00, 0x00, 0x00, 0x00, 0x88, 0x99, 0x6D, 0x70, 0x00, -0x00, 0x00, 0x00, 0x88, 0xC7, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xF5, 0xB6, 0x70, 0x00, +0x00, 0x00, 0x00, 0x88, 0xD0, 0xDA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x88, 0xF5, 0xB6, 0x70, 0x00, 0x00, 0x00, 0x00, 0x89, 0xC0, 0xCB, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x66, 0xDA, 0x70, 0x00, -0x00, 0x00, 0x00, 0x8A, 0x9E, 0x47, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8A, 0xD5, 0x98, 0x70, 0x00, +0x00, 0x00, 0x00, 0x8A, 0xA7, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8A, 0xD5, 0x98, 0x70, 0x00, 0x00, 0x00, 0x00, 0x8B, 0xA0, 0xAD, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x3D, 0x81, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x8C, 0x6B, 0xB4, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8C, 0xBE, 0xB4, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x8C, 0x74, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0xBE, 0xB4, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x8D, 0x80, 0x8F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x14, 0x29, 0x70, 0x00, -0x00, 0x00, 0x00, 0x8E, 0x42, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x9E, 0x96, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x8E, 0x4B, 0x96, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x9E, 0x96, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x8F, 0x60, 0x71, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8F, 0xE1, 0x96, 0x70, 0x00, -0x00, 0x00, 0x00, 0x90, 0x19, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x90, 0x7E, 0x78, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x90, 0x22, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x7E, 0x78, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x91, 0x49, 0x8E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0xB8, 0x3D, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x91, 0xE6, 0x70, 0x80, 0x00, 0x00, 0x00, 0x00, 0x92, 0x5E, 0x5A, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x91, 0xEF, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x5E, 0x5A, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x93, 0x29, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x93, 0x85, 0xAA, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x93, 0xBD, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x94, 0x3E, 0x3C, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x93, 0xC6, 0x52, 0x80, 0x00, 0x00, 0x00, 0x00, 0x94, 0x3E, 0x3C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x95, 0x09, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x95, 0x5C, 0x52, 0x70, 0x00, -0x00, 0x00, 0x00, 0x95, 0x8A, 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x27, 0x59, 0x70, 0x00, +0x00, 0x00, 0x00, 0x95, 0x93, 0xBF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x96, 0x27, 0x59, 0x70, 0x00, 0x00, 0x00, 0x00, 0x96, 0xE9, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x97, 0x32, 0xF9, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x97, 0x61, 0x2C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x98, 0x07, 0x3B, 0x70, 0x00, +0x00, 0x00, 0x00, 0x97, 0x6A, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x07, 0x3B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x98, 0xC9, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0x00, 0x66, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x99, 0x37, 0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0xE7, 0x1D, 0x70, 0x00, +0x00, 0x00, 0x00, 0x99, 0x41, 0x0E, 0x80, 0x00, 0x00, 0x00, 0x00, 0x99, 0xE7, 0x1D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xB2, 0x32, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xD7, 0x0E, 0x70, 0x00, -0x00, 0x00, 0x00, 0x9B, 0x05, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9B, 0xC6, 0xFF, 0x70, 0x00, +0x00, 0x00, 0x00, 0x9B, 0x0E, 0x7B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9B, 0xC6, 0xFF, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9C, 0x92, 0x14, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9C, 0xA4, 0x7B, 0x70, 0x00, -0x00, 0x00, 0x00, 0x9C, 0xDB, 0xE8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9D, 0xA6, 0xE1, 0x70, 0x00, +0x00, 0x00, 0x00, 0x9C, 0xE5, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9D, 0xA6, 0xE1, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9E, 0x71, 0xF6, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9E, 0x7B, 0x22, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x9E, 0xB2, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9F, 0x86, 0xC3, 0x70, 0x00, -0x00, 0x00, 0x00, 0xA0, 0x7F, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA1, 0x6F, 0xDF, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xA2, 0x56, 0xA4, 0x80, 0x00, 0x00, 0x00, 0x00, 0xA3, 0x4F, 0xC1, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xA4, 0x24, 0x11, 0x80, 0x00, 0x00, 0x00, 0x00, 0xA5, 0x2F, 0xA3, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xA5, 0xFA, 0xB9, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA7, 0x0F, 0x85, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x9E, 0xBB, 0xCA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9F, 0x86, 0xC3, 0x70, 0x00, +0x00, 0x00, 0x00, 0xA0, 0x89, 0x37, 0x80, 0x00, 0x00, 0x00, 0x00, 0xA1, 0x6F, 0xDF, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xA2, 0x5F, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA3, 0x4F, 0xC1, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xA4, 0x2D, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA5, 0x2F, 0xA3, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xA6, 0x03, 0xF3, 0x80, 0x00, 0x00, 0x00, 0x00, 0xA7, 0x0F, 0x85, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA7, 0xDA, 0x9B, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA8, 0xEF, 0x67, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA9, 0xBA, 0x7D, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xD8, 0x84, 0x70, 0x00, 0x00, 0x00, 0x00, 0xAB, 0x9A, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAC, 0xB8, 0x66, 0x70, 0x00, @@ -11456,35 +11455,35 @@ const unsigned char timelib_timezone_db_data_builtin[349582] = { 0x00, 0x00, 0x00, 0xBC, 0x8B, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBD, 0x84, 0xE3, 0x70, 0x00, 0x00, 0x00, 0x00, 0xBE, 0x6B, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBF, 0x52, 0x50, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x4B, 0x8A, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x28, 0xF7, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xC1, 0x57, 0x2A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x69, 0x91, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC1, 0x60, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x69, 0x91, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC2, 0x2B, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0xFF, 0x9F, 0x70, 0x00, -0x00, 0x00, 0x00, 0xC3, 0x2D, 0xD2, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x49, 0x73, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC3, 0x37, 0x0C, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x49, 0x73, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x0B, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0xCD, 0x0C, 0x70, 0x00, -0x00, 0x00, 0x00, 0xC5, 0x04, 0x79, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC5, 0x29, 0x55, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC5, 0x0D, 0xB4, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC5, 0x29, 0x55, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC5, 0xF4, 0x6A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xA3, 0xB3, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xC6, 0xD1, 0xE6, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC7, 0x09, 0x37, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC6, 0xDB, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC7, 0x09, 0x37, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC7, 0xD4, 0x4C, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x71, 0x20, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xC8, 0xA8, 0x8E, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0xE9, 0x19, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC8, 0xB1, 0xC8, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC8, 0xE9, 0x19, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC9, 0xB4, 0x2E, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCA, 0x47, 0xC8, 0x70, 0x00, -0x00, 0x00, 0x00, 0xCA, 0x7F, 0x35, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCA, 0xD2, 0x35, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xCA, 0x88, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCA, 0xD2, 0x35, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xCB, 0x94, 0x10, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x1E, 0x6F, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xCC, 0x4C, 0xA2, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCC, 0xB2, 0x17, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xCC, 0x55, 0xDD, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0xB2, 0x17, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xCD, 0x73, 0xF2, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCD, 0xEB, 0xDC, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xCE, 0x23, 0x4A, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCE, 0x91, 0xF9, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xCE, 0x2C, 0x84, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCE, 0x91, 0xF9, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xCF, 0x5D, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCF, 0xC2, 0x84, 0x70, 0x00, -0x00, 0x00, 0x00, 0xCF, 0xF0, 0xB7, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x71, 0xDB, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xCF, 0xF9, 0xF1, 0x80, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x71, 0xDB, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xD1, 0x3C, 0xF1, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD1, 0x99, 0x2B, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xD1, 0xC7, 0x5E, 0x80, 0x00, 0x00, 0x00, 0x00, 0xD2, 0x51, 0xBD, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xD1, 0xD0, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD2, 0x51, 0xBD, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xD3, 0x1C, 0xD3, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD3, 0x66, 0x98, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xD3, 0x9E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD4, 0x31, 0x9F, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xD3, 0xA7, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0xD4, 0x31, 0x9F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xD4, 0xFC, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD5, 0x3D, 0x40, 0x70, 0x00, -0x00, 0x00, 0x00, 0xD5, 0x6B, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD6, 0x1A, 0xBC, 0x70, 0x00, +0x00, 0x00, 0x00, 0xD5, 0x74, 0xAD, 0x80, 0x00, 0x00, 0x00, 0x00, 0xD6, 0x1A, 0xBC, 0x70, 0x00, 0x00, 0x00, 0x00, 0xD6, 0xDC, 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD7, 0x0A, 0xAD, 0x70, 0x00, -0x00, 0x00, 0x00, 0xD7, 0x42, 0x1A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xD7, 0xFA, 0x9E, 0x70, 0x00, +0x00, 0x00, 0x00, 0xD7, 0x4B, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD7, 0xFA, 0x9E, 0x70, 0x00, 0x00, 0x00, 0x00, 0xD8, 0xBC, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0xE1, 0x54, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xD9, 0x18, 0xC2, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD9, 0xDA, 0x80, 0x70, 0x00, +0x00, 0x00, 0x00, 0xD9, 0x21, 0xFC, 0x80, 0x00, 0x00, 0x00, 0x00, 0xD9, 0xDA, 0x80, 0x70, 0x00, 0x00, 0x00, 0x00, 0xDA, 0xA5, 0x95, 0x80, 0x00, 0x00, 0x00, 0x00, 0xDA, 0xB7, 0xFC, 0x70, 0x00, -0x00, 0x00, 0x00, 0xDA, 0xE6, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDB, 0xBA, 0x62, 0x70, 0x02, +0x00, 0x00, 0x00, 0xDA, 0xEF, 0x69, 0x80, 0x00, 0x00, 0x00, 0x00, 0xDB, 0xBA, 0x62, 0x70, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, @@ -11504,13 +11503,13 @@ const unsigned char timelib_timezone_db_data_builtin[349582] = { 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, -0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x20, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x2A, -0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, -0x00, 0x1C, 0x20, 0x00, 0x11, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, -0x54, 0x00, 0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x0A, 0x45, 0x45, 0x54, 0x2D, 0x32, -0x45, 0x45, 0x53, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x2C, 0x4D, -0x31, 0x30, 0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x0A, 0x00, 0xB9, 0x71, 0xF5, 0x01, 0x48, -0x35, 0x7C, 0x00, 0x00, 0x00, 0x09, 0x57, 0x65, 0x73, 0x74, 0x20, 0x42, 0x61, 0x6E, 0x6B, +0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x20, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, +0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, +0x20, 0x00, 0x11, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, +0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x0A, 0x45, 0x45, 0x54, 0x2D, 0x32, 0x45, 0x45, +0x53, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x2C, 0x4D, 0x31, 0x30, +0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x0A, 0x00, 0xB9, 0x71, 0xF5, 0x01, 0x48, 0x35, 0x7C, +0x00, 0x00, 0x00, 0x09, 0x57, 0x65, 0x73, 0x74, 0x20, 0x42, 0x61, 0x6E, 0x6B, /* Asia/Ho_Chi_Minh */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x56, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -11522,7 +11521,7 @@ const unsigned char timelib_timezone_db_data_builtin[349582] = { 0xFF, 0xFF, 0xFF, 0x88, 0x8C, 0x43, 0x8A, 0xFF, 0xFF, 0xFF, 0xFF, 0x91, 0xA3, 0x2B, 0x0A, 0xFF, 0xFF, 0xFF, 0xFF, 0xCD, 0x35, 0xE6, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xD1, 0x59, 0xCE, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x3B, 0x3E, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x32, 0xBB, 0x10, 0xFF, -0xFF, 0xFF, 0xFF, 0xE4, 0xB6, 0xE4, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xED, 0x2F, 0x98, 0x00, 0x00, +0xFF, 0xFF, 0xFF, 0xE4, 0xB6, 0xF2, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xED, 0x2F, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x3D, 0xC7, 0x00, 0x01, 0x02, 0x03, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, 0x63, 0xF6, 0x00, 0x00, 0x00, 0x00, 0x63, 0xF6, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x00, 0x09, 0x00, 0x00, 0x70, 0x80, 0x00, 0x0D, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x11, 0x4C, 0x4D, @@ -12675,7 +12674,7 @@ const unsigned char timelib_timezone_db_data_builtin[349582] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x10, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xAA, 0x19, 0x88, 0x5C, 0xFF, 0xFF, 0xFF, 0xFF, 0xB5, 0xA3, 0xFD, 0x40, 0x00, 0x00, 0x00, 0x00, 0x15, 0x27, 0x8B, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x16, 0x18, 0xC0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x17, 0x08, 0xB1, 0x20, 0x00, 0x00, 0x00, 0x00, 0x17, 0xF9, 0xF3, 0xA0, 0x00, @@ -12701,16 +12700,17 @@ const unsigned char timelib_timezone_db_data_builtin[349582] = { 0x00, 0x00, 0x00, 0x3B, 0xDB, 0x20, 0x50, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xA6, 0x27, 0x50, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x02, 0x50, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x86, 0x09, 0x50, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9A, 0xE4, 0x50, 0x00, 0x00, 0x00, 0x00, 0x40, 0x65, 0xEB, 0x50, 0x00, -0x00, 0x00, 0x00, 0x41, 0x84, 0x00, 0xD0, 0x01, 0x02, 0x03, 0x04, 0x03, 0x02, 0x03, 0x02, 0x03, -0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x05, 0x01, 0x02, +0x00, 0x00, 0x00, 0x41, 0x84, 0x00, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x65, 0xE0, 0xC6, 0x20, 0x01, +0x02, 0x03, 0x04, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x05, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x04, 0x00, 0x00, 0x3B, 0xA4, 0x00, 0x00, -0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, 0x00, 0x08, 0x00, 0x00, 0x54, 0x60, -0x01, 0x0C, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x46, 0x50, 0x01, 0x08, 0x4C, 0x4D, -0x54, 0x00, 0x2B, 0x30, 0x34, 0x00, 0x2B, 0x30, 0x35, 0x00, 0x2B, 0x30, 0x36, 0x00, 0x0A, 0x3C, -0x2B, 0x30, 0x36, 0x3E, 0x2D, 0x36, 0x0A, 0x00, 0xDA, 0x81, 0x7F, 0x01, 0x73, 0xBA, 0xC2, 0x00, -0x00, 0x00, 0x1A, 0x51, 0x6F, 0x73, 0x74, 0x61, 0x6E, 0x61, 0x79, 0x2F, 0x4B, 0x6F, 0x73, 0x74, -0x61, 0x6E, 0x61, 0x79, 0x2F, 0x4B, 0x75, 0x73, 0x74, 0x61, 0x6E, 0x61, 0x79, +0x03, 0x04, 0x02, 0x00, 0x00, 0x3B, 0xA4, 0x00, 0x00, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, +0x00, 0x46, 0x50, 0x00, 0x08, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0C, 0x00, 0x00, 0x54, 0x60, 0x00, +0x0C, 0x00, 0x00, 0x46, 0x50, 0x01, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x2B, 0x30, 0x34, 0x00, 0x2B, +0x30, 0x35, 0x00, 0x2B, 0x30, 0x36, 0x00, 0x0A, 0x3C, 0x2B, 0x30, 0x35, 0x3E, 0x2D, 0x35, 0x0A, +0x00, 0xDA, 0x81, 0x7F, 0x01, 0x73, 0xBA, 0xC2, 0x00, 0x00, 0x00, 0x1A, 0x51, 0x6F, 0x73, 0x74, +0x61, 0x6E, 0x61, 0x79, 0x2F, 0x4B, 0x6F, 0x73, 0x74, 0x61, 0x6E, 0x61, 0x79, 0x2F, 0x4B, 0x75, +0x73, 0x74, 0x61, 0x6E, 0x61, 0x79, /* Asia/Qyzylorda */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x4B, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -12793,7 +12793,7 @@ const unsigned char timelib_timezone_db_data_builtin[349582] = { 0xFF, 0xFF, 0xFF, 0x88, 0x8C, 0x43, 0x8A, 0xFF, 0xFF, 0xFF, 0xFF, 0x91, 0xA3, 0x2B, 0x0A, 0xFF, 0xFF, 0xFF, 0xFF, 0xCD, 0x35, 0xE6, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xD1, 0x59, 0xCE, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x3B, 0x3E, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x32, 0xBB, 0x10, 0xFF, -0xFF, 0xFF, 0xFF, 0xE4, 0xB6, 0xE4, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xED, 0x2F, 0x98, 0x00, 0x00, +0xFF, 0xFF, 0xFF, 0xE4, 0xB6, 0xF2, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xED, 0x2F, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x3D, 0xC7, 0x00, 0x01, 0x02, 0x03, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, 0x63, 0xF6, 0x00, 0x00, 0x00, 0x00, 0x63, 0xF6, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x00, 0x09, 0x00, 0x00, 0x70, 0x80, 0x00, 0x0D, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x11, 0x4C, 0x4D, @@ -15728,10 +15728,10 @@ const unsigned char timelib_timezone_db_data_builtin[349582] = { 0xFF, 0xFF, 0xFF, 0xC7, 0x0F, 0x3A, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x2D, 0x5E, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x88, 0xF0, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xFB, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD3, 0x75, 0xE4, 0xF0, 0xFF, -0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xAA, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xA3, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0x8C, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0x85, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x6E, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x76, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, +0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xC6, 0xF0, 0xFF, +0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xBF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0xA8, 0xF0, 0xFF, +0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0xA1, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x8A, 0xF0, 0xFF, +0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x92, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x13, 0x74, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0xDE, 0x89, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0xA9, 0x82, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xBE, 0x6B, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x89, 0x64, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x9E, 0x4D, 0x70, 0xFF, @@ -24213,341 +24213,341 @@ const timelib_tzdb_index_entry timezonedb_idx_builtin[597] = { { (char*) "Asia/Dushanbe" , 0x047AD4 }, { (char*) "Asia/Famagusta" , 0x047D21 }, { (char*) "Asia/Gaza" , 0x048528 }, - { (char*) "Asia/Harbin" , 0x049454 }, - { (char*) "Asia/Hebron" , 0x049691 }, - { (char*) "Asia/Ho_Chi_Minh" , 0x04A5D8 }, - { (char*) "Asia/Hong_Kong" , 0x04A735 }, - { (char*) "Asia/Hovd" , 0x04AC12 }, - { (char*) "Asia/Irkutsk" , 0x04AFB6 }, - { (char*) "Asia/Istanbul" , 0x04B4A9 }, - { (char*) "Asia/Jakarta" , 0x04BC42 }, - { (char*) "Asia/Jayapura" , 0x04BDDA }, - { (char*) "Asia/Jerusalem" , 0x04BEF9 }, - { (char*) "Asia/Kabul" , 0x04C859 }, - { (char*) "Asia/Kamchatka" , 0x04C927 }, - { (char*) "Asia/Karachi" , 0x04CDC5 }, - { (char*) "Asia/Kashgar" , 0x04CF4C }, - { (char*) "Asia/Kathmandu" , 0x04CFEF }, - { (char*) "Asia/Katmandu" , 0x04D0C1 }, - { (char*) "Asia/Khandyga" , 0x04D193 }, - { (char*) "Asia/Kolkata" , 0x04D6A6 }, - { (char*) "Asia/Krasnoyarsk" , 0x04D7CF }, - { (char*) "Asia/Kuala_Lumpur" , 0x04DC9D }, - { (char*) "Asia/Kuching" , 0x04DE4E }, - { (char*) "Asia/Kuwait" , 0x04E03D }, - { (char*) "Asia/Macao" , 0x04E0E0 }, - { (char*) "Asia/Macau" , 0x04E5B7 }, - { (char*) "Asia/Magadan" , 0x04EA8E }, - { (char*) "Asia/Makassar" , 0x04EF62 }, - { (char*) "Asia/Manila" , 0x04F0B5 }, - { (char*) "Asia/Muscat" , 0x04F209 }, - { (char*) "Asia/Nicosia" , 0x04F2AC }, - { (char*) "Asia/Novokuznetsk" , 0x04FA98 }, - { (char*) "Asia/Novosibirsk" , 0x04FF34 }, - { (char*) "Asia/Omsk" , 0x05040B }, - { (char*) "Asia/Oral" , 0x0508CD }, - { (char*) "Asia/Phnom_Penh" , 0x050CC7 }, - { (char*) "Asia/Pontianak" , 0x050DEC }, - { (char*) "Asia/Pyongyang" , 0x050F6F }, - { (char*) "Asia/Qatar" , 0x051068 }, - { (char*) "Asia/Qostanay" , 0x05112D }, - { (char*) "Asia/Qyzylorda" , 0x051538 }, - { (char*) "Asia/Rangoon" , 0x051954 }, - { (char*) "Asia/Riyadh" , 0x051A5E }, - { (char*) "Asia/Saigon" , 0x051B01 }, - { (char*) "Asia/Sakhalin" , 0x051C5E }, - { (char*) "Asia/Samarkand" , 0x052126 }, - { (char*) "Asia/Seoul" , 0x052376 }, - { (char*) "Asia/Shanghai" , 0x0525EB }, - { (char*) "Asia/Singapore" , 0x052834 }, - { (char*) "Asia/Srednekolymsk" , 0x0529D1 }, - { (char*) "Asia/Taipei" , 0x052EA5 }, - { (char*) "Asia/Tashkent" , 0x0531AA }, - { (char*) "Asia/Tbilisi" , 0x053408 }, - { (char*) "Asia/Tehran" , 0x053811 }, - { (char*) "Asia/Tel_Aviv" , 0x053CFD }, - { (char*) "Asia/Thimbu" , 0x05465D }, - { (char*) "Asia/Thimphu" , 0x054726 }, - { (char*) "Asia/Tokyo" , 0x0547EF }, - { (char*) "Asia/Tomsk" , 0x054930 }, - { (char*) "Asia/Ujung_Pandang" , 0x054E01 }, - { (char*) "Asia/Ulaanbaatar" , 0x054F0B }, - { (char*) "Asia/Ulan_Bator" , 0x055294 }, - { (char*) "Asia/Urumqi" , 0x05560D }, - { (char*) "Asia/Ust-Nera" , 0x0556BD }, - { (char*) "Asia/Vientiane" , 0x055BB3 }, - { (char*) "Asia/Vladivostok" , 0x055CF4 }, - { (char*) "Asia/Yakutsk" , 0x0561BD }, - { (char*) "Asia/Yangon" , 0x056685 }, - { (char*) "Asia/Yekaterinburg" , 0x05678F }, - { (char*) "Asia/Yerevan" , 0x056C76 }, - { (char*) "Atlantic/Azores" , 0x0570F3 }, - { (char*) "Atlantic/Bermuda" , 0x057EAF }, - { (char*) "Atlantic/Canary" , 0x058817 }, - { (char*) "Atlantic/Cape_Verde" , 0x058F9A }, - { (char*) "Atlantic/Faeroe" , 0x0590A6 }, - { (char*) "Atlantic/Faroe" , 0x0597C9 }, - { (char*) "Atlantic/Jan_Mayen" , 0x059EEC }, - { (char*) "Atlantic/Madeira" , 0x05A7F2 }, - { (char*) "Atlantic/Reykjavik" , 0x05B5BC }, - { (char*) "Atlantic/South_Georgia" , 0x05BA52 }, - { (char*) "Atlantic/St_Helena" , 0x05BAF4 }, - { (char*) "Atlantic/Stanley" , 0x05BBB6 }, - { (char*) "Australia/ACT" , 0x05C072 }, - { (char*) "Australia/Adelaide" , 0x05C90C }, - { (char*) "Australia/Brisbane" , 0x05D1C7 }, - { (char*) "Australia/Broken_Hill" , 0x05D38D }, - { (char*) "Australia/Canberra" , 0x05DC6A }, - { (char*) "Australia/Currie" , 0x05E504 }, - { (char*) "Australia/Darwin" , 0x05EE46 }, - { (char*) "Australia/Eucla" , 0x05EFA9 }, - { (char*) "Australia/Hobart" , 0x05F196 }, - { (char*) "Australia/LHI" , 0x05FAE0 }, - { (char*) "Australia/Lindeman" , 0x060222 }, - { (char*) "Australia/Lord_Howe" , 0x060428 }, - { (char*) "Australia/Melbourne" , 0x060B7A }, - { (char*) "Australia/North" , 0x06141C }, - { (char*) "Australia/NSW" , 0x06156D }, - { (char*) "Australia/Perth" , 0x061E07 }, - { (char*) "Australia/Queensland" , 0x061FEF }, - { (char*) "Australia/South" , 0x06219E }, - { (char*) "Australia/Sydney" , 0x062A4A }, - { (char*) "Australia/Tasmania" , 0x063300 }, - { (char*) "Australia/Victoria" , 0x063C42 }, - { (char*) "Australia/West" , 0x0644DC }, - { (char*) "Australia/Yancowinna" , 0x0646A6 }, - { (char*) "Brazil/Acre" , 0x064F67 }, - { (char*) "Brazil/DeNoronha" , 0x0651D9 }, - { (char*) "Brazil/East" , 0x0654A3 }, - { (char*) "Brazil/West" , 0x065A45 }, - { (char*) "Canada/Atlantic" , 0x065C9F }, - { (char*) "Canada/Central" , 0x066A0B }, - { (char*) "Canada/Eastern" , 0x06754B }, - { (char*) "Canada/Mountain" , 0x0682FD }, - { (char*) "Canada/Newfoundland" , 0x068C25 }, - { (char*) "Canada/Pacific" , 0x069A78 }, - { (char*) "Canada/Saskatchewan" , 0x06A5D0 }, - { (char*) "Canada/Yukon" , 0x06A9B0 }, - { (char*) "CET" , 0x06B00A }, - { (char*) "Chile/Continental" , 0x06B844 }, - { (char*) "Chile/EasterIsland" , 0x06C223 }, - { (char*) "CST6CDT" , 0x06CADA }, - { (char*) "Cuba" , 0x06D3EC }, - { (char*) "EET" , 0x06DD68 }, - { (char*) "Egypt" , 0x06E4E8 }, - { (char*) "Eire" , 0x06EE53 }, - { (char*) "EST" , 0x06FC03 }, - { (char*) "EST5EDT" , 0x06FC81 }, - { (char*) "Etc/GMT" , 0x070593 }, - { (char*) "Etc/GMT+0" , 0x070611 }, - { (char*) "Etc/GMT+1" , 0x07068F }, - { (char*) "Etc/GMT+10" , 0x07070F }, - { (char*) "Etc/GMT+11" , 0x070790 }, - { (char*) "Etc/GMT+12" , 0x070811 }, - { (char*) "Etc/GMT+2" , 0x070892 }, - { (char*) "Etc/GMT+3" , 0x070912 }, - { (char*) "Etc/GMT+4" , 0x070992 }, - { (char*) "Etc/GMT+5" , 0x070A12 }, - { (char*) "Etc/GMT+6" , 0x070A92 }, - { (char*) "Etc/GMT+7" , 0x070B12 }, - { (char*) "Etc/GMT+8" , 0x070B92 }, - { (char*) "Etc/GMT+9" , 0x070C12 }, - { (char*) "Etc/GMT-0" , 0x070C92 }, - { (char*) "Etc/GMT-1" , 0x070D10 }, - { (char*) "Etc/GMT-10" , 0x070D91 }, - { (char*) "Etc/GMT-11" , 0x070E13 }, - { (char*) "Etc/GMT-12" , 0x070E95 }, - { (char*) "Etc/GMT-13" , 0x070F17 }, - { (char*) "Etc/GMT-14" , 0x070F99 }, - { (char*) "Etc/GMT-2" , 0x07101B }, - { (char*) "Etc/GMT-3" , 0x07109C }, - { (char*) "Etc/GMT-4" , 0x07111D }, - { (char*) "Etc/GMT-5" , 0x07119E }, - { (char*) "Etc/GMT-6" , 0x07121F }, - { (char*) "Etc/GMT-7" , 0x0712A0 }, - { (char*) "Etc/GMT-8" , 0x071321 }, - { (char*) "Etc/GMT-9" , 0x0713A2 }, - { (char*) "Etc/GMT0" , 0x071423 }, - { (char*) "Etc/Greenwich" , 0x0714A1 }, - { (char*) "Etc/UCT" , 0x07151F }, - { (char*) "Etc/Universal" , 0x07159D }, - { (char*) "Etc/UTC" , 0x07161B }, - { (char*) "Etc/Zulu" , 0x071699 }, - { (char*) "Europe/Amsterdam" , 0x071717 }, - { (char*) "Europe/Andorra" , 0x072281 }, - { (char*) "Europe/Astrakhan" , 0x07295B }, - { (char*) "Europe/Athens" , 0x072DF8 }, - { (char*) "Europe/Belfast" , 0x0736DA }, - { (char*) "Europe/Belgrade" , 0x074536 }, - { (char*) "Europe/Berlin" , 0x074CC2 }, - { (char*) "Europe/Bratislava" , 0x0755D7 }, - { (char*) "Europe/Brussels" , 0x075EE0 }, - { (char*) "Europe/Bucharest" , 0x076A61 }, - { (char*) "Europe/Budapest" , 0x0772F5 }, - { (char*) "Europe/Busingen" , 0x077C41 }, - { (char*) "Europe/Chisinau" , 0x0783CA }, - { (char*) "Europe/Copenhagen" , 0x078D2C }, - { (char*) "Europe/Dublin" , 0x079591 }, - { (char*) "Europe/Gibraltar" , 0x07A341 }, - { (char*) "Europe/Guernsey" , 0x07AF49 }, - { (char*) "Europe/Helsinki" , 0x07BDE9 }, - { (char*) "Europe/Isle_of_Man" , 0x07C561 }, - { (char*) "Europe/Istanbul" , 0x07D3AD }, - { (char*) "Europe/Jersey" , 0x07DB46 }, - { (char*) "Europe/Kaliningrad" , 0x07E9E6 }, - { (char*) "Europe/Kiev" , 0x07EFDB }, - { (char*) "Europe/Kirov" , 0x07F82F }, - { (char*) "Europe/Kyiv" , 0x07FCEA }, - { (char*) "Europe/Lisbon" , 0x08054D }, - { (char*) "Europe/Ljubljana" , 0x081315 }, - { (char*) "Europe/London" , 0x081AA1 }, - { (char*) "Europe/Luxembourg" , 0x0828FD }, - { (char*) "Europe/Madrid" , 0x08348B }, - { (char*) "Europe/Malta" , 0x083EDD }, - { (char*) "Europe/Mariehamn" , 0x084925 }, - { (char*) "Europe/Minsk" , 0x08509D }, - { (char*) "Europe/Monaco" , 0x0855C4 }, - { (char*) "Europe/Moscow" , 0x086150 }, - { (char*) "Europe/Nicosia" , 0x08676F }, - { (char*) "Europe/Oslo" , 0x086F4D }, - { (char*) "Europe/Paris" , 0x08780D }, - { (char*) "Europe/Podgorica" , 0x0883AB }, - { (char*) "Europe/Prague" , 0x088B37 }, - { (char*) "Europe/Riga" , 0x089440 }, - { (char*) "Europe/Rome" , 0x089CE2 }, - { (char*) "Europe/Samara" , 0x08A73F }, - { (char*) "Europe/San_Marino" , 0x08AC15 }, - { (char*) "Europe/Sarajevo" , 0x08B672 }, - { (char*) "Europe/Saratov" , 0x08BDFE }, - { (char*) "Europe/Simferopol" , 0x08C2AB }, - { (char*) "Europe/Skopje" , 0x08C87A }, - { (char*) "Europe/Sofia" , 0x08D006 }, - { (char*) "Europe/Stockholm" , 0x08D82F }, - { (char*) "Europe/Tallinn" , 0x08DFB0 }, - { (char*) "Europe/Tirane" , 0x08E820 }, - { (char*) "Europe/Tiraspol" , 0x08F050 }, - { (char*) "Europe/Ulyanovsk" , 0x08F9B2 }, - { (char*) "Europe/Uzhgorod" , 0x08FEB5 }, - { (char*) "Europe/Vaduz" , 0x090709 }, - { (char*) "Europe/Vatican" , 0x090E75 }, - { (char*) "Europe/Vienna" , 0x0918D2 }, - { (char*) "Europe/Vilnius" , 0x092176 }, - { (char*) "Europe/Volgograd" , 0x0929F4 }, - { (char*) "Europe/Warsaw" , 0x092EBB }, - { (char*) "Europe/Zagreb" , 0x093925 }, - { (char*) "Europe/Zaporozhye" , 0x0940B1 }, - { (char*) "Europe/Zurich" , 0x094905 }, - { (char*) "Factory" , 0x095086 }, - { (char*) "GB" , 0x095106 }, - { (char*) "GB-Eire" , 0x095F62 }, - { (char*) "GMT" , 0x096DBE }, - { (char*) "GMT+0" , 0x096E3C }, - { (char*) "GMT-0" , 0x096EBA }, - { (char*) "GMT0" , 0x096F38 }, - { (char*) "Greenwich" , 0x096FB6 }, - { (char*) "Hongkong" , 0x097034 }, - { (char*) "HST" , 0x097511 }, - { (char*) "Iceland" , 0x097590 }, - { (char*) "Indian/Antananarivo" , 0x097630 }, - { (char*) "Indian/Chagos" , 0x097717 }, - { (char*) "Indian/Christmas" , 0x0977DC }, - { (char*) "Indian/Cocos" , 0x09787F }, - { (char*) "Indian/Comoro" , 0x09792B }, - { (char*) "Indian/Kerguelen" , 0x0979CC }, - { (char*) "Indian/Mahe" , 0x097A6F }, - { (char*) "Indian/Maldives" , 0x097B12 }, - { (char*) "Indian/Mauritius" , 0x097BD7 }, - { (char*) "Indian/Mayotte" , 0x097CC6 }, - { (char*) "Indian/Reunion" , 0x097D67 }, - { (char*) "Iran" , 0x097E0A }, - { (char*) "Israel" , 0x0982F6 }, - { (char*) "Jamaica" , 0x098C56 }, - { (char*) "Japan" , 0x098E44 }, - { (char*) "Kwajalein" , 0x098F85 }, - { (char*) "Libya" , 0x0990BF }, - { (char*) "MET" , 0x09933C }, - { (char*) "Mexico/BajaNorte" , 0x099B76 }, - { (char*) "Mexico/BajaSur" , 0x09A4C8 }, - { (char*) "Mexico/General" , 0x09A93C }, - { (char*) "MST" , 0x09AE0E }, - { (char*) "MST7MDT" , 0x09AE8C }, - { (char*) "Navajo" , 0x09B79E }, - { (char*) "NZ" , 0x09C146 }, - { (char*) "NZ-CHAT" , 0x09CAD7 }, - { (char*) "Pacific/Apia" , 0x09D2E9 }, - { (char*) "Pacific/Auckland" , 0x09D54B }, - { (char*) "Pacific/Bougainville" , 0x09DEEF }, - { (char*) "Pacific/Chatham" , 0x09E005 }, - { (char*) "Pacific/Chuuk" , 0x09E826 }, - { (char*) "Pacific/Easter" , 0x09E940 }, - { (char*) "Pacific/Efate" , 0x09F204 }, - { (char*) "Pacific/Enderbury" , 0x09F41C }, - { (char*) "Pacific/Fakaofo" , 0x09F504 }, - { (char*) "Pacific/Fiji" , 0x09F5CA }, - { (char*) "Pacific/Funafuti" , 0x09F80A }, - { (char*) "Pacific/Galapagos" , 0x09F8AE }, - { (char*) "Pacific/Gambier" , 0x09F9AB }, - { (char*) "Pacific/Guadalcanal" , 0x09FA5C }, - { (char*) "Pacific/Guam" , 0x09FB00 }, - { (char*) "Pacific/Honolulu" , 0x09FCFA }, - { (char*) "Pacific/Johnston" , 0x09FE55 }, - { (char*) "Pacific/Kanton" , 0x09FFAA }, - { (char*) "Pacific/Kiritimati" , 0x0A00A1 }, - { (char*) "Pacific/Kosrae" , 0x0A0199 }, - { (char*) "Pacific/Kwajalein" , 0x0A02FC }, - { (char*) "Pacific/Majuro" , 0x0A043F }, - { (char*) "Pacific/Marquesas" , 0x0A058B }, - { (char*) "Pacific/Midway" , 0x0A0647 }, - { (char*) "Pacific/Nauru" , 0x0A073A }, - { (char*) "Pacific/Niue" , 0x0A0834 }, - { (char*) "Pacific/Norfolk" , 0x0A08FD }, - { (char*) "Pacific/Noumea" , 0x0A0C6B }, - { (char*) "Pacific/Pago_Pago" , 0x0A0D99 }, - { (char*) "Pacific/Palau" , 0x0A0E54 }, - { (char*) "Pacific/Pitcairn" , 0x0A0F06 }, - { (char*) "Pacific/Pohnpei" , 0x0A0FCE }, - { (char*) "Pacific/Ponape" , 0x0A1109 }, - { (char*) "Pacific/Port_Moresby" , 0x0A11AD }, - { (char*) "Pacific/Rarotonga" , 0x0A127D }, - { (char*) "Pacific/Saipan" , 0x0A14D6 }, - { (char*) "Pacific/Samoa" , 0x0A16C2 }, - { (char*) "Pacific/Tahiti" , 0x0A177D }, - { (char*) "Pacific/Tarawa" , 0x0A182F }, - { (char*) "Pacific/Tongatapu" , 0x0A18E2 }, - { (char*) "Pacific/Truk" , 0x0A1A54 }, - { (char*) "Pacific/Wake" , 0x0A1B0C }, - { (char*) "Pacific/Wallis" , 0x0A1BBB }, - { (char*) "Pacific/Yap" , 0x0A1C5F }, - { (char*) "Poland" , 0x0A1D17 }, - { (char*) "Portugal" , 0x0A2781 }, - { (char*) "PRC" , 0x0A3536 }, - { (char*) "PST8PDT" , 0x0A3773 }, - { (char*) "ROC" , 0x0A4085 }, - { (char*) "ROK" , 0x0A438A }, - { (char*) "Singapore" , 0x0A45FF }, - { (char*) "Turkey" , 0x0A479C }, - { (char*) "UCT" , 0x0A4F35 }, - { (char*) "Universal" , 0x0A4FB3 }, - { (char*) "US/Alaska" , 0x0A5031 }, - { (char*) "US/Aleutian" , 0x0A5980 }, - { (char*) "US/Arizona" , 0x0A62C0 }, - { (char*) "US/Central" , 0x0A6434 }, - { (char*) "US/East-Indiana" , 0x0A7248 }, - { (char*) "US/Eastern" , 0x0A78E6 }, - { (char*) "US/Hawaii" , 0x0A86D2 }, - { (char*) "US/Indiana-Starke" , 0x0A8827 }, - { (char*) "US/Michigan" , 0x0A91BF }, - { (char*) "US/Mountain" , 0x0A9A81 }, - { (char*) "US/Pacific" , 0x0AA429 }, - { (char*) "US/Samoa" , 0x0AAF59 }, - { (char*) "UTC" , 0x0AB014 }, - { (char*) "W-SU" , 0x0AB092 }, - { (char*) "WET" , 0x0AB69D }, - { (char*) "Zulu" , 0x0ABE1A }, + { (char*) "Asia/Harbin" , 0x049442 }, + { (char*) "Asia/Hebron" , 0x04967F }, + { (char*) "Asia/Ho_Chi_Minh" , 0x04A5B4 }, + { (char*) "Asia/Hong_Kong" , 0x04A711 }, + { (char*) "Asia/Hovd" , 0x04ABEE }, + { (char*) "Asia/Irkutsk" , 0x04AF92 }, + { (char*) "Asia/Istanbul" , 0x04B485 }, + { (char*) "Asia/Jakarta" , 0x04BC1E }, + { (char*) "Asia/Jayapura" , 0x04BDB6 }, + { (char*) "Asia/Jerusalem" , 0x04BED5 }, + { (char*) "Asia/Kabul" , 0x04C835 }, + { (char*) "Asia/Kamchatka" , 0x04C903 }, + { (char*) "Asia/Karachi" , 0x04CDA1 }, + { (char*) "Asia/Kashgar" , 0x04CF28 }, + { (char*) "Asia/Kathmandu" , 0x04CFCB }, + { (char*) "Asia/Katmandu" , 0x04D09D }, + { (char*) "Asia/Khandyga" , 0x04D16F }, + { (char*) "Asia/Kolkata" , 0x04D682 }, + { (char*) "Asia/Krasnoyarsk" , 0x04D7AB }, + { (char*) "Asia/Kuala_Lumpur" , 0x04DC79 }, + { (char*) "Asia/Kuching" , 0x04DE2A }, + { (char*) "Asia/Kuwait" , 0x04E019 }, + { (char*) "Asia/Macao" , 0x04E0BC }, + { (char*) "Asia/Macau" , 0x04E593 }, + { (char*) "Asia/Magadan" , 0x04EA6A }, + { (char*) "Asia/Makassar" , 0x04EF3E }, + { (char*) "Asia/Manila" , 0x04F091 }, + { (char*) "Asia/Muscat" , 0x04F1E5 }, + { (char*) "Asia/Nicosia" , 0x04F288 }, + { (char*) "Asia/Novokuznetsk" , 0x04FA74 }, + { (char*) "Asia/Novosibirsk" , 0x04FF10 }, + { (char*) "Asia/Omsk" , 0x0503E7 }, + { (char*) "Asia/Oral" , 0x0508A9 }, + { (char*) "Asia/Phnom_Penh" , 0x050CA3 }, + { (char*) "Asia/Pontianak" , 0x050DC8 }, + { (char*) "Asia/Pyongyang" , 0x050F4B }, + { (char*) "Asia/Qatar" , 0x051044 }, + { (char*) "Asia/Qostanay" , 0x051109 }, + { (char*) "Asia/Qyzylorda" , 0x051530 }, + { (char*) "Asia/Rangoon" , 0x05194C }, + { (char*) "Asia/Riyadh" , 0x051A56 }, + { (char*) "Asia/Saigon" , 0x051AF9 }, + { (char*) "Asia/Sakhalin" , 0x051C56 }, + { (char*) "Asia/Samarkand" , 0x05211E }, + { (char*) "Asia/Seoul" , 0x05236E }, + { (char*) "Asia/Shanghai" , 0x0525E3 }, + { (char*) "Asia/Singapore" , 0x05282C }, + { (char*) "Asia/Srednekolymsk" , 0x0529C9 }, + { (char*) "Asia/Taipei" , 0x052E9D }, + { (char*) "Asia/Tashkent" , 0x0531A2 }, + { (char*) "Asia/Tbilisi" , 0x053400 }, + { (char*) "Asia/Tehran" , 0x053809 }, + { (char*) "Asia/Tel_Aviv" , 0x053CF5 }, + { (char*) "Asia/Thimbu" , 0x054655 }, + { (char*) "Asia/Thimphu" , 0x05471E }, + { (char*) "Asia/Tokyo" , 0x0547E7 }, + { (char*) "Asia/Tomsk" , 0x054928 }, + { (char*) "Asia/Ujung_Pandang" , 0x054DF9 }, + { (char*) "Asia/Ulaanbaatar" , 0x054F03 }, + { (char*) "Asia/Ulan_Bator" , 0x05528C }, + { (char*) "Asia/Urumqi" , 0x055605 }, + { (char*) "Asia/Ust-Nera" , 0x0556B5 }, + { (char*) "Asia/Vientiane" , 0x055BAB }, + { (char*) "Asia/Vladivostok" , 0x055CEC }, + { (char*) "Asia/Yakutsk" , 0x0561B5 }, + { (char*) "Asia/Yangon" , 0x05667D }, + { (char*) "Asia/Yekaterinburg" , 0x056787 }, + { (char*) "Asia/Yerevan" , 0x056C6E }, + { (char*) "Atlantic/Azores" , 0x0570EB }, + { (char*) "Atlantic/Bermuda" , 0x057EA7 }, + { (char*) "Atlantic/Canary" , 0x05880F }, + { (char*) "Atlantic/Cape_Verde" , 0x058F92 }, + { (char*) "Atlantic/Faeroe" , 0x05909E }, + { (char*) "Atlantic/Faroe" , 0x0597C1 }, + { (char*) "Atlantic/Jan_Mayen" , 0x059EE4 }, + { (char*) "Atlantic/Madeira" , 0x05A7EA }, + { (char*) "Atlantic/Reykjavik" , 0x05B5B4 }, + { (char*) "Atlantic/South_Georgia" , 0x05BA4A }, + { (char*) "Atlantic/St_Helena" , 0x05BAEC }, + { (char*) "Atlantic/Stanley" , 0x05BBAE }, + { (char*) "Australia/ACT" , 0x05C06A }, + { (char*) "Australia/Adelaide" , 0x05C904 }, + { (char*) "Australia/Brisbane" , 0x05D1BF }, + { (char*) "Australia/Broken_Hill" , 0x05D385 }, + { (char*) "Australia/Canberra" , 0x05DC62 }, + { (char*) "Australia/Currie" , 0x05E4FC }, + { (char*) "Australia/Darwin" , 0x05EE3E }, + { (char*) "Australia/Eucla" , 0x05EFA1 }, + { (char*) "Australia/Hobart" , 0x05F18E }, + { (char*) "Australia/LHI" , 0x05FAD8 }, + { (char*) "Australia/Lindeman" , 0x06021A }, + { (char*) "Australia/Lord_Howe" , 0x060420 }, + { (char*) "Australia/Melbourne" , 0x060B72 }, + { (char*) "Australia/North" , 0x061414 }, + { (char*) "Australia/NSW" , 0x061565 }, + { (char*) "Australia/Perth" , 0x061DFF }, + { (char*) "Australia/Queensland" , 0x061FE7 }, + { (char*) "Australia/South" , 0x062196 }, + { (char*) "Australia/Sydney" , 0x062A42 }, + { (char*) "Australia/Tasmania" , 0x0632F8 }, + { (char*) "Australia/Victoria" , 0x063C3A }, + { (char*) "Australia/West" , 0x0644D4 }, + { (char*) "Australia/Yancowinna" , 0x06469E }, + { (char*) "Brazil/Acre" , 0x064F5F }, + { (char*) "Brazil/DeNoronha" , 0x0651D1 }, + { (char*) "Brazil/East" , 0x06549B }, + { (char*) "Brazil/West" , 0x065A3D }, + { (char*) "Canada/Atlantic" , 0x065C97 }, + { (char*) "Canada/Central" , 0x066A03 }, + { (char*) "Canada/Eastern" , 0x067543 }, + { (char*) "Canada/Mountain" , 0x0682F5 }, + { (char*) "Canada/Newfoundland" , 0x068C1D }, + { (char*) "Canada/Pacific" , 0x069A70 }, + { (char*) "Canada/Saskatchewan" , 0x06A5C8 }, + { (char*) "Canada/Yukon" , 0x06A9A8 }, + { (char*) "CET" , 0x06B002 }, + { (char*) "Chile/Continental" , 0x06B83C }, + { (char*) "Chile/EasterIsland" , 0x06C21B }, + { (char*) "CST6CDT" , 0x06CAD2 }, + { (char*) "Cuba" , 0x06D3E4 }, + { (char*) "EET" , 0x06DD60 }, + { (char*) "Egypt" , 0x06E4E0 }, + { (char*) "Eire" , 0x06EE4B }, + { (char*) "EST" , 0x06FBFB }, + { (char*) "EST5EDT" , 0x06FC79 }, + { (char*) "Etc/GMT" , 0x07058B }, + { (char*) "Etc/GMT+0" , 0x070609 }, + { (char*) "Etc/GMT+1" , 0x070687 }, + { (char*) "Etc/GMT+10" , 0x070707 }, + { (char*) "Etc/GMT+11" , 0x070788 }, + { (char*) "Etc/GMT+12" , 0x070809 }, + { (char*) "Etc/GMT+2" , 0x07088A }, + { (char*) "Etc/GMT+3" , 0x07090A }, + { (char*) "Etc/GMT+4" , 0x07098A }, + { (char*) "Etc/GMT+5" , 0x070A0A }, + { (char*) "Etc/GMT+6" , 0x070A8A }, + { (char*) "Etc/GMT+7" , 0x070B0A }, + { (char*) "Etc/GMT+8" , 0x070B8A }, + { (char*) "Etc/GMT+9" , 0x070C0A }, + { (char*) "Etc/GMT-0" , 0x070C8A }, + { (char*) "Etc/GMT-1" , 0x070D08 }, + { (char*) "Etc/GMT-10" , 0x070D89 }, + { (char*) "Etc/GMT-11" , 0x070E0B }, + { (char*) "Etc/GMT-12" , 0x070E8D }, + { (char*) "Etc/GMT-13" , 0x070F0F }, + { (char*) "Etc/GMT-14" , 0x070F91 }, + { (char*) "Etc/GMT-2" , 0x071013 }, + { (char*) "Etc/GMT-3" , 0x071094 }, + { (char*) "Etc/GMT-4" , 0x071115 }, + { (char*) "Etc/GMT-5" , 0x071196 }, + { (char*) "Etc/GMT-6" , 0x071217 }, + { (char*) "Etc/GMT-7" , 0x071298 }, + { (char*) "Etc/GMT-8" , 0x071319 }, + { (char*) "Etc/GMT-9" , 0x07139A }, + { (char*) "Etc/GMT0" , 0x07141B }, + { (char*) "Etc/Greenwich" , 0x071499 }, + { (char*) "Etc/UCT" , 0x071517 }, + { (char*) "Etc/Universal" , 0x071595 }, + { (char*) "Etc/UTC" , 0x071613 }, + { (char*) "Etc/Zulu" , 0x071691 }, + { (char*) "Europe/Amsterdam" , 0x07170F }, + { (char*) "Europe/Andorra" , 0x072279 }, + { (char*) "Europe/Astrakhan" , 0x072953 }, + { (char*) "Europe/Athens" , 0x072DF0 }, + { (char*) "Europe/Belfast" , 0x0736D2 }, + { (char*) "Europe/Belgrade" , 0x07452E }, + { (char*) "Europe/Berlin" , 0x074CBA }, + { (char*) "Europe/Bratislava" , 0x0755CF }, + { (char*) "Europe/Brussels" , 0x075ED8 }, + { (char*) "Europe/Bucharest" , 0x076A59 }, + { (char*) "Europe/Budapest" , 0x0772ED }, + { (char*) "Europe/Busingen" , 0x077C39 }, + { (char*) "Europe/Chisinau" , 0x0783C2 }, + { (char*) "Europe/Copenhagen" , 0x078D24 }, + { (char*) "Europe/Dublin" , 0x079589 }, + { (char*) "Europe/Gibraltar" , 0x07A339 }, + { (char*) "Europe/Guernsey" , 0x07AF41 }, + { (char*) "Europe/Helsinki" , 0x07BDE1 }, + { (char*) "Europe/Isle_of_Man" , 0x07C559 }, + { (char*) "Europe/Istanbul" , 0x07D3A5 }, + { (char*) "Europe/Jersey" , 0x07DB3E }, + { (char*) "Europe/Kaliningrad" , 0x07E9DE }, + { (char*) "Europe/Kiev" , 0x07EFD3 }, + { (char*) "Europe/Kirov" , 0x07F827 }, + { (char*) "Europe/Kyiv" , 0x07FCE2 }, + { (char*) "Europe/Lisbon" , 0x080545 }, + { (char*) "Europe/Ljubljana" , 0x08130D }, + { (char*) "Europe/London" , 0x081A99 }, + { (char*) "Europe/Luxembourg" , 0x0828F5 }, + { (char*) "Europe/Madrid" , 0x083483 }, + { (char*) "Europe/Malta" , 0x083ED5 }, + { (char*) "Europe/Mariehamn" , 0x08491D }, + { (char*) "Europe/Minsk" , 0x085095 }, + { (char*) "Europe/Monaco" , 0x0855BC }, + { (char*) "Europe/Moscow" , 0x086148 }, + { (char*) "Europe/Nicosia" , 0x086767 }, + { (char*) "Europe/Oslo" , 0x086F45 }, + { (char*) "Europe/Paris" , 0x087805 }, + { (char*) "Europe/Podgorica" , 0x0883A3 }, + { (char*) "Europe/Prague" , 0x088B2F }, + { (char*) "Europe/Riga" , 0x089438 }, + { (char*) "Europe/Rome" , 0x089CDA }, + { (char*) "Europe/Samara" , 0x08A737 }, + { (char*) "Europe/San_Marino" , 0x08AC0D }, + { (char*) "Europe/Sarajevo" , 0x08B66A }, + { (char*) "Europe/Saratov" , 0x08BDF6 }, + { (char*) "Europe/Simferopol" , 0x08C2A3 }, + { (char*) "Europe/Skopje" , 0x08C872 }, + { (char*) "Europe/Sofia" , 0x08CFFE }, + { (char*) "Europe/Stockholm" , 0x08D827 }, + { (char*) "Europe/Tallinn" , 0x08DFA8 }, + { (char*) "Europe/Tirane" , 0x08E818 }, + { (char*) "Europe/Tiraspol" , 0x08F048 }, + { (char*) "Europe/Ulyanovsk" , 0x08F9AA }, + { (char*) "Europe/Uzhgorod" , 0x08FEAD }, + { (char*) "Europe/Vaduz" , 0x090701 }, + { (char*) "Europe/Vatican" , 0x090E6D }, + { (char*) "Europe/Vienna" , 0x0918CA }, + { (char*) "Europe/Vilnius" , 0x09216E }, + { (char*) "Europe/Volgograd" , 0x0929EC }, + { (char*) "Europe/Warsaw" , 0x092EB3 }, + { (char*) "Europe/Zagreb" , 0x09391D }, + { (char*) "Europe/Zaporozhye" , 0x0940A9 }, + { (char*) "Europe/Zurich" , 0x0948FD }, + { (char*) "Factory" , 0x09507E }, + { (char*) "GB" , 0x0950FE }, + { (char*) "GB-Eire" , 0x095F5A }, + { (char*) "GMT" , 0x096DB6 }, + { (char*) "GMT+0" , 0x096E34 }, + { (char*) "GMT-0" , 0x096EB2 }, + { (char*) "GMT0" , 0x096F30 }, + { (char*) "Greenwich" , 0x096FAE }, + { (char*) "Hongkong" , 0x09702C }, + { (char*) "HST" , 0x097509 }, + { (char*) "Iceland" , 0x097588 }, + { (char*) "Indian/Antananarivo" , 0x097628 }, + { (char*) "Indian/Chagos" , 0x09770F }, + { (char*) "Indian/Christmas" , 0x0977D4 }, + { (char*) "Indian/Cocos" , 0x097877 }, + { (char*) "Indian/Comoro" , 0x097923 }, + { (char*) "Indian/Kerguelen" , 0x0979C4 }, + { (char*) "Indian/Mahe" , 0x097A67 }, + { (char*) "Indian/Maldives" , 0x097B0A }, + { (char*) "Indian/Mauritius" , 0x097BCF }, + { (char*) "Indian/Mayotte" , 0x097CBE }, + { (char*) "Indian/Reunion" , 0x097D5F }, + { (char*) "Iran" , 0x097E02 }, + { (char*) "Israel" , 0x0982EE }, + { (char*) "Jamaica" , 0x098C4E }, + { (char*) "Japan" , 0x098E3C }, + { (char*) "Kwajalein" , 0x098F7D }, + { (char*) "Libya" , 0x0990B7 }, + { (char*) "MET" , 0x099334 }, + { (char*) "Mexico/BajaNorte" , 0x099B6E }, + { (char*) "Mexico/BajaSur" , 0x09A4C0 }, + { (char*) "Mexico/General" , 0x09A934 }, + { (char*) "MST" , 0x09AE06 }, + { (char*) "MST7MDT" , 0x09AE84 }, + { (char*) "Navajo" , 0x09B796 }, + { (char*) "NZ" , 0x09C13E }, + { (char*) "NZ-CHAT" , 0x09CACF }, + { (char*) "Pacific/Apia" , 0x09D2E1 }, + { (char*) "Pacific/Auckland" , 0x09D543 }, + { (char*) "Pacific/Bougainville" , 0x09DEE7 }, + { (char*) "Pacific/Chatham" , 0x09DFFD }, + { (char*) "Pacific/Chuuk" , 0x09E81E }, + { (char*) "Pacific/Easter" , 0x09E938 }, + { (char*) "Pacific/Efate" , 0x09F1FC }, + { (char*) "Pacific/Enderbury" , 0x09F414 }, + { (char*) "Pacific/Fakaofo" , 0x09F4FC }, + { (char*) "Pacific/Fiji" , 0x09F5C2 }, + { (char*) "Pacific/Funafuti" , 0x09F802 }, + { (char*) "Pacific/Galapagos" , 0x09F8A6 }, + { (char*) "Pacific/Gambier" , 0x09F9A3 }, + { (char*) "Pacific/Guadalcanal" , 0x09FA54 }, + { (char*) "Pacific/Guam" , 0x09FAF8 }, + { (char*) "Pacific/Honolulu" , 0x09FCF2 }, + { (char*) "Pacific/Johnston" , 0x09FE4D }, + { (char*) "Pacific/Kanton" , 0x09FFA2 }, + { (char*) "Pacific/Kiritimati" , 0x0A0099 }, + { (char*) "Pacific/Kosrae" , 0x0A0191 }, + { (char*) "Pacific/Kwajalein" , 0x0A02F4 }, + { (char*) "Pacific/Majuro" , 0x0A0437 }, + { (char*) "Pacific/Marquesas" , 0x0A0583 }, + { (char*) "Pacific/Midway" , 0x0A063F }, + { (char*) "Pacific/Nauru" , 0x0A0732 }, + { (char*) "Pacific/Niue" , 0x0A082C }, + { (char*) "Pacific/Norfolk" , 0x0A08F5 }, + { (char*) "Pacific/Noumea" , 0x0A0C63 }, + { (char*) "Pacific/Pago_Pago" , 0x0A0D91 }, + { (char*) "Pacific/Palau" , 0x0A0E4C }, + { (char*) "Pacific/Pitcairn" , 0x0A0EFE }, + { (char*) "Pacific/Pohnpei" , 0x0A0FC6 }, + { (char*) "Pacific/Ponape" , 0x0A1101 }, + { (char*) "Pacific/Port_Moresby" , 0x0A11A5 }, + { (char*) "Pacific/Rarotonga" , 0x0A1275 }, + { (char*) "Pacific/Saipan" , 0x0A14CE }, + { (char*) "Pacific/Samoa" , 0x0A16BA }, + { (char*) "Pacific/Tahiti" , 0x0A1775 }, + { (char*) "Pacific/Tarawa" , 0x0A1827 }, + { (char*) "Pacific/Tongatapu" , 0x0A18DA }, + { (char*) "Pacific/Truk" , 0x0A1A4C }, + { (char*) "Pacific/Wake" , 0x0A1B04 }, + { (char*) "Pacific/Wallis" , 0x0A1BB3 }, + { (char*) "Pacific/Yap" , 0x0A1C57 }, + { (char*) "Poland" , 0x0A1D0F }, + { (char*) "Portugal" , 0x0A2779 }, + { (char*) "PRC" , 0x0A352E }, + { (char*) "PST8PDT" , 0x0A376B }, + { (char*) "ROC" , 0x0A407D }, + { (char*) "ROK" , 0x0A4382 }, + { (char*) "Singapore" , 0x0A45F7 }, + { (char*) "Turkey" , 0x0A4794 }, + { (char*) "UCT" , 0x0A4F2D }, + { (char*) "Universal" , 0x0A4FAB }, + { (char*) "US/Alaska" , 0x0A5029 }, + { (char*) "US/Aleutian" , 0x0A5978 }, + { (char*) "US/Arizona" , 0x0A62B8 }, + { (char*) "US/Central" , 0x0A642C }, + { (char*) "US/East-Indiana" , 0x0A7240 }, + { (char*) "US/Eastern" , 0x0A78DE }, + { (char*) "US/Hawaii" , 0x0A86CA }, + { (char*) "US/Indiana-Starke" , 0x0A881F }, + { (char*) "US/Michigan" , 0x0A91B7 }, + { (char*) "US/Mountain" , 0x0A9A79 }, + { (char*) "US/Pacific" , 0x0AA421 }, + { (char*) "US/Samoa" , 0x0AAF51 }, + { (char*) "UTC" , 0x0AB00C }, + { (char*) "W-SU" , 0x0AB08A }, + { (char*) "WET" , 0x0AB695 }, + { (char*) "Zulu" , 0x0ABE12 }, }; -const unsigned char timelib_timezone_db_data_builtin[704152] = { +const unsigned char timelib_timezone_db_data_builtin[704144] = { /* Africa/Abidjan */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -35067,7 +35067,7 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { /* America/Miquelon */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x50, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x91, 0xB6, 0x38, 0xA8, +0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x91, 0xDF, 0x17, 0x28, 0x13, 0x6E, 0x63, 0xC0, 0x20, 0x75, 0xE4, 0xD0, 0x21, 0x81, 0x77, 0x40, 0x22, 0x55, 0xC6, 0xD0, 0x23, 0x6A, 0x93, 0xC0, 0x24, 0x35, 0xA8, 0xD0, 0x25, 0x4A, 0x75, 0xC0, 0x26, 0x15, 0x8A, 0xD0, 0x27, 0x2A, 0x57, 0xC0, 0x27, 0xFE, 0xA7, 0x50, 0x29, 0x0A, 0x39, 0xC0, 0x29, 0xDE, 0x89, 0x50, @@ -35105,7 +35105,7 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { 0x41, 0x53, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, -0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0x91, 0xB6, 0x38, 0xA8, +0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0x91, 0xDF, 0x17, 0x28, 0x00, 0x00, 0x00, 0x00, 0x13, 0x6E, 0x63, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x20, 0x75, 0xE4, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x21, 0x81, 0x77, 0x40, 0x00, 0x00, 0x00, 0x00, 0x22, 0x55, 0xC6, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x23, 0x6A, 0x93, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x24, 0x35, 0xA8, 0xD0, @@ -35554,8 +35554,8 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { 0xC0, 0xA4, 0x9B, 0xF0, 0xC1, 0x6F, 0x94, 0xE0, 0xC2, 0x84, 0x7D, 0xF0, 0xC3, 0x4F, 0x76, 0xE0, 0xC4, 0x64, 0x5F, 0xF0, 0xC5, 0x2F, 0x58, 0xE0, 0xC6, 0x4D, 0x7C, 0x70, 0xC7, 0x0F, 0x3A, 0xE0, 0xC8, 0x2D, 0x5E, 0x70, 0xCB, 0x88, 0xF0, 0x70, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xFB, 0xE0, -0xD3, 0x75, 0xE4, 0xF0, 0xD4, 0x40, 0xDD, 0xE0, 0xD5, 0x55, 0xAA, 0xD0, 0xD6, 0x20, 0xA3, 0xC0, -0xD7, 0x35, 0x8C, 0xD0, 0xD8, 0x00, 0x85, 0xC0, 0xD9, 0x15, 0x6E, 0xD0, 0xDA, 0x33, 0x76, 0x40, +0xD3, 0x75, 0xE4, 0xF0, 0xD4, 0x40, 0xDD, 0xE0, 0xD5, 0x55, 0xC6, 0xF0, 0xD6, 0x20, 0xBF, 0xE0, +0xD7, 0x35, 0xA8, 0xF0, 0xD8, 0x00, 0xA1, 0xE0, 0xD9, 0x15, 0x8A, 0xF0, 0xDA, 0x33, 0x92, 0x60, 0xDA, 0xFE, 0xA7, 0x70, 0xDC, 0x13, 0x74, 0x60, 0xDC, 0xDE, 0x89, 0x70, 0xDD, 0xA9, 0x82, 0x60, 0xDE, 0xBE, 0x6B, 0x70, 0xDF, 0x89, 0x64, 0x60, 0xE0, 0x9E, 0x4D, 0x70, 0xE1, 0x69, 0x46, 0x60, 0xE2, 0x7E, 0x2F, 0x70, 0xE3, 0x49, 0x28, 0x60, 0xE4, 0x5E, 0x11, 0x70, 0xE5, 0x29, 0x0A, 0x60, @@ -35646,10 +35646,10 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, 0x0F, 0x3A, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x2D, 0x5E, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x88, 0xF0, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xFB, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD3, 0x75, 0xE4, -0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xAA, -0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xA3, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0x8C, -0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0x85, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x6E, -0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x76, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xC6, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xBF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0xA8, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0xA1, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x8A, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x92, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x13, 0x74, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0xDE, 0x89, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0xA9, 0x82, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xBE, 0x6B, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x89, 0x64, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x9E, 0x4D, @@ -36169,8 +36169,8 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { 0xC0, 0xA4, 0x9B, 0xF0, 0xC1, 0x6F, 0x94, 0xE0, 0xC2, 0x84, 0x7D, 0xF0, 0xC3, 0x4F, 0x76, 0xE0, 0xC4, 0x64, 0x5F, 0xF0, 0xC5, 0x2F, 0x58, 0xE0, 0xC6, 0x4D, 0x7C, 0x70, 0xC7, 0x0F, 0x3A, 0xE0, 0xC8, 0x2D, 0x5E, 0x70, 0xCB, 0x88, 0xF0, 0x70, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xFB, 0xE0, -0xD3, 0x75, 0xE4, 0xF0, 0xD4, 0x40, 0xDD, 0xE0, 0xD5, 0x55, 0xAA, 0xD0, 0xD6, 0x20, 0xA3, 0xC0, -0xD7, 0x35, 0x8C, 0xD0, 0xD8, 0x00, 0x85, 0xC0, 0xD9, 0x15, 0x6E, 0xD0, 0xDA, 0x33, 0x76, 0x40, +0xD3, 0x75, 0xE4, 0xF0, 0xD4, 0x40, 0xDD, 0xE0, 0xD5, 0x55, 0xC6, 0xF0, 0xD6, 0x20, 0xBF, 0xE0, +0xD7, 0x35, 0xA8, 0xF0, 0xD8, 0x00, 0xA1, 0xE0, 0xD9, 0x15, 0x8A, 0xF0, 0xDA, 0x33, 0x92, 0x60, 0xDA, 0xFE, 0xA7, 0x70, 0xDC, 0x13, 0x74, 0x60, 0xDC, 0xDE, 0x89, 0x70, 0xDD, 0xA9, 0x82, 0x60, 0xDE, 0xBE, 0x6B, 0x70, 0xDF, 0x89, 0x64, 0x60, 0xE0, 0x9E, 0x4D, 0x70, 0xE1, 0x69, 0x46, 0x60, 0xE2, 0x7E, 0x2F, 0x70, 0xE3, 0x49, 0x28, 0x60, 0xE4, 0x5E, 0x11, 0x70, 0xE5, 0x29, 0x0A, 0x60, @@ -36261,10 +36261,10 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, 0x0F, 0x3A, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x2D, 0x5E, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x88, 0xF0, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xFB, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD3, 0x75, 0xE4, -0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xAA, -0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xA3, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0x8C, -0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0x85, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x6E, -0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x76, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xC6, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xBF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0xA8, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0xA1, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x8A, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x92, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x13, 0x74, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0xDE, 0x89, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0xA9, 0x82, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xBE, 0x6B, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x89, 0x64, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x9E, 0x4D, @@ -39863,8 +39863,8 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { 0xC0, 0xA4, 0x9B, 0xF0, 0xC1, 0x6F, 0x94, 0xE0, 0xC2, 0x84, 0x7D, 0xF0, 0xC3, 0x4F, 0x76, 0xE0, 0xC4, 0x64, 0x5F, 0xF0, 0xC5, 0x2F, 0x58, 0xE0, 0xC6, 0x4D, 0x7C, 0x70, 0xC7, 0x0F, 0x3A, 0xE0, 0xC8, 0x2D, 0x5E, 0x70, 0xCB, 0x88, 0xF0, 0x70, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xFB, 0xE0, -0xD3, 0x75, 0xE4, 0xF0, 0xD4, 0x40, 0xDD, 0xE0, 0xD5, 0x55, 0xAA, 0xD0, 0xD6, 0x20, 0xA3, 0xC0, -0xD7, 0x35, 0x8C, 0xD0, 0xD8, 0x00, 0x85, 0xC0, 0xD9, 0x15, 0x6E, 0xD0, 0xDA, 0x33, 0x76, 0x40, +0xD3, 0x75, 0xE4, 0xF0, 0xD4, 0x40, 0xDD, 0xE0, 0xD5, 0x55, 0xC6, 0xF0, 0xD6, 0x20, 0xBF, 0xE0, +0xD7, 0x35, 0xA8, 0xF0, 0xD8, 0x00, 0xA1, 0xE0, 0xD9, 0x15, 0x8A, 0xF0, 0xDA, 0x33, 0x92, 0x60, 0xDA, 0xFE, 0xA7, 0x70, 0xDC, 0x13, 0x74, 0x60, 0xDC, 0xDE, 0x89, 0x70, 0xDD, 0xA9, 0x82, 0x60, 0xDE, 0xBE, 0x6B, 0x70, 0xDF, 0x89, 0x64, 0x60, 0xE0, 0x9E, 0x4D, 0x70, 0xE1, 0x69, 0x46, 0x60, 0xE2, 0x7E, 0x2F, 0x70, 0xE3, 0x49, 0x28, 0x60, 0xE4, 0x5E, 0x11, 0x70, 0xE5, 0x29, 0x0A, 0x60, @@ -39955,10 +39955,10 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, 0x0F, 0x3A, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x2D, 0x5E, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x88, 0xF0, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xFB, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD3, 0x75, 0xE4, -0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xAA, -0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xA3, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0x8C, -0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0x85, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x6E, -0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x76, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xC6, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xBF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0xA8, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0xA1, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x8A, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x92, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x13, 0x74, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0xDE, 0x89, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0xA9, 0x82, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xBE, 0x6B, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x89, 0x64, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x9E, 0x4D, @@ -40238,8 +40238,8 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { 0xC0, 0xA4, 0x9B, 0xF0, 0xC1, 0x6F, 0x94, 0xE0, 0xC2, 0x84, 0x7D, 0xF0, 0xC3, 0x4F, 0x76, 0xE0, 0xC4, 0x64, 0x5F, 0xF0, 0xC5, 0x2F, 0x58, 0xE0, 0xC6, 0x4D, 0x7C, 0x70, 0xC7, 0x0F, 0x3A, 0xE0, 0xC8, 0x2D, 0x5E, 0x70, 0xCB, 0x88, 0xF0, 0x70, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xFB, 0xE0, -0xD3, 0x75, 0xE4, 0xF0, 0xD4, 0x40, 0xDD, 0xE0, 0xD5, 0x55, 0xAA, 0xD0, 0xD6, 0x20, 0xA3, 0xC0, -0xD7, 0x35, 0x8C, 0xD0, 0xD8, 0x00, 0x85, 0xC0, 0xD9, 0x15, 0x6E, 0xD0, 0xDA, 0x33, 0x76, 0x40, +0xD3, 0x75, 0xE4, 0xF0, 0xD4, 0x40, 0xDD, 0xE0, 0xD5, 0x55, 0xC6, 0xF0, 0xD6, 0x20, 0xBF, 0xE0, +0xD7, 0x35, 0xA8, 0xF0, 0xD8, 0x00, 0xA1, 0xE0, 0xD9, 0x15, 0x8A, 0xF0, 0xDA, 0x33, 0x92, 0x60, 0xDA, 0xFE, 0xA7, 0x70, 0xDC, 0x13, 0x74, 0x60, 0xDC, 0xDE, 0x89, 0x70, 0xDD, 0xA9, 0x82, 0x60, 0xDE, 0xBE, 0x6B, 0x70, 0xDF, 0x89, 0x64, 0x60, 0xE0, 0x9E, 0x4D, 0x70, 0xE1, 0x69, 0x46, 0x60, 0xE2, 0x7E, 0x2F, 0x70, 0xE3, 0x49, 0x28, 0x60, 0xE4, 0x5E, 0x11, 0x70, 0xE5, 0x29, 0x0A, 0x60, @@ -40330,10 +40330,10 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, 0x0F, 0x3A, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x2D, 0x5E, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x88, 0xF0, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xFB, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD3, 0x75, 0xE4, -0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xAA, -0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xA3, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0x8C, -0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0x85, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x6E, -0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x76, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xC6, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xBF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0xA8, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0xA1, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x8A, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x92, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x13, 0x74, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0xDE, 0x89, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0xA9, 0x82, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xBE, 0x6B, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x89, 0x64, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x9E, 0x4D, @@ -42135,8 +42135,8 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { /* Asia/Almaty */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x4B, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x10, 0xAA, 0x19, 0x7B, 0xDC, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0xAA, 0x19, 0x7B, 0xDC, 0xB5, 0xA3, 0xEF, 0x30, 0x15, 0x27, 0x7D, 0xA0, 0x16, 0x18, 0xB2, 0x10, 0x17, 0x08, 0xB1, 0x20, 0x17, 0xF9, 0xE5, 0x90, 0x18, 0xE9, 0xE4, 0xA0, 0x19, 0xDB, 0x19, 0x10, 0x1A, 0xCC, 0x69, 0xA0, 0x1B, 0xBC, 0x76, 0xC0, 0x1C, 0xAC, 0x67, 0xC0, 0x1D, 0x9C, 0x58, 0xC0, 0x1E, 0x8C, 0x49, 0xC0, @@ -42149,53 +42149,53 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { 0x35, 0x1D, 0x56, 0xC0, 0x36, 0x32, 0x31, 0xC0, 0x36, 0xFD, 0x38, 0xC0, 0x38, 0x1B, 0x4E, 0x40, 0x38, 0xDD, 0x1A, 0xC0, 0x39, 0xFB, 0x30, 0x40, 0x3A, 0xBC, 0xFC, 0xC0, 0x3B, 0xDB, 0x12, 0x40, 0x3C, 0xA6, 0x19, 0x40, 0x3D, 0xBA, 0xF4, 0x40, 0x3E, 0x85, 0xFB, 0x40, 0x3F, 0x9A, 0xD6, 0x40, -0x40, 0x65, 0xDD, 0x40, 0x41, 0x83, 0xF2, 0xC0, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, -0x02, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x06, 0x07, -0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, -0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x00, 0x00, 0x48, 0x24, 0x00, -0x00, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x01, 0x08, 0x00, 0x00, 0x54, -0x60, 0x00, 0x0C, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x62, 0x70, 0x01, 0x08, 0x00, -0x00, 0x54, 0x60, 0x01, 0x0C, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x01, -0x08, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x2B, 0x30, 0x35, 0x00, 0x2B, -0x30, 0x37, 0x00, 0x2B, 0x30, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, -0xFF, 0xAA, 0x19, 0x7B, 0xDC, 0xFF, 0xFF, 0xFF, 0xFF, 0xB5, 0xA3, 0xEF, 0x30, 0x00, 0x00, 0x00, -0x00, 0x15, 0x27, 0x7D, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x16, 0x18, 0xB2, 0x10, 0x00, 0x00, 0x00, -0x00, 0x17, 0x08, 0xB1, 0x20, 0x00, 0x00, 0x00, 0x00, 0x17, 0xF9, 0xE5, 0x90, 0x00, 0x00, 0x00, -0x00, 0x18, 0xE9, 0xE4, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x19, 0xDB, 0x19, 0x10, 0x00, 0x00, 0x00, -0x00, 0x1A, 0xCC, 0x69, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xBC, 0x76, 0xC0, 0x00, 0x00, 0x00, -0x00, 0x1C, 0xAC, 0x67, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x9C, 0x58, 0xC0, 0x00, 0x00, 0x00, -0x00, 0x1E, 0x8C, 0x49, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x7C, 0x3A, 0xC0, 0x00, 0x00, 0x00, -0x00, 0x20, 0x6C, 0x2B, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x21, 0x5C, 0x1C, 0xC0, 0x00, 0x00, 0x00, -0x00, 0x22, 0x4C, 0x0D, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x23, 0x3B, 0xFE, 0xC0, 0x00, 0x00, 0x00, -0x00, 0x24, 0x2B, 0xEF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x25, 0x1B, 0xE0, 0xC0, 0x00, 0x00, 0x00, -0x00, 0x26, 0x0B, 0xD1, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x27, 0x04, 0xFD, 0x40, 0x00, 0x00, 0x00, -0x00, 0x27, 0xF4, 0xEE, 0x40, 0x00, 0x00, 0x00, 0x00, 0x28, 0xE4, 0xED, 0x50, 0x00, 0x00, 0x00, -0x00, 0x29, 0x78, 0x95, 0x50, 0x00, 0x00, 0x00, 0x00, 0x29, 0xD4, 0xD0, 0x40, 0x00, 0x00, 0x00, -0x00, 0x2A, 0xC4, 0xC1, 0x40, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xB2, 0x40, 0x00, 0x00, 0x00, -0x00, 0x2C, 0xA4, 0xA3, 0x40, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0x94, 0x40, 0x00, 0x00, 0x00, -0x00, 0x2E, 0x84, 0x85, 0x40, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0x76, 0x40, 0x00, 0x00, 0x00, -0x00, 0x30, 0x64, 0x67, 0x40, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0x92, 0xC0, 0x00, 0x00, 0x00, -0x00, 0x32, 0x72, 0x6D, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x33, 0x3D, 0x74, 0xC0, 0x00, 0x00, 0x00, -0x00, 0x34, 0x52, 0x4F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x35, 0x1D, 0x56, 0xC0, 0x00, 0x00, 0x00, -0x00, 0x36, 0x32, 0x31, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x36, 0xFD, 0x38, 0xC0, 0x00, 0x00, 0x00, -0x00, 0x38, 0x1B, 0x4E, 0x40, 0x00, 0x00, 0x00, 0x00, 0x38, 0xDD, 0x1A, 0xC0, 0x00, 0x00, 0x00, -0x00, 0x39, 0xFB, 0x30, 0x40, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xBC, 0xFC, 0xC0, 0x00, 0x00, 0x00, -0x00, 0x3B, 0xDB, 0x12, 0x40, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xA6, 0x19, 0x40, 0x00, 0x00, 0x00, -0x00, 0x3D, 0xBA, 0xF4, 0x40, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x85, 0xFB, 0x40, 0x00, 0x00, 0x00, -0x00, 0x3F, 0x9A, 0xD6, 0x40, 0x00, 0x00, 0x00, 0x00, 0x40, 0x65, 0xDD, 0x40, 0x00, 0x00, 0x00, -0x00, 0x41, 0x83, 0xF2, 0xC0, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x05, -0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x06, 0x07, 0x04, 0x05, 0x04, -0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, -0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x00, 0x00, 0x48, 0x24, 0x00, 0x00, 0x00, 0x00, -0x46, 0x50, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x01, 0x08, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, -0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x62, 0x70, 0x01, 0x08, 0x00, 0x00, 0x54, 0x60, -0x01, 0x0C, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x01, 0x08, 0x00, 0x00, -0x54, 0x60, 0x00, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x2B, 0x30, 0x35, 0x00, 0x2B, 0x30, 0x37, 0x00, -0x2B, 0x30, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0A, 0x3C, -0x2B, 0x30, 0x36, 0x3E, 0x2D, 0x36, 0x0A, 0x00, 0xCB, 0x52, 0xC8, 0x01, 0x88, 0x13, 0x18, 0x00, +0x40, 0x65, 0xDD, 0x40, 0x41, 0x83, 0xF2, 0xC0, 0x65, 0xE0, 0xC6, 0x20, 0x01, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x06, 0x07, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x01, +0x00, 0x00, 0x48, 0x24, 0x00, 0x00, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, +0x01, 0x08, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x00, 0x00, +0x62, 0x70, 0x01, 0x08, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0C, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, +0x00, 0x00, 0x62, 0x70, 0x01, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x2B, 0x30, 0x35, 0x00, 0x2B, 0x30, +0x37, 0x00, 0x2B, 0x30, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x54, +0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xAA, +0x19, 0x7B, 0xDC, 0xFF, 0xFF, 0xFF, 0xFF, 0xB5, 0xA3, 0xEF, 0x30, 0x00, 0x00, 0x00, 0x00, 0x15, +0x27, 0x7D, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x16, 0x18, 0xB2, 0x10, 0x00, 0x00, 0x00, 0x00, 0x17, +0x08, 0xB1, 0x20, 0x00, 0x00, 0x00, 0x00, 0x17, 0xF9, 0xE5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x18, +0xE9, 0xE4, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x19, 0xDB, 0x19, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1A, +0xCC, 0x69, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xBC, 0x76, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x1C, +0xAC, 0x67, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x9C, 0x58, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x1E, +0x8C, 0x49, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x7C, 0x3A, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x20, +0x6C, 0x2B, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x21, 0x5C, 0x1C, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x22, +0x4C, 0x0D, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x23, 0x3B, 0xFE, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x24, +0x2B, 0xEF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x25, 0x1B, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x26, +0x0B, 0xD1, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x27, 0x04, 0xFD, 0x40, 0x00, 0x00, 0x00, 0x00, 0x27, +0xF4, 0xEE, 0x40, 0x00, 0x00, 0x00, 0x00, 0x28, 0xE4, 0xED, 0x50, 0x00, 0x00, 0x00, 0x00, 0x29, +0x78, 0x95, 0x50, 0x00, 0x00, 0x00, 0x00, 0x29, 0xD4, 0xD0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x2A, +0xC4, 0xC1, 0x40, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xB2, 0x40, 0x00, 0x00, 0x00, 0x00, 0x2C, +0xA4, 0xA3, 0x40, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0x94, 0x40, 0x00, 0x00, 0x00, 0x00, 0x2E, +0x84, 0x85, 0x40, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0x76, 0x40, 0x00, 0x00, 0x00, 0x00, 0x30, +0x64, 0x67, 0x40, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0x92, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x32, +0x72, 0x6D, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x33, 0x3D, 0x74, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x34, +0x52, 0x4F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x35, 0x1D, 0x56, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x36, +0x32, 0x31, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x36, 0xFD, 0x38, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x38, +0x1B, 0x4E, 0x40, 0x00, 0x00, 0x00, 0x00, 0x38, 0xDD, 0x1A, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x39, +0xFB, 0x30, 0x40, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xBC, 0xFC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x3B, +0xDB, 0x12, 0x40, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xA6, 0x19, 0x40, 0x00, 0x00, 0x00, 0x00, 0x3D, +0xBA, 0xF4, 0x40, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x85, 0xFB, 0x40, 0x00, 0x00, 0x00, 0x00, 0x3F, +0x9A, 0xD6, 0x40, 0x00, 0x00, 0x00, 0x00, 0x40, 0x65, 0xDD, 0x40, 0x00, 0x00, 0x00, 0x00, 0x41, +0x83, 0xF2, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x65, 0xE0, 0xC6, 0x20, 0x01, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x06, 0x07, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x01, 0x00, +0x00, 0x48, 0x24, 0x00, 0x00, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x01, +0x08, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x62, +0x70, 0x01, 0x08, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0C, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, +0x00, 0x62, 0x70, 0x01, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x2B, 0x30, 0x35, 0x00, 0x2B, 0x30, 0x37, +0x00, 0x2B, 0x30, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0A, 0x3C, +0x2B, 0x30, 0x35, 0x3E, 0x2D, 0x35, 0x0A, 0x00, 0xCB, 0x52, 0xC8, 0x01, 0x88, 0x13, 0x18, 0x00, 0x00, 0x00, 0x12, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x6F, 0x66, 0x20, 0x4B, 0x61, 0x7A, 0x61, 0x6B, 0x68, 0x73, 0x74, 0x61, 0x6E, @@ -43787,7 +43787,7 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { 0x59, 0xF3, 0xAC, 0x60, 0x5A, 0xB5, 0x86, 0xF0, 0x5B, 0xD3, 0x8E, 0x60, 0x5C, 0x9D, 0x43, 0xE0, 0x5D, 0xB3, 0x62, 0x50, 0x5E, 0x7E, 0x77, 0x60, 0x5F, 0x93, 0x52, 0x60, 0x60, 0x5E, 0x59, 0x60, 0x61, 0x7B, 0x1D, 0x60, 0x62, 0x3F, 0x8C, 0xE0, 0x63, 0x5C, 0x5E, 0xF0, 0x64, 0x4C, 0x5E, 0x00, -0x65, 0x3C, 0x40, 0xF0, 0x66, 0x19, 0xCB, 0x00, 0x67, 0x1C, 0x22, 0xF0, 0x67, 0xF0, 0x72, 0x80, +0x65, 0x3C, 0x40, 0xF0, 0x66, 0x23, 0x05, 0x80, 0x67, 0x1C, 0x22, 0xF0, 0x67, 0xF9, 0xAD, 0x00, 0x68, 0xFC, 0x04, 0xF0, 0x69, 0xC7, 0x1A, 0x00, 0x6A, 0xDB, 0xE6, 0xF0, 0x6B, 0xA6, 0xFC, 0x00, 0x6C, 0xC5, 0x03, 0x70, 0x6D, 0x86, 0xDE, 0x00, 0x6E, 0xA4, 0xE5, 0x70, 0x6F, 0x66, 0xC0, 0x00, 0x70, 0x84, 0xC7, 0x70, 0x71, 0x4F, 0xDC, 0x80, 0x72, 0x64, 0xA9, 0x70, 0x73, 0x2F, 0xBE, 0x80, @@ -43812,7 +43812,7 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x01, 0x36, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x15, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, +0x00, 0x01, 0x34, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x15, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0xBD, 0x4A, 0xB0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x59, 0xCF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0xFA, 0xA6, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x38, 0x9C, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCC, 0xE5, 0xEB, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCD, 0xAC, 0xFE, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xCE, @@ -43874,8 +43874,8 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { 0x5E, 0x59, 0x60, 0x00, 0x00, 0x00, 0x00, 0x61, 0x7B, 0x1D, 0x60, 0x00, 0x00, 0x00, 0x00, 0x62, 0x3F, 0x8C, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x63, 0x5C, 0x5E, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x64, 0x4C, 0x5E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0x3C, 0x40, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x66, -0x19, 0xCB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x1C, 0x22, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x67, -0xF0, 0x72, 0x80, 0x00, 0x00, 0x00, 0x00, 0x68, 0xFC, 0x04, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x69, +0x23, 0x05, 0x80, 0x00, 0x00, 0x00, 0x00, 0x67, 0x1C, 0x22, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x67, +0xF9, 0xAD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0xFC, 0x04, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x69, 0xC7, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xDB, 0xE6, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x6B, 0xA6, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xC5, 0x03, 0x70, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x86, 0xDE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6E, 0xA4, 0xE5, 0x70, 0x00, 0x00, 0x00, 0x00, 0x6F, @@ -43889,42 +43889,41 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { 0x98, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7D, 0xA3, 0xF5, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x78, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7A, 0x9C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x80, 0x58, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x48, 0x09, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x82, -0x38, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x1E, 0xB1, 0x70, 0x00, 0x00, 0x00, 0x00, 0x83, -0x4C, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x56, 0x10, 0x70, 0x00, 0x00, 0x00, 0x00, 0x84, +0x38, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x1E, 0xB1, 0x70, 0x00, 0x00, 0x00, 0x00, 0x84, 0x17, 0xEB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0xEC, 0x1E, 0x70, 0x00, 0x00, 0x00, 0x00, 0x85, -0x23, 0x8B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x85, 0x35, 0xF2, 0x70, 0x00, 0x00, 0x00, 0x00, 0x86, +0x2C, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x35, 0xF2, 0x70, 0x00, 0x00, 0x00, 0x00, 0x86, 0x01, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x86, 0xC2, 0xC5, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x86, -0xF0, 0xF8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x87, 0x15, 0xD4, 0x70, 0x00, 0x00, 0x00, 0x00, 0x87, +0xFA, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x15, 0xD4, 0x70, 0x00, 0x00, 0x00, 0x00, 0x87, 0xE0, 0xE9, 0x80, 0x00, 0x00, 0x00, 0x00, 0x88, 0x99, 0x6D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x88, -0xC7, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xF5, 0xB6, 0x70, 0x00, 0x00, 0x00, 0x00, 0x89, +0xD0, 0xDA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x88, 0xF5, 0xB6, 0x70, 0x00, 0x00, 0x00, 0x00, 0x89, 0xC0, 0xCB, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x66, 0xDA, 0x70, 0x00, 0x00, 0x00, 0x00, 0x8A, -0x9E, 0x47, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8A, 0xD5, 0x98, 0x70, 0x00, 0x00, 0x00, 0x00, 0x8B, +0xA7, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8A, 0xD5, 0x98, 0x70, 0x00, 0x00, 0x00, 0x00, 0x8B, 0xA0, 0xAD, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x3D, 0x81, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x8C, -0x6B, 0xB4, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8C, 0xBE, 0xB4, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x8D, +0x74, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0xBE, 0xB4, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x8D, 0x80, 0x8F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x14, 0x29, 0x70, 0x00, 0x00, 0x00, 0x00, 0x8E, -0x42, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x9E, 0x96, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x8F, +0x4B, 0x96, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x9E, 0x96, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x8F, 0x60, 0x71, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8F, 0xE1, 0x96, 0x70, 0x00, 0x00, 0x00, 0x00, 0x90, -0x19, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x90, 0x7E, 0x78, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x91, +0x22, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x7E, 0x78, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x91, 0x49, 0x8E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0xB8, 0x3D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x91, -0xE6, 0x70, 0x80, 0x00, 0x00, 0x00, 0x00, 0x92, 0x5E, 0x5A, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x93, +0xEF, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x5E, 0x5A, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x93, 0x29, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x93, 0x85, 0xAA, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x93, -0xBD, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x94, 0x3E, 0x3C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x95, +0xC6, 0x52, 0x80, 0x00, 0x00, 0x00, 0x00, 0x94, 0x3E, 0x3C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x95, 0x09, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x95, 0x5C, 0x52, 0x70, 0x00, 0x00, 0x00, 0x00, 0x95, -0x8A, 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x27, 0x59, 0x70, 0x00, 0x00, 0x00, 0x00, 0x96, +0x93, 0xBF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x96, 0x27, 0x59, 0x70, 0x00, 0x00, 0x00, 0x00, 0x96, 0xE9, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x97, 0x32, 0xF9, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x97, -0x61, 0x2C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x98, 0x07, 0x3B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x98, +0x6A, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x07, 0x3B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x98, 0xC9, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0x00, 0x66, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x99, -0x37, 0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0xE7, 0x1D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9A, +0x41, 0x0E, 0x80, 0x00, 0x00, 0x00, 0x00, 0x99, 0xE7, 0x1D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xB2, 0x32, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xD7, 0x0E, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9B, -0x05, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9B, 0xC6, 0xFF, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9C, +0x0E, 0x7B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9B, 0xC6, 0xFF, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9C, 0x92, 0x14, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9C, 0xA4, 0x7B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9C, -0xDB, 0xE8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9D, 0xA6, 0xE1, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9E, +0xE5, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9D, 0xA6, 0xE1, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9E, 0x71, 0xF6, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9E, 0x7B, 0x22, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x9E, -0xB2, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9F, 0x86, 0xC3, 0x70, 0x00, 0x00, 0x00, 0x00, 0xA0, -0x7F, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA1, 0x6F, 0xDF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA2, -0x56, 0xA4, 0x80, 0x00, 0x00, 0x00, 0x00, 0xA3, 0x4F, 0xC1, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA4, -0x24, 0x11, 0x80, 0x00, 0x00, 0x00, 0x00, 0xA5, 0x2F, 0xA3, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA5, -0xFA, 0xB9, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA7, 0x0F, 0x85, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA7, +0xBB, 0xCA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9F, 0x86, 0xC3, 0x70, 0x00, 0x00, 0x00, 0x00, 0xA0, +0x89, 0x37, 0x80, 0x00, 0x00, 0x00, 0x00, 0xA1, 0x6F, 0xDF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA2, +0x5F, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA3, 0x4F, 0xC1, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA4, +0x2D, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA5, 0x2F, 0xA3, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA6, +0x03, 0xF3, 0x80, 0x00, 0x00, 0x00, 0x00, 0xA7, 0x0F, 0x85, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA7, 0xDA, 0x9B, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA8, 0xEF, 0x67, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA9, 0xBA, 0x7D, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xD8, 0x84, 0x70, 0x00, 0x00, 0x00, 0x00, 0xAB, 0x9A, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAC, 0xB8, 0x66, 0x70, 0x00, 0x00, 0x00, 0x00, 0xAD, @@ -43939,35 +43938,35 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { 0x8B, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBD, 0x84, 0xE3, 0x70, 0x00, 0x00, 0x00, 0x00, 0xBE, 0x6B, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBF, 0x52, 0x50, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x4B, 0x8A, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x28, 0xF7, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xC1, -0x57, 0x2A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x69, 0x91, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC2, +0x60, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x69, 0x91, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC2, 0x2B, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0xFF, 0x9F, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC3, -0x2D, 0xD2, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x49, 0x73, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC4, +0x37, 0x0C, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x49, 0x73, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x0B, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0xCD, 0x0C, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC5, -0x04, 0x79, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC5, 0x29, 0x55, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC5, +0x0D, 0xB4, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC5, 0x29, 0x55, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC5, 0xF4, 0x6A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xA3, 0xB3, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xC6, -0xD1, 0xE6, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC7, 0x09, 0x37, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC7, +0xDB, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC7, 0x09, 0x37, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC7, 0xD4, 0x4C, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x71, 0x20, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xC8, -0xA8, 0x8E, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0xE9, 0x19, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC9, +0xB1, 0xC8, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC8, 0xE9, 0x19, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC9, 0xB4, 0x2E, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCA, 0x47, 0xC8, 0x70, 0x00, 0x00, 0x00, 0x00, 0xCA, -0x7F, 0x35, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCA, 0xD2, 0x35, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xCB, +0x88, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCA, 0xD2, 0x35, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xCB, 0x94, 0x10, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x1E, 0x6F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xCC, -0x4C, 0xA2, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCC, 0xB2, 0x17, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xCD, +0x55, 0xDD, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0xB2, 0x17, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xCD, 0x73, 0xF2, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCD, 0xEB, 0xDC, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xCE, -0x23, 0x4A, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCE, 0x91, 0xF9, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xCF, +0x2C, 0x84, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCE, 0x91, 0xF9, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xCF, 0x5D, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCF, 0xC2, 0x84, 0x70, 0x00, 0x00, 0x00, 0x00, 0xCF, -0xF0, 0xB7, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x71, 0xDB, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xD1, +0xF9, 0xF1, 0x80, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x71, 0xDB, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xD1, 0x3C, 0xF1, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD1, 0x99, 0x2B, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xD1, -0xC7, 0x5E, 0x80, 0x00, 0x00, 0x00, 0x00, 0xD2, 0x51, 0xBD, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xD3, +0xD0, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD2, 0x51, 0xBD, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xD3, 0x1C, 0xD3, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD3, 0x66, 0x98, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xD3, -0x9E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD4, 0x31, 0x9F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xD4, +0xA7, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0xD4, 0x31, 0x9F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xD4, 0xFC, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD5, 0x3D, 0x40, 0x70, 0x00, 0x00, 0x00, 0x00, 0xD5, -0x6B, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD6, 0x1A, 0xBC, 0x70, 0x00, 0x00, 0x00, 0x00, 0xD6, +0x74, 0xAD, 0x80, 0x00, 0x00, 0x00, 0x00, 0xD6, 0x1A, 0xBC, 0x70, 0x00, 0x00, 0x00, 0x00, 0xD6, 0xDC, 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD7, 0x0A, 0xAD, 0x70, 0x00, 0x00, 0x00, 0x00, 0xD7, -0x42, 0x1A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xD7, 0xFA, 0x9E, 0x70, 0x00, 0x00, 0x00, 0x00, 0xD8, +0x4B, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD7, 0xFA, 0x9E, 0x70, 0x00, 0x00, 0x00, 0x00, 0xD8, 0xBC, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0xE1, 0x54, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xD9, -0x18, 0xC2, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD9, 0xDA, 0x80, 0x70, 0x00, 0x00, 0x00, 0x00, 0xDA, +0x21, 0xFC, 0x80, 0x00, 0x00, 0x00, 0x00, 0xD9, 0xDA, 0x80, 0x70, 0x00, 0x00, 0x00, 0x00, 0xDA, 0xA5, 0x95, 0x80, 0x00, 0x00, 0x00, 0x00, 0xDA, 0xB7, 0xFC, 0x70, 0x00, 0x00, 0x00, 0x00, 0xDA, -0xE6, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDB, 0xBA, 0x62, 0x70, 0x03, 0x01, 0x02, 0x01, 0x02, +0xEF, 0x69, 0x80, 0x00, 0x00, 0x00, 0x00, 0xDB, 0xBA, 0x62, 0x70, 0x03, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x06, 0x05, 0x06, 0x05, 0x06, 0x07, 0x08, 0x07, 0x08, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, @@ -43986,17 +43985,17 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, -0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, -0x03, 0x00, 0x00, 0x20, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, -0x20, 0x00, 0x09, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, -0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x11, 0x00, 0x00, 0x2A, 0x30, 0x01, -0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x11, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x4C, 0x4D, 0x54, -0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x49, 0x44, 0x54, 0x00, 0x49, 0x53, -0x54, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x45, 0x45, 0x54, 0x2D, 0x32, 0x45, 0x45, 0x53, 0x54, -0x2C, 0x4D, 0x33, 0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x34, -0x2E, 0x34, 0x2F, 0x35, 0x30, 0x0A, 0x00, 0xB9, 0x64, 0xF0, 0x01, 0x47, 0x40, 0x0A, 0x00, 0x00, -0x00, 0x0A, 0x47, 0x61, 0x7A, 0x61, 0x20, 0x53, 0x74, 0x72, 0x69, 0x70, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x00, +0x00, 0x20, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, +0x09, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x2A, +0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x11, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, +0x00, 0x1C, 0x20, 0x00, 0x11, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x45, +0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, +0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x0A, 0x45, 0x45, 0x54, 0x2D, 0x32, 0x45, 0x45, 0x53, 0x54, 0x2C, 0x4D, +0x33, 0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x34, 0x2E, 0x34, +0x2F, 0x35, 0x30, 0x0A, 0x00, 0xB9, 0x64, 0xF0, 0x01, 0x47, 0x40, 0x0A, 0x00, 0x00, 0x00, 0x0A, +0x47, 0x61, 0x7A, 0x61, 0x20, 0x53, 0x74, 0x72, 0x69, 0x70, /* Asia/Harbin */ 0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -44070,8 +44069,8 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { 0x58, 0x13, 0xCA, 0x60, 0x58, 0xD5, 0xA4, 0xF0, 0x59, 0xF3, 0xAC, 0x60, 0x5A, 0xB5, 0x86, 0xF0, 0x5B, 0xD3, 0x8E, 0x60, 0x5C, 0x9D, 0x43, 0xE0, 0x5D, 0xB3, 0x62, 0x50, 0x5E, 0x7E, 0x77, 0x60, 0x5F, 0x93, 0x52, 0x60, 0x60, 0x5E, 0x59, 0x60, 0x61, 0x7B, 0x1D, 0x60, 0x62, 0x3F, 0x8C, 0xE0, -0x63, 0x5C, 0x5E, 0xF0, 0x64, 0x4C, 0x5E, 0x00, 0x65, 0x3C, 0x40, 0xF0, 0x66, 0x19, 0xCB, 0x00, -0x67, 0x1C, 0x22, 0xF0, 0x67, 0xF0, 0x72, 0x80, 0x68, 0xFC, 0x04, 0xF0, 0x69, 0xC7, 0x1A, 0x00, +0x63, 0x5C, 0x5E, 0xF0, 0x64, 0x4C, 0x5E, 0x00, 0x65, 0x3C, 0x40, 0xF0, 0x66, 0x23, 0x05, 0x80, +0x67, 0x1C, 0x22, 0xF0, 0x67, 0xF9, 0xAD, 0x00, 0x68, 0xFC, 0x04, 0xF0, 0x69, 0xC7, 0x1A, 0x00, 0x6A, 0xDB, 0xE6, 0xF0, 0x6B, 0xA6, 0xFC, 0x00, 0x6C, 0xC5, 0x03, 0x70, 0x6D, 0x86, 0xDE, 0x00, 0x6E, 0xA4, 0xE5, 0x70, 0x6F, 0x66, 0xC0, 0x00, 0x70, 0x84, 0xC7, 0x70, 0x71, 0x4F, 0xDC, 0x80, 0x72, 0x64, 0xA9, 0x70, 0x73, 0x2F, 0xBE, 0x80, 0x74, 0x44, 0x8B, 0x70, 0x75, 0x0F, 0xA0, 0x80, @@ -44095,7 +44094,7 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { 0x00, 0x49, 0x53, 0x54, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x38, 0x00, 0x00, 0x00, +0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x36, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x15, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0xBD, 0x4A, 0x19, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x59, 0xCF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0xFA, 0xA6, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x38, 0x9C, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCC, 0xE5, 0xEB, 0x80, 0xFF, 0xFF, 0xFF, @@ -44158,8 +44157,8 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { 0x00, 0x5F, 0x93, 0x52, 0x60, 0x00, 0x00, 0x00, 0x00, 0x60, 0x5E, 0x59, 0x60, 0x00, 0x00, 0x00, 0x00, 0x61, 0x7B, 0x1D, 0x60, 0x00, 0x00, 0x00, 0x00, 0x62, 0x3F, 0x8C, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x63, 0x5C, 0x5E, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x64, 0x4C, 0x5E, 0x00, 0x00, 0x00, 0x00, -0x00, 0x65, 0x3C, 0x40, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x66, 0x19, 0xCB, 0x00, 0x00, 0x00, 0x00, -0x00, 0x67, 0x1C, 0x22, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x67, 0xF0, 0x72, 0x80, 0x00, 0x00, 0x00, +0x00, 0x65, 0x3C, 0x40, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x66, 0x23, 0x05, 0x80, 0x00, 0x00, 0x00, +0x00, 0x67, 0x1C, 0x22, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x67, 0xF9, 0xAD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0xFC, 0x04, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x69, 0xC7, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xDB, 0xE6, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x6B, 0xA6, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xC5, 0x03, 0x70, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x86, 0xDE, 0x00, 0x00, 0x00, 0x00, @@ -44174,41 +44173,40 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { 0x00, 0x7D, 0xA3, 0xF5, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x78, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7A, 0x9C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x80, 0x58, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x48, 0x09, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x82, 0x38, 0x09, 0x00, 0x00, 0x00, 0x00, -0x00, 0x83, 0x1E, 0xB1, 0x70, 0x00, 0x00, 0x00, 0x00, 0x83, 0x4C, 0xE4, 0x00, 0x00, 0x00, 0x00, -0x00, 0x83, 0x56, 0x10, 0x70, 0x00, 0x00, 0x00, 0x00, 0x84, 0x17, 0xEB, 0x00, 0x00, 0x00, 0x00, -0x00, 0x84, 0xEC, 0x1E, 0x70, 0x00, 0x00, 0x00, 0x00, 0x85, 0x23, 0x8B, 0x80, 0x00, 0x00, 0x00, +0x00, 0x83, 0x1E, 0xB1, 0x70, 0x00, 0x00, 0x00, 0x00, 0x84, 0x17, 0xEB, 0x00, 0x00, 0x00, 0x00, +0x00, 0x84, 0xEC, 0x1E, 0x70, 0x00, 0x00, 0x00, 0x00, 0x85, 0x2C, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x35, 0xF2, 0x70, 0x00, 0x00, 0x00, 0x00, 0x86, 0x01, 0x07, 0x80, 0x00, 0x00, 0x00, -0x00, 0x86, 0xC2, 0xC5, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x86, 0xF0, 0xF8, 0x80, 0x00, 0x00, 0x00, +0x00, 0x86, 0xC2, 0xC5, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x86, 0xFA, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x15, 0xD4, 0x70, 0x00, 0x00, 0x00, 0x00, 0x87, 0xE0, 0xE9, 0x80, 0x00, 0x00, 0x00, -0x00, 0x88, 0x99, 0x6D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x88, 0xC7, 0xA0, 0x00, 0x00, 0x00, 0x00, +0x00, 0x88, 0x99, 0x6D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x88, 0xD0, 0xDA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x88, 0xF5, 0xB6, 0x70, 0x00, 0x00, 0x00, 0x00, 0x89, 0xC0, 0xCB, 0x80, 0x00, 0x00, 0x00, -0x00, 0x8A, 0x66, 0xDA, 0x70, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x9E, 0x47, 0x80, 0x00, 0x00, 0x00, +0x00, 0x8A, 0x66, 0xDA, 0x70, 0x00, 0x00, 0x00, 0x00, 0x8A, 0xA7, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8A, 0xD5, 0x98, 0x70, 0x00, 0x00, 0x00, 0x00, 0x8B, 0xA0, 0xAD, 0x80, 0x00, 0x00, 0x00, -0x00, 0x8C, 0x3D, 0x81, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x6B, 0xB4, 0x80, 0x00, 0x00, 0x00, +0x00, 0x8C, 0x3D, 0x81, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x74, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0xBE, 0xB4, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x8D, 0x80, 0x8F, 0x80, 0x00, 0x00, 0x00, -0x00, 0x8E, 0x14, 0x29, 0x70, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x42, 0x5C, 0x00, 0x00, 0x00, 0x00, +0x00, 0x8E, 0x14, 0x29, 0x70, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x4B, 0x96, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x9E, 0x96, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x8F, 0x60, 0x71, 0x80, 0x00, 0x00, 0x00, -0x00, 0x8F, 0xE1, 0x96, 0x70, 0x00, 0x00, 0x00, 0x00, 0x90, 0x19, 0x03, 0x80, 0x00, 0x00, 0x00, +0x00, 0x8F, 0xE1, 0x96, 0x70, 0x00, 0x00, 0x00, 0x00, 0x90, 0x22, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x7E, 0x78, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x91, 0x49, 0x8E, 0x00, 0x00, 0x00, 0x00, -0x00, 0x91, 0xB8, 0x3D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x91, 0xE6, 0x70, 0x80, 0x00, 0x00, 0x00, +0x00, 0x91, 0xB8, 0x3D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x91, 0xEF, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x5E, 0x5A, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x93, 0x29, 0x70, 0x00, 0x00, 0x00, 0x00, -0x00, 0x93, 0x85, 0xAA, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x93, 0xBD, 0x18, 0x00, 0x00, 0x00, 0x00, +0x00, 0x93, 0x85, 0xAA, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x93, 0xC6, 0x52, 0x80, 0x00, 0x00, 0x00, 0x00, 0x94, 0x3E, 0x3C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x95, 0x09, 0x52, 0x00, 0x00, 0x00, 0x00, -0x00, 0x95, 0x5C, 0x52, 0x70, 0x00, 0x00, 0x00, 0x00, 0x95, 0x8A, 0x85, 0x00, 0x00, 0x00, 0x00, +0x00, 0x95, 0x5C, 0x52, 0x70, 0x00, 0x00, 0x00, 0x00, 0x95, 0x93, 0xBF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x96, 0x27, 0x59, 0x70, 0x00, 0x00, 0x00, 0x00, 0x96, 0xE9, 0x34, 0x00, 0x00, 0x00, 0x00, -0x00, 0x97, 0x32, 0xF9, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x97, 0x61, 0x2C, 0x80, 0x00, 0x00, 0x00, +0x00, 0x97, 0x32, 0xF9, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x97, 0x6A, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x07, 0x3B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x98, 0xC9, 0x16, 0x00, 0x00, 0x00, 0x00, -0x00, 0x99, 0x00, 0x66, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x99, 0x37, 0xD4, 0x00, 0x00, 0x00, 0x00, +0x00, 0x99, 0x00, 0x66, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x99, 0x41, 0x0E, 0x80, 0x00, 0x00, 0x00, 0x00, 0x99, 0xE7, 0x1D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xB2, 0x32, 0x80, 0x00, 0x00, 0x00, -0x00, 0x9A, 0xD7, 0x0E, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9B, 0x05, 0x41, 0x00, 0x00, 0x00, 0x00, +0x00, 0x9A, 0xD7, 0x0E, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9B, 0x0E, 0x7B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9B, 0xC6, 0xFF, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9C, 0x92, 0x14, 0x80, 0x00, 0x00, 0x00, -0x00, 0x9C, 0xA4, 0x7B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9C, 0xDB, 0xE8, 0x80, 0x00, 0x00, 0x00, +0x00, 0x9C, 0xA4, 0x7B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9C, 0xE5, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9D, 0xA6, 0xE1, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9E, 0x71, 0xF6, 0x80, 0x00, 0x00, 0x00, -0x00, 0x9E, 0x7B, 0x22, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x9E, 0xB2, 0x90, 0x00, 0x00, 0x00, 0x00, -0x00, 0x9F, 0x86, 0xC3, 0x70, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x7F, 0xFD, 0x00, 0x00, 0x00, 0x00, -0x00, 0xA1, 0x6F, 0xDF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA2, 0x56, 0xA4, 0x80, 0x00, 0x00, 0x00, -0x00, 0xA3, 0x4F, 0xC1, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA4, 0x24, 0x11, 0x80, 0x00, 0x00, 0x00, -0x00, 0xA5, 0x2F, 0xA3, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA5, 0xFA, 0xB9, 0x00, 0x00, 0x00, 0x00, +0x00, 0x9E, 0x7B, 0x22, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x9E, 0xBB, 0xCA, 0x80, 0x00, 0x00, 0x00, +0x00, 0x9F, 0x86, 0xC3, 0x70, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x89, 0x37, 0x80, 0x00, 0x00, 0x00, +0x00, 0xA1, 0x6F, 0xDF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA2, 0x5F, 0xDF, 0x00, 0x00, 0x00, 0x00, +0x00, 0xA3, 0x4F, 0xC1, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA4, 0x2D, 0x4C, 0x00, 0x00, 0x00, 0x00, +0x00, 0xA5, 0x2F, 0xA3, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA6, 0x03, 0xF3, 0x80, 0x00, 0x00, 0x00, 0x00, 0xA7, 0x0F, 0x85, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA7, 0xDA, 0x9B, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA8, 0xEF, 0x67, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA9, 0xBA, 0x7D, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xD8, 0x84, 0x70, 0x00, 0x00, 0x00, 0x00, 0xAB, 0x9A, 0x5F, 0x00, 0x00, 0x00, 0x00, @@ -44223,35 +44221,35 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { 0x00, 0xBB, 0xAE, 0x3B, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x8B, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBD, 0x84, 0xE3, 0x70, 0x00, 0x00, 0x00, 0x00, 0xBE, 0x6B, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBF, 0x52, 0x50, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x4B, 0x8A, 0x00, 0x00, 0x00, 0x00, -0x00, 0xC1, 0x28, 0xF7, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x57, 0x2A, 0x80, 0x00, 0x00, 0x00, +0x00, 0xC1, 0x28, 0xF7, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x60, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x69, 0x91, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC2, 0x2B, 0x6C, 0x00, 0x00, 0x00, 0x00, -0x00, 0xC2, 0xFF, 0x9F, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x2D, 0xD2, 0x00, 0x00, 0x00, 0x00, +0x00, 0xC2, 0xFF, 0x9F, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x37, 0x0C, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x49, 0x73, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x0B, 0x4E, 0x00, 0x00, 0x00, 0x00, -0x00, 0xC4, 0xCD, 0x0C, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC5, 0x04, 0x79, 0x80, 0x00, 0x00, 0x00, +0x00, 0xC4, 0xCD, 0x0C, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC5, 0x0D, 0xB4, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC5, 0x29, 0x55, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC5, 0xF4, 0x6A, 0x80, 0x00, 0x00, 0x00, -0x00, 0xC6, 0xA3, 0xB3, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xD1, 0xE6, 0x80, 0x00, 0x00, 0x00, +0x00, 0xC6, 0xA3, 0xB3, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xDB, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC7, 0x09, 0x37, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC7, 0xD4, 0x4C, 0x80, 0x00, 0x00, 0x00, -0x00, 0xC8, 0x71, 0x20, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xC8, 0xA8, 0x8E, 0x00, 0x00, 0x00, 0x00, +0x00, 0xC8, 0x71, 0x20, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xC8, 0xB1, 0xC8, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC8, 0xE9, 0x19, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC9, 0xB4, 0x2E, 0x80, 0x00, 0x00, 0x00, -0x00, 0xCA, 0x47, 0xC8, 0x70, 0x00, 0x00, 0x00, 0x00, 0xCA, 0x7F, 0x35, 0x80, 0x00, 0x00, 0x00, +0x00, 0xCA, 0x47, 0xC8, 0x70, 0x00, 0x00, 0x00, 0x00, 0xCA, 0x88, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCA, 0xD2, 0x35, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xCB, 0x94, 0x10, 0x80, 0x00, 0x00, 0x00, -0x00, 0xCC, 0x1E, 0x6F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x4C, 0xA2, 0x80, 0x00, 0x00, 0x00, +0x00, 0xCC, 0x1E, 0x6F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x55, 0xDD, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0xB2, 0x17, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xCD, 0x73, 0xF2, 0x80, 0x00, 0x00, 0x00, -0x00, 0xCD, 0xEB, 0xDC, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xCE, 0x23, 0x4A, 0x00, 0x00, 0x00, 0x00, +0x00, 0xCD, 0xEB, 0xDC, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xCE, 0x2C, 0x84, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCE, 0x91, 0xF9, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xCF, 0x5D, 0x0F, 0x00, 0x00, 0x00, 0x00, -0x00, 0xCF, 0xC2, 0x84, 0x70, 0x00, 0x00, 0x00, 0x00, 0xCF, 0xF0, 0xB7, 0x00, 0x00, 0x00, 0x00, +0x00, 0xCF, 0xC2, 0x84, 0x70, 0x00, 0x00, 0x00, 0x00, 0xCF, 0xF9, 0xF1, 0x80, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x71, 0xDB, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xD1, 0x3C, 0xF1, 0x00, 0x00, 0x00, 0x00, -0x00, 0xD1, 0x99, 0x2B, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xD1, 0xC7, 0x5E, 0x80, 0x00, 0x00, 0x00, +0x00, 0xD1, 0x99, 0x2B, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xD1, 0xD0, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD2, 0x51, 0xBD, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xD3, 0x1C, 0xD3, 0x00, 0x00, 0x00, 0x00, -0x00, 0xD3, 0x66, 0x98, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xD3, 0x9E, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0xD3, 0x66, 0x98, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xD3, 0xA7, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0xD4, 0x31, 0x9F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xD4, 0xFC, 0xB5, 0x00, 0x00, 0x00, 0x00, -0x00, 0xD5, 0x3D, 0x40, 0x70, 0x00, 0x00, 0x00, 0x00, 0xD5, 0x6B, 0x73, 0x00, 0x00, 0x00, 0x00, +0x00, 0xD5, 0x3D, 0x40, 0x70, 0x00, 0x00, 0x00, 0x00, 0xD5, 0x74, 0xAD, 0x80, 0x00, 0x00, 0x00, 0x00, 0xD6, 0x1A, 0xBC, 0x70, 0x00, 0x00, 0x00, 0x00, 0xD6, 0xDC, 0x97, 0x00, 0x00, 0x00, 0x00, -0x00, 0xD7, 0x0A, 0xAD, 0x70, 0x00, 0x00, 0x00, 0x00, 0xD7, 0x42, 0x1A, 0x80, 0x00, 0x00, 0x00, +0x00, 0xD7, 0x0A, 0xAD, 0x70, 0x00, 0x00, 0x00, 0x00, 0xD7, 0x4B, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD7, 0xFA, 0x9E, 0x70, 0x00, 0x00, 0x00, 0x00, 0xD8, 0xBC, 0x79, 0x00, 0x00, 0x00, 0x00, -0x00, 0xD8, 0xE1, 0x54, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xD9, 0x18, 0xC2, 0x00, 0x00, 0x00, 0x00, +0x00, 0xD8, 0xE1, 0x54, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xD9, 0x21, 0xFC, 0x80, 0x00, 0x00, 0x00, 0x00, 0xD9, 0xDA, 0x80, 0x70, 0x00, 0x00, 0x00, 0x00, 0xDA, 0xA5, 0x95, 0x80, 0x00, 0x00, 0x00, -0x00, 0xDA, 0xB7, 0xFC, 0x70, 0x00, 0x00, 0x00, 0x00, 0xDA, 0xE6, 0x2F, 0x00, 0x00, 0x00, 0x00, +0x00, 0xDA, 0xB7, 0xFC, 0x70, 0x00, 0x00, 0x00, 0x00, 0xDA, 0xEF, 0x69, 0x80, 0x00, 0x00, 0x00, 0x00, 0xDB, 0xBA, 0x62, 0x70, 0x03, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x06, 0x05, 0x06, 0x05, 0x06, 0x07, 0x08, 0x07, 0x08, @@ -44271,24 +44269,24 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, -0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x00, 0x00, 0x20, -0xE7, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, -0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x2A, 0x30, 0x01, -0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x11, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, -0x20, 0x00, 0x11, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, -0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x00, 0x01, -0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x0A, 0x45, 0x45, 0x54, 0x2D, 0x32, 0x45, 0x45, 0x53, 0x54, 0x2C, 0x4D, 0x33, 0x2E, -0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, -0x30, 0x0A, 0x00, 0xB9, 0x71, 0xF5, 0x01, 0x48, 0x35, 0x7C, 0x00, 0x00, 0x00, 0x09, 0x57, 0x65, -0x73, 0x74, 0x20, 0x42, 0x61, 0x6E, 0x6B, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x00, 0x00, 0x20, 0xE7, 0x00, +0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x1C, +0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, +0x00, 0x1C, 0x20, 0x00, 0x11, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, +0x11, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, +0x45, 0x45, 0x54, 0x00, 0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x00, 0x01, 0x01, 0x00, +0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x0A, 0x45, 0x45, 0x54, 0x2D, 0x32, 0x45, 0x45, 0x53, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x34, 0x2E, +0x34, 0x2F, 0x35, 0x30, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x0A, +0x00, 0xB9, 0x71, 0xF5, 0x01, 0x48, 0x35, 0x7C, 0x00, 0x00, 0x00, 0x09, 0x57, 0x65, 0x73, 0x74, +0x20, 0x42, 0x61, 0x6E, 0x6B, /* Asia/Ho_Chi_Minh */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x56, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x15, 0x88, 0x8C, 0x43, 0x8A, 0x91, 0xA3, 0x2B, 0x0A, 0xCD, 0x35, 0xE6, 0x80, 0xD1, 0x59, 0xCE, 0x70, 0xD2, 0x3B, 0x3E, 0xF0, -0xD5, 0x32, 0xBB, 0x10, 0xE4, 0xB6, 0xE4, 0x80, 0xED, 0x2F, 0x98, 0x00, 0x0A, 0x3D, 0xC7, 0x00, +0xD5, 0x32, 0xBB, 0x10, 0xE4, 0xB6, 0xF2, 0x90, 0xED, 0x2F, 0x98, 0x00, 0x0A, 0x3D, 0xC7, 0x00, 0x01, 0x02, 0x03, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, 0x63, 0xF6, 0x00, 0x00, 0x00, 0x00, 0x63, 0xF6, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x00, 0x09, 0x00, 0x00, 0x70, 0x80, 0x00, 0x0D, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x11, 0x00, 0x00, 0x62, 0x70, 0x00, 0x09, 0x4C, 0x4D, 0x54, @@ -44299,7 +44297,7 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { 0xFF, 0xFF, 0x88, 0x8C, 0x43, 0x8A, 0xFF, 0xFF, 0xFF, 0xFF, 0x91, 0xA3, 0x2B, 0x0A, 0xFF, 0xFF, 0xFF, 0xFF, 0xCD, 0x35, 0xE6, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xD1, 0x59, 0xCE, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x3B, 0x3E, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x32, 0xBB, 0x10, 0xFF, 0xFF, -0xFF, 0xFF, 0xE4, 0xB6, 0xE4, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xED, 0x2F, 0x98, 0x00, 0x00, 0x00, +0xFF, 0xFF, 0xE4, 0xB6, 0xF2, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xED, 0x2F, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x3D, 0xC7, 0x00, 0x01, 0x02, 0x03, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, 0x63, 0xF6, 0x00, 0x00, 0x00, 0x00, 0x63, 0xF6, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x00, 0x09, 0x00, 0x00, 0x70, 0x80, 0x00, 0x0D, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x11, 0x00, 0x00, 0x62, @@ -46092,8 +46090,8 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { /* Asia/Qostanay */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x4B, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x10, 0xAA, 0x19, 0x88, 0x5C, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x10, 0xAA, 0x19, 0x88, 0x5C, 0xB5, 0xA3, 0xFD, 0x40, 0x15, 0x27, 0x8B, 0xB0, 0x16, 0x18, 0xC0, 0x20, 0x17, 0x08, 0xB1, 0x20, 0x17, 0xF9, 0xF3, 0xA0, 0x18, 0xE9, 0xF2, 0xB0, 0x19, 0xDB, 0x27, 0x20, 0x1A, 0xCC, 0x77, 0xB0, 0x1B, 0xBC, 0x84, 0xD0, 0x1C, 0xAC, 0x75, 0xD0, 0x1D, 0x9C, 0x66, 0xD0, 0x1E, 0x8C, 0x57, 0xD0, @@ -46106,56 +46104,58 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { 0x35, 0x1D, 0x64, 0xD0, 0x36, 0x32, 0x3F, 0xD0, 0x36, 0xFD, 0x46, 0xD0, 0x38, 0x1B, 0x5C, 0x50, 0x38, 0xDD, 0x28, 0xD0, 0x39, 0xFB, 0x3E, 0x50, 0x3A, 0xBD, 0x0A, 0xD0, 0x3B, 0xDB, 0x20, 0x50, 0x3C, 0xA6, 0x27, 0x50, 0x3D, 0xBB, 0x02, 0x50, 0x3E, 0x86, 0x09, 0x50, 0x3F, 0x9A, 0xE4, 0x50, -0x40, 0x65, 0xEB, 0x50, 0x41, 0x84, 0x00, 0xD0, 0x01, 0x02, 0x03, 0x04, 0x03, 0x02, 0x03, 0x02, -0x03, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x07, 0x08, -0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, -0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x09, 0x00, 0x00, 0x3B, 0xA4, 0x00, -0x00, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, 0x00, 0x08, 0x00, 0x00, 0x54, -0x60, 0x01, 0x0C, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x46, 0x50, 0x00, 0x08, 0x00, -0x00, 0x54, 0x60, 0x01, 0x0C, 0x00, 0x00, 0x46, 0x50, 0x01, 0x08, 0x00, 0x00, 0x38, 0x40, 0x00, -0x04, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0C, 0x4C, 0x4D, 0x54, -0x00, 0x2B, 0x30, 0x34, 0x00, 0x2B, 0x30, 0x35, 0x00, 0x2B, 0x30, 0x36, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x0B, -0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xAA, 0x19, 0x88, 0x5C, 0xFF, 0xFF, 0xFF, 0xFF, -0xB5, 0xA3, 0xFD, 0x40, 0x00, 0x00, 0x00, 0x00, 0x15, 0x27, 0x8B, 0xB0, 0x00, 0x00, 0x00, 0x00, -0x16, 0x18, 0xC0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x17, 0x08, 0xB1, 0x20, 0x00, 0x00, 0x00, 0x00, -0x17, 0xF9, 0xF3, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x18, 0xE9, 0xF2, 0xB0, 0x00, 0x00, 0x00, 0x00, -0x19, 0xDB, 0x27, 0x20, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xCC, 0x77, 0xB0, 0x00, 0x00, 0x00, 0x00, -0x1B, 0xBC, 0x84, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xAC, 0x75, 0xD0, 0x00, 0x00, 0x00, 0x00, -0x1D, 0x9C, 0x66, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x8C, 0x57, 0xD0, 0x00, 0x00, 0x00, 0x00, -0x1F, 0x7C, 0x48, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x20, 0x6C, 0x39, 0xD0, 0x00, 0x00, 0x00, 0x00, -0x21, 0x5C, 0x2A, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x22, 0x4C, 0x1B, 0xD0, 0x00, 0x00, 0x00, 0x00, -0x23, 0x3C, 0x0C, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x24, 0x2B, 0xFD, 0xD0, 0x00, 0x00, 0x00, 0x00, -0x25, 0x1B, 0xEE, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x26, 0x0B, 0xDF, 0xD0, 0x00, 0x00, 0x00, 0x00, -0x27, 0x05, 0x0B, 0x50, 0x00, 0x00, 0x00, 0x00, 0x27, 0xF4, 0xFC, 0x50, 0x00, 0x00, 0x00, 0x00, -0x28, 0xE4, 0xFB, 0x60, 0x00, 0x00, 0x00, 0x00, 0x29, 0x78, 0xA3, 0x60, 0x00, 0x00, 0x00, 0x00, -0x29, 0xD4, 0xDE, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xC4, 0xCF, 0x50, 0x00, 0x00, 0x00, 0x00, -0x2B, 0xB4, 0xC0, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xB1, 0x50, 0x00, 0x00, 0x00, 0x00, -0x2D, 0x94, 0xA2, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0x93, 0x50, 0x00, 0x00, 0x00, 0x00, -0x2F, 0x74, 0x84, 0x50, 0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0x75, 0x50, 0x00, 0x00, 0x00, 0x00, -0x31, 0x5D, 0xA0, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x32, 0x72, 0x7B, 0xD0, 0x00, 0x00, 0x00, 0x00, -0x33, 0x3D, 0x82, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0x5D, 0xD0, 0x00, 0x00, 0x00, 0x00, -0x35, 0x1D, 0x64, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0x3F, 0xD0, 0x00, 0x00, 0x00, 0x00, -0x36, 0xFD, 0x46, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0x5C, 0x50, 0x00, 0x00, 0x00, 0x00, -0x38, 0xDD, 0x28, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0x3E, 0x50, 0x00, 0x00, 0x00, 0x00, -0x3A, 0xBD, 0x0A, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xDB, 0x20, 0x50, 0x00, 0x00, 0x00, 0x00, -0x3C, 0xA6, 0x27, 0x50, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x02, 0x50, 0x00, 0x00, 0x00, 0x00, -0x3E, 0x86, 0x09, 0x50, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9A, 0xE4, 0x50, 0x00, 0x00, 0x00, 0x00, -0x40, 0x65, 0xEB, 0x50, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x00, 0xD0, 0x01, 0x02, 0x03, 0x04, +0x40, 0x65, 0xEB, 0x50, 0x41, 0x84, 0x00, 0xD0, 0x65, 0xE0, 0xC6, 0x20, 0x01, 0x02, 0x03, 0x04, 0x03, 0x02, 0x03, 0x02, 0x03, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x07, 0x08, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, -0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x09, 0x00, -0x00, 0x3B, 0xA4, 0x00, 0x00, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, 0x00, -0x08, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0C, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x46, -0x50, 0x00, 0x08, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0C, 0x00, 0x00, 0x46, 0x50, 0x01, 0x08, 0x00, -0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x54, 0x60, 0x01, -0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x2B, 0x30, 0x34, 0x00, 0x2B, 0x30, 0x35, 0x00, 0x2B, 0x30, 0x36, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0A, 0x3C, 0x2B, 0x30, -0x36, 0x3E, 0x2D, 0x36, 0x0A, 0x00, 0xDA, 0x81, 0x7F, 0x01, 0x73, 0xBA, 0xC2, 0x00, 0x00, 0x00, -0x1A, 0x51, 0x6F, 0x73, 0x74, 0x61, 0x6E, 0x61, 0x79, 0x2F, 0x4B, 0x6F, 0x73, 0x74, 0x61, 0x6E, -0x61, 0x79, 0x2F, 0x4B, 0x75, 0x73, 0x74, 0x61, 0x6E, 0x61, 0x79, +0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x09, 0x02, +0x00, 0x00, 0x3B, 0xA4, 0x00, 0x00, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, +0x00, 0x08, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0C, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x00, 0x00, +0x46, 0x50, 0x00, 0x08, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0C, 0x00, 0x00, 0x46, 0x50, 0x01, 0x08, +0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x54, 0x60, +0x01, 0x0C, 0x00, 0x00, 0x46, 0x50, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x2B, 0x30, 0x34, 0x00, +0x2B, 0x30, 0x35, 0x00, 0x2B, 0x30, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, +0x01, 0x01, 0x01, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x10, +0xFF, 0xFF, 0xFF, 0xFF, 0xAA, 0x19, 0x88, 0x5C, 0xFF, 0xFF, 0xFF, 0xFF, 0xB5, 0xA3, 0xFD, 0x40, +0x00, 0x00, 0x00, 0x00, 0x15, 0x27, 0x8B, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x16, 0x18, 0xC0, 0x20, +0x00, 0x00, 0x00, 0x00, 0x17, 0x08, 0xB1, 0x20, 0x00, 0x00, 0x00, 0x00, 0x17, 0xF9, 0xF3, 0xA0, +0x00, 0x00, 0x00, 0x00, 0x18, 0xE9, 0xF2, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x19, 0xDB, 0x27, 0x20, +0x00, 0x00, 0x00, 0x00, 0x1A, 0xCC, 0x77, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xBC, 0x84, 0xD0, +0x00, 0x00, 0x00, 0x00, 0x1C, 0xAC, 0x75, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x9C, 0x66, 0xD0, +0x00, 0x00, 0x00, 0x00, 0x1E, 0x8C, 0x57, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x7C, 0x48, 0xD0, +0x00, 0x00, 0x00, 0x00, 0x20, 0x6C, 0x39, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x21, 0x5C, 0x2A, 0xD0, +0x00, 0x00, 0x00, 0x00, 0x22, 0x4C, 0x1B, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x23, 0x3C, 0x0C, 0xD0, +0x00, 0x00, 0x00, 0x00, 0x24, 0x2B, 0xFD, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x25, 0x1B, 0xEE, 0xD0, +0x00, 0x00, 0x00, 0x00, 0x26, 0x0B, 0xDF, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x27, 0x05, 0x0B, 0x50, +0x00, 0x00, 0x00, 0x00, 0x27, 0xF4, 0xFC, 0x50, 0x00, 0x00, 0x00, 0x00, 0x28, 0xE4, 0xFB, 0x60, +0x00, 0x00, 0x00, 0x00, 0x29, 0x78, 0xA3, 0x60, 0x00, 0x00, 0x00, 0x00, 0x29, 0xD4, 0xDE, 0x50, +0x00, 0x00, 0x00, 0x00, 0x2A, 0xC4, 0xCF, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xC0, 0x50, +0x00, 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xB1, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xA2, 0x50, +0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0x93, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0x84, 0x50, +0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0x75, 0x50, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xA0, 0xD0, +0x00, 0x00, 0x00, 0x00, 0x32, 0x72, 0x7B, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x33, 0x3D, 0x82, 0xD0, +0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0x5D, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x35, 0x1D, 0x64, 0xD0, +0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0x3F, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x36, 0xFD, 0x46, 0xD0, +0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0x5C, 0x50, 0x00, 0x00, 0x00, 0x00, 0x38, 0xDD, 0x28, 0xD0, +0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0x3E, 0x50, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xBD, 0x0A, 0xD0, +0x00, 0x00, 0x00, 0x00, 0x3B, 0xDB, 0x20, 0x50, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xA6, 0x27, 0x50, +0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x02, 0x50, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x86, 0x09, 0x50, +0x00, 0x00, 0x00, 0x00, 0x3F, 0x9A, 0xE4, 0x50, 0x00, 0x00, 0x00, 0x00, 0x40, 0x65, 0xEB, 0x50, +0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x00, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x65, 0xE0, 0xC6, 0x20, +0x01, 0x02, 0x03, 0x04, 0x03, 0x02, 0x03, 0x02, 0x03, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x07, 0x08, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, +0x05, 0x06, 0x09, 0x02, 0x00, 0x00, 0x3B, 0xA4, 0x00, 0x00, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, +0x00, 0x00, 0x46, 0x50, 0x00, 0x08, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0C, 0x00, 0x00, 0x54, 0x60, +0x00, 0x0C, 0x00, 0x00, 0x46, 0x50, 0x00, 0x08, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0C, 0x00, 0x00, +0x46, 0x50, 0x01, 0x08, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, +0x00, 0x00, 0x54, 0x60, 0x01, 0x0C, 0x00, 0x00, 0x46, 0x50, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, +0x2B, 0x30, 0x34, 0x00, 0x2B, 0x30, 0x35, 0x00, 0x2B, 0x30, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x0A, 0x3C, 0x2B, 0x30, 0x35, 0x3E, 0x2D, 0x35, +0x0A, 0x00, 0xDA, 0x81, 0x7F, 0x01, 0x73, 0xBA, 0xC2, 0x00, 0x00, 0x00, 0x1A, 0x51, 0x6F, 0x73, +0x74, 0x61, 0x6E, 0x61, 0x79, 0x2F, 0x4B, 0x6F, 0x73, 0x74, 0x61, 0x6E, 0x61, 0x79, 0x2F, 0x4B, +0x75, 0x73, 0x74, 0x61, 0x6E, 0x61, 0x79, /* Asia/Qyzylorda */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x4B, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -46262,7 +46262,7 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x15, 0x88, 0x8C, 0x43, 0x8A, 0x91, 0xA3, 0x2B, 0x0A, 0xCD, 0x35, 0xE6, 0x80, 0xD1, 0x59, 0xCE, 0x70, 0xD2, 0x3B, 0x3E, 0xF0, -0xD5, 0x32, 0xBB, 0x10, 0xE4, 0xB6, 0xE4, 0x80, 0xED, 0x2F, 0x98, 0x00, 0x0A, 0x3D, 0xC7, 0x00, +0xD5, 0x32, 0xBB, 0x10, 0xE4, 0xB6, 0xF2, 0x90, 0xED, 0x2F, 0x98, 0x00, 0x0A, 0x3D, 0xC7, 0x00, 0x01, 0x02, 0x03, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, 0x63, 0xF6, 0x00, 0x00, 0x00, 0x00, 0x63, 0xF6, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x00, 0x09, 0x00, 0x00, 0x70, 0x80, 0x00, 0x0D, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x11, 0x00, 0x00, 0x62, 0x70, 0x00, 0x09, 0x4C, 0x4D, 0x54, @@ -46273,7 +46273,7 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { 0xFF, 0xFF, 0x88, 0x8C, 0x43, 0x8A, 0xFF, 0xFF, 0xFF, 0xFF, 0x91, 0xA3, 0x2B, 0x0A, 0xFF, 0xFF, 0xFF, 0xFF, 0xCD, 0x35, 0xE6, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xD1, 0x59, 0xCE, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x3B, 0x3E, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x32, 0xBB, 0x10, 0xFF, 0xFF, -0xFF, 0xFF, 0xE4, 0xB6, 0xE4, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xED, 0x2F, 0x98, 0x00, 0x00, 0x00, +0xFF, 0xFF, 0xE4, 0xB6, 0xF2, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xED, 0x2F, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x3D, 0xC7, 0x00, 0x01, 0x02, 0x03, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, 0x63, 0xF6, 0x00, 0x00, 0x00, 0x00, 0x63, 0xF6, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x00, 0x09, 0x00, 0x00, 0x70, 0x80, 0x00, 0x0D, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x11, 0x00, 0x00, 0x62, @@ -51988,8 +51988,8 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { 0xC0, 0xA4, 0x9B, 0xF0, 0xC1, 0x6F, 0x94, 0xE0, 0xC2, 0x84, 0x7D, 0xF0, 0xC3, 0x4F, 0x76, 0xE0, 0xC4, 0x64, 0x5F, 0xF0, 0xC5, 0x2F, 0x58, 0xE0, 0xC6, 0x4D, 0x7C, 0x70, 0xC7, 0x0F, 0x3A, 0xE0, 0xC8, 0x2D, 0x5E, 0x70, 0xCB, 0x88, 0xF0, 0x70, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xFB, 0xE0, -0xD3, 0x75, 0xE4, 0xF0, 0xD4, 0x40, 0xDD, 0xE0, 0xD5, 0x55, 0xAA, 0xD0, 0xD6, 0x20, 0xA3, 0xC0, -0xD7, 0x35, 0x8C, 0xD0, 0xD8, 0x00, 0x85, 0xC0, 0xD9, 0x15, 0x6E, 0xD0, 0xDA, 0x33, 0x76, 0x40, +0xD3, 0x75, 0xE4, 0xF0, 0xD4, 0x40, 0xDD, 0xE0, 0xD5, 0x55, 0xC6, 0xF0, 0xD6, 0x20, 0xBF, 0xE0, +0xD7, 0x35, 0xA8, 0xF0, 0xD8, 0x00, 0xA1, 0xE0, 0xD9, 0x15, 0x8A, 0xF0, 0xDA, 0x33, 0x92, 0x60, 0xDA, 0xFE, 0xA7, 0x70, 0xDC, 0x13, 0x74, 0x60, 0xDC, 0xDE, 0x89, 0x70, 0xDD, 0xA9, 0x82, 0x60, 0xDE, 0xBE, 0x6B, 0x70, 0xDF, 0x89, 0x64, 0x60, 0xE0, 0x9E, 0x4D, 0x70, 0xE1, 0x69, 0x46, 0x60, 0xE2, 0x7E, 0x2F, 0x70, 0xE3, 0x49, 0x28, 0x60, 0xE4, 0x5E, 0x11, 0x70, 0xE5, 0x29, 0x0A, 0x60, @@ -52080,10 +52080,10 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, 0x0F, 0x3A, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x2D, 0x5E, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x88, 0xF0, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xFB, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD3, 0x75, 0xE4, -0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xAA, -0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xA3, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0x8C, -0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0x85, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x6E, -0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x76, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xC6, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xBF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0xA8, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0xA1, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x8A, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x92, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x13, 0x74, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0xDE, 0x89, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0xA9, 0x82, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xBE, 0x6B, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x89, 0x64, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x9E, 0x4D, @@ -70100,4 +70100,4 @@ const unsigned char timelib_timezone_db_data_builtin[704152] = { }; #endif -const timelib_tzdb timezonedb_builtin = { "2023.4", 597, timezonedb_idx_builtin, timelib_timezone_db_data_builtin }; +const timelib_tzdb timezonedb_builtin = { "2024.1", 597, timezonedb_idx_builtin, timelib_timezone_db_data_builtin }; diff --git a/ext/dom/element.c b/ext/dom/element.c index f87fbcccfef98..46f1100a767da 100644 --- a/ext/dom/element.c +++ b/ext/dom/element.c @@ -461,7 +461,7 @@ static void dom_deep_ns_redef(xmlNodePtr node, xmlNsPtr ns_to_redefine) if (worklist_size == worklist_capacity) { if (UNEXPECTED(worklist_capacity >= SIZE_MAX / 3 * 2 / sizeof(dom_deep_ns_redef_item))) { /* Shouldn't be possible to hit, but checked for safety anyway */ - return; + goto out; } worklist_capacity = worklist_capacity * 3 / 2; worklist = erealloc(worklist, sizeof(dom_deep_ns_redef_item) * worklist_capacity); @@ -472,6 +472,7 @@ static void dom_deep_ns_redef(xmlNodePtr node, xmlNsPtr ns_to_redefine) } } +out: efree(worklist); } diff --git a/ext/dom/php_dom.c b/ext/dom/php_dom.c index f008d58089bc3..5ce98a4aeb3f7 100644 --- a/ext/dom/php_dom.c +++ b/ext/dom/php_dom.c @@ -1713,6 +1713,8 @@ static zval *dom_nodelist_read_dimension(zend_object *object, zval *offset, int return NULL; } + ZVAL_DEREF(offset); + zend_long lval; if (dom_nodemap_or_nodelist_process_offset_as_named(offset, &lval)) { /* does not support named lookup */ @@ -1726,6 +1728,8 @@ static zval *dom_nodelist_read_dimension(zend_object *object, zval *offset, int static int dom_nodelist_has_dimension(zend_object *object, zval *member, int check_empty) { + ZVAL_DEREF(member); + zend_long offset; if (dom_nodemap_or_nodelist_process_offset_as_named(member, &offset)) { /* does not support named lookup */ @@ -1785,6 +1789,8 @@ static zval *dom_nodemap_read_dimension(zend_object *object, zval *offset, int t return NULL; } + ZVAL_DEREF(offset); + zend_long lval; if (dom_nodemap_or_nodelist_process_offset_as_named(offset, &lval)) { /* exceptional case, switch to named lookup */ @@ -1804,6 +1810,8 @@ static zval *dom_nodemap_read_dimension(zend_object *object, zval *offset, int t static int dom_nodemap_has_dimension(zend_object *object, zval *member, int check_empty) { + ZVAL_DEREF(member); + zend_long offset; if (dom_nodemap_or_nodelist_process_offset_as_named(member, &offset)) { /* exceptional case, switch to named lookup */ diff --git a/ext/dom/tests/DOMNamedNodeMap_string_references.phpt b/ext/dom/tests/DOMNamedNodeMap_string_references.phpt new file mode 100644 index 0000000000000..f6a79286b9132 --- /dev/null +++ b/ext/dom/tests/DOMNamedNodeMap_string_references.phpt @@ -0,0 +1,64 @@ +--TEST-- +DOMNamedNodeMap string references +--EXTENSIONS-- +dom +--FILE-- +loadXML(''); + +$attributes = $dom->documentElement->attributes; + +var_dump(isset($attributes['href']), $attributes['href']->value); + +var_dump(isset($attributes['foo']), $attributes['foo']->value); + +$str = 'href'; +$ref =& $str; +var_dump(isset($attributes[$ref]), $attributes[$ref]->value); + +$str = 'foo'; +$ref =& $str; +var_dump(isset($attributes[$ref]), $attributes[$ref]->value); + +$str = 'this does not exist'; +$ref =& $str; +var_dump(isset($attributes[$ref]), $attributes[$ref]); + +$str = '0'; +$ref =& $str; +var_dump(isset($attributes[$ref]), $attributes[$ref]->value); + +$str = '1'; +$ref =& $str; +var_dump(isset($attributes[$ref]), $attributes[$ref]->value); + +$int = 0; +$ref =& $int; +var_dump(isset($attributes[$ref]), $attributes[$ref]->value); + +$int = 1; +$ref =& $int; +var_dump(isset($attributes[$ref]), $attributes[$ref]->value); + +?> +--EXPECT-- +bool(true) +string(2) "hi" +bool(true) +string(3) "bar" +bool(true) +string(2) "hi" +bool(true) +string(3) "bar" +bool(false) +NULL +bool(true) +string(2) "hi" +bool(true) +string(3) "bar" +bool(true) +string(2) "hi" +bool(true) +string(3) "bar" diff --git a/ext/dom/tests/bug67949.phpt b/ext/dom/tests/bug67949.phpt index 270beb02b494c..f087633bdfe6f 100644 --- a/ext/dom/tests/bug67949.phpt +++ b/ext/dom/tests/bug67949.phpt @@ -5,6 +5,8 @@ dom --FILE-- data hello world @@ -14,57 +16,56 @@ $doc->loadHTML($html); $nodes = $doc->getElementsByTagName('div'); -echo "testing has_dimension\n"; +echo "--- testing has_dimension ---\n"; var_dump(isset($nodes[0])); var_dump(isset($nodes[1])); var_dump(isset($nodes[-1])); -echo "testing property access\n"; +echo "--- testing property access ---\n"; var_dump($nodes[0]->textContent); var_dump($nodes[1]->textContent); -echo "testing offset not a long\n"; +echo "--- testing offset not a long: array ---\n"; $offset = ['test']; var_dump($offset); var_dump(isset($nodes[$offset]), $nodes[$offset]->textContent); -var_dump($offset); -$something = 'test'; +echo "--- testing offset not a long: Reference to string ---\n"; +$something = 'href'; $offset = &$something; var_dump($offset); var_dump(isset($nodes[$offset]), $nodes[$offset]->textContent); -var_dump($offset); +echo "--- testing offset not a long: string ---\n"; $offset = 'test'; var_dump($offset); var_dump(isset($nodes[$offset]), $nodes[$offset]->textContent); -var_dump($offset); -echo "testing read_dimension with null offset\n"; +echo "--- testing read_dimension with null offset ---\n"; try { var_dump($nodes[][] = 1); } catch (Error $e) { echo $e->getMessage(), "\n"; } -echo "testing attribute access\n"; +echo "--- testing attribute access ---\n"; $anchor = $doc->getElementsByTagName('a')[0]; var_dump($anchor->attributes[0]->name); echo "==DONE==\n"; ?> --EXPECTF-- -testing has_dimension +--- testing has_dimension --- bool(true) bool(false) bool(false) -testing property access +--- testing property access --- string(4) "data" Warning: Attempt to read property "textContent" on null in %s on line %d NULL -testing offset not a long +--- testing offset not a long: array --- array(1) { [0]=> string(4) "test" @@ -73,20 +74,20 @@ array(1) { Warning: Attempt to read property "textContent" on null in %s on line %d bool(false) NULL -array(1) { - [0]=> - string(4) "test" -} -string(4) "test" -bool(true) -string(4) "data" -string(4) "test" -string(4) "test" -bool(true) -string(4) "data" +--- testing offset not a long: Reference to string --- +string(4) "href" + +Warning: Attempt to read property "textContent" on null in %s on line %d +bool(false) +NULL +--- testing offset not a long: string --- string(4) "test" -testing read_dimension with null offset + +Warning: Attempt to read property "textContent" on null in %s on line %d +bool(false) +NULL +--- testing read_dimension with null offset --- Cannot access DOMNodeList without offset -testing attribute access +--- testing attribute access --- string(4) "href" ==DONE== diff --git a/ext/dom/tests/bug79971_2.phpt b/ext/dom/tests/bug79971_2.phpt index c4e6b1e4e0933..f5bee66302b0f 100644 --- a/ext/dom/tests/bug79971_2.phpt +++ b/ext/dom/tests/bug79971_2.phpt @@ -1,9 +1,7 @@ --TEST-- Bug #79971 (special character is breaking the path in xml function) ---SKIPIF-- - +--EXTENSIONS-- +dom --FILE-- --FILE-- diff --git a/ext/fileinfo/libmagic.patch b/ext/fileinfo/libmagic.patch index a0c62be524f04..8fb5efbcac07f 100644 --- a/ext/fileinfo/libmagic.patch +++ b/ext/fileinfo/libmagic.patch @@ -1,6 +1,6 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c --- libmagic.orig/apprentice.c 2022-09-13 20:46:07.000000000 +0200 -+++ libmagic/apprentice.c 2022-10-02 20:39:14.879183555 +0200 ++++ libmagic/apprentice.c 2023-10-25 17:56:17.066628832 +0200 @@ -48,7 +48,9 @@ #ifdef QUICK #include @@ -864,7 +864,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c break; diff -u libmagic.orig/ascmagic.c libmagic/ascmagic.c --- libmagic.orig/ascmagic.c 2022-09-13 20:40:30.000000000 +0200 -+++ libmagic/ascmagic.c 2022-10-02 15:56:16.390142333 +0200 ++++ libmagic/ascmagic.c 2024-02-13 21:14:11.091069093 +0100 @@ -96,7 +96,7 @@ rv = file_ascmagic_with_encoding(ms, &bb, ubuf, ulen, code, type, text); @@ -874,7 +874,7 @@ diff -u libmagic.orig/ascmagic.c libmagic/ascmagic.c return rv; } -@@ -143,7 +143,7 @@ +@@ -143,13 +143,15 @@ /* malloc size is a conservative overestimate; could be improved, or at least realloced after conversion. */ mlen = ulen * 6; @@ -883,7 +883,16 @@ diff -u libmagic.orig/ascmagic.c libmagic/ascmagic.c file_oomem(ms, mlen); goto done; } -@@ -273,8 +273,8 @@ + if ((utf8_end = encode_utf8(utf8_buf, mlen, ubuf, ulen)) +- == NULL) ++ == NULL) { ++ rv = 0; + goto done; ++ } + buffer_init(&bb, b->fd, &b->st, utf8_buf, + CAST(size_t, utf8_end - utf8_buf)); + +@@ -273,8 +275,8 @@ goto done; if (has_long_lines) @@ -894,7 +903,7 @@ diff -u libmagic.orig/ascmagic.c libmagic/ascmagic.c goto done; /* -@@ -330,7 +330,8 @@ +@@ -330,7 +332,8 @@ } rv = 1; done: @@ -906,7 +915,7 @@ diff -u libmagic.orig/ascmagic.c libmagic/ascmagic.c } diff -u libmagic.orig/buffer.c libmagic/buffer.c --- libmagic.orig/buffer.c 2022-09-13 20:34:20.000000000 +0200 -+++ libmagic/buffer.c 2022-10-02 15:56:16.390142333 +0200 ++++ libmagic/buffer.c 2023-10-25 17:56:17.069962152 +0200 @@ -31,19 +31,21 @@ #endif /* lint */ @@ -960,7 +969,7 @@ diff -u libmagic.orig/buffer.c libmagic/buffer.c } diff -u libmagic.orig/cdf.c libmagic/cdf.c --- libmagic.orig/cdf.c 2022-09-13 20:34:25.000000000 +0200 -+++ libmagic/cdf.c 2022-10-02 15:56:16.390142333 +0200 ++++ libmagic/cdf.c 2023-10-25 17:56:17.069962152 +0200 @@ -43,7 +43,9 @@ #include #endif @@ -1191,7 +1200,7 @@ diff -u libmagic.orig/cdf.c libmagic/cdf.c #endif diff -u libmagic.orig/cdf.h libmagic/cdf.h --- libmagic.orig/cdf.h 2022-09-13 20:34:29.000000000 +0200 -+++ libmagic/cdf.h 2022-10-02 15:56:16.390142333 +0200 ++++ libmagic/cdf.h 2023-10-25 17:56:17.069962152 +0200 @@ -37,8 +37,6 @@ #ifdef WIN32 @@ -1203,7 +1212,7 @@ diff -u libmagic.orig/cdf.h libmagic/cdf.h #define timespec timeval diff -u libmagic.orig/compress.c libmagic/compress.c --- libmagic.orig/compress.c 2022-09-13 20:34:42.000000000 +0200 -+++ libmagic/compress.c 2022-10-02 15:56:16.390142333 +0200 ++++ libmagic/compress.c 2023-10-25 17:56:17.069962152 +0200 @@ -63,13 +63,14 @@ #if defined(HAVE_SYS_TIME_H) #include @@ -1312,7 +1321,7 @@ diff -u libmagic.orig/compress.c libmagic/compress.c +#endif diff -u libmagic.orig/der.c libmagic/der.c --- libmagic.orig/der.c 2022-09-13 20:34:54.000000000 +0200 -+++ libmagic/der.c 2022-10-02 15:56:16.390142333 +0200 ++++ libmagic/der.c 2023-10-25 17:56:17.069962152 +0200 @@ -54,7 +54,9 @@ #include "magic.h" #include "der.h" @@ -1325,7 +1334,7 @@ diff -u libmagic.orig/der.c libmagic/der.c #endif diff -u libmagic.orig/elfclass.h libmagic/elfclass.h --- libmagic.orig/elfclass.h 2022-09-13 20:35:11.000000000 +0200 -+++ libmagic/elfclass.h 2022-10-02 03:02:46.697523453 +0200 ++++ libmagic/elfclass.h 2023-08-30 22:16:33.784980199 +0200 @@ -41,7 +41,7 @@ return toomany(ms, "program headers", phnum); flags |= FLAGS_IS_CORE; @@ -1355,7 +1364,7 @@ diff -u libmagic.orig/elfclass.h libmagic/elfclass.h CAST(int, elf_getu16(swap, elfhdr.e_shstrndx)), diff -u libmagic.orig/encoding.c libmagic/encoding.c --- libmagic.orig/encoding.c 2022-09-13 20:46:07.000000000 +0200 -+++ libmagic/encoding.c 2022-10-02 15:56:16.394142341 +0200 ++++ libmagic/encoding.c 2023-10-25 17:56:17.069962152 +0200 @@ -97,7 +97,7 @@ nbytes = ms->encoding_max; @@ -1391,7 +1400,7 @@ diff -u libmagic.orig/encoding.c libmagic/encoding.c } diff -u libmagic.orig/file.h libmagic/file.h --- libmagic.orig/file.h 2022-09-13 20:35:30.000000000 +0200 -+++ libmagic/file.h 2022-10-02 15:56:16.394142341 +0200 ++++ libmagic/file.h 2023-10-25 17:56:17.069962152 +0200 @@ -33,9 +33,7 @@ #ifndef __file_h__ #define __file_h__ @@ -1570,7 +1579,7 @@ diff -u libmagic.orig/file.h libmagic/file.h #define QUICK diff -u libmagic.orig/fsmagic.c libmagic/fsmagic.c --- libmagic.orig/fsmagic.c 2022-09-13 20:36:53.000000000 +0200 -+++ libmagic/fsmagic.c 2022-10-02 15:56:16.394142341 +0200 ++++ libmagic/fsmagic.c 2023-10-25 17:56:17.069962152 +0200 @@ -66,26 +66,10 @@ # define minor(dev) ((dev) & 0xff) #endif @@ -1863,7 +1872,7 @@ diff -u libmagic.orig/fsmagic.c libmagic/fsmagic.c case S_IFSOCK: diff -u libmagic.orig/funcs.c libmagic/funcs.c --- libmagic.orig/funcs.c 2022-09-13 20:46:07.000000000 +0200 -+++ libmagic/funcs.c 2022-10-02 15:56:16.394142341 +0200 ++++ libmagic/funcs.c 2023-10-25 17:56:17.069962152 +0200 @@ -66,7 +66,7 @@ private void file_clearbuf(struct magic_set *ms) @@ -2167,7 +2176,7 @@ diff -u libmagic.orig/funcs.c libmagic/funcs.c file_clear_closexec(int fd) { diff -u libmagic.orig/magic.c libmagic/magic.c --- libmagic.orig/magic.c 2022-09-13 20:37:57.000000000 +0200 -+++ libmagic/magic.c 2022-10-02 15:56:16.394142341 +0200 ++++ libmagic/magic.c 2023-10-25 17:56:17.069962152 +0200 @@ -25,11 +25,6 @@ * SUCH DAMAGE. */ @@ -2640,8 +2649,8 @@ diff -u libmagic.orig/magic.c libmagic/magic.c } return file_getbuffer(ms); diff -u libmagic.orig/magic.h libmagic/magic.h ---- libmagic.orig/magic.h 2022-10-02 20:59:55.617810794 +0200 -+++ libmagic/magic.h 2022-10-02 15:56:16.394142341 +0200 +--- libmagic.orig/magic.h 2024-02-13 21:14:59.340250330 +0100 ++++ libmagic/magic.h 2023-10-25 17:56:17.069962152 +0200 @@ -126,6 +126,7 @@ const char *magic_getpath(const char *, int); @@ -2652,7 +2661,7 @@ diff -u libmagic.orig/magic.h libmagic/magic.h diff -u libmagic.orig/print.c libmagic/print.c --- libmagic.orig/print.c 2022-09-13 20:38:34.000000000 +0200 -+++ libmagic/print.c 2022-10-02 15:56:16.394142341 +0200 ++++ libmagic/print.c 2023-10-25 17:56:17.069962152 +0200 @@ -73,7 +73,7 @@ if (m->mask_op & FILE_OPINVERSE) (void) fputc('~', stderr); @@ -2709,7 +2718,7 @@ diff -u libmagic.orig/print.c libmagic/print.c goto out; diff -u libmagic.orig/readcdf.c libmagic/readcdf.c --- libmagic.orig/readcdf.c 2022-09-13 20:38:40.000000000 +0200 -+++ libmagic/readcdf.c 2022-10-02 15:56:16.394142341 +0200 ++++ libmagic/readcdf.c 2023-10-25 17:56:17.069962152 +0200 @@ -31,7 +31,9 @@ #include @@ -2829,7 +2838,7 @@ diff -u libmagic.orig/readcdf.c libmagic/readcdf.c if (i != -1) diff -u libmagic.orig/softmagic.c libmagic/softmagic.c --- libmagic.orig/softmagic.c 2022-09-13 20:46:07.000000000 +0200 -+++ libmagic/softmagic.c 2022-10-02 20:58:58.073503436 +0200 ++++ libmagic/softmagic.c 2023-10-25 17:56:17.069962152 +0200 @@ -43,7 +43,7 @@ #include #include "der.h" diff --git a/ext/fileinfo/libmagic/ascmagic.c b/ext/fileinfo/libmagic/ascmagic.c index acd5089cb1900..0372b8e5c0b8d 100644 --- a/ext/fileinfo/libmagic/ascmagic.c +++ b/ext/fileinfo/libmagic/ascmagic.c @@ -148,8 +148,10 @@ file_ascmagic_with_encoding(struct magic_set *ms, const struct buffer *b, goto done; } if ((utf8_end = encode_utf8(utf8_buf, mlen, ubuf, ulen)) - == NULL) + == NULL) { + rv = 0; goto done; + } buffer_init(&bb, b->fd, &b->st, utf8_buf, CAST(size_t, utf8_end - utf8_buf)); diff --git a/ext/fileinfo/tests/gh13344.phpt b/ext/fileinfo/tests/gh13344.phpt new file mode 100644 index 0000000000000..a2074af8a0bf1 --- /dev/null +++ b/ext/fileinfo/tests/gh13344.phpt @@ -0,0 +1,12 @@ +--TEST-- +GH-13344 (finfo::buffer(): Failed identify data 0:(null)) +--EXTENSIONS-- +fileinfo +--FILE-- +buffer($data); +echo $mime_type; +?> +--EXPECT-- +application/octet-stream; charset=utf-32le diff --git a/ext/filter/tests/bug77221.phpt b/ext/filter/tests/bug77221.phpt index 307a83898ac44..f94a14dee2de8 100644 --- a/ext/filter/tests/bug77221.phpt +++ b/ext/filter/tests/bug77221.phpt @@ -1,9 +1,7 @@ --TEST-- Bug #77221 (Request IP address filter flag to exclude non-global IP addresses) ---SKIPIF-- - +--EXTENSIONS-- +filter --FILE-- +--EXTENSIONS-- +filter --FILE-- +#include +#include + +/* A custom gdErrorMethod */ +void exit1(int priority, const char *format, va_list args) { + _exit(1); +} + +/* Override the default gd_error_method with one that + actually causes the program to return an error. */ +int main(int argc, char** argv) { + m4_if([$1],[Xpm], + [char* f = "test.xpm"], + [FILE* f = NULL]); + gdSetErrorMethod(exit1); + gdImagePtr p = gdImageCreateFrom$1(f); + return 0; +}])],[ + AC_MSG_RESULT([yes]) + AC_DEFINE($2, 1, [Does gdImageCreateFrom$1 work?]) + ],[ + AC_MSG_RESULT([no]) + ],[ + AC_MSG_RESULT([no]) + ]) + AC_LANG_POP([C]) + LIBS="${old_LIBS}" +]) + AC_DEFUN([PHP_GD_CHECK_VERSION],[ - PHP_CHECK_LIBRARY(gd, gdImageCreateFromPng, [AC_DEFINE(HAVE_GD_PNG, 1, [ ])], [], [ $GD_SHARED_LIBADD ]) - PHP_CHECK_LIBRARY(gd, gdImageCreateFromAvif, [AC_DEFINE(HAVE_GD_AVIF, 1, [ ])], [], [ $GD_SHARED_LIBADD ]) - PHP_CHECK_LIBRARY(gd, gdImageCreateFromWebp, [AC_DEFINE(HAVE_GD_WEBP, 1, [ ])], [], [ $GD_SHARED_LIBADD ]) - PHP_CHECK_LIBRARY(gd, gdImageCreateFromJpeg, [AC_DEFINE(HAVE_GD_JPG, 1, [ ])], [], [ $GD_SHARED_LIBADD ]) - PHP_CHECK_LIBRARY(gd, gdImageCreateFromXpm, [AC_DEFINE(HAVE_GD_XPM, 1, [ ])], [], [ $GD_SHARED_LIBADD ]) - PHP_CHECK_LIBRARY(gd, gdImageCreateFromBmp, [AC_DEFINE(HAVE_GD_BMP, 1, [ ])], [], [ $GD_SHARED_LIBADD ]) - PHP_CHECK_LIBRARY(gd, gdImageCreateFromTga, [AC_DEFINE(HAVE_GD_TGA, 1, [ ])], [], [ $GD_SHARED_LIBADD ]) - PHP_CHECK_LIBRARY(gd, gdImageStringFT, [AC_DEFINE(HAVE_GD_FREETYPE, 1, [ ])], [], [ $GD_SHARED_LIBADD ]) + PHP_GD_CHECK_FORMAT([Png], [HAVE_GD_PNG]) + PHP_GD_CHECK_FORMAT([Avif], [HAVE_GD_AVIF]) + PHP_GD_CHECK_FORMAT([Webp], [HAVE_GD_WEBP]) + PHP_GD_CHECK_FORMAT([Jpeg], [HAVE_GD_JPG]) + PHP_GD_CHECK_FORMAT([Xpm], [HAVE_GD_XPM]) + PHP_GD_CHECK_FORMAT([Bmp], [HAVE_GD_BMP]) + PHP_GD_CHECK_FORMAT([Tga], [HAVE_GD_TGA]) + PHP_CHECK_LIBRARY(gd, gdFontCacheShutdown, [AC_DEFINE(HAVE_GD_FREETYPE, 1, [ ])], [], [ $GD_SHARED_LIBADD ]) PHP_CHECK_LIBRARY(gd, gdVersionString, [AC_DEFINE(HAVE_GD_LIBVERSION, 1, [ ])], [], [ $GD_SHARED_LIBADD ]) PHP_CHECK_LIBRARY(gd, gdImageGetInterpolationMethod, [AC_DEFINE(HAVE_GD_GET_INTERPOLATION, 1, [ ])], [], [ $GD_SHARED_LIBADD ]) ]) diff --git a/ext/intl/tests/gh10647.phpt b/ext/intl/tests/gh10647.phpt index 61c6b87e0ddec..34bac8c8f7636 100644 --- a/ext/intl/tests/gh10647.phpt +++ b/ext/intl/tests/gh10647.phpt @@ -1,9 +1,7 @@ --TEST-- Bug GH-10647 (Spoofchecker::isSuspicious $errorCode always null) ---SKIPIF-- - +--EXTENSIONS-- +intl --FILE-- +--EXTENSIONS-- +intl --FILE-- +--EXTENSIONS-- +intl --FILE-- +--EXTENSIONS-- +mbstring --INI-- sendmail_path={MAIL:{PWD}/gh8086.eml} mail.mixed_lf_and_crlf=on diff --git a/ext/mysqlnd/mysqlnd_wireprotocol.c b/ext/mysqlnd/mysqlnd_wireprotocol.c index fce042ec5be5c..14cbe518bebf8 100644 --- a/ext/mysqlnd/mysqlnd_wireprotocol.c +++ b/ext/mysqlnd/mysqlnd_wireprotocol.c @@ -2467,8 +2467,10 @@ MYSQLND_METHOD(mysqlnd_protocol, send_command_handle_OK)( payload_decoder_factory->m.init_ok_packet(&ok_response); DBG_ENTER("mysqlnd_protocol::send_command_handle_OK"); if (FAIL == (ret = PACKET_READ(payload_decoder_factory->conn, &ok_response))) { - DBG_INF("Error while reading OK packet"); - SET_CLIENT_ERROR(error_info, CR_MALFORMED_PACKET, UNKNOWN_SQLSTATE, "Malformed packet"); + if (error_info->error_no != CR_SERVER_GONE_ERROR) { + DBG_INF("Error while reading OK packet"); + SET_CLIENT_ERROR(error_info, CR_MALFORMED_PACKET, UNKNOWN_SQLSTATE, "Malformed packet"); + } goto end; } DBG_INF_FMT("OK from server"); diff --git a/ext/opcache/config.m4 b/ext/opcache/config.m4 index 705ca0eb3dc70..44a55a90dfd5d 100644 --- a/ext/opcache/config.m4 +++ b/ext/opcache/config.m4 @@ -42,6 +42,10 @@ if test "$PHP_OPCACHE" != "no"; then PHP_OPCACHE_JIT=no ;; esac + if test "$host_vendor" = "apple" && test "$host_cpu" = "aarch64" && test "$PHP_THREAD_SAFETY" = "yes"; then + AC_MSG_WARN([JIT not supported on Apple Silicon with ZTS]) + PHP_OPCACHE_JIT=no + fi fi if test "$PHP_OPCACHE_JIT" = "yes"; then diff --git a/ext/opcache/jit/zend_jit_vm_helpers.c b/ext/opcache/jit/zend_jit_vm_helpers.c index 4eca7d78f1e86..9b92d9ebc6b85 100644 --- a/ext/opcache/jit/zend_jit_vm_helpers.c +++ b/ext/opcache/jit/zend_jit_vm_helpers.c @@ -643,6 +643,16 @@ zend_jit_trace_stop ZEND_FASTCALL zend_jit_trace_execute(zend_execute_data *ex, return ZEND_JIT_TRACE_STOP_EXCEPTION; } + trace_flags = ZEND_OP_TRACE_INFO(opline, offset)->trace_flags; + if (trace_flags & ZEND_JIT_TRACE_UNSUPPORTED) { + TRACE_END(ZEND_JIT_TRACE_END, ZEND_JIT_TRACE_STOP_NOT_SUPPORTED, opline); +#ifdef HAVE_GCC_GLOBAL_REGS + execute_data = save_execute_data; + opline = save_opline; +#endif + return ZEND_JIT_TRACE_STOP_NOT_SUPPORTED; + } + if (prev_call) { int ret = zend_jit_trace_record_fake_init_call(prev_call, trace_buffer, idx, is_megamorphic); if (ret < 0) { diff --git a/ext/opcache/jit/zend_jit_x86.dasc b/ext/opcache/jit/zend_jit_x86.dasc index e4d7a745cba2d..7c92d88351a84 100644 --- a/ext/opcache/jit/zend_jit_x86.dasc +++ b/ext/opcache/jit/zend_jit_x86.dasc @@ -2901,6 +2901,14 @@ static int zend_jit_setup(void) asm ("movq _tsrm_ls_cache@gottpoff(%%rip),%0" : "=r" (ret)); tsrm_ls_cache_tcb_offset = ret; +#elif defined(__MUSL__) + size_t *ti; + + __asm__( + "leaq _tsrm_ls_cache@tlsgd(%%rip), %0\n" + : "=a" (ti)); + tsrm_tls_offset = ti[1]; + tsrm_tls_index = ti[0] * 8; #else size_t *ti; diff --git a/ext/openssl/tests/bug50293.phpt b/ext/openssl/tests/bug50293.phpt index 8eae2914bd195..0fc2bc371a735 100644 --- a/ext/openssl/tests/bug50293.phpt +++ b/ext/openssl/tests/bug50293.phpt @@ -1,9 +1,7 @@ --TEST-- Bug #50293 (Several openssl functions ignore the VCWD) ---SKIPIF-- - +--EXTENSIONS-- +openssl --FILE-- +--EXTENSIONS-- +openssl --FILE-- column_count; colno++) { + if (zend_string_equals(stmt->columns[colno].name, name)) { + fetch_value(stmt, rv, colno, NULL); + return rv; + } + } + return NULL; +} + +static zval *row_read_column_number(pdo_stmt_t *stmt, zend_long column, zval *rv) +{ + if (column >= 0 && column < stmt->column_count) { + fetch_value(stmt, rv, column, NULL); + return rv; + } + return NULL; +} static zval *row_prop_read(zend_object *object, zend_string *name, int type, void **cache_slot, zval *rv) { pdo_row_t *row = (pdo_row_t *)object; pdo_stmt_t *stmt = row->stmt; - int colno = -1; zend_long lval; + zval *retval; ZEND_ASSERT(stmt); ZVAL_NULL(rv); if (zend_string_equals_literal(name, "queryString")) { return zend_std_read_property(&stmt->std, name, type, cache_slot, rv); - } else if (is_numeric_string(ZSTR_VAL(name), ZSTR_LEN(name), &lval, NULL, 0) == IS_LONG) { - if (lval >= 0 && lval < stmt->column_count) { - fetch_value(stmt, rv, lval, NULL); - } + } else if (is_numeric_str_function(name, &lval, /* dval */ NULL) == IS_LONG) { + retval = row_read_column_number(stmt, lval, rv); } else { - /* TODO: replace this with a hash of available column names to column - * numbers */ - for (colno = 0; colno < stmt->column_count; colno++) { - if (zend_string_equals(stmt->columns[colno].name, name)) { - fetch_value(stmt, rv, colno, NULL); - return rv; - } - } + retval = row_read_column_name(stmt, name, rv); } - - return rv; + if (UNEXPECTED(!retval)) { + // TODO throw an error on master + //if (type != BP_VAR_IS) { + // if (is_numeric) { + // zend_value_error("Invalid column index"); + // } else { + // zend_throw_error(NULL, "No column named \"%s\" exists", ZSTR_VAL(name)); + // } + //} + //return &EG(uninitialized_zval); + ZVAL_NULL(rv); + return rv; + } + return retval; } -static zval *row_dim_read(zend_object *object, zval *member, int type, zval *rv) +static zval *row_dim_read(zend_object *object, zval *offset, int type, zval *rv) { - pdo_row_t *row = (pdo_row_t *)object; - pdo_stmt_t *stmt = row->stmt; - int colno = -1; - zend_long lval; - ZEND_ASSERT(stmt); + if (UNEXPECTED(!offset)) { + zend_throw_error(NULL, "Cannot append to PDORow offset"); + return NULL; + } + if (Z_TYPE_P(offset) == IS_LONG) { + pdo_row_t *row = (pdo_row_t *)object; + pdo_stmt_t *stmt = row->stmt; + ZEND_ASSERT(stmt); - ZVAL_NULL(rv); - if (Z_TYPE_P(member) == IS_LONG) { - if (Z_LVAL_P(member) >= 0 && Z_LVAL_P(member) < stmt->column_count) { - fetch_value(stmt, rv, Z_LVAL_P(member), NULL); - } - } else if (Z_TYPE_P(member) == IS_STRING - && is_numeric_string(Z_STRVAL_P(member), Z_STRLEN_P(member), &lval, NULL, 0) == IS_LONG) { - if (lval >= 0 && lval < stmt->column_count) { - fetch_value(stmt, rv, lval, NULL); + ZVAL_NULL(rv); + if (Z_LVAL_P(offset) >= 0 && Z_LVAL_P(offset) < stmt->column_count) { + fetch_value(stmt, rv, Z_LVAL_P(offset), NULL); } + return rv; } else { - if (!try_convert_to_string(member)) { - return &EG(uninitialized_zval); - } - - if (zend_string_equals_literal(Z_STR_P(member), "queryString")) { - return zend_std_read_property(&stmt->std, Z_STR_P(member), type, NULL, rv); - } - - /* TODO: replace this with a hash of available column names to column - * numbers */ - for (colno = 0; colno < stmt->column_count; colno++) { - if (zend_string_equals(stmt->columns[colno].name, Z_STR_P(member))) { - fetch_value(stmt, rv, colno, NULL); - return rv; - } + zend_string *member = zval_try_get_string(offset); + if (!member) { + return NULL; } + zval *result = row_prop_read(object, member, type, NULL, rv); + zend_string_release_ex(member, false); + return result; } - - return rv; } static zval *row_prop_write(zend_object *object, zend_string *name, zval *value, void **cache_slot) @@ -2332,75 +2342,67 @@ static zval *row_prop_write(zend_object *object, zend_string *name, zval *value, static void row_dim_write(zend_object *object, zval *member, zval *value) { - zend_throw_error(NULL, "Cannot write to PDORow offset"); + if (!member) { + zend_throw_error(NULL, "Cannot append to PDORow offset"); + } else { + zend_throw_error(NULL, "Cannot write to PDORow offset"); + } } static int row_prop_exists(zend_object *object, zend_string *name, int check_empty, void **cache_slot) { pdo_row_t *row = (pdo_row_t *)object; pdo_stmt_t *stmt = row->stmt; - int colno = -1; zend_long lval; + zval tmp_val; + zval *retval = NULL; ZEND_ASSERT(stmt); - if (is_numeric_string(ZSTR_VAL(name), ZSTR_LEN(name), &lval, NULL, 0) == IS_LONG) { - return lval >=0 && lval < stmt->column_count; + if (is_numeric_str_function(name, &lval, /* dval */ NULL) == IS_LONG) { + retval = row_read_column_number(stmt, lval, &tmp_val); + } else { + retval = row_read_column_name(stmt, name, &tmp_val); } - /* TODO: replace this with a hash of available column names to column - * numbers */ - for (colno = 0; colno < stmt->column_count; colno++) { - if (zend_string_equals(stmt->columns[colno].name, name)) { - int res; - zval val; - - fetch_value(stmt, &val, colno, NULL); - res = check_empty ? i_zend_is_true(&val) : Z_TYPE(val) != IS_NULL; - zval_ptr_dtor_nogc(&val); - - return res; - } + if (!retval) { + return false; } - - return 0; + ZEND_ASSERT(retval == &tmp_val); + int res = check_empty ? i_zend_is_true(retval) : Z_TYPE(tmp_val) != IS_NULL; + zval_ptr_dtor_nogc(retval); + return res; } -static int row_dim_exists(zend_object *object, zval *member, int check_empty) +static int row_dim_exists(zend_object *object, zval *offset, int check_empty) { - pdo_row_t *row = (pdo_row_t *)object; - pdo_stmt_t *stmt = row->stmt; - int colno = -1; - zend_long lval; - ZEND_ASSERT(stmt); + if (Z_TYPE_P(offset) == IS_LONG) { + pdo_row_t *row = (pdo_row_t *)object; + pdo_stmt_t *stmt = row->stmt; + ZEND_ASSERT(stmt); + zend_long column = Z_LVAL_P(offset); - if (Z_TYPE_P(member) == IS_LONG) { - return Z_LVAL_P(member) >= 0 && Z_LVAL_P(member) < stmt->column_count; - } else if (Z_TYPE_P(member) == IS_STRING) { - if (is_numeric_string(Z_STRVAL_P(member), Z_STRLEN_P(member), &lval, NULL, 0) == IS_LONG) { - return lval >=0 && lval < stmt->column_count; + if (!check_empty) { + return column >= 0 && column < stmt->column_count; } + + zval tmp_val; + zval *retval = row_read_column_number(stmt, column, &tmp_val); + if (!retval) { + return false; + } + ZEND_ASSERT(retval == &tmp_val); + int res = check_empty ? i_zend_is_true(retval) : Z_TYPE(tmp_val) != IS_NULL; + zval_ptr_dtor_nogc(retval); + return res; } else { - if (!try_convert_to_string(member)) { + zend_string *member = zval_try_get_string(offset); + if (!member) { return 0; } + int result = row_prop_exists(object, member, check_empty, NULL); + zend_string_release_ex(member, false); + return result; } - - /* TODO: replace this with a hash of available column names to column - * numbers */ - for (colno = 0; colno < stmt->column_count; colno++) { - if (zend_string_equals(stmt->columns[colno].name, Z_STR_P(member))) { - int res; - zval val; - - fetch_value(stmt, &val, colno, NULL); - res = check_empty ? i_zend_is_true(&val) : Z_TYPE(val) != IS_NULL; - zval_ptr_dtor_nogc(&val); - - return res; - } - } - - return 0; } static void row_prop_delete(zend_object *object, zend_string *offset, void **cache_slot) diff --git a/ext/pdo/tests/gh8626.phpt b/ext/pdo/tests/gh8626.phpt index 0a6f81b6a9c00..913d94630a67b 100644 --- a/ext/pdo/tests/gh8626.phpt +++ b/ext/pdo/tests/gh8626.phpt @@ -1,8 +1,9 @@ --TEST-- GH-8626: PDOStatement->execute() failed, then execute successfully, errorInfo() information is incorrect +--EXTENSIONS-- +pdo --SKIPIF-- +--FILE-- +exec('CREATE TABLE ' . TABLE_NAME .' (id int, name varchar(10))'); +$db->exec('INSERT INTO ' . TABLE_NAME .' VALUES (23, \'0\')'); + +$stmt = $db->prepare('SELECT id, name FROM ' . TABLE_NAME); +$stmt->execute(); +$result = $stmt->fetch(PDO::FETCH_LAZY); + +var_dump($result); +var_dump(get_parent_class($result)); + +foreach ([0, "0", "id", "name", 1] as $offset) { + echo 'Offset: ', var_export($offset), PHP_EOL; + $offsetRef = &$offset; + + echo 'Dimension:', PHP_EOL; + echo 'Isset:', PHP_EOL; + var_dump(isset($result[$offset])); + var_dump(isset($result[$offsetRef])); + echo 'Empty:', PHP_EOL; + var_dump(empty($result[$offset])); + var_dump(empty($result[$offsetRef])); + echo 'Null coalesce:', PHP_EOL; + var_dump($result[$offset] ?? "default"); + var_dump($result[$offsetRef] ?? "default"); + echo 'Read:', PHP_EOL; + var_dump($result[$offset]); + var_dump($result[$offsetRef]); + echo 'Property:', PHP_EOL; + echo 'Isset:', PHP_EOL; + var_dump(isset($result->{$offset})); + var_dump(isset($result->{$offsetRef})); + echo 'Empty:', PHP_EOL; + var_dump(empty($result->{$offset})); + var_dump(empty($result->{$offsetRef})); + echo 'Null coalesce:', PHP_EOL; + var_dump($result->{$offset} ?? "default"); + var_dump($result->{$offsetRef} ?? "default"); + echo 'Read:', PHP_EOL; + var_dump($result->{$offset}); + var_dump($result->{$offsetRef}); +} + +echo 'Errors:', PHP_EOL; +try { + $result[0] = 1; +} catch (Error $e) { + echo $e->getMessage(), "\n"; +} +try { + $result[] = 1; +} catch (Error $e) { + echo $e->getMessage(), "\n"; +} +try { + $refResult = &$result[0]; +} catch (Error $e) { + echo $e->getMessage(), "\n"; +} +try { + $refResult = &$result[]; +} catch (Error $e) { + echo $e->getMessage(), "\n"; +} +try { + unset($result[0]); +} catch (Error $e) { + echo $e->getMessage(), "\n"; +} +try { + $result->foo = 1; +} catch (Error $e) { + echo $e->getMessage(), "\n"; +} +try { + unset($result->foo); +} catch (Error $e) { + echo $e->getMessage(), "\n"; +} + +?> +--CLEAN-- +setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT); + +const TABLE_NAME = 'test_pdo_35_pdo_row'; +$db->exec("DROP TABLE " . TABLE_NAME); +?> +--EXPECTF-- +object(PDORow)#3 (3) { + ["queryString"]=> + string(40) "SELECT id, name FROM test_pdo_35_pdo_row" + ["id"]=> + string(2) "23" + ["name"]=> + string(1) "0" +} +bool(false) +Offset: 0 +Dimension: +Isset: +bool(true) +bool(true) +Empty: +bool(false) +bool(false) +Null coalesce: +string(2) "23" +string(2) "23" +Read: +string(2) "23" +string(2) "23" +Property: +Isset: +bool(true) +bool(true) +Empty: +bool(false) +bool(false) +Null coalesce: +string(2) "23" +string(2) "23" +Read: +string(2) "23" +string(2) "23" +Offset: '0' +Dimension: +Isset: +bool(true) +bool(true) +Empty: +bool(false) +bool(false) +Null coalesce: +string(2) "23" +string(2) "23" +Read: +string(2) "23" +string(2) "23" +Property: +Isset: +bool(true) +bool(true) +Empty: +bool(false) +bool(false) +Null coalesce: +string(2) "23" +string(2) "23" +Read: +string(2) "23" +string(2) "23" +Offset: 'id' +Dimension: +Isset: +bool(true) +bool(true) +Empty: +bool(false) +bool(false) +Null coalesce: +string(2) "23" +string(2) "23" +Read: +string(2) "23" +string(2) "23" +Property: +Isset: +bool(true) +bool(true) +Empty: +bool(false) +bool(false) +Null coalesce: +string(2) "23" +string(2) "23" +Read: +string(2) "23" +string(2) "23" +Offset: 'name' +Dimension: +Isset: +bool(true) +bool(true) +Empty: +bool(true) +bool(true) +Null coalesce: +string(1) "0" +string(1) "0" +Read: +string(1) "0" +string(1) "0" +Property: +Isset: +bool(true) +bool(true) +Empty: +bool(true) +bool(true) +Null coalesce: +string(1) "0" +string(1) "0" +Read: +string(1) "0" +string(1) "0" +Offset: 1 +Dimension: +Isset: +bool(true) +bool(true) +Empty: +bool(true) +bool(true) +Null coalesce: +string(1) "0" +string(1) "0" +Read: +string(1) "0" +string(1) "0" +Property: +Isset: +bool(true) +bool(true) +Empty: +bool(true) +bool(true) +Null coalesce: +string(1) "0" +string(1) "0" +Read: +string(1) "0" +string(1) "0" +Errors: +Cannot write to PDORow offset +Cannot append to PDORow offset + +Notice: Indirect modification of overloaded element of PDORow has no effect in %s on line %d +Cannot append to PDORow offset +Cannot unset PDORow offset +Cannot write to PDORow property +Cannot unset PDORow property diff --git a/ext/pdo_pgsql/tests/gh7723.phpt b/ext/pdo_pgsql/tests/gh7723.phpt index bbbf5fd5bc21c..5ba265fc68d39 100644 --- a/ext/pdo_pgsql/tests/gh7723.phpt +++ b/ext/pdo_pgsql/tests/gh7723.phpt @@ -1,8 +1,10 @@ --TEST-- GitHub #7723 (Fix error message allocation of PDO PgSQL) +--EXTENSIONS-- +pdo +pdo_pgsql --SKIPIF-- exec('CREATE TABLE test_pdo_035 (id int)'); -$db->exec('INSERT INTO test_pdo_035 VALUES (23)'); - -$stmt = $db->prepare('SELECT id FROM test_pdo_035'); -$stmt->execute(); -$result = $stmt->fetch(PDO::FETCH_LAZY); - -echo get_class($result), "\n"; -var_dump(get_parent_class($result)); - -try { - $result->foo = 1; -} catch (Error $e) { - echo $e->getMessage(), "\n"; -} -try { - $result[0] = 1; -} catch (Error $e) { - echo $e->getMessage(), "\n"; -} -try { - unset($result->foo); -} catch (Error $e) { - echo $e->getMessage(), "\n"; -} -try { - unset($result[0]); -} catch (Error $e) { - echo $e->getMessage(), "\n"; -} - -?> ---EXPECT-- -PDORow -bool(false) -Cannot write to PDORow property -Cannot write to PDORow offset -Cannot unset PDORow property -Cannot unset PDORow offset diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c index d11c328254a83..4087e61670230 100644 --- a/ext/pgsql/pgsql.c +++ b/ext/pgsql/pgsql.c @@ -1292,7 +1292,7 @@ PHP_FUNCTION(pg_execute) params = (char **)safe_emalloc(sizeof(char *), num_params, 0); ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(pv_param_arr), tmp) { - + ZVAL_DEREF(tmp); if (Z_TYPE_P(tmp) == IS_NULL) { params[i] = NULL; } else { @@ -3702,7 +3702,7 @@ PHP_FUNCTION(pg_send_query_params) params = (char **)safe_emalloc(sizeof(char *), num_params, 0); ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(pv_param_arr), tmp) { - + ZVAL_DEREF(tmp); if (Z_TYPE_P(tmp) == IS_NULL) { params[i] = NULL; } else { @@ -3869,7 +3869,7 @@ PHP_FUNCTION(pg_send_execute) params = (char **)safe_emalloc(sizeof(char *), num_params, 0); ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(pv_param_arr), tmp) { - + ZVAL_DEREF(tmp); if (Z_TYPE_P(tmp) == IS_NULL) { params[i] = NULL; } else { diff --git a/ext/pgsql/tests/gh13354.phpt b/ext/pgsql/tests/gh13354.phpt new file mode 100644 index 0000000000000..1de84acae847d --- /dev/null +++ b/ext/pgsql/tests/gh13354.phpt @@ -0,0 +1,80 @@ +--TEST-- +GH-13354 (null-by-reference handling in pg_execute, pg_send_query_params, pg_send_execute) +--EXTENSIONS-- +pgsql +--SKIPIF-- + +--FILE-- + +--EXPECT-- +pg_execute, null value: t +pg_execute, null value by reference: t +pg_query_params, null value: t +pg_query_params, null value by reference: t +pg_send_query_params, null value: t +pg_send_query_params, null value by reference: t +pg_send_execute, null value: t +pg_send_execute, null value by reference: t diff --git a/ext/phar/tests/GHSA-jqcx-ccgc-xwhv.phpt b/ext/phar/tests/GHSA-jqcx-ccgc-xwhv.phpt index 4e12f05fb62f1..e92a632843f6f 100644 --- a/ext/phar/tests/GHSA-jqcx-ccgc-xwhv.phpt +++ b/ext/phar/tests/GHSA-jqcx-ccgc-xwhv.phpt @@ -1,7 +1,7 @@ --TEST-- GHSA-jqcx-ccgc-xwhv (Buffer overflow and overread in phar_dir_read()) ---SKIPIF-- - +--EXTENSIONS-- +phar --INI-- phar.readonly=0 --FILE-- diff --git a/ext/phar/tests/bug81211.phpt b/ext/phar/tests/bug81211.phpt index 96b1401b40342..fe7b1326aa688 100644 --- a/ext/phar/tests/bug81211.phpt +++ b/ext/phar/tests/bug81211.phpt @@ -1,8 +1,9 @@ --TEST-- Bug #81211 (Symlinks are followed when creating PHAR archive) +--EXTENSIONS-- +phar --SKIPIF-- getDependencies(); var_dump($deps); ?> --EXPECT-- -array(1) { +array(2) { ["libxml"]=> string(8) "Required" + ["domxml"]=> + string(9) "Conflicts" } diff --git a/ext/simplexml/tests/libxml_global_state_entity_loader_bypass.phpt b/ext/simplexml/tests/libxml_global_state_entity_loader_bypass.phpt index 54f9d4941eb72..ae5a29913ebd1 100644 --- a/ext/simplexml/tests/libxml_global_state_entity_loader_bypass.phpt +++ b/ext/simplexml/tests/libxml_global_state_entity_loader_bypass.phpt @@ -1,10 +1,11 @@ --TEST-- GHSA-3qrf-m4j2-pcrr (libxml global state entity loader bypass) +--EXTENSIONS-- +libxml +simplexml +zend_test --SKIPIF-- --FILE-- diff --git a/ext/spl/spl_fixedarray.c b/ext/spl/spl_fixedarray.c index 95ab191b77824..14be941cd338d 100644 --- a/ext/spl/spl_fixedarray.c +++ b/ext/spl/spl_fixedarray.c @@ -89,6 +89,7 @@ static void spl_fixedarray_default_ctor(spl_fixedarray *array) { array->size = 0; array->elements = NULL; + array->cached_resize = -1; } /* Initializes the range [from, to) to null. Does not dtor existing elements. */ @@ -107,6 +108,7 @@ static void spl_fixedarray_init_non_empty_struct(spl_fixedarray *array, zend_lon array->size = 0; /* reset size in case ecalloc() fails */ array->elements = size ? safe_emalloc(size, sizeof(zval), 0) : NULL; array->size = size; + array->cached_resize = -1; } static void spl_fixedarray_init(spl_fixedarray *array, zend_long size) @@ -117,7 +119,6 @@ static void spl_fixedarray_init(spl_fixedarray *array, zend_long size) } else { spl_fixedarray_default_ctor(array); } - array->cached_resize = -1; } /* Copies the range [begin, end) into the fixedarray, beginning at `offset`. diff --git a/ext/spl/tests/gh13531.phpt b/ext/spl/tests/gh13531.phpt new file mode 100644 index 0000000000000..46503ccf22a63 --- /dev/null +++ b/ext/spl/tests/gh13531.phpt @@ -0,0 +1,28 @@ +--TEST-- +GH-13531 (Unable to resize SplfixedArray after being unserialized in PHP 8.2.15) +--FILE-- +setSize(6); +var_dump($unserialized); + +?> +--EXPECT-- +object(SplFixedArray)#2 (6) { + [0]=> + NULL + [1]=> + NULL + [2]=> + NULL + [3]=> + NULL + [4]=> + int(1) + [5]=> + NULL +} diff --git a/ext/standard/array.c b/ext/standard/array.c index 388b15a0879bb..30868a47b5932 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -188,7 +188,7 @@ static zend_always_inline int php_array_key_compare_string_case_unstable_i(Bucke l2 = s->key->len; } else { s2 = zend_print_long_to_buf(buf2 + sizeof(buf2) - 1, s->h); - l2 = buf2 + sizeof(buf2) - 1 - s1; + l2 = buf2 + sizeof(buf2) - 1 - s2; } return zend_binary_strcasecmp_l(s1, l1, s2, l2); } @@ -238,7 +238,7 @@ static int php_array_key_compare_string_natural_general(Bucket *f, Bucket *s, in l2 = s->key->len; } else { s2 = zend_print_long_to_buf(buf2 + sizeof(buf2) - 1, s->h); - l2 = buf2 + sizeof(buf2) - 1 - s1; + l2 = buf2 + sizeof(buf2) - 1 - s2; } return strnatcmp_ex(s1, l1, s2, l2, fold_case); } @@ -901,19 +901,11 @@ static void php_usort(INTERNAL_FUNCTION_PARAMETERS, bucket_compare_func_t compar RETURN_TRUE; } - /* Copy array, so the in-place modifications will not be visible to the callback function. - * Unless there are no other references since we know for sure it won't be visible. */ - bool in_place = zend_may_modify_arg_in_place(array); - if (!in_place) { - arr = zend_array_dup(arr); - } + /* Copy array, so the in-place modifications will not be visible to the callback function */ + arr = zend_array_dup(arr); zend_hash_sort(arr, compare_func, renumber); - if (in_place) { - GC_ADDREF(arr); - } - zval garbage; ZVAL_COPY_VALUE(&garbage, array); ZVAL_ARR(array, arr); diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index 6faef88e10135..746465d9f27a7 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -735,7 +735,7 @@ PHP_FUNCTION(getenv) if (!str) { array_init(return_value); - php_import_environment_variables(return_value); + php_load_environment_variables(return_value); return; } diff --git a/ext/standard/tests/gh13279.phpt b/ext/standard/tests/gh13279.phpt new file mode 100644 index 0000000000000..c39f520e57e08 --- /dev/null +++ b/ext/standard/tests/gh13279.phpt @@ -0,0 +1,18 @@ +--TEST-- +GH-13279: Instable array during in-place modification in uksort +--FILE-- + +===DONE=== +--EXPECT-- +===DONE=== diff --git a/ext/xml/tests/bug26614.inc b/ext/xml/tests/bug26614.inc new file mode 100644 index 0000000000000..1b0c94edb9fbe --- /dev/null +++ b/ext/xml/tests/bug26614.inc @@ -0,0 +1,73 @@ + + + +'; + +// Case 2: replace some characters so that we get comments instead +$xmls["Comment"] =' + + +'; + +// Case 3: replace even more characters so that only textual data is left +$xmls["Text"] =' + +-!-- ATA[ +multi +line +CDATA +block +--- +'; + +function startElement($parser, $name, $attrs) { + printf("<$name> at line %d, col %d (byte %d)\n", + xml_get_current_line_number($parser), + xml_get_current_column_number($parser), + xml_get_current_byte_index($parser)); +} + +function endElement($parser, $name) { + printf(" at line %d, col %d (byte %d)\n", + xml_get_current_line_number($parser), + xml_get_current_column_number($parser), + xml_get_current_byte_index($parser)); +} + +function characterData($parser, $data) { + // dummy +} + +foreach ($xmls as $desc => $xml) { + echo "$desc\n"; + $xml_parser = xml_parser_create(); + xml_set_element_handler($xml_parser, "startElement", "endElement"); + xml_set_character_data_handler($xml_parser, "characterData"); + if (!xml_parse($xml_parser, $xml, true)) + echo "Error: ".xml_error_string(xml_get_error_code($xml_parser))."\n"; + xml_parser_free($xml_parser); +} diff --git a/ext/xml/tests/bug26614.phpt b/ext/xml/tests/bug26614.phpt index 846d9fc65317e..5fb9f9da4ccec 100644 --- a/ext/xml/tests/bug26614.phpt +++ b/ext/xml/tests/bug26614.phpt @@ -4,91 +4,20 @@ Bug #26614 (CDATA sections skipped on line count) xml --SKIPIF-- --FILE-- - - -'; - -// Case 2: replace some characters so that we get comments instead -$xmls["Comment"] =' - - -'; - -// Case 3: replace even more characters so that only textual data is left -$xmls["Text"] =' - --!-- ATA[ -multi -line -CDATA -block ---- -'; - -function startElement($parser, $name, $attrs) { - printf("<$name> at line %d, col %d (byte %d)\n", - xml_get_current_line_number($parser), - xml_get_current_column_number($parser), - xml_get_current_byte_index($parser)); -} - -function endElement($parser, $name) { - printf(" at line %d, col %d (byte %d)\n", - xml_get_current_line_number($parser), - xml_get_current_column_number($parser), - xml_get_current_byte_index($parser)); -} - -function characterData($parser, $data) { - // dummy -} - -foreach ($xmls as $desc => $xml) { - echo "$desc\n"; - $xml_parser = xml_parser_create(); - xml_set_element_handler($xml_parser, "startElement", "endElement"); - xml_set_character_data_handler($xml_parser, "characterData"); - if (!xml_parse($xml_parser, $xml, true)) - echo "Error: ".xml_error_string(xml_get_error_code($xml_parser))."\n"; - xml_parser_free($xml_parser); -} +require __DIR__ . '/bug26614.inc'; ?> --EXPECT-- CDATA at line 2, col 0 (byte 45) - at line 9, col 0 (byte 90) + at line 9, col 0 (byte 89) Comment at line 2, col 0 (byte 45) - at line 9, col 0 (byte 90) + at line 9, col 0 (byte 89) Text at line 2, col 0 (byte 45) - at line 9, col 0 (byte 90) + at line 9, col 0 (byte 89) diff --git a/ext/xml/tests/bug26614_libxml_gte2_11.phpt b/ext/xml/tests/bug26614_libxml_gte2_11.phpt index 9a81b67686d14..f494ddc4c50f9 100644 --- a/ext/xml/tests/bug26614_libxml_gte2_11.phpt +++ b/ext/xml/tests/bug26614_libxml_gte2_11.phpt @@ -4,84 +4,13 @@ Bug #26614 (CDATA sections skipped on line count) xml --SKIPIF-- = 2.11'); ?> --FILE-- - - -'; - -// Case 2: replace some characters so that we get comments instead -$xmls["Comment"] =' - - -'; - -// Case 3: replace even more characters so that only textual data is left -$xmls["Text"] =' - --!-- ATA[ -multi -line -CDATA -block ---- -'; - -function startElement($parser, $name, $attrs) { - printf("<$name> at line %d, col %d (byte %d)\n", - xml_get_current_line_number($parser), - xml_get_current_column_number($parser), - xml_get_current_byte_index($parser)); -} - -function endElement($parser, $name) { - printf(" at line %d, col %d (byte %d)\n", - xml_get_current_line_number($parser), - xml_get_current_column_number($parser), - xml_get_current_byte_index($parser)); -} - -function characterData($parser, $data) { - // dummy -} - -foreach ($xmls as $desc => $xml) { - echo "$desc\n"; - $xml_parser = xml_parser_create(); - xml_set_element_handler($xml_parser, "startElement", "endElement"); - xml_set_character_data_handler($xml_parser, "characterData"); - if (!xml_parse($xml_parser, $xml, true)) - echo "Error: ".xml_error_string(xml_get_error_code($xml_parser))."\n"; - xml_parser_free($xml_parser); -} +require __DIR__ . '/bug26614.inc'; ?> --EXPECTF-- CDATA diff --git a/ext/xml/tests/bug26614_libxml_pre2_11.phpt b/ext/xml/tests/bug26614_libxml_pre2_11.phpt index c581a08e9b8fb..c78f7088e7052 100644 --- a/ext/xml/tests/bug26614_libxml_pre2_11.phpt +++ b/ext/xml/tests/bug26614_libxml_pre2_11.phpt @@ -4,84 +4,13 @@ Bug #26614 (CDATA sections skipped on line count) xml --SKIPIF-- = 21100) die('skip libxml2 test variant for version < 2.11'); ?> --FILE-- - - -'; - -// Case 2: replace some characters so that we get comments instead -$xmls["Comment"] =' - - -'; - -// Case 3: replace even more characters so that only textual data is left -$xmls["Text"] =' - --!-- ATA[ -multi -line -CDATA -block ---- -'; - -function startElement($parser, $name, $attrs) { - printf("<$name> at line %d, col %d (byte %d)\n", - xml_get_current_line_number($parser), - xml_get_current_column_number($parser), - xml_get_current_byte_index($parser)); -} - -function endElement($parser, $name) { - printf(" at line %d, col %d (byte %d)\n", - xml_get_current_line_number($parser), - xml_get_current_column_number($parser), - xml_get_current_byte_index($parser)); -} - -function characterData($parser, $data) { - // dummy -} - -foreach ($xmls as $desc => $xml) { - echo "$desc\n"; - $xml_parser = xml_parser_create(); - xml_set_element_handler($xml_parser, "startElement", "endElement"); - xml_set_character_data_handler($xml_parser, "characterData"); - if (!xml_parse($xml_parser, $xml, true)) - echo "Error: ".xml_error_string(xml_get_error_code($xml_parser))."\n"; - xml_parser_free($xml_parser); -} +require __DIR__ . '/bug26614.inc'; ?> --EXPECTF-- CDATA diff --git a/ext/xml/tests/bug46699.phpt b/ext/xml/tests/bug46699.phpt index 9570ad9231d2e..b921ab39b7d31 100644 --- a/ext/xml/tests/bug46699.phpt +++ b/ext/xml/tests/bug46699.phpt @@ -27,8 +27,8 @@ xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0); xml_parse($parser, $xml); xml_parser_free($parser); ?> ---EXPECT-- - +--EXPECTF-- + 1 2 diff --git a/ext/xml/tests/bug81351.phpt b/ext/xml/tests/bug81351.phpt index 7380a9a937008..319db2ee6877b 100644 --- a/ext/xml/tests/bug81351.phpt +++ b/ext/xml/tests/bug81351.phpt @@ -22,5 +22,5 @@ $error = xml_error_string($code); echo "xml_parse returned $success, xml_get_error_code = $code, xml_error_string = $error\r\n"; ?> --EXPECTF-- -xml_parse returned 1, xml_get_error_code = 0, xml_error_string = No error -%rxml_parse returned 0, xml_get_error_code = 5, xml_error_string = Invalid document end|xml_parse returned 0, xml_get_error_code = 77, xml_error_string = Tag not finished%r +xml_parse returned 1, xml_get_error_code = 0, xml_error_string = %S +%rxml_parse returned 0, xml_get_error_code = 5, xml_error_string = Invalid document end|xml_parse returned 0, xml_get_error_code = 3, xml_error_string = no element found|xml_parse returned 0, xml_get_error_code = 77, xml_error_string = Tag not finished%r diff --git a/ext/xml/tests/libxml_expat_skipif.inc b/ext/xml/tests/libxml_expat_skipif.inc new file mode 100644 index 0000000000000..f8c5ef83db0ad --- /dev/null +++ b/ext/xml/tests/libxml_expat_skipif.inc @@ -0,0 +1,9 @@ +', @@ -19,16 +14,4 @@ foreach ($xmls as $xml) { var_dump(xml_error_string(xml_get_error_code($xml_parser))); } xml_parser_free($xml_parser); -} -?> ---EXPECTF-- -int(%r5|77%r) -string(%d) %r"Invalid document end"|"Tag not finished"%r -int(47) -string(35) "Processing Instruction not finished" -int(57) -string(28) "XML declaration not finished" -int(64) -string(17) "Reserved XML Name" -int(76) -string(14) "Mismatched tag" +} \ No newline at end of file diff --git a/ext/xml/tests/xml_error_string_basic_expat.phpt b/ext/xml/tests/xml_error_string_basic_expat.phpt new file mode 100644 index 0000000000000..c095efa8e844e --- /dev/null +++ b/ext/xml/tests/xml_error_string_basic_expat.phpt @@ -0,0 +1,24 @@ +--TEST-- +xml_error_string() - Basic test on 5 error codes +--EXTENSIONS-- +xml +--SKIPIF-- + +--FILE-- + +--EXPECT-- +int(3) +string(16) "no element found" +int(4) +string(31) "not well-formed (invalid token)" +int(5) +string(14) "unclosed token" +int(30) +string(31) "XML declaration not well-formed" +int(7) +string(14) "mismatched tag" diff --git a/ext/xml/tests/xml_error_string_basic_libxml.phpt b/ext/xml/tests/xml_error_string_basic_libxml.phpt new file mode 100644 index 0000000000000..aafd005cb4a3c --- /dev/null +++ b/ext/xml/tests/xml_error_string_basic_libxml.phpt @@ -0,0 +1,24 @@ +--TEST-- +xml_error_string() - Basic test on 5 error codes +--EXTENSIONS-- +xml +--SKIPIF-- + +--FILE-- + +--EXPECTF-- +int(%r5|77%r) +string(%d) %r"Invalid document end"|"Tag not finished"%r +int(47) +string(35) "Processing Instruction not finished" +int(57) +string(28) "XML declaration not finished" +int(64) +string(17) "Reserved XML Name" +int(76) +string(14) "Mismatched tag" diff --git a/ext/xml/tests/xml_set_start_namespace_decl_handler_basic.phpt b/ext/xml/tests/xml_set_start_namespace_decl_handler_basic.inc similarity index 75% rename from ext/xml/tests/xml_set_start_namespace_decl_handler_basic.phpt rename to ext/xml/tests/xml_set_start_namespace_decl_handler_basic.inc index a13e0c22939b8..b27b5c0efeb48 100644 --- a/ext/xml/tests/xml_set_start_namespace_decl_handler_basic.phpt +++ b/ext/xml/tests/xml_set_start_namespace_decl_handler_basic.inc @@ -1,8 +1,3 @@ ---TEST-- -Test xml_set_start_namespace_decl_handler function: basic ---EXTENSIONS-- -xml ---FILE-- ' ); -} -?> ---EXPECT-- -bool(true) -bool(true) -Namespace_Start_Handler called -...Prefix: aw1 -...Uri: http://www.somewhere.com/namespace1 -Namespace_Start_Handler called -...Prefix: aw2 -...Uri: file:/DTD/somewhere.dtd -Done +} \ No newline at end of file diff --git a/ext/xml/tests/xml_set_start_namespace_decl_handler_basic_expat.phpt b/ext/xml/tests/xml_set_start_namespace_decl_handler_basic_expat.phpt new file mode 100644 index 0000000000000..34babe4d30f67 --- /dev/null +++ b/ext/xml/tests/xml_set_start_namespace_decl_handler_basic_expat.phpt @@ -0,0 +1,29 @@ +--TEST-- +Test xml_set_start_namespace_decl_handler function: basic +--EXTENSIONS-- +xml +--SKIPIF-- + +--FILE-- + +--EXPECT-- +bool(true) +bool(true) +Namespace_Start_Handler called +...Prefix: aw1 +...Uri: http://www.somewhere.com/namespace1 +Namespace_Start_Handler called +...Prefix: aw2 +...Uri: file:/DTD/somewhere.dtd +Namespace_End_Handler called +...Prefix: aw2 + +Namespace_End_Handler called +...Prefix: aw1 + +Done diff --git a/ext/xml/tests/xml_set_start_namespace_decl_handler_basic_libxml.phpt b/ext/xml/tests/xml_set_start_namespace_decl_handler_basic_libxml.phpt new file mode 100644 index 0000000000000..ff6057c075d55 --- /dev/null +++ b/ext/xml/tests/xml_set_start_namespace_decl_handler_basic_libxml.phpt @@ -0,0 +1,24 @@ +--TEST-- +Test xml_set_start_namespace_decl_handler function: basic +--EXTENSIONS-- +xml +--SKIPIF-- + +--FILE-- + +--EXPECT-- +bool(true) +bool(true) +Namespace_Start_Handler called +...Prefix: aw1 +...Uri: http://www.somewhere.com/namespace1 +Namespace_Start_Handler called +...Prefix: aw2 +...Uri: file:/DTD/somewhere.dtd +Done diff --git a/ext/xmlreader/tests/libxml_global_state_entity_loader_bypass.phpt b/ext/xmlreader/tests/libxml_global_state_entity_loader_bypass.phpt index cb0297b6b1bc8..a0223367c70ad 100644 --- a/ext/xmlreader/tests/libxml_global_state_entity_loader_bypass.phpt +++ b/ext/xmlreader/tests/libxml_global_state_entity_loader_bypass.phpt @@ -1,10 +1,11 @@ --TEST-- GHSA-3qrf-m4j2-pcrr (libxml global state entity loader bypass) +--EXTENSIONS-- +libxml +xmlreader +zend_test --SKIPIF-- --FILE-- diff --git a/ext/zend_test/tests/observer_sqlite_create_function.phpt b/ext/zend_test/tests/observer_sqlite_create_function.phpt index 85d269c9ead1a..26330043ef28d 100644 --- a/ext/zend_test/tests/observer_sqlite_create_function.phpt +++ b/ext/zend_test/tests/observer_sqlite_create_function.phpt @@ -2,7 +2,7 @@ Observer: PDO::sqliteCreateFunction() can be observed --EXTENSIONS-- zend_test -PDO +pdo pdo_sqlite --INI-- zend_test.observer.enabled=1 diff --git a/ext/zip/tests/bug77978.phpt b/ext/zip/tests/bug77978.phpt index 2f3c22f4213a2..bcf3538f65da1 100644 --- a/ext/zip/tests/bug77978.phpt +++ b/ext/zip/tests/bug77978.phpt @@ -1,9 +1,7 @@ --TEST-- Bug #77978 (Dirname ending in colon unzips to wrong dir) ---SKIPIF-- - +--EXTENSIONS-- +zip --FILE-- --FILE-- diff --git a/ext/zip/tests/bug81420.phpt b/ext/zip/tests/bug81420.phpt index 9eec0ee7e99c4..ad89e7c0ac7b2 100644 --- a/ext/zip/tests/bug81420.phpt +++ b/ext/zip/tests/bug81420.phpt @@ -1,9 +1,7 @@ --TEST-- Bug #81420 (ZipArchive::extractTo extracts outside of destination) ---SKIPIF-- - +--EXTENSIONS-- +zip --FILE-- +--EXTENSIONS-- +zip --FILE-- +--EXTENSIONS-- +zip --FILE-- +--FILE-- +start(); +$tester->expectLogStartNotices(); +$tester->request()->expectBody([ + 'bool(false)', + 'bool(true)', + 'string(4) "test"', + 'bool(false)', + 'bool(false)', + 'string(2) "dt"', + 'string(2) "dt"', +]); +$tester->terminate(); +$tester->close(); + +?> +Done +--EXPECT-- +Done +--CLEAN-- +