diff --git a/.github/nightly_matrix.php b/.github/nightly_matrix.php index cab55ee3ec4b2..4a8dd1648fc60 100644 --- a/.github/nightly_matrix.php +++ b/.github/nightly_matrix.php @@ -52,7 +52,7 @@ function get_matrix_include(array $branches) { 'zts' => true, 'configuration_parameters' => "CFLAGS='-fsanitize=undefined,address -DZEND_TRACK_ARENA_ALLOC' LDFLAGS='-fsanitize=undefined,address'", 'run_tests_parameters' => '--asan', - 'timeout_minutes' => 480, + 'test_function_jit' => false, ]; if ($branch['ref'] !== 'PHP-8.0') { $jobs[] = [ @@ -62,6 +62,7 @@ function get_matrix_include(array $branches) { 'zts' => false, 'run_tests_parameters' => '--repeat 2', 'timeout_minutes' => 360, + 'test_function_jit' => true, ]; $jobs[] = [ 'name' => '_VARIATION', @@ -70,6 +71,7 @@ function get_matrix_include(array $branches) { 'zts' => true, 'configuration_parameters' => "CFLAGS='-DZEND_RC_DEBUG=1 -DPROFITABILITY_CHECKS=0 -DZEND_VERIFY_FUNC_INFO=1'", 'timeout_minutes' => 360, + 'test_function_jit' => true, ]; } } diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 13437480ed4b8..5da687b74aa00 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -41,12 +41,11 @@ jobs: debug: [true, false] name: [''] run_tests_parameters: [''] - timeout_minutes: [360] + test_function_jit: [true] zts: [true, false] include: ${{ fromJson(needs.GENERATE_MATRIX.outputs.matrix-include) }} name: "${{ matrix.branch.name }}_LINUX_X64${{ matrix.name }}_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}" runs-on: ubuntu-20.04 - timeout-minutes: ${{ matrix.timeout_minutes }} steps: - name: git checkout uses: actions/checkout@v3 @@ -95,6 +94,9 @@ jobs: -d zend_extension=opcache.so -d opcache.enable_cli=1 - name: Test Function JIT + # ASAN frequently timeouts. Each test run takes ~90 minutes, we can + # avoid running into the 6 hour timeout by skipping the function JIT. + if: matrix.test_function_jit uses: ./.github/actions/test-linux with: testArtifacts: ${{ matrix.branch.name }}_${{ matrix.name }}_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }} Function JIT @@ -373,6 +375,22 @@ jobs: git rev-parse HEAD sed -i 's/PHP_SAPI/"cli-server"/g' var/cache/dev/App_KernelDevDebugContainer.preload.php php -d opcache.preload=var/cache/dev/App_KernelDevDebugContainer.preload.php public/index.php + - name: Test Wordpress + if: always() + run: | + git clone https://github.com/WordPress/wordpress-develop.git wordpress --depth=1 + cd wordpress + git rev-parse HEAD + export ASAN_OPTIONS=exitcode=139 + php /usr/bin/composer install --no-progress --ignore-platform-reqs + cp wp-tests-config-sample.php wp-tests-config.php + sed -i 's/youremptytestdbnamehere/test/g' wp-tests-config.php + sed -i 's/yourusernamehere/root/g' wp-tests-config.php + sed -i 's/yourpasswordhere/root/g' wp-tests-config.php + php vendor/bin/phpunit || EXIT_CODE=$? + if [ $EXIT_CODE -gt 128 ]; then + exit 1 + fi OPCACHE_VARIATION: needs: GENERATE_MATRIX if: ${{ needs.GENERATE_MATRIX.outputs.branches != '[]' }} diff --git a/NEWS b/NEWS index d3db2aa0ab254..00dae5f000df3 100644 --- a/NEWS +++ b/NEWS @@ -1,414 +1,99 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| -?? ??? ????, PHP 8.2.0RC6 +05 Jan 2023, PHP 8.2.1 - Core: - . Fixed bug GH-9823 (Don’t reset func in zend_closure_internal_handler). - (Florian Sowade) - . Fixed potential NULL pointer dereference Windows shm*() functions. (cmb) - . Fix target validation for internal attributes with constructor property - promotion. (kooldev) - . Fixed bug GH-9750 (Generator memory leak when interrupted during argument - evaluation. (Arnaud) - -- FPM: - . Fixed bug GH-9754 (SaltStack (using Python subprocess) hangs when running - php-fpm 8.1.11). (Jakub Zelenka) - -- mysqli: - . Fixed bug GH-9841 (mysqli_query throws warning despite using - silenced error mode). (Kamil Tekiela) - -- PDO: - . Fixed bug GH-9818 (Initialize run time cache in PDO methods). - (Florian Sowade) - -- Random: - . Fixed bug GH-9839 (Pre-PHP 8.2 output compatibility for non-mt_rand() - functions for MT_RAND_PHP). (timwolla) - -27 Oct 2022, PHP 8.2.0RC5 - -- CLI: - . Fixed bug GH-9709 (Null pointer dereference with -w/-s options). - (Adam Saponara) - -- GD: - . Fixed bug #81739: OOB read due to insufficient input validation in - imageloadfont(). (CVE-2022-31630) (cmb) - -- Hash: - . Fixed bug #81738: buffer overflow in hash_update() on long parameter. - (CVE-2022-37454) (nicky at mouha dot be) - -- Core: - . Fixed bug GH-9752 (Generator crashes when interrupted during argument - evaluation with extra named params). (Arnaud) - . Fixed bug GH-9801 (Generator crashes when memory limit is exceeded during - initialization). (Arnaud) - . Fixed a bug with preloaded enums possibly segfaulting. (Bob) - -- MySQLnd: - . Fixed potential heap corruption due to alignment mismatch. (cmb) - -- OpenSSL: - . Fixed missing clean up of OpenSSL engine list - attempt to fix GH-8620. - (Jakub Zelenka) - . Fixed bug GH-8430 (OpenSSL compiled with no-md2, no-md4 or no-rmd160 does - not build). (Jakub Zelenka, fsbruva) - -- PDO_ODBC: - . Fixed bug GH-9372 (HY010 when binding overlong parameter). (cmb) - -- SOAP: - . Fixed bug GH-9720 (Null pointer dereference while serializing the response). + . Fixed bug GH-9905 (constant() behaves inconsistent when class is undefined). (cmb) + . Fixed bug GH-9918 (License information for xxHash is not included in + README.REDIST.BINS file). (Akama Hitoshi) + . Fixed bug GH-9890 (OpenSSL legacy providers not available on Windows). (cmb) + . Fixed bug GH-9650 (Can't initialize heap: [0x000001e7]). (Michael Voříšek) + . Fixed potentially undefined behavior in Windows ftok(3) emulation. (cmb) + . Fixed GH-9769 (Misleading error message for unpacking of objects). (jhdxr) -- Streams: - . Fixed bug GH-9779 (stream_copy_to_stream fails if dest in append mode). - (Jakub Zelenka) - -13 Oct 2022, PHP 8.2.0RC4 - -- Core: - . Fixed bug GH-9655 (Pure intersection types cannot be implicitly nullable) - (Girgias) - . Fixed bug GH-9589 (dl() segfaults when module is already loaded). (cmb, - Arnaud) - -- Streams: - . Fixed bug GH-9590 (stream_select does not abort upon exception or empty - valid fd set). (Arnaud) - . Fixed bug GH-9653 (file copy between different filesystems). (David Carlier) - -29 Sep 2022, PHP 8.2.0RC3 - -- Core: - . Fixed observer class notify with Opcache file_cache_only=1. (ilutov) - -- Date: - . Fixed bug with parsing large negative numbers with the @ notation. (Derick) - -- Core: - . Fixes segfault with Fiber on FreeBSD i386 architecture. (David Carlier) - -- Fileinfo: - . Fixed bug GH-8805 (finfo returns wrong mime type for woff/woff2 files). - (Anatol) - -- Opcache: - . Added indirect call reduction for jit on x86 architectures. (wxue1) - -- Sockets: - . Fixed socket constants regression as of PHP 8.2.0beta3. (Bruce Dou) - -- Session: - . Fixed GH-9584 (Avoid memory corruption when not unregistering custom session - handler). (ilutov) - . Fixed bug GH-9583 (session_create_id() fails with user defined save handler - that doesn't have a validateId() method). (Girgias) +- Apache: + . Fixed bug GH-9949 (Partial content on incomplete POST request). (cmb) -- Standard: - . Revert "Fixed parse_url(): can not recognize port without scheme." - (andypost) - -15 Sep 2022, PHP 8.2.0RC2 - -- Core: - . Fixed bug GH-9500 (Using dnf type with parentheses after readonly keyword - results in a parse error). (ilutov) - . Fixed bug GH-9516 ((A&B)|D as a param should allow AB or D. Not just A). - (Girgias) +- FPM: + . Fixed bug GH-9959 (Solaris port event mechanism is still broken after bug + #66694). (Petr Sumbera) + . Fixed bug #68207 (Setting fastcgi.error_header can result in a WARNING). + (Jakub Zelenka) + . Fixed bug #80669 (FPM numeric user fails to set groups). (Jakub Zelenka) + . Fixed bug GH-8517 (Random crash of FPM master process in + fpm_stdio_child_said). (Jakub Zelenka) -- GMP - . Fixed bug GH-9308 (GMP throws the wrong error when a GMP object is passed - to gmp_init()). (Girgias) +- Imap: + . Fixed bug GH-10051 (IMAP: there's no way to check if a IMAP\Connection is + still open). (Girgias) -- Intl - . Fixed bug GH-9421 (Incorrect argument number for ValueError in NumberFormatter). - (Girgias) +- MBString: + . Fixed bug GH-9535 (The behavior of mb_strcut in mbstring has been changed in + PHP8.1). (Nathan Freeman) - Opcache: - . Fixed bug GH-9259 (opcache.interned_strings_buffer setting integer - overflow). (Arnaud) + . Fixed bug GH-9968 (Segmentation Fault during OPCache Preload). + (Arnaud, michdingpayc) - OpenSSL: - . Fixed bug GH-9517 (Compilation error openssl extension related to PR - GH-9366). (Jakub Zelenka) + . Fixed bug GH-9997 (OpenSSL engine clean up segfault). (Jakub Zelenka) + . Fixed bug GH-9064 (PHP fails to build if openssl was built with --no-ec). + (Jakub Zelenka) + . Fixed bug GH-10000 (OpenSSL test failures when OpenSSL compiled with + no-dsa). (Jakub Zelenka) -- PDO_PGSQL: - . Fixed bug GH-9411 (PgSQL large object resource is incorrectly closed). - (Yurunsoft) +- Pcntl: + . Fixed bug GH-9298 (Signal handler called after rshutdown leads to crash). + (Erki Aring) -- Random: - . Fixed bug GH-9464 (build on older macOs releases). (David Bohman) - -- Standard: - . Marked crypt()'s $string parameter as #[\SensitiveParameter]. (timwolla) - . Fixed bug GH-9464 (build on older macOs releases). (David Bohman) - . Fixed bug GH-9518 (Disabling IPv6 support disables unrelated constants). +- PDO_Firebird: + . Fixed bug GH-9971 (Incorrect NUMERIC value returned from PDO_Firebird). (cmb) -01 Sep 2022, PHP 8.2.0RC1 - -- CLI: - . Implement built-in web server responding without body to HEAD request on - a static resource. (Vedran Miletic, Marin Martuslovic) - . Implement built-in web server responding with HTTP status 405 to - DELETE/PUT/PATCH request on a static resource. - (Vedran Miletic, Marin Martuslovic) - -- Core: - . Fixed bug GH-9323 (Crash in ZEND_RETURN/GC/zend_call_function) - (Tim Starling) - . Fixed bug GH-9227 (Trailing dots and spaces in filenames are ignored). +- PDO/SQLite: + . Fixed bug #81740 (PDO::quote() may return unquoted string). (CVE-2022-31631) (cmb) - . Fixed bug GH-9285 (Traits cannot be used in readonly classes). - (kocsismate) - . Fixed bug GH-9186 (@strict-properties can be bypassed using - unserialization). (kocsismate) - -- Date: - . Fixed bug GH-9431 (DateTime::getLastErrors() not returning false when no - errors/warnings). (Derick) - -- ODBC: - . Fixed bug GH-9347 (Current ODBC liveness checks may be inadequate). (Calvin - Buckley) - -- Opcache: - . Fixed bug GH-9371 (Crash with JIT on mac arm64) - (jdp1024/David Carlier) - -- OpenSSL: - . Fixed bug GH-9310 (SSL local_cert and local_pk do not respect - open_basedir). (Jakub Zelenka) - . Implement FR #76935 ("chacha20-poly1305" is an AEAD but does not work like - AEAD). (Jakub Zelenka) - . Added openssl_cipher_key_length function. (Jakub Zelenka) - -- PDO_ODBC: - . Fixed bug GH-9347 (Current ODBC liveness checks may be inadequate). (Calvin - Buckley) - -- Random: - . Fixed bug GH-9415 (Randomizer::getInt(0, 2**32 - 1) with Mt19937 - always returns 1). (timwolla) - . Fixed Randomizer::getInt() consistency for 32-bit engines. (timwolla) - -- Reflection: - . Fixed bug GH-8932 (ReflectionFunction provides no way to get the called - class of a Closure). (cmb, Nicolas Grekas) - -- Streams: - . Fixed bug GH-9316 ($http_response_header is wrong for long status line). - (cmb, timwolla) - -- XML: - . Added libxml_get_external_entity_loader() function. (Tim Starling) - -18 Aug 2022, PHP 8.2.0beta3 - -- Core: - . Fixed incorrect double to long casting in latest clang. (zeriyoshi) - . Added support for defining constants in traits. (sj-i) - . Stop incorrectly emitting false positive deprecation notice alongside - unsupported syntax fatal error for `"{$g{'h'}}"`. (TysonAndre) - . Fix unexpected deprecated dynamic property warning, which occurred when - exit() in finally block after an exception was thrown without catching. - (Twosee) - -- MBString: - . Fixed bug GH-9248 (Segmentation fault in mb_strimwidth()). (cmb) - -- Random: - . Fixed bug GH-9235 (non-existant $sequence parameter in stub for - PcgOneseq128XslRr64::__construct()). (timwolla) - . Fixed bug GH-9190, GH-9191 (undefined behavior for MT_RAND_PHP when - handling large ranges). (timwolla) - . Fixed bug GH-9249 (Xoshiro256StarStar does not reject the invalid - all-zero state). (timwolla) - . Removed redundant RuntimeExceptions from Randomizer methods. The - exceptions thrown by the engines will be exposed directly. (timwolla) - . Added extension specific Exceptions/Errors (RandomException, RandomError, - BrokenRandomEngineError). (timwolla) - Session: - . Fixed GH-9200 (setcookie has an obsolete expires date format). (timwolla) - -- Standard: - . Fixed bug #65489 (glob() basedir check is inconsistent). (Jakub Zelenka) - . Fixed GH-9200 (setcookie has an obsolete expires date format). (Derick) - . Fixed GH-9244 (Segfault with array_multisort + array_shift). (cmb) - . Fixed bug GH-9296 (`ksort` behaves incorrectly on arrays with mixed keys). - (Denis Vaksman) + . Fixed GH-9932 (session name silently fails with . and [). (David Carlier) -04 Aug 2022, PHP 8.2.0beta2 - -- Core: - . Fixed bug GH-7900 (Arrow function with never return type compile-time - errors). (ilutov) - -- Date: - . Fixed bug GH-8730 (DateTime::diff miscalculation is same time zone of - different type). (Derick) - . Fixed bug GH-8964 (DateTime object comparison after applying delta less - than 1 second). (Derick) - . Fixed bug GH-9106: (DateInterval 1.5s added to DateTimeInterface is rounded - down since PHP 8.1.0). (Derick) - . Fixed bug #75035 (Datetime fails to unserialize "extreme" dates). - (Derick) - . Fixed bug #80483 (DateTime Object with 5-digit year can't unserialized). - (Derick) - . Fixed bug #81263 (Wrong result from DateTimeImmutable::diff). (Derick) - -- DBA: - . Fixed LMDB driver memory leak on DB creation failure (Girgias) - . Fixed GH-8856 (dba: lmdb: allow to override the MDB_NOSUBDIR flag). (Girgias) - -- FFI: - . Fixed bug GH-9090 (Support assigning function pointers in FFI). (Adam - Saponara) - -- Intl: - . Declared Transliterator::$id as readonly to unlock subclassing it. (Nicolas - Grekas) - -- OPcache: - . Fixed bug GH-9164 (Segfault in zend_accel_class_hash_copy). - (Arnaud, Sergei Turchanov) - -- PCNTL: - . Fixed pcntl_(get|set)priority error handling for MacOS. (Juan Morales) - -- Random: - . Fixed bug GH-9067 (random extension is not thread safe). (cmb) - . Fixed bug GH-9055 (segmentation fault if user engine throws). (timwolla) - . Fixed bug GH-9066 (signed integer overflow). (zeriyoshi) - . Fixed bug GH-9083 (undefined behavior during shifting). (timwolla) - . Fixed bug GH-9088, GH-9056 (incorrect expansion of bytes when - generating uniform integers within a given range). (timwolla) - . Fixed bug GH-9089 (Fix memory leak on Randomizer::__construct() - call twice). (zeriyoshi) - . Fixed bug GH-9212 (PcgOneseq128XslRr64::jump() should not allow negative - $advance). (Anton Smirnov) - . Changed Mt19937 to throw a ValueError instead of InvalidArgumentException - for invalid $mode. (timwolla) - . Splitted Random\Randomizer::getInt() (without arguments) to - Random\Randomizer::nextInt(). (zeriyoshi) +- SPL: + . Fixed GH-9883 (SplFileObject::__toString() reads next line). (Girgias) + . Fixed GH-10011 (Trampoline autoloader will get reregistered and cannot be + unregistered). (Girgias) -- Sockets: - . Added SOL_FILTER socket option for Solaris. (David Carlier) +- SQLite3: + . Fixed bug #81742 (open_basedir bypass in SQLite3 by using file URI). (cmb) -- SPL: - . Fixed bug #69181 (READ_CSV|DROP_NEW_LINE drops newlines within fields). - (cmb) - . Fixed bug #65069 (GlobIterator incorrect handling of open_basedir check). - (Jakub Zelenka) +- TSRM: + . Fixed Windows shmget() wrt. IPC_PRIVATE. (Tyson Andre) -21 Jul 2022, PHP 8.2.0beta1 +08 Dec 2022, PHP 8.2.0 - CLI: + . Fixed bug #81496 (Server logs incorrect request method). (lauri) . Updated the mime-type table for the builtin-server. (Ayesh Karunaratne) . Fixed potential overflow for the builtin server via the PHP_CLI_SERVER_WORKERS environment variable. (yiyuaner) . Fixed GH-8575 by changing STDOUT, STDERR and STDIN to not close on resource destruction. (Jakub Zelenka) - -- Core: - . Reduced the memory footprint of strings returned by var_export(), - json_encode(), serialize(), iconv_*(), mb_ereg*(), session_create_id(), - http_build_query(), strstr(), Reflection*::__toString(). (Arnaud) - . Fixed bug GH-8995 (WeakMap object reference offset causing TypeError). - (Tobias Bachert) - . Added error_log_mode ini setting. (Mikhail Galanin) - . Updated request startup messages. (Eric Norris) + . Implement built-in web server responding without body to HEAD request on + a static resource. (Vedran Miletic, Marin Martuslovic) + . Implement built-in web server responding with HTTP status 405 to + DELETE/PUT/PATCH request on a static resource. + (Vedran Miletic, Marin Martuslovic) + . Fixed bug GH-9709 (Null pointer dereference with -w/-s options). + (Adam Saponara) - COM: . Fixed bug GH-8750 (Can not create VT_ERROR variant type). (cmb) -- Filter: - . Added FILTER_FLAG_GLOBAL_RANGE to filter Global IPs. (vnsavage) - -- FPM: - . Added listen.setfib pool option to set route FIB on FreeBSD. (David Carlier) - . Added access.suppress_path pool option to filter access log entries. - (Mark Gallagher) - . Fixed on fpm scoreboard occasional warning on acquisition failure. - (Felix Wiedemann) - -- Opcache: - . Added initial support for JIT performance profiling generation - for macOs Instrument. (David Carlier) - . Fixed bug GH-8030 (Segfault with JIT and large match/switch statements). - (Arnaud) - . Added JIT support improvement for macOs for segments and executable permission - bit handling. (David Carlier) - . Added JIT buffer allocation near the .text section on FreeNSD. (David Carlier) - -- PCRE: - . Updated bundled libpcre to 10.40. (cmb) - -- PDO_Firebird: - . Fixed bug GH-8576 (Bad interpretation of length when char is UTF-8). (cmb) - -- Random: - . Added new random extension. (Go Kudo) - -- SPL: - . Widen iterator_to_array() and iterator_count()'s $iterator parameter to - iterable. (timwolla) - -- Standard: - . Implemented FR GH-8924 (str_split should return empty array for empty - string). (Michael Vorisek) - . Added ini_parse_quantity function to convert ini quantities shorthand - notation to int. (Dennis Snell) - . Enable arc4random_buf for Linux glibc 2.36 and onwards - for the random_bytes. (Cristian Rodriguez) - . Uses CCRandomGenerateBytes instead of arc4random_buf on macOs. (David Carlier). - -- Windows: - . Added preliminary support for (cross-)building for ARM64. (Yun Dou) - -07 Jul 2022, PHP 8.2.0alpha3 - -- Core: - . Uses safe_perealloc instead of perealloc for the - ZEND_PTR_STACK_RESIZE_IF_NEEDED to avoid possible overflows. (David Carlier) - -- DBA: - . Fixed LMDB driver hanging when attempting to delete a non-existing key - (Girgias) - -- Intl: - . Fixed build for ICU 69.x and onwards. (David Carlier) - -- Opcache: - . Allocate JIT buffer close to PHP .text segemnt to allow using direct - IP-relative calls and jumps. - (Su Tao, Wang Xue, Chen Hu, Lizhen Lizhen, Dmitry) - -- Sockets: - . Added TCP_CONGESTION socket option. (David Carlier) - . Added SO_ZEROCOPY/MSG_ZEROCOPY options. (David Carlier) - -- SPL: - . Uses safe_erealloc instead of erealloc to handle heap growth - for the SplHeap::insert method to avoid possible overflows. (David Carlier) - -- Standard: - . Fixed the crypt_sha256/512 api build with clang > 12. (David Carlier) - . Uses safe_erealloc instead of erealloc to handle options in getopt - to avoid possible overflows. (David Carlier) - -- Zip: - - . Implement fseek for zip stream when possible with libzip 1.9.1. (Remi) - -23 Jun 2022, PHP 8.2.0alpha2 - - Core: + . Fixed bug #81380 (Observer may not be initialized properly). (krakjoe) + . Fixed bug GH-7771 (Fix filename/lineno of constant expressions). (ilutov) + . Fixed bug GH-7792 (Improve class type in error messages). (ilutov) + . Support huge pages on MacOS. (David CARLIER) . Fixed bug GH-8655 (Casting an object to array does not unwrap refcount=1 references). (Nicolas Grekas) . Fixed bug GH-8661 (Nullsafe in coalesce triggers undefined variable @@ -418,37 +103,60 @@ PHP NEWS . Fixed bug GH-8810 (Incorrect lineno in backtrace of multi-line function calls). (ilutov) . Optimised code path for newly created file with the stream plain wrapper. (Max Kellermann) - -- Curl: - . Added new constants from cURL 7.62 to 7.80. (Pierrick) - . New function curl_upkeep(). (Pierrick) - -- OpenSSL: - . Discard poll calls on socket when no timeout/non blocking/MSG_DONTWAIT. (Max Kellermann) - -- PCRE: - . Implemented FR #77726 (Allow null character in regex patterns). (tobil4sk) - -- Standard: - . Deprecated utf8_encode() and utf8_decode(). (Rowan Tommins) - -- Streams: - . Discard poll calls on socket when no timeout/non blocking/MSG_DONTWAIT. (Max Kellermann) - -09 Jun 2022, PHP 8.2.0alpha1 - -- CLI: - . Fixed bug #81496 (Server logs incorrect request method). (lauri) - -- Core: - . Fixed bug #81380 (Observer may not be initialized properly). (krakjoe) - . Fixed bug GH-7771 (Fix filename/lineno of constant expressions). (ilutov) - . Fixed bug GH-7792 (Improve class type in error messages). (ilutov) - . Support huge pages on MacOS. (David CARLIER) + . Uses safe_perealloc instead of perealloc for the + ZEND_PTR_STACK_RESIZE_IF_NEEDED to avoid possible overflows. (David Carlier) + . Reduced the memory footprint of strings returned by var_export(), + json_encode(), serialize(), iconv_*(), mb_ereg*(), session_create_id(), + http_build_query(), strstr(), Reflection*::__toString(). (Arnaud) + . Fixed bug GH-8995 (WeakMap object reference offset causing TypeError). + (Tobias Bachert) + . Added error_log_mode ini setting. (Mikhail Galanin) + . Updated request startup messages. (Eric Norris) + . Fixed bug GH-7900 (Arrow function with never return type compile-time + errors). (ilutov) + . Fixed incorrect double to long casting in latest clang. (zeriyoshi) + . Added support for defining constants in traits. (sj-i) + . Stop incorrectly emitting false positive deprecation notice alongside + unsupported syntax fatal error for `"{$g{'h'}}"`. (TysonAndre) + . Fix unexpected deprecated dynamic property warning, which occurred when + exit() in finally block after an exception was thrown without catching. + (Twosee) + . Fixed bug GH-9323 (Crash in ZEND_RETURN/GC/zend_call_function) + (Tim Starling) + . Fixed bug GH-9227 (Trailing dots and spaces in filenames are ignored). + (cmb) + . Fixed bug GH-9285 (Traits cannot be used in readonly classes). + (kocsismate) + . Fixed bug GH-9186 (@strict-properties can be bypassed using + unserialization). (kocsismate) + . Fixed bug GH-9500 (Using dnf type with parentheses after readonly keyword + results in a parse error). (ilutov) + . Fixed bug GH-9516 ((A&B)|D as a param should allow AB or D. Not just A). + (Girgias) + . Fixed observer class notify with Opcache file_cache_only=1. (ilutov) + . Fixes segfault with Fiber on FreeBSD i386 architecture. (David Carlier) + . Fixed bug GH-9655 (Pure intersection types cannot be implicitly nullable) + (Girgias) + . Fixed bug GH-9589 (dl() segfaults when module is already loaded). (cmb, + Arnaud) + . Fixed bug GH-9752 (Generator crashes when interrupted during argument + evaluation with extra named params). (Arnaud) + . Fixed bug GH-9801 (Generator crashes when memory limit is exceeded during + initialization). (Arnaud) + . Fixed a bug with preloaded enums possibly segfaulting. (Bob) + . Fixed bug GH-9823 (Don’t reset func in zend_closure_internal_handler). + (Florian Sowade) + . Fixed potential NULL pointer dereference Windows shm*() functions. (cmb) + . Fix target validation for internal attributes with constructor property + promotion. (kooldev) + . Fixed bug GH-9750 (Generator memory leak when interrupted during argument + evaluation. (Arnaud) - Curl: . Added support for CURLOPT_XFERINFOFUNCTION. (David Carlier) . Added support for CURLOPT_MAXFILESIZE_LARGE. (David Carlier) + . Added new constants from cURL 7.62 to 7.80. (Pierrick) + . New function curl_upkeep(). (Pierrick) - Date: . Fixed GH-8458 (DateInterval::createFromDateString does not throw if @@ -457,6 +165,37 @@ PHP NEWS (Daniel Egeberg, Derick) . idate() now accepts format specifiers "N" (ISO Day-of-Week) and "o" (ISO Year). (Pavel Djundik) + . Fixed bug GH-8730 (DateTime::diff miscalculation is same time zone of + different type). (Derick) + . Fixed bug GH-8964 (DateTime object comparison after applying delta less + than 1 second). (Derick) + . Fixed bug GH-9106: (DateInterval 1.5s added to DateTimeInterface is rounded + down since PHP 8.1.0). (Derick) + . Fixed bug #75035 (Datetime fails to unserialize "extreme" dates). + (Derick) + . Fixed bug #80483 (DateTime Object with 5-digit year can't unserialized). + (Derick) + . Fixed bug #81263 (Wrong result from DateTimeImmutable::diff). (Derick) + . Fixed bug GH-9431 (DateTime::getLastErrors() not returning false when no + errors/warnings). (Derick) + . Fixed bug with parsing large negative numbers with the @ notation. (Derick) + +- DBA: + . Fixed LMDB driver hanging when attempting to delete a non-existing key + (Girgias) + . Fixed LMDB driver memory leak on DB creation failure (Girgias) + . Fixed GH-8856 (dba: lmdb: allow to override the MDB_NOSUBDIR flag). (Girgias) + +- FFI: + . Fixed bug GH-9090 (Support assigning function pointers in FFI). (Adam + Saponara) + +- Fileinfo: + . Fixed bug GH-8805 (finfo returns wrong mime type for woff/woff2 files). + (Anatol) + +- Filter: + . Added FILTER_FLAG_GLOBAL_RANGE to filter Global IPs. (vnsavage) - FPM: . Emit error for invalid port setting. (David Carlier) @@ -464,13 +203,48 @@ PHP NEWS (David Carlier) . Added support for listening queue on macOS. (David Carlier) . Changed default for listen.backlog on Linux to -1. (Cristian Rodríguez) + . Added listen.setfib pool option to set route FIB on FreeBSD. (David Carlier) + . Added access.suppress_path pool option to filter access log entries. + (Mark Gallagher) + . Fixed on fpm scoreboard occasional warning on acquisition failure. + (Felix Wiedemann) + . Fixed bug GH-9754 (SaltStack (using Python subprocess) hangs when running + php-fpm 8.1.11). (Jakub Zelenka) - FTP: . Fix datetime format string to follow POSIX spec in ftp_mdtm(). (Jihwan Kim) +- GD: + . Fixed bug #81739: OOB read due to insufficient input validation in + imageloadfont(). (CVE-2022-31630) (cmb) + +- GMP: + . Fixed bug GH-9308 (GMP throws the wrong error when a GMP object is passed + to gmp_init()). (Girgias) + +- Hash: + . Fixed bug #81738: buffer overflow in hash_update() on long parameter. + (CVE-2022-37454) (nicky at mouha dot be) + . Fixed bug GH-10077: Fix compilation on RHEL 7 ppc64le. (Mattias Ellert) + - Intl: . Update all grandfathered language tags with preferred values . Fixed GH-7939 (Cannot unserialize IntlTimeZone objects). (cmb) + . Fixed build for ICU 69.x and onwards. (David Carlier) + . Declared Transliterator::$id as readonly to unlock subclassing it. (Nicolas + Grekas) + . Fixed bug GH-9421 (Incorrect argument number for ValueError in NumberFormatter). + (Girgias) + +- MBString: + . Fixed bug GH-9248 (Segmentation fault in mb_strimwidth()). (cmb) + +- mysqli: + . Fixed bug GH-9841 (mysqli_query throws warning despite using + silenced error mode). (Kamil Tekiela) + +- MySQLnd: + . Fixed potential heap corruption due to alignment mismatch. (cmb) - OCI8: . Added oci8.prefetch_lob_size directive to tune LOB query performance @@ -480,22 +254,124 @@ PHP NEWS - ODBC: . Fixed bug GH-8300 (User input not escaped when building connection string). (Calvin Buckley) + . Fixed bug GH-9347 (Current ODBC liveness checks may be inadequate). (Calvin + Buckley) + +- Opcache: + . Allocate JIT buffer close to PHP .text segemnt to allow using direct + IP-relative calls and jumps. + (Su Tao, Wang Xue, Chen Hu, Lizhen Lizhen, Dmitry) + . Added initial support for JIT performance profiling generation + for macOs Instrument. (David Carlier) + . Fixed bug GH-8030 (Segfault with JIT and large match/switch statements). + (Arnaud) + . Added JIT support improvement for macOs for segments and executable permission + bit handling. (David Carlier) + . Added JIT buffer allocation near the .text section on FreeNSD. (David Carlier) + . Fixed bug GH-9371 (Crash with JIT on mac arm64) + (jdp1024/David Carlier) + . Fixed bug GH-9259 (opcache.interned_strings_buffer setting integer + overflow). (Arnaud) + . Added indirect call reduction for jit on x86 architectures. (wxue1) + +- OPcache: + . Fixed bug GH-9164 (Segfault in zend_accel_class_hash_copy). + (Arnaud, Sergei Turchanov) + +- OpenSSL: + . Discard poll calls on socket when no timeout/non blocking/MSG_DONTWAIT. (Max Kellermann) + . Fixed bug GH-9310 (SSL local_cert and local_pk do not respect + open_basedir). (Jakub Zelenka) + . Implement FR #76935 ("chacha20-poly1305" is an AEAD but does not work like + AEAD). (Jakub Zelenka) + . Added openssl_cipher_key_length function. (Jakub Zelenka) + . Fixed bug GH-9517 (Compilation error openssl extension related to PR + GH-9366). (Jakub Zelenka) + . Fixed missing clean up of OpenSSL engine list - attempt to fix GH-8620. + (Jakub Zelenka) + . Fixed bug GH-8430 (OpenSSL compiled with no-md2, no-md4 or no-rmd160 does + not build). (Jakub Zelenka, fsbruva) + +- PCNTL: + . Fixed pcntl_(get|set)priority error handling for MacOS. (Juan Morales) + +- PCRE: + . Implemented FR #77726 (Allow null character in regex patterns). (tobil4sk) + . Updated bundled libpcre to 10.40. (cmb) + +- PDO: + . Fixed bug GH-9818 (Initialize run time cache in PDO methods). + (Florian Sowade) + +- PDO_Firebird: + . Fixed bug GH-8576 (Bad interpretation of length when char is UTF-8). (cmb) - PDO_ODBC: . Fixed bug #80909 (crash with persistent connections in PDO_ODBC). (Calvin Buckley) . Fixed bug GH-8300 (User input not escaped when building connection string). (Calvin Buckley) + . Fixed bug GH-9347 (Current ODBC liveness checks may be inadequate). (Calvin + Buckley) + . Fixed bug GH-9372 (HY010 when binding overlong parameter). (cmb) + +- PDO_PGSQL: + . Fixed bug GH-9411 (PgSQL large object resource is incorrectly closed). + (Yurunsoft) + +- Random: + . Added new random extension. (Go Kudo) + . Fixed bug GH-9067 (random extension is not thread safe). (cmb) + . Fixed bug GH-9055 (segmentation fault if user engine throws). (timwolla) + . Fixed bug GH-9066 (signed integer overflow). (zeriyoshi) + . Fixed bug GH-9083 (undefined behavior during shifting). (timwolla) + . Fixed bug GH-9088, GH-9056 (incorrect expansion of bytes when + generating uniform integers within a given range). (timwolla) + . Fixed bug GH-9089 (Fix memory leak on Randomizer::__construct() + call twice). (zeriyoshi) + . Fixed bug GH-9212 (PcgOneseq128XslRr64::jump() should not allow negative + $advance). (Anton Smirnov) + . Changed Mt19937 to throw a ValueError instead of InvalidArgumentException + for invalid $mode. (timwolla) + . Splitted Random\Randomizer::getInt() (without arguments) to + Random\Randomizer::nextInt(). (zeriyoshi) + . Fixed bug GH-9235 (non-existant $sequence parameter in stub for + PcgOneseq128XslRr64::__construct()). (timwolla) + . Fixed bug GH-9190, GH-9191 (undefined behavior for MT_RAND_PHP when + handling large ranges). (timwolla) + . Fixed bug GH-9249 (Xoshiro256StarStar does not reject the invalid + all-zero state). (timwolla) + . Removed redundant RuntimeExceptions from Randomizer methods. The + exceptions thrown by the engines will be exposed directly. (timwolla) + . Added extension specific Exceptions/Errors (RandomException, RandomError, + BrokenRandomEngineError). (timwolla) + . Fixed bug GH-9415 (Randomizer::getInt(0, 2**32 - 1) with Mt19937 + always returns 1). (timwolla) + . Fixed Randomizer::getInt() consistency for 32-bit engines. (timwolla) + . Fixed bug GH-9464 (build on older macOs releases). (David Bohman) + . Fixed bug GH-9839 (Pre-PHP 8.2 output compatibility for non-mt_rand() + functions for MT_RAND_PHP). (timwolla) - Reflection: . Added ReflectionFunction::isAnonymous(). (Nicolas Grekas) . Added ReflectionMethod::hasPrototype(). (Ollie Read) . Narrow ReflectionEnum::getBackingType() return type to ReflectionNamedType. (SamMousa) + . Fixed bug GH-8932 (ReflectionFunction provides no way to get the called + class of a Closure). (cmb, Nicolas Grekas) - Session: . Fixed bug GH-7787 (Improve session write failure message for user error handlers). (ilutov) + . Fixed GH-9200 (setcookie has an obsolete expires date format). (timwolla) + . Fixed GH-9584 (Avoid memory corruption when not unregistering custom session + handler). (ilutov) + . Fixed bug GH-9583 (session_create_id() fails with user defined save handler + that doesn't have a validateId() method). (Girgias) + +- SOAP: + . Fixed bug GH-9720 (Null pointer dereference while serializing the response). + (cmb) - Sockets: . Added TCP_NOTSENT_LOWAT socket option. (David Carlier) @@ -508,10 +384,24 @@ PHP NEWS . Added ancillary data support for NetBSD. (David Carlier) . Added SO_BPF_EXTENSIONS socket option. (David Carlier) . Added SO_SETFIB socket option. (David Carlier) + . Added TCP_CONGESTION socket option. (David Carlier) + . Added SO_ZEROCOPY/MSG_ZEROCOPY options. (David Carlier) + . Added SOL_FILTER socket option for Solaris. (David Carlier) + . Fixed socket constants regression as of PHP 8.2.0beta3. (Bruce Dou) - Sodium: . Added sodium_crypto_stream_xchacha20_xor_ic(). (Scott) +- SPL: + . Uses safe_erealloc instead of erealloc to handle heap growth + for the SplHeap::insert method to avoid possible overflows. (David Carlier) + . Widen iterator_to_array() and iterator_count()'s $iterator parameter to + iterable. (timwolla) + . Fixed bug #69181 (READ_CSV|DROP_NEW_LINE drops newlines within fields). + (cmb) + . Fixed bug #65069 (GlobIterator incorrect handling of open_basedir check). + (Jakub Zelenka) + - SQLite3: . Changed sqlite3.defensive from PHP_INI_SYSTEM to PHP_INI_USER. (bohwaz) @@ -523,11 +413,47 @@ PHP NEWS (ilutov) . New function memory_reset_peak_usage(). (Patrick Allaert) . Fixed parse_url(): can not recognize port without scheme. (pandaLIU) + . Deprecated utf8_encode() and utf8_decode(). (Rowan Tommins) + . Fixed the crypt_sha256/512 api build with clang > 12. (David Carlier) + . Uses safe_erealloc instead of erealloc to handle options in getopt + to avoid possible overflows. (David Carlier) + . Implemented FR GH-8924 (str_split should return empty array for empty + string). (Michael Vorisek) + . Added ini_parse_quantity function to convert ini quantities shorthand + notation to int. (Dennis Snell) + . Enable arc4random_buf for Linux glibc 2.36 and onwards + for the random_bytes. (Cristian Rodriguez) + . Uses CCRandomGenerateBytes instead of arc4random_buf on macOs. (David Carlier). + . Fixed bug #65489 (glob() basedir check is inconsistent). (Jakub Zelenka) + . Fixed GH-9200 (setcookie has an obsolete expires date format). (Derick) + . Fixed GH-9244 (Segfault with array_multisort + array_shift). (cmb) + . Fixed bug GH-9296 (`ksort` behaves incorrectly on arrays with mixed keys). + (Denis Vaksman) + . Marked crypt()'s $string parameter as #[\SensitiveParameter]. (timwolla) + . Fixed bug GH-9464 (build on older macOs releases). (David Bohman) + . Fixed bug GH-9518 (Disabling IPv6 support disables unrelated constants). + (cmb) + . Revert "Fixed parse_url(): can not recognize port without scheme." + (andypost) - Streams: . Set IP_BIND_ADDRESS_NO_PORT if available when connecting to remote host. (Cristian Rodríguez) . Fixed bug GH-8548 (stream_wrapper_unregister() leaks memory). (ilutov) + . Discard poll calls on socket when no timeout/non blocking/MSG_DONTWAIT. (Max Kellermann) + . Fixed bug GH-9316 ($http_response_header is wrong for long status line). + (cmb, timwolla) + . Fixed bug GH-9590 (stream_select does not abort upon exception or empty + valid fd set). (Arnaud) + . Fixed bug GH-9653 (file copy between different filesystems). (David Carlier) + . Fixed bug GH-9779 (stream_copy_to_stream fails if dest in append mode). + (Jakub Zelenka) + +- Windows: + . Added preliminary support for (cross-)building for ARM64. (Yun Dou) + +- XML: + . Added libxml_get_external_entity_loader() function. (Tim Starling) - Zip: . add ZipArchive::clearError() method @@ -535,5 +461,5 @@ PHP NEWS . add ZipArchive::getStreamIndex() method . On Windows, the Zip extension is now built as shared library (DLL) by default. (cmb) + . Implement fseek for zip stream when possible with libzip 1.9.1. (Remi) -<<< NOTE: Insert NEWS from last stable release here prior to actual release! >>> diff --git a/README.REDIST.BINS b/README.REDIST.BINS index 19e6a02b18269..eda3736756646 100644 --- a/README.REDIST.BINS +++ b/README.REDIST.BINS @@ -16,6 +16,7 @@ 16. libbcmath (ext/bcmath) see ext/bcmath/libbcmath/LICENSE 17. ext/mbstring/ucgendat portions based on the ucgendat.c from the OpenLDAP 18. avifinfo (ext/standard/libavifinfo) see ext/standard/libavifinfo/LICENSE +19. xxHash (ext/hash/xxhash) 3. pcre2lib (ext/pcre) @@ -641,3 +642,39 @@ OpenLDAP is a registered trademark of the OpenLDAP Foundation. Copyright 1999-2003 The OpenLDAP Foundation, Redwood City, California, USA. All Rights Reserved. Permission to copy and distribute verbatim copies of this document is granted. + + +19. xxHash + +xxHash - Extremely Fast Hash algorithm +Header File +Copyright (C) 2012-2020 Yann Collet + +BSD 2-Clause License (https://www.opensource.org/licenses/bsd-license.php) + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +You can contact the author at: + - xxHash homepage: https://www.xxhash.com + - xxHash source repository: https://github.com/Cyan4973/xxHash diff --git a/TSRM/tsrm_win32.c b/TSRM/tsrm_win32.c index f7ecea012b5f4..241ac708e1bc8 100644 --- a/TSRM/tsrm_win32.c +++ b/TSRM/tsrm_win32.c @@ -30,6 +30,7 @@ #include "tsrm_win32.h" #include "zend_virtual_cwd.h" #include "win32/ioutil.h" +#include "win32/winutil.h" #ifdef ZTS static ts_rsrc_id win32_globals_id; @@ -610,6 +611,22 @@ TSRM_API int pclose(FILE *stream) #define SEGMENT_PREFIX "TSRM_SHM_SEGMENT:" #define INT_MIN_AS_STRING "-2147483648" + +#define TSRM_BASE_SHM_KEY_ADDRESS 0x20000000 +/* Returns a number between 0x2000_0000 and 0x3fff_ffff. On Windows, key_t is int. */ +static key_t tsrm_choose_random_shm_key(key_t prev_key) { + unsigned char buf[4]; + if (php_win32_get_random_bytes(buf, 4) != SUCCESS) { + return prev_key + 2; + } + uint32_t n = + ((uint32_t)(buf[0]) << 24) | + (((uint32_t)buf[1]) << 16) | + (((uint32_t)buf[2]) << 8) | + (((uint32_t)buf[3])); + return (n & 0x1fffffff) + TSRM_BASE_SHM_KEY_ADDRESS; +} + TSRM_API int shmget(key_t key, size_t size, int flags) {/*{{{*/ shm_pair *shm; @@ -621,11 +638,14 @@ TSRM_API int shmget(key_t key, size_t size, int flags) snprintf(shm_segment, sizeof(shm_segment), SEGMENT_PREFIX "%d", key); shm_handle = OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, shm_segment); + } else { + /* IPC_PRIVATE always creates a new segment even if IPC_CREAT flag isn't passed. */ + flags |= IPC_CREAT; } if (!shm_handle) { if (flags & IPC_CREAT) { - if (size > SIZE_MAX - sizeof(shm->descriptor)) { + if (size == 0 || size > SIZE_MAX - sizeof(shm->descriptor)) { return -1; } size += sizeof(shm->descriptor); @@ -649,6 +669,19 @@ TSRM_API int shmget(key_t key, size_t size, int flags) } } + if (key == IPC_PRIVATE) { + /* This should call shm_get with a brand new key id that isn't used yet. See https://man7.org/linux/man-pages/man2/shmget.2.html + * Because extensions such as shmop/sysvshm can be used in userland to attach to shared memory segments, use unpredictable high positive numbers to avoid accidentally conflicting with userland. */ + key = tsrm_choose_random_shm_key(TSRM_BASE_SHM_KEY_ADDRESS); + for (shm_pair *ptr = TWG(shm); ptr < (TWG(shm) + TWG(shm_size)); ptr++) { + if (ptr->descriptor && ptr->descriptor->shm_perm.key == key) { + key = tsrm_choose_random_shm_key(key); + ptr = TWG(shm); + continue; + } + } + } + shm = shm_get(key, NULL); if (!shm) { CloseHandle(shm_handle); diff --git a/UPGRADING b/UPGRADING index ce6deba0a1d62..5f69712a4b02b 100644 --- a/UPGRADING +++ b/UPGRADING @@ -22,8 +22,8 @@ PHP 8.2 UPGRADE NOTES - Date: . DateTime::createFromImmutable() now has a tentative return type of static, previously it was DateTime. - . DateTimeImmutable::createFromMutable() now has a tentative return type of static, - previously it was DateTimeImmutable. + . DateTimeImmutable::createFromMutable() now has a tentative return type of + static, previously it was DateTimeImmutable. - ODBC: . The ODBC extension now escapes the username and password for the case when @@ -134,11 +134,15 @@ PHP 8.2 UPGRADE NOTES RFC: https://wiki.php.net/rfc/rng_extension RFC: https://wiki.php.net/rfc/random_extension_improvement - ======================================== 3. Changes in SAPI modules ======================================== +- FPM: + . If setting user by its UID without setting a group, then the group is no + longer set to 0 (root) but instead to the user assigned groups like it is + when setting user by name. + ======================================== 4. Deprecated Functionality ======================================== @@ -230,6 +234,9 @@ PHP 8.2 UPGRADE NOTES - Curl: . curl_upkeep() (libcurl >= 7.62.0) +- IMAP: + . imap_is_open() (Only as of PHP 8.2.1) + - mysqli: . mysqli_execute_query() @@ -284,9 +291,11 @@ PHP 8.2 UPGRADE NOTES unserialization yielded unusable objects or failed. - mysqli: - . The support for libmysql has been removed. It's no longer possible to compile - mysqli with libmysql and all relevant functionality has been removed. - . The reconnect property of mysqli_driver has been removed. It was supported only by libmysql. + . The support for libmysql has been removed. It's no longer possible to + compile mysqli with libmysql and all relevant functionality has been + removed. + . The reconnect property of mysqli_driver has been removed. It was supported + only by libmysql. . The INI directive mysqli.reconnect has been removed. . The constant MYSQLI_IS_MARIADB has been deprecated. diff --git a/Zend/tests/array_unpack/gh9769.phpt b/Zend/tests/array_unpack/gh9769.phpt new file mode 100644 index 0000000000000..9eb8c6aea7689 --- /dev/null +++ b/Zend/tests/array_unpack/gh9769.phpt @@ -0,0 +1,15 @@ +--TEST-- +Unpacking arrays in constant expression +--FILE-- +1, 'b'=>2, 'c'=>3]]; +const C = [...new ArrayObject()]; + +?> +--EXPECTF-- +Fatal error: Uncaught Error: Only arrays can be unpacked in constant expression in %sgh9769.php:5 +Stack trace: +#0 {main} + thrown in %sgh9769.php on line 5 diff --git a/Zend/zend.h b/Zend/zend.h index bea23cf40ba0d..3ab1fb00d1d5f 100644 --- a/Zend/zend.h +++ b/Zend/zend.h @@ -20,7 +20,7 @@ #ifndef ZEND_H #define ZEND_H -#define ZEND_VERSION "4.2.0-dev" +#define ZEND_VERSION "4.2.1" #define ZEND_ENGINE_3 diff --git a/Zend/zend_API.c b/Zend/zend_API.c index 54bcad825a501..f613121ee4ad0 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -3281,7 +3281,10 @@ ZEND_API zend_result zend_register_class_alias_ex(const char *name, size_t name_ if (!(ce->ce_flags & ZEND_ACC_IMMUTABLE)) { ce->refcount++; } - zend_observer_class_linked_notify(ce, lcname); + // avoid notifying at MINIT time + if (ce->type == ZEND_USER_CLASS) { + zend_observer_class_linked_notify(ce, lcname); + } return SUCCESS; } return FAILURE; diff --git a/Zend/zend_alloc.c b/Zend/zend_alloc.c index d0e28dca0daab..5f11f49b07157 100644 --- a/Zend/zend_alloc.c +++ b/Zend/zend_alloc.c @@ -417,11 +417,61 @@ stderr_last_error(char *msg) /* OS Allocation */ /*****************/ +static void zend_mm_munmap(void *addr, size_t size) +{ +#ifdef _WIN32 + if (VirtualFree(addr, 0, MEM_RELEASE) == 0) { + /** ERROR_INVALID_ADDRESS is expected when addr is not range start address */ + if (GetLastError() != ERROR_INVALID_ADDRESS) { +#if ZEND_MM_ERROR + stderr_last_error("VirtualFree() failed"); +#endif + return; + } + SetLastError(0); + + MEMORY_BASIC_INFORMATION mbi; + if (VirtualQuery(addr, &mbi, sizeof(mbi)) == 0) { +#if ZEND_MM_ERROR + stderr_last_error("VirtualQuery() failed"); +#endif + return; + } + addr = mbi.AllocationBase; + + if (VirtualFree(addr, 0, MEM_RELEASE) == 0) { +#if ZEND_MM_ERROR + stderr_last_error("VirtualFree() failed"); +#endif + } + } +#else + if (munmap(addr, size) != 0) { +#if ZEND_MM_ERROR + fprintf(stderr, "\nmunmap() failed: [%d] %s\n", errno, strerror(errno)); +#endif + } +#endif +} + #ifndef HAVE_MREMAP static void *zend_mm_mmap_fixed(void *addr, size_t size) { #ifdef _WIN32 - return VirtualAlloc(addr, size, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE); + void *ptr = VirtualAlloc(addr, size, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE); + + if (ptr == NULL) { + /** ERROR_INVALID_ADDRESS is expected when fixed addr range is not free */ + if (GetLastError() != ERROR_INVALID_ADDRESS) { +#if ZEND_MM_ERROR + stderr_last_error("VirtualAlloc() fixed failed"); +#endif + } + SetLastError(0); + return NULL; + } + ZEND_ASSERT(ptr == addr); + return ptr; #else int flags = MAP_PRIVATE | MAP_ANON; #if defined(MAP_EXCL) @@ -434,15 +484,11 @@ static void *zend_mm_mmap_fixed(void *addr, size_t size) if (ptr == MAP_FAILED) { #if ZEND_MM_ERROR && !defined(MAP_EXCL) && !defined(MAP_TRYFIXED) - fprintf(stderr, "\nmmap() failed: [%d] %s\n", errno, strerror(errno)); + fprintf(stderr, "\nmmap() fixed failed: [%d] %s\n", errno, strerror(errno)); #endif return NULL; } else if (ptr != addr) { - if (munmap(ptr, size) != 0) { -#if ZEND_MM_ERROR - fprintf(stderr, "\nmunmap() failed: [%d] %s\n", errno, strerror(errno)); -#endif - } + zend_mm_munmap(ptr, size); return NULL; } return ptr; @@ -495,23 +541,6 @@ static void *zend_mm_mmap(size_t size) #endif } -static void zend_mm_munmap(void *addr, size_t size) -{ -#ifdef _WIN32 - if (VirtualFree(addr, 0, MEM_RELEASE) == 0) { -#if ZEND_MM_ERROR - stderr_last_error("VirtualFree() failed"); -#endif - } -#else - if (munmap(addr, size) != 0) { -#if ZEND_MM_ERROR - fprintf(stderr, "\nmunmap() failed: [%d] %s\n", errno, strerror(errno)); -#endif - } -#endif -} - /***********/ /* Bitmask */ /***********/ @@ -704,13 +733,21 @@ static void *zend_mm_chunk_alloc_int(size_t size, size_t alignment) zend_mm_munmap(ptr, size); ptr = zend_mm_mmap(size + alignment - REAL_PAGE_SIZE); #ifdef _WIN32 - offset = ZEND_MM_ALIGNED_OFFSET(ptr, alignment); - zend_mm_munmap(ptr, size + alignment - REAL_PAGE_SIZE); - ptr = zend_mm_mmap_fixed((void*)((char*)ptr + (alignment - offset)), size); offset = ZEND_MM_ALIGNED_OFFSET(ptr, alignment); if (offset != 0) { - zend_mm_munmap(ptr, size); - return NULL; + offset = alignment - offset; + } + zend_mm_munmap(ptr, size + alignment - REAL_PAGE_SIZE); + ptr = zend_mm_mmap_fixed((void*)((char*)ptr + offset), size); + if (ptr == NULL) { // fix GH-9650, fixed addr range is not free + ptr = zend_mm_mmap(size + alignment - REAL_PAGE_SIZE); + if (ptr == NULL) { + return NULL; + } + offset = ZEND_MM_ALIGNED_OFFSET(ptr, alignment); + if (offset != 0) { + ptr = (void*)((char*)ptr + alignment - offset); + } } return ptr; #else @@ -1867,11 +1904,7 @@ static zend_mm_heap *zend_mm_init(void) if (UNEXPECTED(chunk == NULL)) { #if ZEND_MM_ERROR -#ifdef _WIN32 - stderr_last_error("Can't initialize heap"); -#else - fprintf(stderr, "\nCan't initialize heap: [%d] %s\n", errno, strerror(errno)); -#endif + fprintf(stderr, "Can't initialize heap\n"); #endif return NULL; } @@ -3017,11 +3050,7 @@ ZEND_API zend_mm_heap *zend_mm_startup_ex(const zend_mm_handlers *handlers, void chunk = (zend_mm_chunk*)handlers->chunk_alloc(&tmp_storage, ZEND_MM_CHUNK_SIZE, ZEND_MM_CHUNK_SIZE); if (UNEXPECTED(chunk == NULL)) { #if ZEND_MM_ERROR -#ifdef _WIN32 - stderr_last_error("Can't initialize heap"); -#else - fprintf(stderr, "\nCan't initialize heap: [%d] %s\n", errno, strerror(errno)); -#endif + fprintf(stderr, "Can't initialize heap\n"); #endif return NULL; } @@ -3064,11 +3093,7 @@ ZEND_API zend_mm_heap *zend_mm_startup_ex(const zend_mm_handlers *handlers, void if (!storage) { handlers->chunk_free(&tmp_storage, chunk, ZEND_MM_CHUNK_SIZE); #if ZEND_MM_ERROR -#ifdef _WIN32 - stderr_last_error("Can't initialize heap"); -#else - fprintf(stderr, "\nCan't initialize heap: [%d] %s\n", errno, strerror(errno)); -#endif + fprintf(stderr, "Can't initialize heap\n"); #endif return NULL; } diff --git a/Zend/zend_ast.c b/Zend/zend_ast.c index 63146fc5dd24f..6130d9da93bf9 100644 --- a/Zend/zend_ast.c +++ b/Zend/zend_ast.c @@ -488,8 +488,7 @@ static zend_result zend_ast_add_unpacked_element(zval *result, zval *expr) { return SUCCESS; } - /* Objects or references cannot occur in a constant expression. */ - zend_throw_error(NULL, "Only arrays and Traversables can be unpacked"); + zend_throw_error(NULL, "Only arrays can be unpacked in constant expression"); return FAILURE; } diff --git a/Zend/zend_closures.c b/Zend/zend_closures.c index 5bbc90029f921..e3fbd8e0ad7fc 100644 --- a/Zend/zend_closures.c +++ b/Zend/zend_closures.c @@ -160,15 +160,21 @@ ZEND_METHOD(Closure, call) /* copied upon generator creation */ GC_DELREF(&closure->std); } else { + zend_closure *fake_closure; zend_function *my_function; + + fake_closure = emalloc(sizeof(zend_closure)); + memset(&fake_closure->std, 0, sizeof(fake_closure->std)); + fake_closure->std.gc.refcount = 1; + fake_closure->std.gc.u.type_info = GC_NULL; + ZVAL_UNDEF(&fake_closure->this_ptr); + fake_closure->called_scope = NULL; + my_function = &fake_closure->func; if (ZEND_USER_CODE(closure->func.type)) { - my_function = emalloc(sizeof(zend_op_array)); memcpy(my_function, &closure->func, sizeof(zend_op_array)); } else { - my_function = emalloc(sizeof(zend_internal_function)); memcpy(my_function, &closure->func, sizeof(zend_internal_function)); } - my_function->common.fn_flags &= ~ZEND_ACC_CLOSURE; /* use scope of passed object */ my_function->common.scope = newclass; if (closure->func.type == ZEND_INTERNAL_FUNCTION) { @@ -194,10 +200,8 @@ ZEND_METHOD(Closure, call) if (fci_cache.function_handler->common.fn_flags & ZEND_ACC_HEAP_RT_CACHE) { efree(ZEND_MAP_PTR(my_function->op_array.run_time_cache)); } - efree_size(my_function, sizeof(zend_op_array)); - } else { - efree_size(my_function, sizeof(zend_internal_function)); } + efree_size(fake_closure, sizeof(zend_closure)); } if (Z_TYPE(closure_result) != IS_UNDEF) { diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index fb1b6b5d9da32..f169efcffe437 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -7271,7 +7271,7 @@ static uint32_t zend_add_dynamic_func_def(zend_op_array *def) { return def_offset; } -static void zend_begin_func_decl(znode *result, zend_op_array *op_array, zend_ast_decl *decl, bool toplevel) /* {{{ */ +static zend_string *zend_begin_func_decl(znode *result, zend_op_array *op_array, zend_ast_decl *decl, bool toplevel) /* {{{ */ { zend_string *unqualified_name, *name, *lcname; zend_op *opline; @@ -7305,23 +7305,20 @@ static void zend_begin_func_decl(znode *result, zend_op_array *op_array, zend_as if (UNEXPECTED(zend_hash_add_ptr(CG(function_table), lcname, op_array) == NULL)) { do_bind_function_error(lcname, op_array, 1); } - zend_observer_function_declared_notify(op_array, lcname); - zend_string_release_ex(lcname, 0); - return; - } - - uint32_t func_ref = zend_add_dynamic_func_def(op_array); - if (op_array->fn_flags & ZEND_ACC_CLOSURE) { - opline = zend_emit_op_tmp(result, ZEND_DECLARE_LAMBDA_FUNCTION, NULL, NULL); - opline->op2.num = func_ref; } else { - opline = get_next_op(); - opline->opcode = ZEND_DECLARE_FUNCTION; - opline->op1_type = IS_CONST; - LITERAL_STR(opline->op1, zend_string_copy(lcname)); - opline->op2.num = func_ref; + uint32_t func_ref = zend_add_dynamic_func_def(op_array); + if (op_array->fn_flags & ZEND_ACC_CLOSURE) { + opline = zend_emit_op_tmp(result, ZEND_DECLARE_LAMBDA_FUNCTION, NULL, NULL); + opline->op2.num = func_ref; + } else { + opline = get_next_op(); + opline->opcode = ZEND_DECLARE_FUNCTION; + opline->op1_type = IS_CONST; + LITERAL_STR(opline->op1, zend_string_copy(lcname)); + opline->op2.num = func_ref; + } } - zend_string_release_ex(lcname, 0); + return lcname; } /* }}} */ @@ -7333,7 +7330,7 @@ static void zend_compile_func_decl(znode *result, zend_ast *ast, bool toplevel) zend_ast *stmt_ast = decl->child[2]; zend_ast *return_type_ast = decl->child[3]; bool is_method = decl->kind == ZEND_AST_METHOD; - zend_string *method_lcname = NULL; + zend_string *lcname = NULL; zend_class_entry *orig_class_entry = CG(active_class_entry); zend_op_array *orig_op_array = CG(active_op_array); @@ -7362,9 +7359,9 @@ static void zend_compile_func_decl(znode *result, zend_ast *ast, bool toplevel) if (is_method) { bool has_body = stmt_ast != NULL; - method_lcname = zend_begin_method_decl(op_array, decl->name, has_body); + lcname = zend_begin_method_decl(op_array, decl->name, has_body); } else { - zend_begin_func_decl(result, op_array, decl, toplevel); + lcname = zend_begin_func_decl(result, op_array, decl, toplevel); if (decl->kind == ZEND_AST_ARROW_FUNC) { find_implicit_binds(&info, params_ast, stmt_ast); compile_implicit_lexical_binds(&info, result, op_array); @@ -7407,7 +7404,7 @@ static void zend_compile_func_decl(znode *result, zend_ast *ast, bool toplevel) } zend_compile_params(params_ast, return_type_ast, - is_method && zend_string_equals_literal(method_lcname, ZEND_TOSTRING_FUNC_NAME) ? IS_STRING : 0); + is_method && zend_string_equals_literal(lcname, ZEND_TOSTRING_FUNC_NAME) ? IS_STRING : 0); if (CG(active_op_array)->fn_flags & ZEND_ACC_GENERATOR) { zend_mark_function_as_generator(); zend_emit_op(NULL, ZEND_GENERATOR_CREATE, NULL, NULL); @@ -7436,8 +7433,7 @@ static void zend_compile_func_decl(znode *result, zend_ast *ast, bool toplevel) if (is_method) { CG(zend_lineno) = decl->start_lineno; zend_check_magic_method_implementation( - CG(active_class_entry), (zend_function *) op_array, method_lcname, E_COMPILE_ERROR); - zend_string_release_ex(method_lcname, 0); + CG(active_class_entry), (zend_function *) op_array, lcname, E_COMPILE_ERROR); } /* put the implicit return on the really last line */ @@ -7452,6 +7448,12 @@ static void zend_compile_func_decl(znode *result, zend_ast *ast, bool toplevel) /* Pop the loop variable stack separator */ zend_stack_del_top(&CG(loop_var_stack)); + if (toplevel) { + zend_observer_function_declared_notify(op_array, lcname); + } + + zend_string_release_ex(lcname, 0); + CG(active_op_array) = orig_op_array; CG(active_class_entry) = orig_class_entry; } diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index 0d9c357b46321..59ac6de0c84ab 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -638,6 +638,10 @@ ZEND_API uint32_t zend_get_executed_lineno(void) /* {{{ */ ex = ex->prev_execute_data; } if (ex) { + if (!ex->opline) { + /* Missing SAVE_OPLINE()? Falling back to first line of function */ + return ex->func->op_array.opcodes[0].lineno; + } if (EG(exception) && ex->opline->opcode == ZEND_HANDLE_EXCEPTION && ex->opline->lineno == 0 && EG(opline_before_exception)) { return EG(opline_before_exception)->lineno; diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c index aa770141cd24d..9498bd3718c86 100644 --- a/Zend/zend_hash.c +++ b/Zend/zend_hash.c @@ -658,15 +658,14 @@ ZEND_API void ZEND_FASTCALL zend_hash_iterators_advance(HashTable *ht, HashPosit /* Hash must be known and precomputed before */ static zend_always_inline Bucket *zend_hash_find_bucket(const HashTable *ht, const zend_string *key) { - zend_ulong key_hash = ZSTR_H(key); uint32_t nIndex; uint32_t idx; Bucket *p, *arData; - ZEND_ASSERT(key_hash != 0 && "Hash must be known"); + ZEND_ASSERT(ZSTR_H(key) != 0 && "Hash must be known"); arData = ht->arData; - nIndex = key_hash | ht->nTableMask; + nIndex = ZSTR_H(key) | ht->nTableMask; idx = HT_HASH_EX(arData, nIndex); if (UNEXPECTED(idx == HT_INVALID_IDX)) { @@ -678,7 +677,7 @@ static zend_always_inline Bucket *zend_hash_find_bucket(const HashTable *ht, con } while (1) { - if (p->h == key_hash && + if (p->h == ZSTR_H(key) && EXPECTED(p->key) && zend_string_equal_content(p->key, key)) { return p; diff --git a/configure.ac b/configure.ac index ac6f8f1d6b20c..5bfaa595a947e 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.2.0-dev],[https://github.com/php/php-src/issues],[php],[https://www.php.net]) +AC_INIT([PHP],[8.2.1],[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/date/lib/interval.c b/ext/date/lib/interval.c index ee4451b6acae1..e3bf5101b1ddd 100644 --- a/ext/date/lib/interval.c +++ b/ext/date/lib/interval.c @@ -62,7 +62,7 @@ static void sort_old_to_new(timelib_time **one, timelib_time **two, timelib_rel_ if ( (*one)->zone_type == TIMELIB_ZONETYPE_ID && (*two)->zone_type == TIMELIB_ZONETYPE_ID && - (strcmp((*one)->tz_info->name, (*two)->tz_info->name) != 0) + (strcmp((*one)->tz_info->name, (*two)->tz_info->name) == 0) ) { if ( ((*one)->y > (*two)->y) || @@ -198,7 +198,7 @@ timelib_rel_time *timelib_diff(timelib_time *one, timelib_time *two) { timelib_rel_time *rt; - if (one->zone_type == TIMELIB_ZONETYPE_ID && two->zone_type == TIMELIB_ZONETYPE_ID) { + if (one->zone_type == TIMELIB_ZONETYPE_ID && two->zone_type == TIMELIB_ZONETYPE_ID && strcmp(one->tz_info->name, two->tz_info->name) == 0) { return timelib_diff_with_tzid(one, two); } diff --git a/ext/date/lib/parse_date.c b/ext/date/lib/parse_date.c index 06d0039b70007..fde143646992f 100644 --- a/ext/date/lib/parse_date.c +++ b/ext/date/lib/parse_date.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.15.3 on Wed Sep 14 16:31:52 2022 */ +/* Generated by re2c 0.15.3 on Thu Dec 1 10:59:46 2022 */ #line 1 "ext/date/lib/parse_date.re" /* * The MIT License (MIT) @@ -782,7 +782,13 @@ static timelib_long timelib_lookup_abbr(const char **ptr, int *dst, char **tz_ab timelib_long value = 0; const timelib_tz_lookup_table *tp; - while (**ptr != '\0' && **ptr != ')' && **ptr != ' ') { + /* Only include A-Z, a-z, 0-9, /, _, and - in abbreviations/TZ IDs */ + while ( + (**ptr >= 'A' && **ptr <= 'Z') || + (**ptr >= 'a' && **ptr <= 'z') || + (**ptr >= '0' && **ptr <= '9') || + **ptr == '/' || **ptr == '_' || **ptr == '-' + ) { ++*ptr; } end = *ptr; @@ -978,11 +984,11 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) std: s->tok = cursor; s->len = 0; -#line 1109 "ext/date/lib/parse_date.re" +#line 1115 "ext/date/lib/parse_date.re" -#line 986 "" +#line 992 "" { YYCTYPE yych; unsigned int yyaccept = 0; @@ -1120,7 +1126,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) } yy3: YYDEBUG(3, *YYCURSOR); -#line 1843 "ext/date/lib/parse_date.re" +#line 1849 "ext/date/lib/parse_date.re" { int tz_not_found; DEBUG_OUTPUT("tzcorrection | tz"); @@ -1133,7 +1139,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_TIMEZONE; } -#line 1137 "" +#line 1143 "" yy4: YYDEBUG(4, *YYCURSOR); yych = *++YYCURSOR; @@ -1440,12 +1446,12 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) if (yych <= '9') goto yy1483; yy12: YYDEBUG(12, *YYCURSOR); -#line 1938 "ext/date/lib/parse_date.re" +#line 1944 "ext/date/lib/parse_date.re" { add_error(s, TIMELIB_ERR_UNEXPECTED_CHARACTER, "Unexpected character"); goto std; } -#line 1449 "" +#line 1455 "" yy13: YYDEBUG(13, *YYCURSOR); yych = *++YYCURSOR; @@ -2689,11 +2695,11 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) if (yych <= '9') goto yy54; yy49: YYDEBUG(49, *YYCURSOR); -#line 1927 "ext/date/lib/parse_date.re" +#line 1933 "ext/date/lib/parse_date.re" { goto std; } -#line 2697 "" +#line 2703 "" yy50: YYDEBUG(50, *YYCURSOR); yych = *++YYCURSOR; @@ -2702,12 +2708,12 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) YYDEBUG(51, *YYCURSOR); ++YYCURSOR; YYDEBUG(52, *YYCURSOR); -#line 1932 "ext/date/lib/parse_date.re" +#line 1938 "ext/date/lib/parse_date.re" { s->pos = cursor; s->line++; goto std; } -#line 2711 "" +#line 2717 "" yy53: YYDEBUG(53, *YYCURSOR); yych = *++YYCURSOR; @@ -3129,7 +3135,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) if (yych == 's') goto yy85; yy84: YYDEBUG(84, *YYCURSOR); -#line 1911 "ext/date/lib/parse_date.re" +#line 1917 "ext/date/lib/parse_date.re" { timelib_ull i; DEBUG_OUTPUT("relative"); @@ -3144,7 +3150,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 3148 "" +#line 3154 "" yy85: YYDEBUG(85, *YYCURSOR); yych = *++YYCURSOR; @@ -4153,7 +4159,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) } yy219: YYDEBUG(219, *YYCURSOR); -#line 1774 "ext/date/lib/parse_date.re" +#line 1780 "ext/date/lib/parse_date.re" { const timelib_relunit* relunit; DEBUG_OUTPUT("daytext"); @@ -4170,7 +4176,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_WEEKDAY; } -#line 4174 "" +#line 4180 "" yy220: YYDEBUG(220, *YYCURSOR); yych = *++YYCURSOR; @@ -4716,7 +4722,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) } yy248: YYDEBUG(248, *YYCURSOR); -#line 1833 "ext/date/lib/parse_date.re" +#line 1839 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("monthtext"); TIMELIB_INIT; @@ -4725,7 +4731,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_DATE_TEXT; } -#line 4729 "" +#line 4735 "" yy249: YYDEBUG(249, *YYCURSOR); ++YYCURSOR; @@ -4974,7 +4980,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) goto yy267; yy262: YYDEBUG(262, *YYCURSOR); -#line 1579 "ext/date/lib/parse_date.re" +#line 1585 "ext/date/lib/parse_date.re" { int length = 0; DEBUG_OUTPUT("datetextual | datenoyear"); @@ -4987,7 +4993,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_DATE_TEXT; } -#line 4991 "" +#line 4997 "" yy263: YYDEBUG(263, *YYCURSOR); yyaccept = 6; @@ -5114,7 +5120,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) } yy276: YYDEBUG(276, *YYCURSOR); -#line 1881 "ext/date/lib/parse_date.re" +#line 1887 "ext/date/lib/parse_date.re" { int tz_not_found; DEBUG_OUTPUT("dateshortwithtimeshort | dateshortwithtimelong | dateshortwithtimelongtz"); @@ -5143,7 +5149,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_SHORTDATE_WITH_TIME; } -#line 5147 "" +#line 5153 "" yy277: YYDEBUG(277, *YYCURSOR); yyaccept = 7; @@ -5441,7 +5447,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) YYDEBUG(300, *YYCURSOR); ++YYCURSOR; YYDEBUG(301, *YYCURSOR); -#line 1857 "ext/date/lib/parse_date.re" +#line 1863 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("dateshortwithtimeshort12 | dateshortwithtimelong12"); TIMELIB_INIT; @@ -5464,7 +5470,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_SHORTDATE_WITH_TIME; } -#line 5468 "" +#line 5474 "" yy302: YYDEBUG(302, *YYCURSOR); yych = *++YYCURSOR; @@ -6142,7 +6148,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) YYDEBUG(362, *YYCURSOR); ++YYCURSOR; YYDEBUG(363, *YYCURSOR); -#line 1551 "ext/date/lib/parse_date.re" +#line 1557 "ext/date/lib/parse_date.re" { int length = 0; DEBUG_OUTPUT("datenoday"); @@ -6155,7 +6161,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_DATE_NO_DAY; } -#line 6159 "" +#line 6165 "" yy364: YYDEBUG(364, *YYCURSOR); yych = *++YYCURSOR; @@ -6386,7 +6392,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) if (yych <= '9') goto yy372; yy371: YYDEBUG(371, *YYCURSOR); -#line 1695 "ext/date/lib/parse_date.re" +#line 1701 "ext/date/lib/parse_date.re" { int length = 0; DEBUG_OUTPUT("pgtextshort"); @@ -6399,7 +6405,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_PG_TEXT; } -#line 6403 "" +#line 6409 "" yy372: YYDEBUG(372, *YYCURSOR); yych = *++YYCURSOR; @@ -6981,7 +6987,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) } yy398: YYDEBUG(398, *YYCURSOR); -#line 1753 "ext/date/lib/parse_date.re" +#line 1759 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("ago"); TIMELIB_INIT; @@ -7001,7 +7007,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_AGO; } -#line 7005 "" +#line 7011 "" yy399: YYDEBUG(399, *YYCURSOR); yyaccept = 5; @@ -8790,7 +8796,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) ++YYCURSOR; yy461: YYDEBUG(461, *YYCURSOR); -#line 1444 "ext/date/lib/parse_date.re" +#line 1450 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("iso8601date4 | iso8601date2 | iso8601dateslash | dateslash"); TIMELIB_INIT; @@ -8801,7 +8807,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_ISO_DATE; } -#line 8805 "" +#line 8811 "" yy462: YYDEBUG(462, *YYCURSOR); yych = *++YYCURSOR; @@ -8923,7 +8929,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) YYDEBUG(484, *YYCURSOR); ++YYCURSOR; YYDEBUG(485, *YYCURSOR); -#line 1470 "ext/date/lib/parse_date.re" +#line 1476 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("iso8601datex"); TIMELIB_INIT; @@ -8934,7 +8940,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_ISO_DATE; } -#line 8938 "" +#line 8944 "" yy486: YYDEBUG(486, *YYCURSOR); yyaccept = 1; @@ -9688,7 +9694,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) } yy509: YYDEBUG(509, *YYCURSOR); -#line 1593 "ext/date/lib/parse_date.re" +#line 1599 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("datenoyearrev"); TIMELIB_INIT; @@ -9699,7 +9705,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_DATE_TEXT; } -#line 9703 "" +#line 9709 "" yy510: YYDEBUG(510, *YYCURSOR); yyaccept = 9; @@ -9840,7 +9846,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) YYDEBUG(521, *YYCURSOR); ++YYCURSOR; YYDEBUG(522, *YYCURSOR); -#line 1297 "ext/date/lib/parse_date.re" +#line 1303 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("timetiny12 | timeshort12 | timelong12"); TIMELIB_INIT; @@ -9856,7 +9862,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_TIME12; } -#line 9860 "" +#line 9866 "" yy523: YYDEBUG(523, *YYCURSOR); yyaccept = 10; @@ -9869,7 +9875,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) } yy524: YYDEBUG(524, *YYCURSOR); -#line 1334 "ext/date/lib/parse_date.re" +#line 1340 "ext/date/lib/parse_date.re" { int tz_not_found; DEBUG_OUTPUT("timetiny24 | timeshort24 | timelong24 | iso8601long"); @@ -9896,7 +9902,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_TIME24_WITH_ZONE; } -#line 9900 "" +#line 9906 "" yy525: YYDEBUG(525, *YYCURSOR); yyaccept = 10; @@ -10209,7 +10215,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) YYDEBUG(556, *YYCURSOR); ++YYCURSOR; YYDEBUG(557, *YYCURSOR); -#line 1314 "ext/date/lib/parse_date.re" +#line 1320 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("mssqltime"); TIMELIB_INIT; @@ -10228,7 +10234,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_TIME24_WITH_ZONE; } -#line 10232 "" +#line 10238 "" yy558: YYDEBUG(558, *YYCURSOR); yyaccept = 10; @@ -10334,7 +10340,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) if (yych <= '9') goto yy574; yy568: YYDEBUG(568, *YYCURSOR); -#line 1510 "ext/date/lib/parse_date.re" +#line 1516 "ext/date/lib/parse_date.re" { int length = 0; DEBUG_OUTPUT("datefull"); @@ -10348,7 +10354,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_DATE_FULL; } -#line 10352 "" +#line 10358 "" yy569: YYDEBUG(569, *YYCURSOR); yych = *++YYCURSOR; @@ -11084,7 +11090,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) YYDEBUG(639, *YYCURSOR); ++YYCURSOR; YYDEBUG(640, *YYCURSOR); -#line 1525 "ext/date/lib/parse_date.re" +#line 1531 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("pointed date YYYY"); TIMELIB_INIT; @@ -11095,7 +11101,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_DATE_FULL_POINTED; } -#line 11099 "" +#line 11105 "" yy641: YYDEBUG(641, *YYCURSOR); yyaccept = 10; @@ -11131,7 +11137,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) if (yych <= '9') goto yy638; yy645: YYDEBUG(645, *YYCURSOR); -#line 1537 "ext/date/lib/parse_date.re" +#line 1543 "ext/date/lib/parse_date.re" { int length = 0; DEBUG_OUTPUT("pointed date YY"); @@ -11144,7 +11150,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_DATE_FULL_POINTED; } -#line 11148 "" +#line 11154 "" yy646: YYDEBUG(646, *YYCURSOR); yyaccept = 10; @@ -11785,7 +11791,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) } yy690: YYDEBUG(690, *YYCURSOR); -#line 1496 "ext/date/lib/parse_date.re" +#line 1502 "ext/date/lib/parse_date.re" { int length = 0; DEBUG_OUTPUT("gnudateshort"); @@ -11798,7 +11804,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_ISO_DATE; } -#line 11802 "" +#line 11808 "" yy691: YYDEBUG(691, *YYCURSOR); yyaccept = 12; @@ -11904,7 +11910,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) } yy700: YYDEBUG(700, *YYCURSOR); -#line 1428 "ext/date/lib/parse_date.re" +#line 1434 "ext/date/lib/parse_date.re" { int length = 0; DEBUG_OUTPUT("americanshort | american"); @@ -11919,7 +11925,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_AMERICAN; } -#line 11923 "" +#line 11929 "" yy701: YYDEBUG(701, *YYCURSOR); yyaccept = 13; @@ -12153,7 +12159,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) if (yych <= ':') goto yy737; yy734: YYDEBUG(734, *YYCURSOR); -#line 1723 "ext/date/lib/parse_date.re" +#line 1729 "ext/date/lib/parse_date.re" { int tz_not_found; DEBUG_OUTPUT("clf"); @@ -12173,7 +12179,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_CLF; } -#line 12177 "" +#line 12183 "" yy735: YYDEBUG(735, *YYCURSOR); yyaccept = 14; @@ -12793,7 +12799,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) } yy808: YYDEBUG(808, *YYCURSOR); -#line 1456 "ext/date/lib/parse_date.re" +#line 1462 "ext/date/lib/parse_date.re" { int length = 0; DEBUG_OUTPUT("iso8601date2"); @@ -12806,7 +12812,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_ISO_DATE; } -#line 12810 "" +#line 12816 "" yy809: YYDEBUG(809, *YYCURSOR); yych = *++YYCURSOR; @@ -12845,7 +12851,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) YYDEBUG(815, *YYCURSOR); ++YYCURSOR; YYDEBUG(816, *YYCURSOR); -#line 1709 "ext/date/lib/parse_date.re" +#line 1715 "ext/date/lib/parse_date.re" { int length = 0; DEBUG_OUTPUT("pgtextreverse"); @@ -12858,7 +12864,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_PG_TEXT; } -#line 12862 "" +#line 12868 "" yy817: YYDEBUG(817, *YYCURSOR); yych = *++YYCURSOR; @@ -13023,7 +13029,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) } yy828: YYDEBUG(828, *YYCURSOR); -#line 1744 "ext/date/lib/parse_date.re" +#line 1750 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("year4"); TIMELIB_INIT; @@ -13031,7 +13037,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_CLF; } -#line 13035 "" +#line 13041 "" yy829: YYDEBUG(829, *YYCURSOR); yych = *++YYCURSOR; @@ -13236,7 +13242,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) } yy838: YYDEBUG(838, *YYCURSOR); -#line 1565 "ext/date/lib/parse_date.re" +#line 1571 "ext/date/lib/parse_date.re" { int length = 0; DEBUG_OUTPUT("datenodayrev"); @@ -13249,7 +13255,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_DATE_NO_DAY; } -#line 13253 "" +#line 13259 "" yy839: YYDEBUG(839, *YYCURSOR); yych = *++YYCURSOR; @@ -13470,7 +13476,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) if (yych <= '7') goto yy861; yy859: YYDEBUG(859, *YYCURSOR); -#line 1676 "ext/date/lib/parse_date.re" +#line 1682 "ext/date/lib/parse_date.re" { timelib_sll w, d; DEBUG_OUTPUT("isoweek"); @@ -13488,7 +13494,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_ISO_WEEK; } -#line 13492 "" +#line 13498 "" yy860: YYDEBUG(860, *YYCURSOR); yych = *++YYCURSOR; @@ -13498,7 +13504,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) YYDEBUG(861, *YYCURSOR); ++YYCURSOR; YYDEBUG(862, *YYCURSOR); -#line 1657 "ext/date/lib/parse_date.re" +#line 1663 "ext/date/lib/parse_date.re" { timelib_sll w, d; DEBUG_OUTPUT("isoweekday"); @@ -13516,7 +13522,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_ISO_WEEK; } -#line 13520 "" +#line 13526 "" yy863: YYDEBUG(863, *YYCURSOR); yych = *++YYCURSOR; @@ -13588,7 +13594,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) } yy866: YYDEBUG(866, *YYCURSOR); -#line 1643 "ext/date/lib/parse_date.re" +#line 1649 "ext/date/lib/parse_date.re" { int length = 0; DEBUG_OUTPUT("pgydotd"); @@ -13601,7 +13607,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_PG_YEARDAY; } -#line 13605 "" +#line 13611 "" yy867: YYDEBUG(867, *YYCURSOR); yych = *++YYCURSOR; @@ -13704,7 +13710,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) ++YYCURSOR; yy887: YYDEBUG(887, *YYCURSOR); -#line 1617 "ext/date/lib/parse_date.re" +#line 1623 "ext/date/lib/parse_date.re" { int tz_not_found; DEBUG_OUTPUT("xmlrpc | xmlrpcnocolon | soap | wddx | exif"); @@ -13729,7 +13735,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_XMLRPC_SOAP; } -#line 13733 "" +#line 13739 "" yy888: YYDEBUG(888, *YYCURSOR); yych = *++YYCURSOR; @@ -14025,7 +14031,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) } yy893: YYDEBUG(893, *YYCURSOR); -#line 1605 "ext/date/lib/parse_date.re" +#line 1611 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("datenocolon"); TIMELIB_INIT; @@ -14036,7 +14042,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_DATE_NOCOLON; } -#line 14040 "" +#line 14046 "" yy894: YYDEBUG(894, *YYCURSOR); yych = *++YYCURSOR; @@ -14958,7 +14964,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) } yy1018: YYDEBUG(1018, *YYCURSOR); -#line 1482 "ext/date/lib/parse_date.re" +#line 1488 "ext/date/lib/parse_date.re" { int length = 0; DEBUG_OUTPUT("gnudateshorter"); @@ -14971,7 +14977,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_ISO_DATE; } -#line 14975 "" +#line 14981 "" yy1019: YYDEBUG(1019, *YYCURSOR); yyaccept = 22; @@ -16179,7 +16185,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) } yy1127: YYDEBUG(1127, *YYCURSOR); -#line 1362 "ext/date/lib/parse_date.re" +#line 1368 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("gnunocolon"); TIMELIB_INIT; @@ -16201,7 +16207,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_GNU_NOCOLON; } -#line 16205 "" +#line 16211 "" yy1128: YYDEBUG(1128, *YYCURSOR); yych = *++YYCURSOR; @@ -16301,7 +16307,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) } yy1135: YYDEBUG(1135, *YYCURSOR); -#line 1408 "ext/date/lib/parse_date.re" +#line 1414 "ext/date/lib/parse_date.re" { int tz_not_found; DEBUG_OUTPUT("iso8601nocolon"); @@ -16320,7 +16326,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_ISO_NOCOLON; } -#line 16324 "" +#line 16330 "" yy1136: YYDEBUG(1136, *YYCURSOR); yyaccept = 25; @@ -17296,7 +17302,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) } yy1179: YYDEBUG(1179, *YYCURSOR); -#line 1816 "ext/date/lib/parse_date.re" +#line 1822 "ext/date/lib/parse_date.re" { timelib_sll i; int behavior = 0; @@ -17312,7 +17318,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 17316 "" +#line 17322 "" yy1180: YYDEBUG(1180, *YYCURSOR); ++YYCURSOR; @@ -17378,7 +17384,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) YYDEBUG(1188, *YYCURSOR); ++YYCURSOR; YYDEBUG(1189, *YYCURSOR); -#line 1275 "ext/date/lib/parse_date.re" +#line 1281 "ext/date/lib/parse_date.re" { timelib_sll i; int behavior = 0; @@ -17399,7 +17405,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_WEEK_DAY_OF_MONTH; } -#line 17403 "" +#line 17409 "" yy1190: YYDEBUG(1190, *YYCURSOR); yyaccept = 26; @@ -17539,7 +17545,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) } yy1206: YYDEBUG(1206, *YYCURSOR); -#line 1792 "ext/date/lib/parse_date.re" +#line 1798 "ext/date/lib/parse_date.re" { timelib_sll i; int behavior = 0; @@ -17562,7 +17568,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 17566 "" +#line 17572 "" yy1207: YYDEBUG(1207, *YYCURSOR); yych = *++YYCURSOR; @@ -20511,7 +20517,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) } yy1388: YYDEBUG(1388, *YYCURSOR); -#line 1252 "ext/date/lib/parse_date.re" +#line 1258 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("backof | frontof"); TIMELIB_INIT; @@ -20533,7 +20539,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_LF_DAY_OF_MONTH; } -#line 20537 "" +#line 20543 "" yy1389: YYDEBUG(1389, *YYCURSOR); yyaccept = 28; @@ -20832,7 +20838,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) YYDEBUG(1410, *YYCURSOR); ++YYCURSOR; YYDEBUG(1411, *YYCURSOR); -#line 1235 "ext/date/lib/parse_date.re" +#line 1241 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("firstdayof | lastdayof"); TIMELIB_INIT; @@ -20848,7 +20854,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_LF_DAY_OF_MONTH; } -#line 20852 "" +#line 20858 "" yy1412: YYDEBUG(1412, *YYCURSOR); yyaccept = 1; @@ -22370,7 +22376,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) if (yych <= '9') goto yy1483; yy1485: YYDEBUG(1485, *YYCURSOR); -#line 1169 "ext/date/lib/parse_date.re" +#line 1175 "ext/date/lib/parse_date.re" { timelib_ull i; @@ -22395,7 +22401,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 22399 "" +#line 22405 "" yy1486: YYDEBUG(1486, *YYCURSOR); ++YYCURSOR; @@ -22403,7 +22409,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) if (yych <= '9') goto yy1488; yy1487: YYDEBUG(1487, *YYCURSOR); -#line 1195 "ext/date/lib/parse_date.re" +#line 1201 "ext/date/lib/parse_date.re" { timelib_sll i; timelib_ull us; @@ -22442,7 +22448,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 22446 "" +#line 22452 "" yy1488: YYDEBUG(1488, *YYCURSOR); yych = *++YYCURSOR; @@ -22911,7 +22917,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) ++YYCURSOR; yy1524: YYDEBUG(1524, *YYCURSOR); -#line 1157 "ext/date/lib/parse_date.re" +#line 1163 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("tomorrow"); TIMELIB_INIT; @@ -22922,7 +22928,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 22926 "" +#line 22932 "" yy1525: YYDEBUG(1525, *YYCURSOR); yych = *++YYCURSOR; @@ -22957,7 +22963,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) } yy1527: YYDEBUG(1527, *YYCURSOR); -#line 1147 "ext/date/lib/parse_date.re" +#line 1153 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("midnight | today"); TIMELIB_INIT; @@ -22966,7 +22972,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 22970 "" +#line 22976 "" yy1528: YYDEBUG(1528, *YYCURSOR); yych = *++YYCURSOR; @@ -25061,7 +25067,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) } yy1612: YYDEBUG(1612, *YYCURSOR); -#line 1126 "ext/date/lib/parse_date.re" +#line 1132 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("now"); TIMELIB_INIT; @@ -25069,7 +25075,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 25073 "" +#line 25079 "" yy1613: YYDEBUG(1613, *YYCURSOR); yych = *++YYCURSOR; @@ -25208,7 +25214,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) } yy1620: YYDEBUG(1620, *YYCURSOR); -#line 1135 "ext/date/lib/parse_date.re" +#line 1141 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("noon"); TIMELIB_INIT; @@ -25219,7 +25225,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 25223 "" +#line 25229 "" yy1621: YYDEBUG(1621, *YYCURSOR); yyaccept = 1; @@ -25752,7 +25758,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) ++YYCURSOR; yy1643: YYDEBUG(1643, *YYCURSOR); -#line 1114 "ext/date/lib/parse_date.re" +#line 1120 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("yesterday"); TIMELIB_INIT; @@ -25763,7 +25769,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 25767 "" +#line 25773 "" yy1644: YYDEBUG(1644, *YYCURSOR); yyaccept = 1; @@ -25936,7 +25942,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) goto yy1643; } } -#line 1942 "ext/date/lib/parse_date.re" +#line 1948 "ext/date/lib/parse_date.re" } diff --git a/ext/date/lib/parse_date.re b/ext/date/lib/parse_date.re index db5540a020ebe..800cd830fbd68 100644 --- a/ext/date/lib/parse_date.re +++ b/ext/date/lib/parse_date.re @@ -780,7 +780,13 @@ static timelib_long timelib_lookup_abbr(const char **ptr, int *dst, char **tz_ab timelib_long value = 0; const timelib_tz_lookup_table *tp; - while (**ptr != '\0' && **ptr != ')' && **ptr != ' ') { + /* Only include A-Z, a-z, 0-9, /, _, and - in abbreviations/TZ IDs */ + while ( + (**ptr >= 'A' && **ptr <= 'Z') || + (**ptr >= 'a' && **ptr <= 'z') || + (**ptr >= '0' && **ptr <= '9') || + **ptr == '/' || **ptr == '_' || **ptr == '-' + ) { ++*ptr; } end = *ptr; diff --git a/ext/date/lib/timelib.h b/ext/date/lib/timelib.h index 3b559b95f4743..c9e8c6d82980e 100644 --- a/ext/date/lib/timelib.h +++ b/ext/date/lib/timelib.h @@ -30,9 +30,9 @@ # include "timelib_config.h" #endif -#define TIMELIB_VERSION 202202 -#define TIMELIB_EXTENDED_VERSION 20220102 -#define TIMELIB_ASCII_VERSION "2022.02" +#define TIMELIB_VERSION 202203 +#define TIMELIB_EXTENDED_VERSION 20220301 +#define TIMELIB_ASCII_VERSION "2022.03" #include #include diff --git a/ext/date/lib/timezonedb.h b/ext/date/lib/timezonedb.h index 671a7238e4c8b..2b4f626f23ec4 100644 --- a/ext/date/lib/timezonedb.h +++ b/ext/date/lib/timezonedb.h @@ -4,7 +4,7 @@ #endif #ifdef TIMELIB_SUPPORT_SLIM_FILE -const timelib_tzdb_index_entry timezonedb_idx_builtin[596] = { +const timelib_tzdb_index_entry timezonedb_idx_builtin[597] = { { (char*) "Africa/Abidjan" , 0x000000 }, { (char*) "Africa/Accra" , 0x00008E }, { (char*) "Africa/Addis_Ababa" , 0x000356 }, @@ -83,528 +83,529 @@ const timelib_tzdb_index_entry timezonedb_idx_builtin[596] = { { (char*) "America/Atka" , 0x0076F5 }, { (char*) "America/Bahia" , 0x007ACA }, { (char*) "America/Bahia_Banderas" , 0x007D85 }, - { (char*) "America/Barbados" , 0x008089 }, - { (char*) "America/Belem" , 0x0081AB }, - { (char*) "America/Belize" , 0x008353 }, - { (char*) "America/Blanc-Sablon" , 0x008774 }, - { (char*) "America/Boa_Vista" , 0x008869 }, - { (char*) "America/Bogota" , 0x008A2A }, - { (char*) "America/Boise" , 0x008AE9 }, - { (char*) "America/Buenos_Aires" , 0x008EFC }, - { (char*) "America/Cambridge_Bay" , 0x0091CC }, - { (char*) "America/Campo_Grande" , 0x0094EC }, - { (char*) "America/Cancun" , 0x0098C2 }, - { (char*) "America/Caracas" , 0x009B03 }, - { (char*) "America/Catamarca" , 0x009BCD }, - { (char*) "America/Cayenne" , 0x009E9D }, - { (char*) "America/Cayman" , 0x009F40 }, - { (char*) "America/Chicago" , 0x009FE1 }, - { (char*) "America/Chihuahua" , 0x00A6DB }, - { (char*) "America/Coral_Harbour" , 0x00A9C0 }, - { (char*) "America/Cordoba" , 0x00AA61 }, - { (char*) "America/Costa_Rica" , 0x00AD31 }, - { (char*) "America/Creston" , 0x00AE25 }, - { (char*) "America/Cuiaba" , 0x00AEE1 }, - { (char*) "America/Curacao" , 0x00B29E }, - { (char*) "America/Danmarkshavn" , 0x00B341 }, - { (char*) "America/Dawson" , 0x00B526 }, - { (char*) "America/Dawson_Creek" , 0x00B949 }, - { (char*) "America/Denver" , 0x00BC20 }, - { (char*) "America/Detroit" , 0x00C053 }, - { (char*) "America/Dominica" , 0x00C3FB }, - { (char*) "America/Edmonton" , 0x00C489 }, - { (char*) "America/Eirunepe" , 0x00C87C }, - { (char*) "America/El_Salvador" , 0x00CA4B }, - { (char*) "America/Ensenada" , 0x00CB07 }, - { (char*) "America/Fort_Nelson" , 0x00CF14 }, - { (char*) "America/Fort_Wayne" , 0x00D4DC }, - { (char*) "America/Fortaleza" , 0x00D6FB }, - { (char*) "America/Glace_Bay" , 0x00D911 }, - { (char*) "America/Godthab" , 0x00DCA8 }, - { (char*) "America/Goose_Bay" , 0x00DE85 }, - { (char*) "America/Grand_Turk" , 0x00E4DD }, - { (char*) "America/Grenada" , 0x00E83E }, - { (char*) "America/Guadeloupe" , 0x00E8CC }, - { (char*) "America/Guatemala" , 0x00E95A }, - { (char*) "America/Guayaquil" , 0x00EA3A }, - { (char*) "America/Guyana" , 0x00EB0B }, - { (char*) "America/Halifax" , 0x00EBCC }, - { (char*) "America/Havana" , 0x00F27E }, - { (char*) "America/Hermosillo" , 0x00F6E7 }, - { (char*) "America/Indiana/Indianapolis" , 0x00F830 }, - { (char*) "America/Indiana/Knox" , 0x00FA68 }, - { (char*) "America/Indiana/Marengo" , 0x00FE81 }, - { (char*) "America/Indiana/Petersburg" , 0x0100DB }, - { (char*) "America/Indiana/Tell_City" , 0x0103A5 }, - { (char*) "America/Indiana/Vevay" , 0x0105CF }, - { (char*) "America/Indiana/Vincennes" , 0x010766 }, - { (char*) "America/Indiana/Winamac" , 0x0109BC }, - { (char*) "America/Indianapolis" , 0x010C42 }, - { (char*) "America/Inuvik" , 0x010E61 }, - { (char*) "America/Iqaluit" , 0x01113E }, - { (char*) "America/Jamaica" , 0x01144C }, - { (char*) "America/Jujuy" , 0x0115AB }, - { (char*) "America/Juneau" , 0x011869 }, - { (char*) "America/Kentucky/Louisville" , 0x011C4F }, - { (char*) "America/Kentucky/Monticello" , 0x012153 }, - { (char*) "America/Knox_IN" , 0x01253F }, - { (char*) "America/Kralendijk" , 0x012943 }, - { (char*) "America/La_Paz" , 0x012A00 }, - { (char*) "America/Lima" , 0x012AB6 }, - { (char*) "America/Los_Angeles" , 0x012BDD }, - { (char*) "America/Louisville" , 0x0130FE }, - { (char*) "America/Lower_Princes" , 0x0135E4 }, - { (char*) "America/Maceio" , 0x0136A1 }, - { (char*) "America/Managua" , 0x0138B3 }, - { (char*) "America/Manaus" , 0x0139E6 }, - { (char*) "America/Marigot" , 0x013B9D }, - { (char*) "America/Martinique" , 0x013C5A }, - { (char*) "America/Matamoros" , 0x013D18 }, - { (char*) "America/Mazatlan" , 0x013F17 }, - { (char*) "America/Mendoza" , 0x014226 }, - { (char*) "America/Menominee" , 0x0144F6 }, - { (char*) "America/Merida" , 0x0148B6 }, - { (char*) "America/Metlakatla" , 0x014B70 }, - { (char*) "America/Mexico_City" , 0x014DE6 }, - { (char*) "America/Miquelon" , 0x015103 }, - { (char*) "America/Moncton" , 0x015335 }, - { (char*) "America/Monterrey" , 0x01592E }, - { (char*) "America/Montevideo" , 0x015C03 }, - { (char*) "America/Montreal" , 0x015FD8 }, - { (char*) "America/Montserrat" , 0x016699 }, - { (char*) "America/Nassau" , 0x016727 }, - { (char*) "America/New_York" , 0x016B21 }, - { (char*) "America/Nipigon" , 0x017211 }, - { (char*) "America/Nome" , 0x0178D2 }, - { (char*) "America/Noronha" , 0x017CBA }, - { (char*) "America/North_Dakota/Beulah" , 0x017EBA }, - { (char*) "America/North_Dakota/Center" , 0x0182EE }, - { (char*) "America/North_Dakota/New_Salem" , 0x0186ED }, - { (char*) "America/Nuuk" , 0x018AF2 }, - { (char*) "America/Ojinaga" , 0x018CE5 }, - { (char*) "America/Panama" , 0x018FCC }, - { (char*) "America/Pangnirtung" , 0x01906D }, - { (char*) "America/Paramaribo" , 0x019394 }, - { (char*) "America/Phoenix" , 0x01945B }, - { (char*) "America/Port-au-Prince" , 0x019574 }, - { (char*) "America/Port_of_Spain" , 0x0197B5 }, - { (char*) "America/Porto_Acre" , 0x019843 }, - { (char*) "America/Porto_Velho" , 0x0199F1 }, - { (char*) "America/Puerto_Rico" , 0x019B8F }, - { (char*) "America/Punta_Arenas" , 0x019C4C }, - { (char*) "America/Rainy_River" , 0x01A12E }, - { (char*) "America/Rankin_Inlet" , 0x01A648 }, - { (char*) "America/Recife" , 0x01A91E }, - { (char*) "America/Regina" , 0x01AB18 }, - { (char*) "America/Resolute" , 0x01ADB7 }, - { (char*) "America/Rio_Branco" , 0x01B08E }, - { (char*) "America/Rosario" , 0x01B240 }, - { (char*) "America/Santa_Isabel" , 0x01B510 }, - { (char*) "America/Santarem" , 0x01B91D }, - { (char*) "America/Santiago" , 0x01BACD }, - { (char*) "America/Santo_Domingo" , 0x01C035 }, - { (char*) "America/Sao_Paulo" , 0x01C17E }, - { (char*) "America/Scoresbysund" , 0x01C578 }, - { (char*) "America/Shiprock" , 0x01C780 }, - { (char*) "America/Sitka" , 0x01CB9E }, - { (char*) "America/St_Barthelemy" , 0x01CF79 }, - { (char*) "America/St_Johns" , 0x01D036 }, - { (char*) "America/St_Kitts" , 0x01D7BA }, - { (char*) "America/St_Lucia" , 0x01D848 }, - { (char*) "America/St_Thomas" , 0x01D8E9 }, - { (char*) "America/St_Vincent" , 0x01D977 }, - { (char*) "America/Swift_Current" , 0x01DA18 }, - { (char*) "America/Tegucigalpa" , 0x01DBA6 }, - { (char*) "America/Thule" , 0x01DC74 }, - { (char*) "America/Thunder_Bay" , 0x01DE55 }, - { (char*) "America/Tijuana" , 0x01E516 }, - { (char*) "America/Toronto" , 0x01E944 }, - { (char*) "America/Tortola" , 0x01F022 }, - { (char*) "America/Vancouver" , 0x01F0B0 }, - { (char*) "America/Virgin" , 0x01F607 }, - { (char*) "America/Whitehorse" , 0x01F6C4 }, - { (char*) "America/Winnipeg" , 0x01FAE7 }, - { (char*) "America/Yakutat" , 0x02001E }, - { (char*) "America/Yellowknife" , 0x0203EC }, - { (char*) "Antarctica/Casey" , 0x0206E8 }, - { (char*) "Antarctica/Davis" , 0x0207EC }, - { (char*) "Antarctica/DumontDUrville" , 0x0208C2 }, - { (char*) "Antarctica/Macquarie" , 0x020976 }, - { (char*) "Antarctica/Mawson" , 0x020D62 }, - { (char*) "Antarctica/McMurdo" , 0x020E0C }, - { (char*) "Antarctica/Palmer" , 0x02113E }, - { (char*) "Antarctica/Rothera" , 0x0214C7 }, - { (char*) "Antarctica/South_Pole" , 0x02155E }, - { (char*) "Antarctica/Syowa" , 0x02197D }, - { (char*) "Antarctica/Troll" , 0x021A13 }, - { (char*) "Antarctica/Vostok" , 0x021AD5 }, - { (char*) "Arctic/Longyearbyen" , 0x021B6C }, - { (char*) "Asia/Aden" , 0x021E39 }, - { (char*) "Asia/Almaty" , 0x021ECA }, - { (char*) "Asia/Amman" , 0x02214E }, - { (char*) "Asia/Anadyr" , 0x0224FA }, - { (char*) "Asia/Aqtau" , 0x022800 }, - { (char*) "Asia/Aqtobe" , 0x022A7F }, - { (char*) "Asia/Ashgabat" , 0x022CFF }, - { (char*) "Asia/Ashkhabad" , 0x022E82 }, - { (char*) "Asia/Atyrau" , 0x023005 }, - { (char*) "Asia/Baghdad" , 0x02328E }, - { (char*) "Asia/Bahrain" , 0x023510 }, - { (char*) "Asia/Baku" , 0x0235C9 }, - { (char*) "Asia/Bangkok" , 0x0238BD }, - { (char*) "Asia/Barnaul" , 0x023961 }, - { (char*) "Asia/Beirut" , 0x023C6C }, - { (char*) "Asia/Bishkek" , 0x023F54 }, - { (char*) "Asia/Brunei" , 0x0241CA }, - { (char*) "Asia/Calcutta" , 0x024270 }, - { (char*) "Asia/Chita" , 0x024358 }, - { (char*) "Asia/Choibalsan" , 0x024666 }, - { (char*) "Asia/Chongqing" , 0x0248EF }, - { (char*) "Asia/Chungking" , 0x024A84 }, - { (char*) "Asia/Colombo" , 0x024C19 }, - { (char*) "Asia/Dacca" , 0x024D1C }, - { (char*) "Asia/Damascus" , 0x024E0F }, - { (char*) "Asia/Dhaka" , 0x0252ED }, - { (char*) "Asia/Dili" , 0x0253E0 }, - { (char*) "Asia/Dubai" , 0x025496 }, - { (char*) "Asia/Dushanbe" , 0x025527 }, - { (char*) "Asia/Famagusta" , 0x0256A1 }, - { (char*) "Asia/Gaza" , 0x025A68 }, - { (char*) "Asia/Harbin" , 0x025F68 }, - { (char*) "Asia/Hebron" , 0x0260FD }, - { (char*) "Asia/Ho_Chi_Minh" , 0x02660E }, - { (char*) "Asia/Hong_Kong" , 0x026706 }, - { (char*) "Asia/Hovd" , 0x026A19 }, - { (char*) "Asia/Irkutsk" , 0x026CA2 }, - { (char*) "Asia/Istanbul" , 0x026FC0 }, - { (char*) "Asia/Jakarta" , 0x02747C }, - { (char*) "Asia/Jayapura" , 0x02758D }, - { (char*) "Asia/Jerusalem" , 0x02767A }, - { (char*) "Asia/Kabul" , 0x027AB8 }, - { (char*) "Asia/Kamchatka" , 0x027B63 }, - { (char*) "Asia/Karachi" , 0x027E58 }, - { (char*) "Asia/Kashgar" , 0x027F6E }, - { (char*) "Asia/Kathmandu" , 0x027FFF }, - { (char*) "Asia/Katmandu" , 0x0280AC }, - { (char*) "Asia/Khandyga" , 0x028159 }, - { (char*) "Asia/Kolkata" , 0x02848A }, - { (char*) "Asia/Krasnoyarsk" , 0x028572 }, - { (char*) "Asia/Kuala_Lumpur" , 0x02887C }, - { (char*) "Asia/Kuching" , 0x02899C }, - { (char*) "Asia/Kuwait" , 0x028AF6 }, - { (char*) "Asia/Macao" , 0x028B87 }, - { (char*) "Asia/Macau" , 0x028EAA }, - { (char*) "Asia/Magadan" , 0x0291CD }, - { (char*) "Asia/Makassar" , 0x0294D8 }, - { (char*) "Asia/Manila" , 0x0295EB }, - { (char*) "Asia/Muscat" , 0x0296E5 }, - { (char*) "Asia/Nicosia" , 0x029776 }, - { (char*) "Asia/Novokuznetsk" , 0x0299EA }, - { (char*) "Asia/Novosibirsk" , 0x029CDD }, - { (char*) "Asia/Omsk" , 0x029FEE }, - { (char*) "Asia/Oral" , 0x02A2EC }, - { (char*) "Asia/Phnom_Penh" , 0x02A578 }, - { (char*) "Asia/Pontianak" , 0x02A64C }, - { (char*) "Asia/Pyongyang" , 0x02A765 }, - { (char*) "Asia/Qatar" , 0x02A828 }, - { (char*) "Asia/Qostanay" , 0x02A8CC }, - { (char*) "Asia/Qyzylorda" , 0x02AB59 }, - { (char*) "Asia/Rangoon" , 0x02ADF2 }, - { (char*) "Asia/Riyadh" , 0x02AEB9 }, - { (char*) "Asia/Saigon" , 0x02AF4A }, - { (char*) "Asia/Sakhalin" , 0x02B042 }, - { (char*) "Asia/Samarkand" , 0x02B359 }, - { (char*) "Asia/Seoul" , 0x02B4E4 }, - { (char*) "Asia/Shanghai" , 0x02B68F }, - { (char*) "Asia/Singapore" , 0x02B830 }, - { (char*) "Asia/Srednekolymsk" , 0x02B93C }, - { (char*) "Asia/Taipei" , 0x02BC50 }, - { (char*) "Asia/Tashkent" , 0x02BE5B }, - { (char*) "Asia/Tbilisi" , 0x02BFE6 }, - { (char*) "Asia/Tehran" , 0x02C267 }, - { (char*) "Asia/Tel_Aviv" , 0x02C59F }, - { (char*) "Asia/Thimbu" , 0x02C9DD }, - { (char*) "Asia/Thimphu" , 0x02CA83 }, - { (char*) "Asia/Tokyo" , 0x02CB29 }, - { (char*) "Asia/Tomsk" , 0x02CC0A }, - { (char*) "Asia/Ujung_Pandang" , 0x02CF15 }, - { (char*) "Asia/Ulaanbaatar" , 0x02CFDF }, - { (char*) "Asia/Ulan_Bator" , 0x02D252 }, - { (char*) "Asia/Urumqi" , 0x02D4B0 }, - { (char*) "Asia/Ust-Nera" , 0x02D54E }, - { (char*) "Asia/Vientiane" , 0x02D871 }, - { (char*) "Asia/Vladivostok" , 0x02D957 }, - { (char*) "Asia/Yakutsk" , 0x02DC5C }, - { (char*) "Asia/Yangon" , 0x02DF60 }, - { (char*) "Asia/Yekaterinburg" , 0x02E027 }, - { (char*) "Asia/Yerevan" , 0x02E339 }, - { (char*) "Atlantic/Azores" , 0x02E609 }, - { (char*) "Atlantic/Bermuda" , 0x02EBC8 }, - { (char*) "Atlantic/Canary" , 0x02EFD4 }, - { (char*) "Atlantic/Cape_Verde" , 0x02F1CC }, - { (char*) "Atlantic/Faeroe" , 0x02F287 }, - { (char*) "Atlantic/Faroe" , 0x02F44C }, - { (char*) "Atlantic/Jan_Mayen" , 0x02F611 }, - { (char*) "Atlantic/Madeira" , 0x02F8DE }, - { (char*) "Atlantic/Reykjavik" , 0x02FEA6 }, - { (char*) "Atlantic/South_Georgia" , 0x0301A3 }, - { (char*) "Atlantic/St_Helena" , 0x030233 }, - { (char*) "Atlantic/Stanley" , 0x0302D4 }, - { (char*) "Australia/ACT" , 0x0305F5 }, - { (char*) "Australia/Adelaide" , 0x030989 }, - { (char*) "Australia/Brisbane" , 0x030D3D }, - { (char*) "Australia/Broken_Hill" , 0x030E81 }, - { (char*) "Australia/Canberra" , 0x031256 }, - { (char*) "Australia/Currie" , 0x0315EA }, - { (char*) "Australia/Darwin" , 0x0319E1 }, - { (char*) "Australia/Eucla" , 0x031AE9 }, - { (char*) "Australia/Hobart" , 0x031C48 }, - { (char*) "Australia/LHI" , 0x032047 }, - { (char*) "Australia/Lindeman" , 0x032307 }, - { (char*) "Australia/Lord_Howe" , 0x032477 }, - { (char*) "Australia/Melbourne" , 0x032747 }, - { (char*) "Australia/North" , 0x032AE3 }, - { (char*) "Australia/NSW" , 0x032BD9 }, - { (char*) "Australia/Perth" , 0x032F6D }, - { (char*) "Australia/Queensland" , 0x0330C9 }, - { (char*) "Australia/South" , 0x0331F6 }, - { (char*) "Australia/Sydney" , 0x03359B }, - { (char*) "Australia/Tasmania" , 0x03394B }, - { (char*) "Australia/Victoria" , 0x033D42 }, - { (char*) "Australia/West" , 0x0340D6 }, - { (char*) "Australia/Yancowinna" , 0x034214 }, - { (char*) "Brazil/Acre" , 0x0345CD }, - { (char*) "Brazil/DeNoronha" , 0x03477B }, - { (char*) "Brazil/East" , 0x03496B }, - { (char*) "Brazil/West" , 0x034D2F }, - { (char*) "Canada/Atlantic" , 0x034ED7 }, - { (char*) "Canada/Central" , 0x03556B }, - { (char*) "Canada/Eastern" , 0x035A85 }, - { (char*) "Canada/Mountain" , 0x036146 }, - { (char*) "Canada/Newfoundland" , 0x03651C }, - { (char*) "Canada/Pacific" , 0x036C7E }, - { (char*) "Canada/Saskatchewan" , 0x0371BC }, - { (char*) "Canada/Yukon" , 0x037446 }, - { (char*) "CET" , 0x037857 }, - { (char*) "Chile/Continental" , 0x037AD0 }, - { (char*) "Chile/EasterIsland" , 0x038026 }, - { (char*) "CST6CDT" , 0x0384C8 }, - { (char*) "Cuba" , 0x03888B }, - { (char*) "EET" , 0x038CF4 }, - { (char*) "Egypt" , 0x038EF1 }, - { (char*) "Eire" , 0x0393F9 }, - { (char*) "EST" , 0x0399DD }, - { (char*) "EST5EDT" , 0x039A58 }, - { (char*) "Etc/GMT" , 0x039E1B }, - { (char*) "Etc/GMT+0" , 0x039E96 }, - { (char*) "Etc/GMT+1" , 0x039F11 }, - { (char*) "Etc/GMT+10" , 0x039F8E }, - { (char*) "Etc/GMT+11" , 0x03A00C }, - { (char*) "Etc/GMT+12" , 0x03A08A }, - { (char*) "Etc/GMT+2" , 0x03A108 }, - { (char*) "Etc/GMT+3" , 0x03A185 }, - { (char*) "Etc/GMT+4" , 0x03A202 }, - { (char*) "Etc/GMT+5" , 0x03A27F }, - { (char*) "Etc/GMT+6" , 0x03A2FC }, - { (char*) "Etc/GMT+7" , 0x03A379 }, - { (char*) "Etc/GMT+8" , 0x03A3F6 }, - { (char*) "Etc/GMT+9" , 0x03A473 }, - { (char*) "Etc/GMT-0" , 0x03A4F0 }, - { (char*) "Etc/GMT-1" , 0x03A56B }, - { (char*) "Etc/GMT-10" , 0x03A5E9 }, - { (char*) "Etc/GMT-11" , 0x03A668 }, - { (char*) "Etc/GMT-12" , 0x03A6E7 }, - { (char*) "Etc/GMT-13" , 0x03A766 }, - { (char*) "Etc/GMT-14" , 0x03A7E5 }, - { (char*) "Etc/GMT-2" , 0x03A864 }, - { (char*) "Etc/GMT-3" , 0x03A8E2 }, - { (char*) "Etc/GMT-4" , 0x03A960 }, - { (char*) "Etc/GMT-5" , 0x03A9DE }, - { (char*) "Etc/GMT-6" , 0x03AA5C }, - { (char*) "Etc/GMT-7" , 0x03AADA }, - { (char*) "Etc/GMT-8" , 0x03AB58 }, - { (char*) "Etc/GMT-9" , 0x03ABD6 }, - { (char*) "Etc/GMT0" , 0x03AC54 }, - { (char*) "Etc/Greenwich" , 0x03ACCF }, - { (char*) "Etc/UCT" , 0x03AD4A }, - { (char*) "Etc/Universal" , 0x03ADC5 }, - { (char*) "Etc/UTC" , 0x03AE40 }, - { (char*) "Etc/Zulu" , 0x03AEBB }, - { (char*) "Europe/Amsterdam" , 0x03AF36 }, - { (char*) "Europe/Andorra" , 0x03B371 }, - { (char*) "Europe/Astrakhan" , 0x03B502 }, - { (char*) "Europe/Athens" , 0x03B7F6 }, - { (char*) "Europe/Belfast" , 0x03BAAC }, - { (char*) "Europe/Belgrade" , 0x03C0F7 }, - { (char*) "Europe/Berlin" , 0x03C2E1 }, - { (char*) "Europe/Bratislava" , 0x03C5C2 }, - { (char*) "Europe/Brussels" , 0x03C8A1 }, - { (char*) "Europe/Bucharest" , 0x03CCFC }, - { (char*) "Europe/Budapest" , 0x03CF9D }, - { (char*) "Europe/Busingen" , 0x03D2A7 }, - { (char*) "Europe/Chisinau" , 0x03D4AC }, - { (char*) "Europe/Copenhagen" , 0x03D7AB }, - { (char*) "Europe/Dublin" , 0x03DA26 }, - { (char*) "Europe/Gibraltar" , 0x03E00A }, - { (char*) "Europe/Guernsey" , 0x03E4DA }, - { (char*) "Europe/Helsinki" , 0x03EB31 }, - { (char*) "Europe/Isle_of_Man" , 0x03ED1E }, - { (char*) "Europe/Istanbul" , 0x03F369 }, - { (char*) "Europe/Jersey" , 0x03F825 }, - { (char*) "Europe/Kaliningrad" , 0x03FE7C }, - { (char*) "Europe/Kiev" , 0x040224 }, - { (char*) "Europe/Kirov" , 0x04045E }, - { (char*) "Europe/Kyiv" , 0x040745 }, - { (char*) "Europe/Lisbon" , 0x040993 }, - { (char*) "Europe/Ljubljana" , 0x040F60 }, - { (char*) "Europe/London" , 0x04114A }, - { (char*) "Europe/Luxembourg" , 0x041795 }, - { (char*) "Europe/Madrid" , 0x041BE0 }, - { (char*) "Europe/Malta" , 0x041F7D }, - { (char*) "Europe/Mariehamn" , 0x042329 }, - { (char*) "Europe/Minsk" , 0x042516 }, - { (char*) "Europe/Monaco" , 0x04284A }, - { (char*) "Europe/Moscow" , 0x042CB0 }, - { (char*) "Europe/Nicosia" , 0x04305C }, - { (char*) "Europe/Oslo" , 0x0432BD }, - { (char*) "Europe/Paris" , 0x04356D }, - { (char*) "Europe/Podgorica" , 0x0439CA }, - { (char*) "Europe/Prague" , 0x043BB4 }, - { (char*) "Europe/Riga" , 0x043E93 }, - { (char*) "Europe/Rome" , 0x044155 }, - { (char*) "Europe/Samara" , 0x044514 }, - { (char*) "Europe/San_Marino" , 0x044815 }, - { (char*) "Europe/Sarajevo" , 0x044BD4 }, - { (char*) "Europe/Saratov" , 0x044DBE }, - { (char*) "Europe/Simferopol" , 0x0450B0 }, - { (char*) "Europe/Skopje" , 0x045423 }, - { (char*) "Europe/Sofia" , 0x04560D }, - { (char*) "Europe/Stockholm" , 0x045869 }, - { (char*) "Europe/Tallinn" , 0x045A66 }, - { (char*) "Europe/Tirane" , 0x045D15 }, - { (char*) "Europe/Tiraspol" , 0x045F7D }, - { (char*) "Europe/Ulyanovsk" , 0x04627C }, - { (char*) "Europe/Uzhgorod" , 0x046592 }, - { (char*) "Europe/Vaduz" , 0x0467CC }, - { (char*) "Europe/Vatican" , 0x0469B6 }, - { (char*) "Europe/Vienna" , 0x046D75 }, - { (char*) "Europe/Vilnius" , 0x047013 }, - { (char*) "Europe/Volgograd" , 0x0472C3 }, - { (char*) "Europe/Warsaw" , 0x0475C0 }, - { (char*) "Europe/Zagreb" , 0x047967 }, - { (char*) "Europe/Zaporozhye" , 0x047B51 }, - { (char*) "Europe/Zurich" , 0x047D8B }, - { (char*) "Factory" , 0x047F88 }, - { (char*) "GB" , 0x048005 }, - { (char*) "GB-Eire" , 0x048650 }, - { (char*) "GMT" , 0x048C9B }, - { (char*) "GMT+0" , 0x048D16 }, - { (char*) "GMT-0" , 0x048D91 }, - { (char*) "GMT0" , 0x048E0C }, - { (char*) "Greenwich" , 0x048E87 }, - { (char*) "Hongkong" , 0x048F02 }, - { (char*) "HST" , 0x049215 }, - { (char*) "Iceland" , 0x049291 }, - { (char*) "Indian/Antananarivo" , 0x04931F }, - { (char*) "Indian/Chagos" , 0x0493CB }, - { (char*) "Indian/Christmas" , 0x04946F }, - { (char*) "Indian/Cocos" , 0x049500 }, - { (char*) "Indian/Comoro" , 0x049598 }, - { (char*) "Indian/Kerguelen" , 0x049627 }, - { (char*) "Indian/Mahe" , 0x0496B8 }, - { (char*) "Indian/Maldives" , 0x049749 }, - { (char*) "Indian/Mauritius" , 0x0497ED }, - { (char*) "Indian/Mayotte" , 0x0498AC }, - { (char*) "Indian/Reunion" , 0x04993B }, - { (char*) "Iran" , 0x0499CC }, - { (char*) "Israel" , 0x049D04 }, - { (char*) "Jamaica" , 0x04A142 }, - { (char*) "Japan" , 0x04A2A1 }, - { (char*) "Kwajalein" , 0x04A382 }, - { (char*) "Libya" , 0x04A469 }, - { (char*) "MET" , 0x04A624 }, - { (char*) "Mexico/BajaNorte" , 0x04A89D }, - { (char*) "Mexico/BajaSur" , 0x04ACAA }, - { (char*) "Mexico/General" , 0x04AF84 }, - { (char*) "MST" , 0x04B295 }, - { (char*) "MST7MDT" , 0x04B310 }, - { (char*) "Navajo" , 0x04B6D3 }, - { (char*) "NZ" , 0x04BAF1 }, - { (char*) "NZ-CHAT" , 0x04BF10 }, - { (char*) "Pacific/Apia" , 0x04C244 }, - { (char*) "Pacific/Auckland" , 0x04C3E7 }, - { (char*) "Pacific/Bougainville" , 0x04C81E }, - { (char*) "Pacific/Chatham" , 0x04C8FF }, - { (char*) "Pacific/Chuuk" , 0x04CC42 }, - { (char*) "Pacific/Easter" , 0x04CD20 }, - { (char*) "Pacific/Efate" , 0x04D1CF }, - { (char*) "Pacific/Enderbury" , 0x04D331 }, - { (char*) "Pacific/Fakaofo" , 0x04D3E9 }, - { (char*) "Pacific/Fiji" , 0x04D48E }, - { (char*) "Pacific/Funafuti" , 0x04D626 }, - { (char*) "Pacific/Galapagos" , 0x04D6B8 }, - { (char*) "Pacific/Gambier" , 0x04D784 }, - { (char*) "Pacific/Guadalcanal" , 0x04D823 }, - { (char*) "Pacific/Guam" , 0x04D8B5 }, - { (char*) "Pacific/Honolulu" , 0x04DA1F }, - { (char*) "Pacific/Johnston" , 0x04DB0E }, - { (char*) "Pacific/Kanton" , 0x04DBF7 }, - { (char*) "Pacific/Kiritimati" , 0x04DCBE }, - { (char*) "Pacific/Kosrae" , 0x04DD84 }, - { (char*) "Pacific/Kwajalein" , 0x04DE88 }, - { (char*) "Pacific/Majuro" , 0x04DF78 }, - { (char*) "Pacific/Marquesas" , 0x04E07B }, - { (char*) "Pacific/Midway" , 0x04E123 }, - { (char*) "Pacific/Nauru" , 0x04E1E6 }, - { (char*) "Pacific/Niue" , 0x04E2A9 }, - { (char*) "Pacific/Norfolk" , 0x04E34F }, - { (char*) "Pacific/Noumea" , 0x04E452 }, - { (char*) "Pacific/Pago_Pago" , 0x04E524 }, - { (char*) "Pacific/Palau" , 0x04E5C2 }, - { (char*) "Pacific/Pitcairn" , 0x04E662 }, - { (char*) "Pacific/Pohnpei" , 0x04E707 }, - { (char*) "Pacific/Ponape" , 0x04E7F7 }, - { (char*) "Pacific/Port_Moresby" , 0x04E889 }, - { (char*) "Pacific/Rarotonga" , 0x04E94C }, - { (char*) "Pacific/Saipan" , 0x04EAEE }, - { (char*) "Pacific/Samoa" , 0x04EC4F }, - { (char*) "Pacific/Tahiti" , 0x04ECED }, - { (char*) "Pacific/Tarawa" , 0x04ED8D }, - { (char*) "Pacific/Tongatapu" , 0x04EE2E }, - { (char*) "Pacific/Truk" , 0x04EF27 }, - { (char*) "Pacific/Wake" , 0x04EFCD }, - { (char*) "Pacific/Wallis" , 0x04F06A }, - { (char*) "Pacific/Yap" , 0x04F0FC }, - { (char*) "Poland" , 0x04F1A2 }, - { (char*) "Portugal" , 0x04F549 }, - { (char*) "PRC" , 0x04FB03 }, - { (char*) "PST8PDT" , 0x04FC98 }, - { (char*) "ROC" , 0x05005B }, - { (char*) "ROK" , 0x050266 }, - { (char*) "Singapore" , 0x050411 }, - { (char*) "Turkey" , 0x05051D }, - { (char*) "UCT" , 0x0509D9 }, - { (char*) "Universal" , 0x050A54 }, - { (char*) "US/Alaska" , 0x050ACF }, - { (char*) "US/Aleutian" , 0x050EAC }, - { (char*) "US/Arizona" , 0x051281 }, - { (char*) "US/Central" , 0x05137D }, - { (char*) "US/East-Indiana" , 0x051A63 }, - { (char*) "US/Eastern" , 0x051C82 }, - { (char*) "US/Hawaii" , 0x05235E }, - { (char*) "US/Indiana-Starke" , 0x052447 }, - { (char*) "US/Michigan" , 0x05284B }, - { (char*) "US/Mountain" , 0x052BDA }, - { (char*) "US/Pacific" , 0x052FF8 }, - { (char*) "US/Samoa" , 0x053512 }, - { (char*) "UTC" , 0x0535B0 }, - { (char*) "W-SU" , 0x05362B }, - { (char*) "WET" , 0x0539C3 }, - { (char*) "Zulu" , 0x053BBD }, + { (char*) "America/Barbados" , 0x00807A }, + { (char*) "America/Belem" , 0x00819C }, + { (char*) "America/Belize" , 0x008344 }, + { (char*) "America/Blanc-Sablon" , 0x008765 }, + { (char*) "America/Boa_Vista" , 0x00885A }, + { (char*) "America/Bogota" , 0x008A1B }, + { (char*) "America/Boise" , 0x008ADA }, + { (char*) "America/Buenos_Aires" , 0x008EED }, + { (char*) "America/Cambridge_Bay" , 0x0091BD }, + { (char*) "America/Campo_Grande" , 0x009550 }, + { (char*) "America/Cancun" , 0x009926 }, + { (char*) "America/Caracas" , 0x009B4F }, + { (char*) "America/Catamarca" , 0x009C19 }, + { (char*) "America/Cayenne" , 0x009EE9 }, + { (char*) "America/Cayman" , 0x009F8C }, + { (char*) "America/Chicago" , 0x00A02D }, + { (char*) "America/Chihuahua" , 0x00A727 }, + { (char*) "America/Ciudad_Juarez" , 0x00A9FC }, + { (char*) "America/Coral_Harbour" , 0x00ACF2 }, + { (char*) "America/Cordoba" , 0x00AD93 }, + { (char*) "America/Costa_Rica" , 0x00B063 }, + { (char*) "America/Creston" , 0x00B157 }, + { (char*) "America/Cuiaba" , 0x00B213 }, + { (char*) "America/Curacao" , 0x00B5D0 }, + { (char*) "America/Danmarkshavn" , 0x00B673 }, + { (char*) "America/Dawson" , 0x00B858 }, + { (char*) "America/Dawson_Creek" , 0x00BC7B }, + { (char*) "America/Denver" , 0x00BF52 }, + { (char*) "America/Detroit" , 0x00C385 }, + { (char*) "America/Dominica" , 0x00C72D }, + { (char*) "America/Edmonton" , 0x00C7BB }, + { (char*) "America/Eirunepe" , 0x00CBAE }, + { (char*) "America/El_Salvador" , 0x00CD7D }, + { (char*) "America/Ensenada" , 0x00CE39 }, + { (char*) "America/Fort_Nelson" , 0x00D246 }, + { (char*) "America/Fort_Wayne" , 0x00D80E }, + { (char*) "America/Fortaleza" , 0x00DA2D }, + { (char*) "America/Glace_Bay" , 0x00DC43 }, + { (char*) "America/Godthab" , 0x00DFDA }, + { (char*) "America/Goose_Bay" , 0x00E389 }, + { (char*) "America/Grand_Turk" , 0x00E9E1 }, + { (char*) "America/Grenada" , 0x00ED42 }, + { (char*) "America/Guadeloupe" , 0x00EDD0 }, + { (char*) "America/Guatemala" , 0x00EE5E }, + { (char*) "America/Guayaquil" , 0x00EF3E }, + { (char*) "America/Guyana" , 0x00F00F }, + { (char*) "America/Halifax" , 0x00F0D0 }, + { (char*) "America/Havana" , 0x00F782 }, + { (char*) "America/Hermosillo" , 0x00FBEB }, + { (char*) "America/Indiana/Indianapolis" , 0x00FD1B }, + { (char*) "America/Indiana/Knox" , 0x00FF53 }, + { (char*) "America/Indiana/Marengo" , 0x01036C }, + { (char*) "America/Indiana/Petersburg" , 0x0105C6 }, + { (char*) "America/Indiana/Tell_City" , 0x010890 }, + { (char*) "America/Indiana/Vevay" , 0x010ABA }, + { (char*) "America/Indiana/Vincennes" , 0x010C51 }, + { (char*) "America/Indiana/Winamac" , 0x010EA7 }, + { (char*) "America/Indianapolis" , 0x01112D }, + { (char*) "America/Inuvik" , 0x01134C }, + { (char*) "America/Iqaluit" , 0x01169D }, + { (char*) "America/Jamaica" , 0x011A19 }, + { (char*) "America/Jujuy" , 0x011B78 }, + { (char*) "America/Juneau" , 0x011E36 }, + { (char*) "America/Kentucky/Louisville" , 0x01221C }, + { (char*) "America/Kentucky/Monticello" , 0x012720 }, + { (char*) "America/Knox_IN" , 0x012B0C }, + { (char*) "America/Kralendijk" , 0x012F10 }, + { (char*) "America/La_Paz" , 0x012FCD }, + { (char*) "America/Lima" , 0x013083 }, + { (char*) "America/Los_Angeles" , 0x0131AA }, + { (char*) "America/Louisville" , 0x0136CB }, + { (char*) "America/Lower_Princes" , 0x013BB1 }, + { (char*) "America/Maceio" , 0x013C6E }, + { (char*) "America/Managua" , 0x013E80 }, + { (char*) "America/Manaus" , 0x013FB3 }, + { (char*) "America/Marigot" , 0x01416A }, + { (char*) "America/Martinique" , 0x014227 }, + { (char*) "America/Matamoros" , 0x0142E5 }, + { (char*) "America/Mazatlan" , 0x0144D2 }, + { (char*) "America/Mendoza" , 0x0147DE }, + { (char*) "America/Menominee" , 0x014AAE }, + { (char*) "America/Merida" , 0x014E6E }, + { (char*) "America/Metlakatla" , 0x015119 }, + { (char*) "America/Mexico_City" , 0x01538F }, + { (char*) "America/Miquelon" , 0x0156AE }, + { (char*) "America/Moncton" , 0x0158E0 }, + { (char*) "America/Monterrey" , 0x015ED9 }, + { (char*) "America/Montevideo" , 0x01619F }, + { (char*) "America/Montreal" , 0x016574 }, + { (char*) "America/Montserrat" , 0x016C35 }, + { (char*) "America/Nassau" , 0x016CC3 }, + { (char*) "America/New_York" , 0x0170BD }, + { (char*) "America/Nipigon" , 0x0177AD }, + { (char*) "America/Nome" , 0x017E6E }, + { (char*) "America/Noronha" , 0x018256 }, + { (char*) "America/North_Dakota/Beulah" , 0x018456 }, + { (char*) "America/North_Dakota/Center" , 0x01888A }, + { (char*) "America/North_Dakota/New_Salem" , 0x018C89 }, + { (char*) "America/Nuuk" , 0x01908E }, + { (char*) "America/Ojinaga" , 0x019453 }, + { (char*) "America/Panama" , 0x019740 }, + { (char*) "America/Pangnirtung" , 0x0197E1 }, + { (char*) "America/Paramaribo" , 0x019B44 }, + { (char*) "America/Phoenix" , 0x019C0B }, + { (char*) "America/Port-au-Prince" , 0x019D24 }, + { (char*) "America/Port_of_Spain" , 0x019F65 }, + { (char*) "America/Porto_Acre" , 0x019FF3 }, + { (char*) "America/Porto_Velho" , 0x01A1A1 }, + { (char*) "America/Puerto_Rico" , 0x01A33F }, + { (char*) "America/Punta_Arenas" , 0x01A3FC }, + { (char*) "America/Rainy_River" , 0x01A8DE }, + { (char*) "America/Rankin_Inlet" , 0x01ADF8 }, + { (char*) "America/Recife" , 0x01B141 }, + { (char*) "America/Regina" , 0x01B33B }, + { (char*) "America/Resolute" , 0x01B5DA }, + { (char*) "America/Rio_Branco" , 0x01B924 }, + { (char*) "America/Rosario" , 0x01BAD6 }, + { (char*) "America/Santa_Isabel" , 0x01BDA6 }, + { (char*) "America/Santarem" , 0x01C1B3 }, + { (char*) "America/Santiago" , 0x01C363 }, + { (char*) "America/Santo_Domingo" , 0x01C8CB }, + { (char*) "America/Sao_Paulo" , 0x01CA14 }, + { (char*) "America/Scoresbysund" , 0x01CE0E }, + { (char*) "America/Shiprock" , 0x01D016 }, + { (char*) "America/Sitka" , 0x01D434 }, + { (char*) "America/St_Barthelemy" , 0x01D80F }, + { (char*) "America/St_Johns" , 0x01D8CC }, + { (char*) "America/St_Kitts" , 0x01E050 }, + { (char*) "America/St_Lucia" , 0x01E0DE }, + { (char*) "America/St_Thomas" , 0x01E17F }, + { (char*) "America/St_Vincent" , 0x01E20D }, + { (char*) "America/Swift_Current" , 0x01E2AE }, + { (char*) "America/Tegucigalpa" , 0x01E43C }, + { (char*) "America/Thule" , 0x01E50A }, + { (char*) "America/Thunder_Bay" , 0x01E6EB }, + { (char*) "America/Tijuana" , 0x01EDAC }, + { (char*) "America/Toronto" , 0x01F1C8 }, + { (char*) "America/Tortola" , 0x01F8A6 }, + { (char*) "America/Vancouver" , 0x01F934 }, + { (char*) "America/Virgin" , 0x01FE8B }, + { (char*) "America/Whitehorse" , 0x01FF48 }, + { (char*) "America/Winnipeg" , 0x02036B }, + { (char*) "America/Yakutat" , 0x0208A2 }, + { (char*) "America/Yellowknife" , 0x020C70 }, + { (char*) "Antarctica/Casey" , 0x020FDF }, + { (char*) "Antarctica/Davis" , 0x0210E3 }, + { (char*) "Antarctica/DumontDUrville" , 0x0211B9 }, + { (char*) "Antarctica/Macquarie" , 0x02126D }, + { (char*) "Antarctica/Mawson" , 0x021659 }, + { (char*) "Antarctica/McMurdo" , 0x021703 }, + { (char*) "Antarctica/Palmer" , 0x021A35 }, + { (char*) "Antarctica/Rothera" , 0x021DBE }, + { (char*) "Antarctica/South_Pole" , 0x021E55 }, + { (char*) "Antarctica/Syowa" , 0x022274 }, + { (char*) "Antarctica/Troll" , 0x02230A }, + { (char*) "Antarctica/Vostok" , 0x0223CC }, + { (char*) "Arctic/Longyearbyen" , 0x022463 }, + { (char*) "Asia/Aden" , 0x022730 }, + { (char*) "Asia/Almaty" , 0x0227C1 }, + { (char*) "Asia/Amman" , 0x022A45 }, + { (char*) "Asia/Anadyr" , 0x022DF1 }, + { (char*) "Asia/Aqtau" , 0x0230F7 }, + { (char*) "Asia/Aqtobe" , 0x023376 }, + { (char*) "Asia/Ashgabat" , 0x0235F6 }, + { (char*) "Asia/Ashkhabad" , 0x023779 }, + { (char*) "Asia/Atyrau" , 0x0238FC }, + { (char*) "Asia/Baghdad" , 0x023B85 }, + { (char*) "Asia/Bahrain" , 0x023E07 }, + { (char*) "Asia/Baku" , 0x023EC0 }, + { (char*) "Asia/Bangkok" , 0x0241B4 }, + { (char*) "Asia/Barnaul" , 0x024258 }, + { (char*) "Asia/Beirut" , 0x024563 }, + { (char*) "Asia/Bishkek" , 0x02484B }, + { (char*) "Asia/Brunei" , 0x024AC1 }, + { (char*) "Asia/Calcutta" , 0x024B67 }, + { (char*) "Asia/Chita" , 0x024C4F }, + { (char*) "Asia/Choibalsan" , 0x024F5D }, + { (char*) "Asia/Chongqing" , 0x0251E6 }, + { (char*) "Asia/Chungking" , 0x02537B }, + { (char*) "Asia/Colombo" , 0x025510 }, + { (char*) "Asia/Dacca" , 0x025613 }, + { (char*) "Asia/Damascus" , 0x025706 }, + { (char*) "Asia/Dhaka" , 0x025BE4 }, + { (char*) "Asia/Dili" , 0x025CD7 }, + { (char*) "Asia/Dubai" , 0x025D8D }, + { (char*) "Asia/Dushanbe" , 0x025E1E }, + { (char*) "Asia/Famagusta" , 0x025F98 }, + { (char*) "Asia/Gaza" , 0x02635F }, + { (char*) "Asia/Harbin" , 0x02685F }, + { (char*) "Asia/Hebron" , 0x0269F4 }, + { (char*) "Asia/Ho_Chi_Minh" , 0x026F05 }, + { (char*) "Asia/Hong_Kong" , 0x026FFD }, + { (char*) "Asia/Hovd" , 0x027310 }, + { (char*) "Asia/Irkutsk" , 0x027599 }, + { (char*) "Asia/Istanbul" , 0x0278B7 }, + { (char*) "Asia/Jakarta" , 0x027D73 }, + { (char*) "Asia/Jayapura" , 0x027E84 }, + { (char*) "Asia/Jerusalem" , 0x027F71 }, + { (char*) "Asia/Kabul" , 0x0283AF }, + { (char*) "Asia/Kamchatka" , 0x02845A }, + { (char*) "Asia/Karachi" , 0x02874F }, + { (char*) "Asia/Kashgar" , 0x028865 }, + { (char*) "Asia/Kathmandu" , 0x0288F6 }, + { (char*) "Asia/Katmandu" , 0x0289A3 }, + { (char*) "Asia/Khandyga" , 0x028A50 }, + { (char*) "Asia/Kolkata" , 0x028D81 }, + { (char*) "Asia/Krasnoyarsk" , 0x028E69 }, + { (char*) "Asia/Kuala_Lumpur" , 0x029173 }, + { (char*) "Asia/Kuching" , 0x029293 }, + { (char*) "Asia/Kuwait" , 0x0293ED }, + { (char*) "Asia/Macao" , 0x02947E }, + { (char*) "Asia/Macau" , 0x0297A1 }, + { (char*) "Asia/Magadan" , 0x029AC4 }, + { (char*) "Asia/Makassar" , 0x029DCF }, + { (char*) "Asia/Manila" , 0x029EE2 }, + { (char*) "Asia/Muscat" , 0x029FDC }, + { (char*) "Asia/Nicosia" , 0x02A06D }, + { (char*) "Asia/Novokuznetsk" , 0x02A2E1 }, + { (char*) "Asia/Novosibirsk" , 0x02A5D4 }, + { (char*) "Asia/Omsk" , 0x02A8E5 }, + { (char*) "Asia/Oral" , 0x02ABE3 }, + { (char*) "Asia/Phnom_Penh" , 0x02AE6F }, + { (char*) "Asia/Pontianak" , 0x02AF43 }, + { (char*) "Asia/Pyongyang" , 0x02B05C }, + { (char*) "Asia/Qatar" , 0x02B11F }, + { (char*) "Asia/Qostanay" , 0x02B1C3 }, + { (char*) "Asia/Qyzylorda" , 0x02B450 }, + { (char*) "Asia/Rangoon" , 0x02B6E9 }, + { (char*) "Asia/Riyadh" , 0x02B7B0 }, + { (char*) "Asia/Saigon" , 0x02B841 }, + { (char*) "Asia/Sakhalin" , 0x02B939 }, + { (char*) "Asia/Samarkand" , 0x02BC50 }, + { (char*) "Asia/Seoul" , 0x02BDDB }, + { (char*) "Asia/Shanghai" , 0x02BF86 }, + { (char*) "Asia/Singapore" , 0x02C127 }, + { (char*) "Asia/Srednekolymsk" , 0x02C233 }, + { (char*) "Asia/Taipei" , 0x02C547 }, + { (char*) "Asia/Tashkent" , 0x02C752 }, + { (char*) "Asia/Tbilisi" , 0x02C8DD }, + { (char*) "Asia/Tehran" , 0x02CB5E }, + { (char*) "Asia/Tel_Aviv" , 0x02CE96 }, + { (char*) "Asia/Thimbu" , 0x02D2D4 }, + { (char*) "Asia/Thimphu" , 0x02D37A }, + { (char*) "Asia/Tokyo" , 0x02D420 }, + { (char*) "Asia/Tomsk" , 0x02D501 }, + { (char*) "Asia/Ujung_Pandang" , 0x02D80C }, + { (char*) "Asia/Ulaanbaatar" , 0x02D8D6 }, + { (char*) "Asia/Ulan_Bator" , 0x02DB49 }, + { (char*) "Asia/Urumqi" , 0x02DDA7 }, + { (char*) "Asia/Ust-Nera" , 0x02DE45 }, + { (char*) "Asia/Vientiane" , 0x02E168 }, + { (char*) "Asia/Vladivostok" , 0x02E24E }, + { (char*) "Asia/Yakutsk" , 0x02E553 }, + { (char*) "Asia/Yangon" , 0x02E857 }, + { (char*) "Asia/Yekaterinburg" , 0x02E91E }, + { (char*) "Asia/Yerevan" , 0x02EC30 }, + { (char*) "Atlantic/Azores" , 0x02EF00 }, + { (char*) "Atlantic/Bermuda" , 0x02F4BF }, + { (char*) "Atlantic/Canary" , 0x02F8CB }, + { (char*) "Atlantic/Cape_Verde" , 0x02FAC3 }, + { (char*) "Atlantic/Faeroe" , 0x02FB7E }, + { (char*) "Atlantic/Faroe" , 0x02FD43 }, + { (char*) "Atlantic/Jan_Mayen" , 0x02FF08 }, + { (char*) "Atlantic/Madeira" , 0x0301D5 }, + { (char*) "Atlantic/Reykjavik" , 0x03079D }, + { (char*) "Atlantic/South_Georgia" , 0x030A9A }, + { (char*) "Atlantic/St_Helena" , 0x030B2A }, + { (char*) "Atlantic/Stanley" , 0x030BCB }, + { (char*) "Australia/ACT" , 0x030EEC }, + { (char*) "Australia/Adelaide" , 0x031280 }, + { (char*) "Australia/Brisbane" , 0x031634 }, + { (char*) "Australia/Broken_Hill" , 0x031778 }, + { (char*) "Australia/Canberra" , 0x031B4D }, + { (char*) "Australia/Currie" , 0x031EE1 }, + { (char*) "Australia/Darwin" , 0x0322D8 }, + { (char*) "Australia/Eucla" , 0x0323E0 }, + { (char*) "Australia/Hobart" , 0x03253F }, + { (char*) "Australia/LHI" , 0x03293E }, + { (char*) "Australia/Lindeman" , 0x032BFE }, + { (char*) "Australia/Lord_Howe" , 0x032D6E }, + { (char*) "Australia/Melbourne" , 0x03303E }, + { (char*) "Australia/North" , 0x0333DA }, + { (char*) "Australia/NSW" , 0x0334D0 }, + { (char*) "Australia/Perth" , 0x033864 }, + { (char*) "Australia/Queensland" , 0x0339C0 }, + { (char*) "Australia/South" , 0x033AED }, + { (char*) "Australia/Sydney" , 0x033E92 }, + { (char*) "Australia/Tasmania" , 0x034242 }, + { (char*) "Australia/Victoria" , 0x034639 }, + { (char*) "Australia/West" , 0x0349CD }, + { (char*) "Australia/Yancowinna" , 0x034B0B }, + { (char*) "Brazil/Acre" , 0x034EC4 }, + { (char*) "Brazil/DeNoronha" , 0x035072 }, + { (char*) "Brazil/East" , 0x035262 }, + { (char*) "Brazil/West" , 0x035626 }, + { (char*) "Canada/Atlantic" , 0x0357CE }, + { (char*) "Canada/Central" , 0x035E62 }, + { (char*) "Canada/Eastern" , 0x03637C }, + { (char*) "Canada/Mountain" , 0x036A3D }, + { (char*) "Canada/Newfoundland" , 0x036E13 }, + { (char*) "Canada/Pacific" , 0x037575 }, + { (char*) "Canada/Saskatchewan" , 0x037AB3 }, + { (char*) "Canada/Yukon" , 0x037D3D }, + { (char*) "CET" , 0x03814E }, + { (char*) "Chile/Continental" , 0x0383C7 }, + { (char*) "Chile/EasterIsland" , 0x03891D }, + { (char*) "CST6CDT" , 0x038DBF }, + { (char*) "Cuba" , 0x039182 }, + { (char*) "EET" , 0x0395EB }, + { (char*) "Egypt" , 0x0397E8 }, + { (char*) "Eire" , 0x039CF0 }, + { (char*) "EST" , 0x03A2D4 }, + { (char*) "EST5EDT" , 0x03A34F }, + { (char*) "Etc/GMT" , 0x03A712 }, + { (char*) "Etc/GMT+0" , 0x03A78D }, + { (char*) "Etc/GMT+1" , 0x03A808 }, + { (char*) "Etc/GMT+10" , 0x03A885 }, + { (char*) "Etc/GMT+11" , 0x03A903 }, + { (char*) "Etc/GMT+12" , 0x03A981 }, + { (char*) "Etc/GMT+2" , 0x03A9FF }, + { (char*) "Etc/GMT+3" , 0x03AA7C }, + { (char*) "Etc/GMT+4" , 0x03AAF9 }, + { (char*) "Etc/GMT+5" , 0x03AB76 }, + { (char*) "Etc/GMT+6" , 0x03ABF3 }, + { (char*) "Etc/GMT+7" , 0x03AC70 }, + { (char*) "Etc/GMT+8" , 0x03ACED }, + { (char*) "Etc/GMT+9" , 0x03AD6A }, + { (char*) "Etc/GMT-0" , 0x03ADE7 }, + { (char*) "Etc/GMT-1" , 0x03AE62 }, + { (char*) "Etc/GMT-10" , 0x03AEE0 }, + { (char*) "Etc/GMT-11" , 0x03AF5F }, + { (char*) "Etc/GMT-12" , 0x03AFDE }, + { (char*) "Etc/GMT-13" , 0x03B05D }, + { (char*) "Etc/GMT-14" , 0x03B0DC }, + { (char*) "Etc/GMT-2" , 0x03B15B }, + { (char*) "Etc/GMT-3" , 0x03B1D9 }, + { (char*) "Etc/GMT-4" , 0x03B257 }, + { (char*) "Etc/GMT-5" , 0x03B2D5 }, + { (char*) "Etc/GMT-6" , 0x03B353 }, + { (char*) "Etc/GMT-7" , 0x03B3D1 }, + { (char*) "Etc/GMT-8" , 0x03B44F }, + { (char*) "Etc/GMT-9" , 0x03B4CD }, + { (char*) "Etc/GMT0" , 0x03B54B }, + { (char*) "Etc/Greenwich" , 0x03B5C6 }, + { (char*) "Etc/UCT" , 0x03B641 }, + { (char*) "Etc/Universal" , 0x03B6BC }, + { (char*) "Etc/UTC" , 0x03B737 }, + { (char*) "Etc/Zulu" , 0x03B7B2 }, + { (char*) "Europe/Amsterdam" , 0x03B82D }, + { (char*) "Europe/Andorra" , 0x03BC68 }, + { (char*) "Europe/Astrakhan" , 0x03BDF9 }, + { (char*) "Europe/Athens" , 0x03C0ED }, + { (char*) "Europe/Belfast" , 0x03C3A3 }, + { (char*) "Europe/Belgrade" , 0x03C9EE }, + { (char*) "Europe/Berlin" , 0x03CBD8 }, + { (char*) "Europe/Bratislava" , 0x03CEB9 }, + { (char*) "Europe/Brussels" , 0x03D198 }, + { (char*) "Europe/Bucharest" , 0x03D5F3 }, + { (char*) "Europe/Budapest" , 0x03D894 }, + { (char*) "Europe/Busingen" , 0x03DB9E }, + { (char*) "Europe/Chisinau" , 0x03DDA3 }, + { (char*) "Europe/Copenhagen" , 0x03E0A2 }, + { (char*) "Europe/Dublin" , 0x03E31D }, + { (char*) "Europe/Gibraltar" , 0x03E901 }, + { (char*) "Europe/Guernsey" , 0x03EDD1 }, + { (char*) "Europe/Helsinki" , 0x03F428 }, + { (char*) "Europe/Isle_of_Man" , 0x03F615 }, + { (char*) "Europe/Istanbul" , 0x03FC60 }, + { (char*) "Europe/Jersey" , 0x04011C }, + { (char*) "Europe/Kaliningrad" , 0x040773 }, + { (char*) "Europe/Kiev" , 0x040B1B }, + { (char*) "Europe/Kirov" , 0x040D55 }, + { (char*) "Europe/Kyiv" , 0x04103C }, + { (char*) "Europe/Lisbon" , 0x04128A }, + { (char*) "Europe/Ljubljana" , 0x041857 }, + { (char*) "Europe/London" , 0x041A41 }, + { (char*) "Europe/Luxembourg" , 0x04208C }, + { (char*) "Europe/Madrid" , 0x0424D7 }, + { (char*) "Europe/Malta" , 0x042874 }, + { (char*) "Europe/Mariehamn" , 0x042C20 }, + { (char*) "Europe/Minsk" , 0x042E0D }, + { (char*) "Europe/Monaco" , 0x043141 }, + { (char*) "Europe/Moscow" , 0x0435A7 }, + { (char*) "Europe/Nicosia" , 0x043953 }, + { (char*) "Europe/Oslo" , 0x043BB4 }, + { (char*) "Europe/Paris" , 0x043E64 }, + { (char*) "Europe/Podgorica" , 0x0442C1 }, + { (char*) "Europe/Prague" , 0x0444AB }, + { (char*) "Europe/Riga" , 0x04478A }, + { (char*) "Europe/Rome" , 0x044A4C }, + { (char*) "Europe/Samara" , 0x044E0B }, + { (char*) "Europe/San_Marino" , 0x04510C }, + { (char*) "Europe/Sarajevo" , 0x0454CB }, + { (char*) "Europe/Saratov" , 0x0456B5 }, + { (char*) "Europe/Simferopol" , 0x0459A7 }, + { (char*) "Europe/Skopje" , 0x045D1A }, + { (char*) "Europe/Sofia" , 0x045F04 }, + { (char*) "Europe/Stockholm" , 0x046160 }, + { (char*) "Europe/Tallinn" , 0x04635D }, + { (char*) "Europe/Tirane" , 0x04660C }, + { (char*) "Europe/Tiraspol" , 0x046874 }, + { (char*) "Europe/Ulyanovsk" , 0x046B73 }, + { (char*) "Europe/Uzhgorod" , 0x046E89 }, + { (char*) "Europe/Vaduz" , 0x0470C3 }, + { (char*) "Europe/Vatican" , 0x0472AD }, + { (char*) "Europe/Vienna" , 0x04766C }, + { (char*) "Europe/Vilnius" , 0x04790A }, + { (char*) "Europe/Volgograd" , 0x047BBA }, + { (char*) "Europe/Warsaw" , 0x047EB7 }, + { (char*) "Europe/Zagreb" , 0x04825E }, + { (char*) "Europe/Zaporozhye" , 0x048448 }, + { (char*) "Europe/Zurich" , 0x048682 }, + { (char*) "Factory" , 0x04887F }, + { (char*) "GB" , 0x0488FC }, + { (char*) "GB-Eire" , 0x048F47 }, + { (char*) "GMT" , 0x049592 }, + { (char*) "GMT+0" , 0x04960D }, + { (char*) "GMT-0" , 0x049688 }, + { (char*) "GMT0" , 0x049703 }, + { (char*) "Greenwich" , 0x04977E }, + { (char*) "Hongkong" , 0x0497F9 }, + { (char*) "HST" , 0x049B0C }, + { (char*) "Iceland" , 0x049B88 }, + { (char*) "Indian/Antananarivo" , 0x049C16 }, + { (char*) "Indian/Chagos" , 0x049CC2 }, + { (char*) "Indian/Christmas" , 0x049D66 }, + { (char*) "Indian/Cocos" , 0x049DF7 }, + { (char*) "Indian/Comoro" , 0x049E8F }, + { (char*) "Indian/Kerguelen" , 0x049F1E }, + { (char*) "Indian/Mahe" , 0x049FAF }, + { (char*) "Indian/Maldives" , 0x04A040 }, + { (char*) "Indian/Mauritius" , 0x04A0E4 }, + { (char*) "Indian/Mayotte" , 0x04A1A3 }, + { (char*) "Indian/Reunion" , 0x04A232 }, + { (char*) "Iran" , 0x04A2C3 }, + { (char*) "Israel" , 0x04A5FB }, + { (char*) "Jamaica" , 0x04AA39 }, + { (char*) "Japan" , 0x04AB98 }, + { (char*) "Kwajalein" , 0x04AC79 }, + { (char*) "Libya" , 0x04AD60 }, + { (char*) "MET" , 0x04AF1B }, + { (char*) "Mexico/BajaNorte" , 0x04B194 }, + { (char*) "Mexico/BajaSur" , 0x04B5A1 }, + { (char*) "Mexico/General" , 0x04B87B }, + { (char*) "MST" , 0x04BB8C }, + { (char*) "MST7MDT" , 0x04BC07 }, + { (char*) "Navajo" , 0x04BFCA }, + { (char*) "NZ" , 0x04C3E8 }, + { (char*) "NZ-CHAT" , 0x04C807 }, + { (char*) "Pacific/Apia" , 0x04CB3B }, + { (char*) "Pacific/Auckland" , 0x04CCDE }, + { (char*) "Pacific/Bougainville" , 0x04D115 }, + { (char*) "Pacific/Chatham" , 0x04D1F6 }, + { (char*) "Pacific/Chuuk" , 0x04D539 }, + { (char*) "Pacific/Easter" , 0x04D617 }, + { (char*) "Pacific/Efate" , 0x04DAC6 }, + { (char*) "Pacific/Enderbury" , 0x04DC28 }, + { (char*) "Pacific/Fakaofo" , 0x04DCE0 }, + { (char*) "Pacific/Fiji" , 0x04DD85 }, + { (char*) "Pacific/Funafuti" , 0x04DF1D }, + { (char*) "Pacific/Galapagos" , 0x04DFAF }, + { (char*) "Pacific/Gambier" , 0x04E07B }, + { (char*) "Pacific/Guadalcanal" , 0x04E11A }, + { (char*) "Pacific/Guam" , 0x04E1AC }, + { (char*) "Pacific/Honolulu" , 0x04E316 }, + { (char*) "Pacific/Johnston" , 0x04E405 }, + { (char*) "Pacific/Kanton" , 0x04E4EE }, + { (char*) "Pacific/Kiritimati" , 0x04E5B5 }, + { (char*) "Pacific/Kosrae" , 0x04E67B }, + { (char*) "Pacific/Kwajalein" , 0x04E77F }, + { (char*) "Pacific/Majuro" , 0x04E86F }, + { (char*) "Pacific/Marquesas" , 0x04E972 }, + { (char*) "Pacific/Midway" , 0x04EA1A }, + { (char*) "Pacific/Nauru" , 0x04EADD }, + { (char*) "Pacific/Niue" , 0x04EBA0 }, + { (char*) "Pacific/Norfolk" , 0x04EC46 }, + { (char*) "Pacific/Noumea" , 0x04ED49 }, + { (char*) "Pacific/Pago_Pago" , 0x04EE1B }, + { (char*) "Pacific/Palau" , 0x04EEB9 }, + { (char*) "Pacific/Pitcairn" , 0x04EF59 }, + { (char*) "Pacific/Pohnpei" , 0x04EFFE }, + { (char*) "Pacific/Ponape" , 0x04F0EE }, + { (char*) "Pacific/Port_Moresby" , 0x04F180 }, + { (char*) "Pacific/Rarotonga" , 0x04F243 }, + { (char*) "Pacific/Saipan" , 0x04F3E5 }, + { (char*) "Pacific/Samoa" , 0x04F546 }, + { (char*) "Pacific/Tahiti" , 0x04F5E4 }, + { (char*) "Pacific/Tarawa" , 0x04F684 }, + { (char*) "Pacific/Tongatapu" , 0x04F725 }, + { (char*) "Pacific/Truk" , 0x04F81E }, + { (char*) "Pacific/Wake" , 0x04F8C4 }, + { (char*) "Pacific/Wallis" , 0x04F961 }, + { (char*) "Pacific/Yap" , 0x04F9F3 }, + { (char*) "Poland" , 0x04FA99 }, + { (char*) "Portugal" , 0x04FE40 }, + { (char*) "PRC" , 0x0503FA }, + { (char*) "PST8PDT" , 0x05058F }, + { (char*) "ROC" , 0x050952 }, + { (char*) "ROK" , 0x050B5D }, + { (char*) "Singapore" , 0x050D08 }, + { (char*) "Turkey" , 0x050E14 }, + { (char*) "UCT" , 0x0512D0 }, + { (char*) "Universal" , 0x05134B }, + { (char*) "US/Alaska" , 0x0513C6 }, + { (char*) "US/Aleutian" , 0x0517A3 }, + { (char*) "US/Arizona" , 0x051B78 }, + { (char*) "US/Central" , 0x051C74 }, + { (char*) "US/East-Indiana" , 0x05235A }, + { (char*) "US/Eastern" , 0x052579 }, + { (char*) "US/Hawaii" , 0x052C55 }, + { (char*) "US/Indiana-Starke" , 0x052D3E }, + { (char*) "US/Michigan" , 0x053142 }, + { (char*) "US/Mountain" , 0x0534D1 }, + { (char*) "US/Pacific" , 0x0538EF }, + { (char*) "US/Samoa" , 0x053E09 }, + { (char*) "UTC" , 0x053EA7 }, + { (char*) "W-SU" , 0x053F22 }, + { (char*) "WET" , 0x0542BA }, + { (char*) "Zulu" , 0x0544B4 }, }; -const unsigned char timelib_timezone_db_data_builtin[343096] = { +const unsigned char timelib_timezone_db_data_builtin[345391] = { /* Africa/Abidjan */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -2853,9 +2854,8 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 0x8F, 0x80, 0x00, 0x10, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x0A, 0x43, 0x53, 0x54, 0x36, 0x0A, 0x00, 0xA9, 0x11, 0x40, 0x00, 0x72, 0x0F, 0x38, -0x00, 0x00, 0x00, 0x20, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x54, 0x69, 0x6D, 0x65, -0x20, 0x2D, 0x20, 0x42, 0x61, 0x68, 0x69, 0x61, 0x20, 0x64, 0x65, 0x20, 0x42, 0x61, 0x6E, 0x64, -0x65, 0x72, 0x61, 0x73, +0x00, 0x00, 0x00, 0x11, 0x42, 0x61, 0x68, 0x69, 0x61, 0x20, 0x64, 0x65, 0x20, 0x42, 0x61, 0x6E, +0x64, 0x65, 0x72, 0x61, 0x73, /* America/Barbados */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -3033,7 +3033,7 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0x5E, 0x9C, 0x34, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x98, 0x58, 0x55, 0x70, 0x00, -0x00, 0x00, 0x00, 0x2A, 0x03, 0x73, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xBE, 0x5D, 0x40, 0x01, +0x00, 0x00, 0x00, 0x2A, 0x03, 0x73, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x74, 0x89, 0x40, 0x01, 0x03, 0x02, 0x03, 0xFF, 0xFF, 0xBA, 0x90, 0x00, 0x00, 0xFF, 0xFF, 0xBA, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x42, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x34, 0x00, 0x2D, 0x30, 0x35, 0x00, 0x0A, 0x3C, 0x2D, 0x30, 0x35, @@ -3161,10 +3161,17 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 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, 0x3E, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x25, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xA1, 0xF2, 0xCD, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x89, 0x0C, 0x90, 0xFF, -0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x61, 0x18, 0x00, 0xFF, -0xFF, 0xFF, 0xFF, 0xF7, 0x2F, 0x5A, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x28, 0x85, 0xF0, 0x00, +0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x61, 0x18, 0x00, 0x00, +0x00, 0x00, 0x00, 0x04, 0x61, 0x19, 0x90, 0x00, 0x00, 0x00, 0x00, 0x05, 0x50, 0xFC, 0x80, 0x00, +0x00, 0x00, 0x00, 0x06, 0x40, 0xFB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x07, 0x30, 0xDE, 0x80, 0x00, +0x00, 0x00, 0x00, 0x08, 0x20, 0xDD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x09, 0x10, 0xC0, 0x80, 0x00, +0x00, 0x00, 0x00, 0x0A, 0x00, 0xBF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x0A, 0xF0, 0xA2, 0x80, 0x00, +0x00, 0x00, 0x00, 0x0B, 0xE0, 0xA1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x0C, 0xD9, 0xBF, 0x00, 0x00, +0x00, 0x00, 0x00, 0x0D, 0xC0, 0x83, 0x90, 0x00, 0x00, 0x00, 0x00, 0x0E, 0xB9, 0xA1, 0x00, 0x00, +0x00, 0x00, 0x00, 0x0F, 0xA9, 0xA0, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x99, 0x83, 0x00, 0x00, +0x00, 0x00, 0x00, 0x11, 0x89, 0x82, 0x10, 0x00, 0x00, 0x00, 0x00, 0x12, 0x79, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x64, 0x10, 0x00, 0x00, 0x00, 0x00, 0x14, 0x59, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x49, 0x46, 0x10, 0x00, 0x00, 0x00, 0x00, 0x16, 0x39, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x29, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x18, 0x22, 0x45, 0x80, 0x00, @@ -3193,20 +3200,20 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 0x00, 0x00, 0x00, 0x41, 0x84, 0x9B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0xB0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x7D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x92, 0x90, 0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0x5F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0xC5, 0x10, 0x03, -0x01, 0x02, 0x03, 0x04, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, -0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, -0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x07, 0x06, 0x08, 0x07, -0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x08, 0xFF, -0xFF, 0x9D, 0x90, 0x00, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x10, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, -0x15, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x19, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x1D, 0xFF, 0xFF, 0xB9, -0xB0, 0x00, 0x21, 0x2D, 0x30, 0x30, 0x00, 0x4D, 0x57, 0x54, 0x00, 0x4D, 0x50, 0x54, 0x00, 0x4D, -0x53, 0x54, 0x00, 0x4D, 0x44, 0x44, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, -0x43, 0x53, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x0A, 0x4D, 0x53, 0x54, 0x37, 0x4D, 0x44, 0x54, -0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, -0x00, 0xF2, 0xC9, 0xDC, 0x00, 0x72, 0x5C, 0x42, 0x00, 0x00, 0x00, 0x14, 0x4D, 0x6F, 0x75, 0x6E, -0x74, 0x61, 0x69, 0x6E, 0x20, 0x2D, 0x20, 0x4E, 0x55, 0x20, 0x28, 0x77, 0x65, 0x73, 0x74, 0x29, - +0x01, 0x02, 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, 0x06, 0x05, 0x07, 0x06, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x08, 0xFF, 0xFF, 0x9D, +0x90, 0x00, 0x0C, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x10, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x14, 0xFF, +0xFF, 0xAB, 0xA0, 0x00, 0x18, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x1C, 0x2D, 0x30, 0x30, 0x00, 0x4D, +0x57, 0x54, 0x00, 0x4D, 0x50, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x43, +0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x0A, 0x4D, 0x53, 0x54, 0x37, +0x4D, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, +0x2E, 0x30, 0x0A, 0x00, 0xF2, 0xC9, 0xDC, 0x00, 0x72, 0x5C, 0x42, 0x00, 0x00, 0x00, 0x14, 0x4D, +0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x2D, 0x20, 0x4E, 0x55, 0x20, 0x28, 0x77, 0x65, +0x73, 0x74, 0x29, /* America/Campo_Grande */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x42, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -3306,10 +3313,8 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x10, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x45, 0x44, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x0A, 0x45, 0x53, 0x54, 0x35, -0x0A, 0x00, 0xA9, 0x7F, 0xED, 0x00, 0x8E, 0x43, 0x45, 0x00, 0x00, 0x00, 0x24, 0x45, 0x61, 0x73, -0x74, 0x65, 0x72, 0x6E, 0x20, 0x53, 0x74, 0x61, 0x6E, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, -0x6D, 0x65, 0x20, 0x2D, 0x20, 0x51, 0x75, 0x69, 0x6E, 0x74, 0x61, 0x6E, 0x61, 0x20, 0x52, 0x6F, -0x6F, +0x0A, 0x00, 0xA9, 0x7F, 0xED, 0x00, 0x8E, 0x43, 0x45, 0x00, 0x00, 0x00, 0x0C, 0x51, 0x75, 0x69, +0x6E, 0x74, 0x61, 0x6E, 0x61, 0x20, 0x52, 0x6F, 0x6F, /* America/Caracas */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x56, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -3558,11 +3563,60 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x10, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x0A, 0x43, 0x53, -0x54, 0x36, 0x0A, 0x00, 0xB5, 0x05, 0x25, 0x00, 0x70, 0xC9, 0xB2, 0x00, 0x00, 0x00, 0x26, 0x4D, -0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x43, +0x54, 0x36, 0x0A, 0x00, 0xB5, 0x05, 0x25, 0x00, 0x70, 0xC9, 0xB2, 0x00, 0x00, 0x00, 0x16, 0x43, 0x68, 0x69, 0x68, 0x75, 0x61, 0x68, 0x75, 0x61, 0x20, 0x28, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x61, 0x72, 0x65, 0x61, 0x73, 0x29, +/* America/Ciudad_Juarez */ +0x50, 0x48, 0x50, 0x32, 0x01, 0x4D, 0x58, 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, 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, 0x3D, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0xFF, +0xFF, 0xFF, 0xFF, 0xA5, 0xB6, 0xE8, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xAF, 0xF2, 0x6E, 0xE0, 0xFF, +0xFF, 0xFF, 0xFF, 0xB6, 0x66, 0x56, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xB7, 0x43, 0xD2, 0x60, 0xFF, +0xFF, 0xFF, 0xFF, 0xB8, 0x0C, 0x36, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xB8, 0xFD, 0x86, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x31, 0x67, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x73, 0x08, 0x70, 0x00, +0x00, 0x00, 0x00, 0x33, 0x47, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0xEA, 0x70, 0x00, +0x00, 0x00, 0x00, 0x35, 0x27, 0x48, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0xDA, 0x80, 0x00, +0x00, 0x00, 0x00, 0x37, 0x07, 0x2A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0xF7, 0x00, 0x00, +0x00, 0x00, 0x00, 0x38, 0xE7, 0x0C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0xD9, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3A, 0xF5, 0x12, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xB6, 0xD1, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3C, 0xB0, 0x0A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x9D, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3E, 0x8F, 0xEC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x7F, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x6F, 0xCE, 0x90, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x9B, 0x80, 0x00, +0x00, 0x00, 0x00, 0x42, 0x4F, 0xB0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x7D, 0x80, 0x00, +0x00, 0x00, 0x00, 0x44, 0x2F, 0x92, 0x90, 0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0x5F, 0x80, 0x00, +0x00, 0x00, 0x00, 0x46, 0x0F, 0x74, 0x90, 0x00, 0x00, 0x00, 0x00, 0x47, 0x24, 0x41, 0x80, 0x00, +0x00, 0x00, 0x00, 0x47, 0xF8, 0x91, 0x10, 0x00, 0x00, 0x00, 0x00, 0x49, 0x04, 0x23, 0x80, 0x00, +0x00, 0x00, 0x00, 0x49, 0xD8, 0x73, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xE4, 0x05, 0x80, 0x00, +0x00, 0x00, 0x00, 0x4B, 0x9C, 0xA5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xD6, 0x5C, 0x80, 0x00, +0x00, 0x00, 0x00, 0x4D, 0x7C, 0x87, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xB6, 0x3E, 0x80, 0x00, +0x00, 0x00, 0x00, 0x4F, 0x5C, 0x69, 0x90, 0x00, 0x00, 0x00, 0x00, 0x50, 0x96, 0x20, 0x80, 0x00, +0x00, 0x00, 0x00, 0x51, 0x3C, 0x4B, 0x90, 0x00, 0x00, 0x00, 0x00, 0x52, 0x76, 0x02, 0x80, 0x00, +0x00, 0x00, 0x00, 0x53, 0x1C, 0x2D, 0x90, 0x00, 0x00, 0x00, 0x00, 0x54, 0x55, 0xE4, 0x80, 0x00, +0x00, 0x00, 0x00, 0x54, 0xFC, 0x0F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x56, 0x35, 0xC6, 0x80, 0x00, +0x00, 0x00, 0x00, 0x56, 0xE5, 0x2C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x58, 0x1E, 0xE3, 0x00, 0x00, +0x00, 0x00, 0x00, 0x58, 0xC5, 0x0E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x59, 0xFE, 0xC5, 0x00, 0x00, +0x00, 0x00, 0x00, 0x5A, 0xA4, 0xF0, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xDE, 0xA7, 0x00, 0x00, +0x00, 0x00, 0x00, 0x5C, 0x84, 0xD2, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xBE, 0x89, 0x00, 0x00, +0x00, 0x00, 0x00, 0x5E, 0x64, 0xB4, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x9E, 0x6B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x60, 0x4D, 0xD0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x61, 0x87, 0x87, 0x80, 0x00, +0x00, 0x00, 0x00, 0x62, 0x2D, 0xB2, 0x90, 0x00, 0x00, 0x00, 0x00, 0x63, 0x5E, 0x2F, 0x00, 0x00, +0x00, 0x00, 0x00, 0x63, 0x86, 0xF1, 0x60, 0x01, 0x02, 0x01, 0x03, 0x01, 0x02, 0x04, 0x02, 0x04, +0x02, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, +0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, +0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, +0x01, 0x03, 0x02, 0x01, 0xFF, 0xFF, 0x9C, 0x2C, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, +0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, +0x01, 0x10, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x4D, 0x44, +0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x0A, 0x4D, 0x53, 0x54, 0x37, 0x4D, 0x44, 0x54, 0x2C, 0x4D, +0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xB9, +0xC0, 0x15, 0x00, 0x70, 0x2D, 0x72, 0x00, 0x00, 0x00, 0x1C, 0x43, 0x68, 0x69, 0x68, 0x75, 0x61, +0x68, 0x75, 0x61, 0x20, 0x28, 0x55, 0x53, 0x20, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x20, 0x2D, +0x20, 0x77, 0x65, 0x73, 0x74, 0x29, + /* America/Coral_Harbour */ 0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 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, @@ -4432,9 +4486,9 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 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, 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, 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, 0x22, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0C, 0xFF, 0xFF, 0xFF, 0xFF, 0x9B, 0x80, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x4D, 0x7C, 0x50, 0x00, 0x00, 0x00, 0x00, 0x14, 0x33, 0xFA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x15, 0x23, 0xEB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x16, 0x13, 0xDC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x17, 0x03, 0xCD, 0x90, 0x00, @@ -4451,14 +4505,43 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 0x00, 0x00, 0x00, 0x2A, 0xC5, 0x07, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xF8, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xE9, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xDA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0xCB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xBC, 0x90, 0x00, -0x00, 0x00, 0x00, 0x30, 0x64, 0xAD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x01, +0x00, 0x00, 0x00, 0x30, 0x64, 0xAD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x00, +0x00, 0x00, 0x00, 0x32, 0x72, 0xB4, 0x10, 0x00, 0x00, 0x00, 0x00, 0x33, 0x3D, 0xBB, 0x10, 0x00, +0x00, 0x00, 0x00, 0x34, 0x52, 0x96, 0x10, 0x00, 0x00, 0x00, 0x00, 0x35, 0x1D, 0x9D, 0x10, 0x00, +0x00, 0x00, 0x00, 0x36, 0x32, 0x78, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0xFD, 0x7F, 0x10, 0x00, +0x00, 0x00, 0x00, 0x38, 0x1B, 0x94, 0x90, 0x00, 0x00, 0x00, 0x00, 0x38, 0xDD, 0x61, 0x10, 0x00, +0x00, 0x00, 0x00, 0x39, 0xFB, 0x76, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xBD, 0x43, 0x10, 0x00, +0x00, 0x00, 0x00, 0x3B, 0xDB, 0x58, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xA6, 0x5F, 0x90, 0x00, +0x00, 0x00, 0x00, 0x3D, 0xBB, 0x3A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x86, 0x41, 0x90, 0x00, +0x00, 0x00, 0x00, 0x3F, 0x9B, 0x1C, 0x90, 0x00, 0x00, 0x00, 0x00, 0x40, 0x66, 0x23, 0x90, 0x00, +0x00, 0x00, 0x00, 0x41, 0x84, 0x39, 0x10, 0x00, 0x00, 0x00, 0x00, 0x42, 0x46, 0x05, 0x90, 0x00, +0x00, 0x00, 0x00, 0x43, 0x64, 0x1B, 0x10, 0x00, 0x00, 0x00, 0x00, 0x44, 0x25, 0xE7, 0x90, 0x00, +0x00, 0x00, 0x00, 0x45, 0x43, 0xFD, 0x10, 0x00, 0x00, 0x00, 0x00, 0x46, 0x05, 0xC9, 0x90, 0x00, +0x00, 0x00, 0x00, 0x47, 0x23, 0xDF, 0x10, 0x00, 0x00, 0x00, 0x00, 0x47, 0xEE, 0xE6, 0x10, 0x00, +0x00, 0x00, 0x00, 0x49, 0x03, 0xC1, 0x10, 0x00, 0x00, 0x00, 0x00, 0x49, 0xCE, 0xC8, 0x10, 0x00, +0x00, 0x00, 0x00, 0x4A, 0xE3, 0xA3, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4B, 0xAE, 0xAA, 0x10, 0x00, +0x00, 0x00, 0x00, 0x4C, 0xCC, 0xBF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x8E, 0x8C, 0x10, 0x00, +0x00, 0x00, 0x00, 0x4E, 0xAC, 0xA1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x6E, 0x6E, 0x10, 0x00, +0x00, 0x00, 0x00, 0x50, 0x8C, 0x83, 0x90, 0x00, 0x00, 0x00, 0x00, 0x51, 0x57, 0x8A, 0x90, 0x00, +0x00, 0x00, 0x00, 0x52, 0x6C, 0x65, 0x90, 0x00, 0x00, 0x00, 0x00, 0x53, 0x37, 0x6C, 0x90, 0x00, +0x00, 0x00, 0x00, 0x54, 0x4C, 0x47, 0x90, 0x00, 0x00, 0x00, 0x00, 0x55, 0x17, 0x4E, 0x90, 0x00, +0x00, 0x00, 0x00, 0x56, 0x2C, 0x29, 0x90, 0x00, 0x00, 0x00, 0x00, 0x56, 0xF7, 0x30, 0x90, 0x00, +0x00, 0x00, 0x00, 0x58, 0x15, 0x46, 0x10, 0x00, 0x00, 0x00, 0x00, 0x58, 0xD7, 0x12, 0x90, 0x00, +0x00, 0x00, 0x00, 0x59, 0xF5, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xB6, 0xF4, 0x90, 0x00, +0x00, 0x00, 0x00, 0x5B, 0xD5, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5C, 0xA0, 0x11, 0x10, 0x00, +0x00, 0x00, 0x00, 0x5D, 0xB4, 0xEC, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x7F, 0xF3, 0x10, 0x00, +0x00, 0x00, 0x00, 0x5F, 0x94, 0xCE, 0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x5F, 0xD5, 0x10, 0x00, +0x00, 0x00, 0x00, 0x61, 0x7D, 0xEA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x62, 0x3F, 0xB7, 0x10, 0x00, +0x00, 0x00, 0x00, 0x63, 0x5D, 0xCC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x64, 0x1F, 0x99, 0x10, 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, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xE3, -0xE0, 0x01, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x0A, -0x3C, 0x2D, 0x30, 0x33, 0x3E, 0x33, 0x3C, 0x2D, 0x30, 0x32, 0x3E, 0x2C, 0x4D, 0x33, 0x2E, 0x35, -0x2E, 0x30, 0x2F, 0x2D, 0x32, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x2D, 0x31, -0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +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, 0x03, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xD5, +0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x08, 0x4C, +0x4D, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x0A, 0x3C, 0x2D, 0x30, 0x32, +0x3E, 0x32, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* America/Goose_Bay */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -4893,9 +4976,8 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x0C, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x10, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x0A, 0x4D, 0x53, 0x54, 0x37, 0x0A, 0x00, 0xB5, -0xAE, 0x6A, 0x00, 0x69, 0x56, 0x25, 0x00, 0x00, 0x00, 0x1F, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, -0x69, 0x6E, 0x20, 0x53, 0x74, 0x61, 0x6E, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6D, 0x65, -0x20, 0x2D, 0x20, 0x53, 0x6F, 0x6E, 0x6F, 0x72, 0x61, +0xAE, 0x6A, 0x00, 0x69, 0x56, 0x25, 0x00, 0x00, 0x00, 0x06, 0x53, 0x6F, 0x6E, 0x6F, 0x72, 0x61, + /* America/Indiana/Indianapolis */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -5280,47 +5362,55 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 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, 0x3B, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x15, 0xFF, -0xFF, 0xFF, 0xFF, 0xE0, 0x06, 0x4E, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0x2F, 0x68, 0x80, 0xFF, -0xFF, 0xFF, 0xFF, 0xF8, 0x28, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x89, 0x90, 0x20, 0x00, -0x00, 0x00, 0x00, 0x13, 0x69, 0x64, 0x10, 0x00, 0x00, 0x00, 0x00, 0x14, 0x59, 0x47, 0x00, 0x00, -0x00, 0x00, 0x00, 0x15, 0x49, 0x46, 0x10, 0x00, 0x00, 0x00, 0x00, 0x16, 0x39, 0x29, 0x00, 0x00, -0x00, 0x00, 0x00, 0x17, 0x29, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x18, 0x22, 0x45, 0x80, 0x00, -0x00, 0x00, 0x00, 0x19, 0x09, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x02, 0x27, 0x80, 0x00, -0x00, 0x00, 0x00, 0x1A, 0xF2, 0x26, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xE2, 0x09, 0x80, 0x00, -0x00, 0x00, 0x00, 0x1C, 0xD2, 0x08, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1D, 0xC1, 0xEB, 0x80, 0x00, -0x00, 0x00, 0x00, 0x1E, 0xB1, 0xEA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xA1, 0xCD, 0x80, 0x00, -0x00, 0x00, 0x00, 0x20, 0x76, 0x1D, 0x10, 0x00, 0x00, 0x00, 0x00, 0x21, 0x81, 0xAF, 0x80, 0x00, -0x00, 0x00, 0x00, 0x22, 0x55, 0xFF, 0x10, 0x00, 0x00, 0x00, 0x00, 0x23, 0x6A, 0xCC, 0x00, 0x00, -0x00, 0x00, 0x00, 0x24, 0x35, 0xE1, 0x10, 0x00, 0x00, 0x00, 0x00, 0x25, 0x4A, 0xAE, 0x00, 0x00, -0x00, 0x00, 0x00, 0x26, 0x15, 0xC3, 0x10, 0x00, 0x00, 0x00, 0x00, 0x27, 0x2A, 0x90, 0x00, 0x00, -0x00, 0x00, 0x00, 0x27, 0xFE, 0xDF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x29, 0x0A, 0x72, 0x00, 0x00, -0x00, 0x00, 0x00, 0x29, 0xDE, 0xC1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xEA, 0x54, 0x00, 0x00, -0x00, 0x00, 0x00, 0x2B, 0xBE, 0xA3, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xD3, 0x70, 0x80, 0x00, -0x00, 0x00, 0x00, 0x2D, 0x9E, 0x85, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0xB3, 0x52, 0x80, 0x00, -0x00, 0x00, 0x00, 0x2F, 0x7E, 0x67, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0x93, 0x34, 0x80, 0x00, -0x00, 0x00, 0x00, 0x31, 0x67, 0x84, 0x10, 0x00, 0x00, 0x00, 0x00, 0x32, 0x73, 0x16, 0x80, 0x00, -0x00, 0x00, 0x00, 0x33, 0x47, 0x66, 0x10, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0xF8, 0x80, 0x00, -0x00, 0x00, 0x00, 0x35, 0x27, 0x48, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0xDA, 0x80, 0x00, -0x00, 0x00, 0x00, 0x37, 0x07, 0x2A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0xF7, 0x00, 0x00, -0x00, 0x00, 0x00, 0x38, 0xE7, 0x0C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0xD9, 0x00, 0x00, -0x00, 0x00, 0x00, 0x3A, 0xC6, 0xEE, 0x10, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xDB, 0xBB, 0x00, 0x00, -0x00, 0x00, 0x00, 0x3C, 0xB0, 0x0A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x9D, 0x00, 0x00, -0x00, 0x00, 0x00, 0x3E, 0x8F, 0xEC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x7F, 0x00, 0x00, -0x00, 0x00, 0x00, 0x40, 0x6F, 0xCE, 0x90, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x9B, 0x80, 0x00, -0x00, 0x00, 0x00, 0x42, 0x4F, 0xB0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x7D, 0x80, 0x00, -0x00, 0x00, 0x00, 0x44, 0x2F, 0x92, 0x90, 0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0x5F, 0x80, 0x00, -0x00, 0x00, 0x00, 0x45, 0xF3, 0xC5, 0x10, 0x02, 0x01, 0x02, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x04, 0xFF, 0xFF, -0x8F, 0x80, 0x00, 0x09, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x0D, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x11, -0x2D, 0x30, 0x30, 0x00, 0x50, 0x44, 0x44, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x4D, 0x53, 0x54, -0x00, 0x4D, 0x44, 0x54, 0x00, 0x0A, 0x4D, 0x53, 0x54, 0x37, 0x4D, 0x44, 0x54, 0x2C, 0x4D, 0x33, -0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xF1, 0x9F, -0x5C, 0x00, 0x46, 0x9F, 0x6D, 0x00, 0x00, 0x00, 0x14, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, -0x6E, 0x20, 0x2D, 0x20, 0x4E, 0x54, 0x20, 0x28, 0x77, 0x65, 0x73, 0x74, 0x29, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0xFF, +0xFF, 0xFF, 0xFF, 0xE0, 0x06, 0x4E, 0x80, 0x00, 0x00, 0x00, 0x00, 0x04, 0x61, 0x27, 0xA0, 0x00, +0x00, 0x00, 0x00, 0x05, 0x51, 0x0A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x06, 0x41, 0x09, 0xA0, 0x00, +0x00, 0x00, 0x00, 0x07, 0x30, 0xEC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0xEB, 0xA0, 0x00, +0x00, 0x00, 0x00, 0x09, 0x10, 0xCE, 0x90, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0xCD, 0xA0, 0x00, +0x00, 0x00, 0x00, 0x0A, 0xF0, 0xB0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x0B, 0xE0, 0xAF, 0xA0, 0x00, +0x00, 0x00, 0x00, 0x0C, 0xD9, 0xCD, 0x10, 0x00, 0x00, 0x00, 0x00, 0x0D, 0xC0, 0x91, 0xA0, 0x00, +0x00, 0x00, 0x00, 0x0E, 0xB9, 0xAF, 0x10, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA9, 0xAE, 0x20, 0x00, +0x00, 0x00, 0x00, 0x10, 0x99, 0x91, 0x10, 0x00, 0x00, 0x00, 0x00, 0x11, 0x89, 0x90, 0x20, 0x00, +0x00, 0x00, 0x00, 0x12, 0x79, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x64, 0x10, 0x00, +0x00, 0x00, 0x00, 0x14, 0x59, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x49, 0x46, 0x10, 0x00, +0x00, 0x00, 0x00, 0x16, 0x39, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x29, 0x28, 0x10, 0x00, +0x00, 0x00, 0x00, 0x18, 0x22, 0x45, 0x80, 0x00, 0x00, 0x00, 0x00, 0x19, 0x09, 0x0A, 0x10, 0x00, +0x00, 0x00, 0x00, 0x1A, 0x02, 0x27, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xF2, 0x26, 0x90, 0x00, +0x00, 0x00, 0x00, 0x1B, 0xE2, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xD2, 0x08, 0x90, 0x00, +0x00, 0x00, 0x00, 0x1D, 0xC1, 0xEB, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1E, 0xB1, 0xEA, 0x90, 0x00, +0x00, 0x00, 0x00, 0x1F, 0xA1, 0xCD, 0x80, 0x00, 0x00, 0x00, 0x00, 0x20, 0x76, 0x1D, 0x10, 0x00, +0x00, 0x00, 0x00, 0x21, 0x81, 0xAF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x22, 0x55, 0xFF, 0x10, 0x00, +0x00, 0x00, 0x00, 0x23, 0x6A, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x35, 0xE1, 0x10, 0x00, +0x00, 0x00, 0x00, 0x25, 0x4A, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x15, 0xC3, 0x10, 0x00, +0x00, 0x00, 0x00, 0x27, 0x2A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0xFE, 0xDF, 0x90, 0x00, +0x00, 0x00, 0x00, 0x29, 0x0A, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0xDE, 0xC1, 0x90, 0x00, +0x00, 0x00, 0x00, 0x2A, 0xEA, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xBE, 0xA3, 0x90, 0x00, +0x00, 0x00, 0x00, 0x2C, 0xD3, 0x70, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x9E, 0x85, 0x90, 0x00, +0x00, 0x00, 0x00, 0x2E, 0xB3, 0x52, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x7E, 0x67, 0x90, 0x00, +0x00, 0x00, 0x00, 0x30, 0x93, 0x34, 0x80, 0x00, 0x00, 0x00, 0x00, 0x31, 0x67, 0x84, 0x10, 0x00, +0x00, 0x00, 0x00, 0x32, 0x73, 0x16, 0x80, 0x00, 0x00, 0x00, 0x00, 0x33, 0x47, 0x66, 0x10, 0x00, +0x00, 0x00, 0x00, 0x34, 0x52, 0xF8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x35, 0x27, 0x48, 0x10, 0x00, +0x00, 0x00, 0x00, 0x36, 0x32, 0xDA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x37, 0x07, 0x2A, 0x10, 0x00, +0x00, 0x00, 0x00, 0x38, 0x1B, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xE7, 0x0C, 0x10, 0x00, +0x00, 0x00, 0x00, 0x39, 0xFB, 0xD9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xC6, 0xEE, 0x10, 0x00, +0x00, 0x00, 0x00, 0x3B, 0xDB, 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xB0, 0x0A, 0x90, 0x00, +0x00, 0x00, 0x00, 0x3D, 0xBB, 0x9D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x8F, 0xEC, 0x90, 0x00, +0x00, 0x00, 0x00, 0x3F, 0x9B, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x6F, 0xCE, 0x90, 0x00, +0x00, 0x00, 0x00, 0x41, 0x84, 0x9B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0xB0, 0x90, 0x00, +0x00, 0x00, 0x00, 0x43, 0x64, 0x7D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x92, 0x90, 0x00, +0x00, 0x00, 0x00, 0x45, 0x44, 0x5F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0xC5, 0x10, 0x02, +0x01, 0x02, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x9D, +0x90, 0x01, 0x04, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x0C, 0xFF, +0xFF, 0xAB, 0xA0, 0x01, 0x10, 0x2D, 0x30, 0x30, 0x00, 0x50, 0x44, 0x54, 0x00, 0x50, 0x53, 0x54, +0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x0A, 0x4D, 0x53, 0x54, 0x37, 0x4D, 0x44, +0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, +0x0A, 0x00, 0xF1, 0x9F, 0x5C, 0x00, 0x46, 0x9F, 0x6D, 0x00, 0x00, 0x00, 0x14, 0x4D, 0x6F, 0x75, +0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x2D, 0x20, 0x4E, 0x54, 0x20, 0x28, 0x77, 0x65, 0x73, 0x74, +0x29, /* America/Iqaluit */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -5328,10 +5418,17 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 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, 0x3C, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x21, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x1C, 0xFF, 0xFF, 0xFF, 0xFF, 0xCC, 0x6C, 0xA1, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, -0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xFB, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0x2F, 0x3E, 0x50, 0xFF, -0xFF, 0xFF, 0xFF, 0xF8, 0x28, 0x69, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x47, 0xF0, 0x00, +0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xFB, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x04, 0x60, 0xFD, 0x70, 0x00, +0x00, 0x00, 0x00, 0x05, 0x50, 0xE0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x06, 0x40, 0xDF, 0x70, 0x00, +0x00, 0x00, 0x00, 0x07, 0x30, 0xC2, 0x60, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0xC1, 0x70, 0x00, +0x00, 0x00, 0x00, 0x09, 0x10, 0xA4, 0x60, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0xA3, 0x70, 0x00, +0x00, 0x00, 0x00, 0x0A, 0xF0, 0x86, 0x60, 0x00, 0x00, 0x00, 0x00, 0x0B, 0xE0, 0x85, 0x70, 0x00, +0x00, 0x00, 0x00, 0x0C, 0xD9, 0xA2, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x0D, 0xC0, 0x67, 0x70, 0x00, +0x00, 0x00, 0x00, 0x0E, 0xB9, 0x84, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA9, 0x83, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x10, 0x99, 0x66, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x11, 0x89, 0x65, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x12, 0x79, 0x48, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x47, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x14, 0x59, 0x2A, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x15, 0x49, 0x29, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x16, 0x39, 0x0C, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x17, 0x29, 0x0B, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x18, 0x22, 0x29, 0x60, 0x00, 0x00, 0x00, 0x00, 0x19, 0x08, 0xED, 0xF0, 0x00, @@ -5358,20 +5455,20 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x62, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x40, 0x6F, 0xB2, 0x70, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x7F, 0x60, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0x94, 0x70, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x61, 0x60, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x76, 0x70, 0x00, -0x00, 0x00, 0x00, 0x45, 0x44, 0x43, 0x60, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0xA8, 0xF0, 0x05, -0x01, 0x02, 0x03, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, -0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, -0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x06, 0x07, 0x02, 0x04, 0x02, -0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x08, 0xFF, 0xFF, 0xD5, -0xD0, 0x01, 0x0C, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x11, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x15, 0xFF, -0xFF, 0xAB, 0xA0, 0x00, 0x19, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x1D, 0x2D, 0x30, 0x30, 0x00, 0x45, -0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x45, 0x44, 0x44, 0x54, 0x00, 0x45, 0x44, 0x54, 0x00, -0x45, 0x57, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x0A, 0x45, 0x53, 0x54, -0x35, 0x45, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, -0x31, 0x2E, 0x30, 0x0A, 0x00, 0xEA, 0x94, 0x15, 0x00, 0xAA, 0x2F, 0xB5, 0x00, 0x00, 0x00, 0x1E, -0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x2D, 0x20, 0x4E, 0x55, 0x20, 0x28, 0x6D, 0x6F, -0x73, 0x74, 0x20, 0x65, 0x61, 0x73, 0x74, 0x20, 0x61, 0x72, 0x65, 0x61, 0x73, 0x29, +0x00, 0x00, 0x00, 0x45, 0x44, 0x43, 0x60, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0xA8, 0xF0, 0x04, +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, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x05, 0x06, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, +0xFF, 0xC7, 0xC0, 0x01, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x08, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, +0x0C, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x10, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x14, 0xFF, 0xFF, 0xB9, +0xB0, 0x01, 0x18, 0x2D, 0x30, 0x30, 0x00, 0x45, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x45, +0x44, 0x54, 0x00, 0x45, 0x57, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x0A, +0x45, 0x53, 0x54, 0x35, 0x45, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, +0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xEA, 0x94, 0x15, 0x00, 0xAA, 0x2F, 0xB5, 0x00, +0x00, 0x00, 0x19, 0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x2D, 0x20, 0x4E, 0x55, 0x20, +0x28, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x61, 0x72, 0x65, 0x61, 0x73, 0x29, /* America/Jamaica */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x4A, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -6097,10 +6194,9 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x0A, 0x43, 0x53, 0x54, 0x36, 0x43, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xB0, 0xBF, 0x65, 0x00, 0x7D, 0xE2, 0x90, 0x00, 0x00, 0x00, -0x3E, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x55, 0x53, -0x20, 0x2D, 0x20, 0x43, 0x6F, 0x61, 0x68, 0x75, 0x69, 0x6C, 0x61, 0x2C, 0x20, 0x4E, 0x75, 0x65, -0x76, 0x6F, 0x20, 0x4C, 0x65, 0x6F, 0x6E, 0x2C, 0x20, 0x54, 0x61, 0x6D, 0x61, 0x75, 0x6C, 0x69, -0x70, 0x61, 0x73, 0x20, 0x28, 0x55, 0x53, 0x20, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x29, +0x2C, 0x43, 0x6F, 0x61, 0x68, 0x75, 0x69, 0x6C, 0x61, 0x2C, 0x20, 0x4E, 0x75, 0x65, 0x76, 0x6F, +0x20, 0x4C, 0x65, 0x6F, 0x6E, 0x2C, 0x20, 0x54, 0x61, 0x6D, 0x61, 0x75, 0x6C, 0x69, 0x70, 0x61, +0x73, 0x20, 0x28, 0x55, 0x53, 0x20, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x29, /* America/Mazatlan */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x4D, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -6148,10 +6244,10 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x0C, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x10, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x0A, 0x4D, 0x53, 0x54, 0x37, 0x0A, 0x00, 0xAC, -0xC1, 0x42, 0x00, 0x70, 0x47, 0x7D, 0x00, 0x00, 0x00, 0x35, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, -0x69, 0x6E, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x42, 0x61, 0x6A, 0x61, 0x20, 0x43, +0xC1, 0x42, 0x00, 0x70, 0x47, 0x7D, 0x00, 0x00, 0x00, 0x32, 0x42, 0x61, 0x6A, 0x61, 0x20, 0x43, 0x61, 0x6C, 0x69, 0x66, 0x6F, 0x72, 0x6E, 0x69, 0x61, 0x20, 0x53, 0x75, 0x72, 0x2C, 0x20, 0x4E, -0x61, 0x79, 0x61, 0x72, 0x69, 0x74, 0x2C, 0x20, 0x53, 0x69, 0x6E, 0x61, 0x6C, 0x6F, 0x61, +0x61, 0x79, 0x61, 0x72, 0x69, 0x74, 0x20, 0x28, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x61, 0x72, 0x65, +0x61, 0x73, 0x29, 0x2C, 0x20, 0x53, 0x69, 0x6E, 0x61, 0x6C, 0x6F, 0x61, /* America/Mendoza */ 0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -6306,9 +6402,8 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 0xFF, 0xFF, 0xAB, 0xFC, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x0A, 0x43, 0x53, 0x54, 0x36, 0x0A, 0x00, 0xA9, -0x52, 0x5A, 0x00, 0x89, 0xE9, 0xFD, 0x00, 0x00, 0x00, 0x20, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, -0x6C, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x43, 0x61, 0x6D, 0x70, 0x65, 0x63, 0x68, -0x65, 0x2C, 0x20, 0x59, 0x75, 0x63, 0x61, 0x74, 0x61, 0x6E, +0x52, 0x5A, 0x00, 0x89, 0xE9, 0xFD, 0x00, 0x00, 0x00, 0x11, 0x43, 0x61, 0x6D, 0x70, 0x65, 0x63, +0x68, 0x65, 0x2C, 0x20, 0x59, 0x75, 0x63, 0x61, 0x74, 0x61, 0x6E, /* America/Metlakatla */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -6402,7 +6497,7 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 0x10, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x0A, 0x43, 0x53, 0x54, 0x36, 0x0A, 0x00, 0xA6, 0xEE, 0x60, 0x00, 0x7B, 0x5E, 0x07, 0x00, 0x00, 0x00, -0x0C, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x54, 0x69, 0x6D, 0x65, +0x0E, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x4D, 0x65, 0x78, 0x69, 0x63, 0x6F, /* America/Miquelon */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x50, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -6581,12 +6676,11 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xA1, 0xF4, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x0A, 0x43, -0x53, 0x54, 0x36, 0x0A, 0x00, 0xB0, 0x7E, 0x4A, 0x00, 0x79, 0x96, 0x4D, 0x00, 0x00, 0x00, 0x45, -0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x44, -0x75, 0x72, 0x61, 0x6E, 0x67, 0x6F, 0x3B, 0x20, 0x43, 0x6F, 0x61, 0x68, 0x75, 0x69, 0x6C, 0x61, -0x2C, 0x20, 0x4E, 0x75, 0x65, 0x76, 0x6F, 0x20, 0x4C, 0x65, 0x6F, 0x6E, 0x2C, 0x20, 0x54, 0x61, -0x6D, 0x61, 0x75, 0x6C, 0x69, 0x70, 0x61, 0x73, 0x20, 0x28, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x61, -0x72, 0x65, 0x61, 0x73, 0x29, +0x53, 0x54, 0x36, 0x0A, 0x00, 0xB0, 0x7E, 0x4A, 0x00, 0x79, 0x96, 0x4D, 0x00, 0x00, 0x00, 0x36, +0x44, 0x75, 0x72, 0x61, 0x6E, 0x67, 0x6F, 0x3B, 0x20, 0x43, 0x6F, 0x61, 0x68, 0x75, 0x69, 0x6C, +0x61, 0x2C, 0x20, 0x4E, 0x75, 0x65, 0x76, 0x6F, 0x20, 0x4C, 0x65, 0x6F, 0x6E, 0x2C, 0x20, 0x54, +0x61, 0x6D, 0x61, 0x75, 0x6C, 0x69, 0x70, 0x61, 0x73, 0x20, 0x28, 0x6D, 0x6F, 0x73, 0x74, 0x20, +0x61, 0x72, 0x65, 0x61, 0x73, 0x29, /* America/Montevideo */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x55, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -7372,9 +7466,9 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 0x50, 0x48, 0x50, 0x32, 0x01, 0x47, 0x4C, 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, 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, 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, 0x22, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0C, 0xFF, 0xFF, 0xFF, 0xFF, 0x9B, 0x80, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x4D, 0x7C, 0x50, 0x00, 0x00, 0x00, 0x00, 0x14, 0x33, 0xFA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x15, 0x23, 0xEB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x16, 0x13, 0xDC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x17, 0x03, 0xCD, 0x90, 0x00, @@ -7391,16 +7485,45 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 0x00, 0x00, 0x00, 0x2A, 0xC5, 0x07, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xF8, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xE9, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xDA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0xCB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xBC, 0x90, 0x00, -0x00, 0x00, 0x00, 0x30, 0x64, 0xAD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x01, +0x00, 0x00, 0x00, 0x30, 0x64, 0xAD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x00, +0x00, 0x00, 0x00, 0x32, 0x72, 0xB4, 0x10, 0x00, 0x00, 0x00, 0x00, 0x33, 0x3D, 0xBB, 0x10, 0x00, +0x00, 0x00, 0x00, 0x34, 0x52, 0x96, 0x10, 0x00, 0x00, 0x00, 0x00, 0x35, 0x1D, 0x9D, 0x10, 0x00, +0x00, 0x00, 0x00, 0x36, 0x32, 0x78, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0xFD, 0x7F, 0x10, 0x00, +0x00, 0x00, 0x00, 0x38, 0x1B, 0x94, 0x90, 0x00, 0x00, 0x00, 0x00, 0x38, 0xDD, 0x61, 0x10, 0x00, +0x00, 0x00, 0x00, 0x39, 0xFB, 0x76, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xBD, 0x43, 0x10, 0x00, +0x00, 0x00, 0x00, 0x3B, 0xDB, 0x58, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xA6, 0x5F, 0x90, 0x00, +0x00, 0x00, 0x00, 0x3D, 0xBB, 0x3A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x86, 0x41, 0x90, 0x00, +0x00, 0x00, 0x00, 0x3F, 0x9B, 0x1C, 0x90, 0x00, 0x00, 0x00, 0x00, 0x40, 0x66, 0x23, 0x90, 0x00, +0x00, 0x00, 0x00, 0x41, 0x84, 0x39, 0x10, 0x00, 0x00, 0x00, 0x00, 0x42, 0x46, 0x05, 0x90, 0x00, +0x00, 0x00, 0x00, 0x43, 0x64, 0x1B, 0x10, 0x00, 0x00, 0x00, 0x00, 0x44, 0x25, 0xE7, 0x90, 0x00, +0x00, 0x00, 0x00, 0x45, 0x43, 0xFD, 0x10, 0x00, 0x00, 0x00, 0x00, 0x46, 0x05, 0xC9, 0x90, 0x00, +0x00, 0x00, 0x00, 0x47, 0x23, 0xDF, 0x10, 0x00, 0x00, 0x00, 0x00, 0x47, 0xEE, 0xE6, 0x10, 0x00, +0x00, 0x00, 0x00, 0x49, 0x03, 0xC1, 0x10, 0x00, 0x00, 0x00, 0x00, 0x49, 0xCE, 0xC8, 0x10, 0x00, +0x00, 0x00, 0x00, 0x4A, 0xE3, 0xA3, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4B, 0xAE, 0xAA, 0x10, 0x00, +0x00, 0x00, 0x00, 0x4C, 0xCC, 0xBF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x8E, 0x8C, 0x10, 0x00, +0x00, 0x00, 0x00, 0x4E, 0xAC, 0xA1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x6E, 0x6E, 0x10, 0x00, +0x00, 0x00, 0x00, 0x50, 0x8C, 0x83, 0x90, 0x00, 0x00, 0x00, 0x00, 0x51, 0x57, 0x8A, 0x90, 0x00, +0x00, 0x00, 0x00, 0x52, 0x6C, 0x65, 0x90, 0x00, 0x00, 0x00, 0x00, 0x53, 0x37, 0x6C, 0x90, 0x00, +0x00, 0x00, 0x00, 0x54, 0x4C, 0x47, 0x90, 0x00, 0x00, 0x00, 0x00, 0x55, 0x17, 0x4E, 0x90, 0x00, +0x00, 0x00, 0x00, 0x56, 0x2C, 0x29, 0x90, 0x00, 0x00, 0x00, 0x00, 0x56, 0xF7, 0x30, 0x90, 0x00, +0x00, 0x00, 0x00, 0x58, 0x15, 0x46, 0x10, 0x00, 0x00, 0x00, 0x00, 0x58, 0xD7, 0x12, 0x90, 0x00, +0x00, 0x00, 0x00, 0x59, 0xF5, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xB6, 0xF4, 0x90, 0x00, +0x00, 0x00, 0x00, 0x5B, 0xD5, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5C, 0xA0, 0x11, 0x10, 0x00, +0x00, 0x00, 0x00, 0x5D, 0xB4, 0xEC, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x7F, 0xF3, 0x10, 0x00, +0x00, 0x00, 0x00, 0x5F, 0x94, 0xCE, 0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x5F, 0xD5, 0x10, 0x00, +0x00, 0x00, 0x00, 0x61, 0x7D, 0xEA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x62, 0x3F, 0xB7, 0x10, 0x00, +0x00, 0x00, 0x00, 0x63, 0x5D, 0xCC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x64, 0x1F, 0x99, 0x10, 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, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xE3, -0xE0, 0x01, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x0A, -0x3C, 0x2D, 0x30, 0x33, 0x3E, 0x33, 0x3C, 0x2D, 0x30, 0x32, 0x3E, 0x2C, 0x4D, 0x33, 0x2E, 0x35, -0x2E, 0x30, 0x2F, 0x2D, 0x32, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x2D, 0x31, -0x0A, 0x00, 0xEB, 0x43, 0xDD, 0x00, 0xC3, 0xB8, 0x2A, 0x00, 0x00, 0x00, 0x16, 0x47, 0x72, 0x65, -0x65, 0x6E, 0x6C, 0x61, 0x6E, 0x64, 0x20, 0x28, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x61, 0x72, 0x65, -0x61, 0x73, 0x29, +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, 0x03, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xD5, +0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x08, 0x4C, +0x4D, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x0A, 0x3C, 0x2D, 0x30, 0x32, +0x3E, 0x32, 0x0A, 0x00, 0xEB, 0x43, 0xDD, 0x00, 0xC3, 0xB8, 0x2A, 0x00, 0x00, 0x00, 0x16, 0x47, +0x72, 0x65, 0x65, 0x6E, 0x6C, 0x61, 0x6E, 0x64, 0x20, 0x28, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x61, +0x72, 0x65, 0x61, 0x73, 0x29, /* America/Ojinaga */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x4D, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -7446,10 +7569,10 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x10, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x0A, 0x43, 0x53, -0x54, 0x36, 0x0A, 0x00, 0xB6, 0x71, 0xBA, 0x00, 0x73, 0x54, 0xBD, 0x00, 0x00, 0x00, 0x28, 0x4D, -0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x55, 0x53, 0x20, -0x2D, 0x20, 0x43, 0x68, 0x69, 0x68, 0x75, 0x61, 0x68, 0x75, 0x61, 0x20, 0x28, 0x55, 0x53, 0x20, -0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x29, +0x54, 0x36, 0x43, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, +0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xB6, 0x71, 0xBA, 0x00, 0x73, 0x54, 0xBD, 0x00, 0x00, 0x00, +0x1C, 0x43, 0x68, 0x69, 0x68, 0x75, 0x61, 0x68, 0x75, 0x61, 0x20, 0x28, 0x55, 0x53, 0x20, 0x62, +0x6F, 0x72, 0x64, 0x65, 0x72, 0x20, 0x2D, 0x20, 0x65, 0x61, 0x73, 0x74, 0x29, /* America/Panama */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x50, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -7465,57 +7588,61 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 0x00, /* America/Pangnirtung */ -0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 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, 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, 0x3D, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x29, 0xFF, -0xFF, 0xFF, 0xFF, 0xA3, 0xD5, 0x52, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x88, 0xE2, 0x60, 0xFF, -0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xED, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xF7, 0x2F, 0x30, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x28, 0x5B, 0xC0, 0x00, -0x00, 0x00, 0x00, 0x13, 0x69, 0x39, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x14, 0x59, 0x1C, 0xD0, 0x00, -0x00, 0x00, 0x00, 0x15, 0x49, 0x1B, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x16, 0x38, 0xFE, 0xD0, 0x00, -0x00, 0x00, 0x00, 0x17, 0x28, 0xFD, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x18, 0x22, 0x1B, 0x50, 0x00, -0x00, 0x00, 0x00, 0x19, 0x08, 0xDF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x01, 0xFD, 0x50, 0x00, -0x00, 0x00, 0x00, 0x1A, 0xF1, 0xFC, 0x60, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xE1, 0xDF, 0x50, 0x00, -0x00, 0x00, 0x00, 0x1C, 0xD1, 0xDE, 0x60, 0x00, 0x00, 0x00, 0x00, 0x1D, 0xC1, 0xC1, 0x50, 0x00, -0x00, 0x00, 0x00, 0x1E, 0xB1, 0xC0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xA1, 0xA3, 0x50, 0x00, -0x00, 0x00, 0x00, 0x20, 0x75, 0xF2, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x21, 0x81, 0x85, 0x50, 0x00, -0x00, 0x00, 0x00, 0x22, 0x55, 0xD4, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x23, 0x6A, 0xA1, 0xD0, 0x00, -0x00, 0x00, 0x00, 0x24, 0x35, 0xB6, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x25, 0x4A, 0x83, 0xD0, 0x00, -0x00, 0x00, 0x00, 0x26, 0x15, 0x98, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x27, 0x2A, 0x65, 0xD0, 0x00, -0x00, 0x00, 0x00, 0x27, 0xFE, 0xB5, 0x60, 0x00, 0x00, 0x00, 0x00, 0x29, 0x0A, 0x47, 0xD0, 0x00, -0x00, 0x00, 0x00, 0x29, 0xDE, 0x97, 0x60, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xEA, 0x29, 0xD0, 0x00, -0x00, 0x00, 0x00, 0x2B, 0xBE, 0x79, 0x60, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xD3, 0x46, 0x50, 0x00, -0x00, 0x00, 0x00, 0x2D, 0x9E, 0x5B, 0x60, 0x00, 0x00, 0x00, 0x00, 0x2E, 0xB3, 0x28, 0x50, 0x00, -0x00, 0x00, 0x00, 0x2F, 0x7E, 0x3D, 0x60, 0x00, 0x00, 0x00, 0x00, 0x30, 0x93, 0x18, 0x60, 0x00, -0x00, 0x00, 0x00, 0x31, 0x67, 0x67, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x32, 0x72, 0xFA, 0x60, 0x00, -0x00, 0x00, 0x00, 0x33, 0x47, 0x49, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0xDC, 0x60, 0x00, -0x00, 0x00, 0x00, 0x35, 0x27, 0x2B, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0xBE, 0x60, 0x00, -0x00, 0x00, 0x00, 0x37, 0x07, 0x0D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0xDA, 0xE0, 0x00, -0x00, 0x00, 0x00, 0x38, 0xE6, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0xCA, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x3A, 0xC6, 0xD1, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xDB, 0x9E, 0xE0, 0x00, -0x00, 0x00, 0x00, 0x3C, 0xAF, 0xEE, 0x70, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x80, 0xE0, 0x00, -0x00, 0x00, 0x00, 0x3E, 0x8F, 0xD0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x62, 0xE0, 0x00, -0x00, 0x00, 0x00, 0x40, 0x6F, 0xB2, 0x70, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x7F, 0x60, 0x00, -0x00, 0x00, 0x00, 0x42, 0x4F, 0x94, 0x70, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x61, 0x60, 0x00, -0x00, 0x00, 0x00, 0x44, 0x2F, 0x76, 0x70, 0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0x43, 0x60, 0x00, -0x00, 0x00, 0x00, 0x45, 0xF3, 0xA8, 0xF0, 0x03, 0x01, 0x02, 0x03, 0x04, 0x03, 0x05, 0x03, 0x05, -0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, -0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x06, 0x07, 0x06, 0x07, 0x06, -0x07, 0x06, 0x07, 0x06, 0x08, 0x09, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, -0x07, 0x06, 0x07, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x04, -0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x08, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x0C, 0xFF, 0xFF, 0xE3, 0xE0, -0x01, 0x10, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x15, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x19, 0xFF, 0xFF, -0xB9, 0xB0, 0x00, 0x1D, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x21, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x25, -0x2D, 0x30, 0x30, 0x00, 0x41, 0x57, 0x54, 0x00, 0x41, 0x50, 0x54, 0x00, 0x41, 0x53, 0x54, 0x00, -0x41, 0x44, 0x44, 0x54, 0x00, 0x41, 0x44, 0x54, 0x00, 0x45, 0x44, 0x54, 0x00, 0x45, 0x53, 0x54, -0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x0A, 0x45, 0x53, 0x54, 0x35, 0x45, 0x44, -0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, -0x0A, 0x00, 0xEE, 0x3D, 0x95, 0x00, 0xAE, 0x5B, 0x6A, 0x00, 0x00, 0x00, 0x1A, 0x45, 0x61, 0x73, -0x74, 0x65, 0x72, 0x6E, 0x20, 0x2D, 0x20, 0x4E, 0x55, 0x20, 0x28, 0x50, 0x61, 0x6E, 0x67, 0x6E, -0x69, 0x72, 0x74, 0x75, 0x6E, 0x67, 0x29, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x1C, 0xFF, +0xFF, 0xFF, 0xFF, 0xCC, 0x6C, 0xA1, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, +0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xFB, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x04, 0x60, 0xFD, 0x70, 0x00, +0x00, 0x00, 0x00, 0x05, 0x50, 0xE0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x06, 0x40, 0xDF, 0x70, 0x00, +0x00, 0x00, 0x00, 0x07, 0x30, 0xC2, 0x60, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0xC1, 0x70, 0x00, +0x00, 0x00, 0x00, 0x09, 0x10, 0xA4, 0x60, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0xA3, 0x70, 0x00, +0x00, 0x00, 0x00, 0x0A, 0xF0, 0x86, 0x60, 0x00, 0x00, 0x00, 0x00, 0x0B, 0xE0, 0x85, 0x70, 0x00, +0x00, 0x00, 0x00, 0x0C, 0xD9, 0xA2, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x0D, 0xC0, 0x67, 0x70, 0x00, +0x00, 0x00, 0x00, 0x0E, 0xB9, 0x84, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA9, 0x83, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x10, 0x99, 0x66, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x11, 0x89, 0x65, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x12, 0x79, 0x48, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x47, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x14, 0x59, 0x2A, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x15, 0x49, 0x29, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x16, 0x39, 0x0C, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x17, 0x29, 0x0B, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x18, 0x22, 0x29, 0x60, 0x00, 0x00, 0x00, 0x00, 0x19, 0x08, 0xED, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x1A, 0x02, 0x0B, 0x60, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xF2, 0x0A, 0x70, 0x00, +0x00, 0x00, 0x00, 0x1B, 0xE1, 0xED, 0x60, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xD1, 0xEC, 0x70, 0x00, +0x00, 0x00, 0x00, 0x1D, 0xC1, 0xCF, 0x60, 0x00, 0x00, 0x00, 0x00, 0x1E, 0xB1, 0xCE, 0x70, 0x00, +0x00, 0x00, 0x00, 0x1F, 0xA1, 0xB1, 0x60, 0x00, 0x00, 0x00, 0x00, 0x20, 0x76, 0x00, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x21, 0x81, 0x93, 0x60, 0x00, 0x00, 0x00, 0x00, 0x22, 0x55, 0xE2, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x23, 0x6A, 0xAF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x24, 0x35, 0xC4, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x25, 0x4A, 0x91, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x26, 0x15, 0xA6, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x27, 0x2A, 0x73, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x27, 0xFE, 0xC3, 0x70, 0x00, +0x00, 0x00, 0x00, 0x29, 0x0A, 0x55, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x29, 0xDE, 0xA5, 0x70, 0x00, +0x00, 0x00, 0x00, 0x2A, 0xEA, 0x37, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xBE, 0x87, 0x70, 0x00, +0x00, 0x00, 0x00, 0x2C, 0xD3, 0x54, 0x60, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x9E, 0x69, 0x70, 0x00, +0x00, 0x00, 0x00, 0x2E, 0xB3, 0x36, 0x60, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x7E, 0x4B, 0x70, 0x00, +0x00, 0x00, 0x00, 0x30, 0x93, 0x18, 0x60, 0x00, 0x00, 0x00, 0x00, 0x31, 0x67, 0x67, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x32, 0x72, 0xFA, 0x60, 0x00, 0x00, 0x00, 0x00, 0x33, 0x47, 0x49, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x34, 0x52, 0xDC, 0x60, 0x00, 0x00, 0x00, 0x00, 0x35, 0x27, 0x2B, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x36, 0x32, 0xBE, 0x60, 0x00, 0x00, 0x00, 0x00, 0x37, 0x07, 0x0D, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x38, 0x1B, 0xDA, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x38, 0xE6, 0xFE, 0x00, 0x00, +0x00, 0x00, 0x00, 0x39, 0xFB, 0xCA, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xC6, 0xD1, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x3B, 0xDB, 0x9E, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xAF, 0xEE, 0x70, 0x00, +0x00, 0x00, 0x00, 0x3D, 0xBB, 0x80, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x8F, 0xD0, 0x70, 0x00, +0x00, 0x00, 0x00, 0x3F, 0x9B, 0x62, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x40, 0x6F, 0xB2, 0x70, 0x00, +0x00, 0x00, 0x00, 0x41, 0x84, 0x7F, 0x60, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0x94, 0x70, 0x00, +0x00, 0x00, 0x00, 0x43, 0x64, 0x61, 0x60, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x76, 0x70, 0x00, +0x00, 0x00, 0x00, 0x45, 0x44, 0x43, 0x60, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0xA8, 0xF0, 0x04, +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, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x05, 0x06, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, +0xFF, 0xC7, 0xC0, 0x01, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x08, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, +0x0C, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x10, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x14, 0xFF, 0xFF, 0xB9, +0xB0, 0x01, 0x18, 0x2D, 0x30, 0x30, 0x00, 0x45, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x45, +0x44, 0x54, 0x00, 0x45, 0x57, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x0A, +0x45, 0x53, 0x54, 0x35, 0x45, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, +0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, /* America/Paramaribo */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x53, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -7844,9 +7971,16 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 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, 0x3A, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x15, 0xFF, -0xFF, 0xFF, 0xFF, 0xE7, 0x8C, 0x6E, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0x2F, 0x4C, 0x60, 0xFF, -0xFF, 0xFF, 0xFF, 0xF8, 0x28, 0x77, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x56, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0xFF, +0xFF, 0xFF, 0xFF, 0xE7, 0x8C, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x61, 0x0B, 0x80, 0x00, +0x00, 0x00, 0x00, 0x05, 0x50, 0xEE, 0x70, 0x00, 0x00, 0x00, 0x00, 0x06, 0x40, 0xED, 0x80, 0x00, +0x00, 0x00, 0x00, 0x07, 0x30, 0xD0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0xCF, 0x80, 0x00, +0x00, 0x00, 0x00, 0x09, 0x10, 0xB2, 0x70, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0xB1, 0x80, 0x00, +0x00, 0x00, 0x00, 0x0A, 0xF0, 0x94, 0x70, 0x00, 0x00, 0x00, 0x00, 0x0B, 0xE0, 0x93, 0x80, 0x00, +0x00, 0x00, 0x00, 0x0C, 0xD9, 0xB0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x0D, 0xC0, 0x75, 0x80, 0x00, +0x00, 0x00, 0x00, 0x0E, 0xB9, 0x92, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA9, 0x92, 0x00, 0x00, +0x00, 0x00, 0x00, 0x10, 0x99, 0x74, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x11, 0x89, 0x74, 0x00, 0x00, +0x00, 0x00, 0x00, 0x12, 0x79, 0x56, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x59, 0x38, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x15, 0x49, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x39, 0x1A, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x17, 0x29, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x22, 0x37, 0x70, 0x00, 0x00, 0x00, 0x00, 0x19, 0x08, 0xFC, 0x00, 0x00, @@ -7874,17 +8008,17 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 0x00, 0x00, 0x00, 0x41, 0x84, 0x8D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0xA2, 0x80, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x6F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x84, 0x80, 0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0x51, 0x70, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0xB7, 0x00, 0x02, -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, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x04, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, -0xFF, 0xC7, 0xC0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x09, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, -0x0D, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x11, 0x2D, 0x30, 0x30, 0x00, 0x43, 0x44, 0x44, 0x54, 0x00, -0x43, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x0A, 0x43, 0x53, 0x54, -0x36, 0x43, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, -0x31, 0x2E, 0x30, 0x0A, 0x00, 0xE9, 0x2E, 0x02, 0x00, 0x86, 0x26, 0x8E, 0x00, 0x00, 0x00, 0x16, -0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x2D, 0x20, 0x4E, 0x55, 0x20, 0x28, 0x63, 0x65, -0x6E, 0x74, 0x72, 0x61, 0x6C, 0x29, +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, 0x01, 0x02, 0x01, 0x03, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xB9, +0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x0C, 0x2D, +0x30, 0x30, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x0A, +0x43, 0x53, 0x54, 0x36, 0x43, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, +0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xE9, 0x2E, 0x02, 0x00, 0x86, 0x26, 0x8E, 0x00, +0x00, 0x00, 0x16, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x2D, 0x20, 0x4E, 0x55, 0x20, +0x28, 0x63, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x29, /* America/Recife */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x42, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -7970,9 +8104,16 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 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, 0x3A, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x15, 0xFF, -0xFF, 0xFF, 0xFF, 0xD5, 0xFB, 0x81, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0x2F, 0x4C, 0x60, 0xFF, -0xFF, 0xFF, 0xFF, 0xF8, 0x28, 0x77, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x56, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0xFF, +0xFF, 0xFF, 0xFF, 0xD5, 0xFB, 0x81, 0x80, 0x00, 0x00, 0x00, 0x00, 0x04, 0x61, 0x0B, 0x80, 0x00, +0x00, 0x00, 0x00, 0x05, 0x50, 0xEE, 0x70, 0x00, 0x00, 0x00, 0x00, 0x06, 0x40, 0xED, 0x80, 0x00, +0x00, 0x00, 0x00, 0x07, 0x30, 0xD0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0xCF, 0x80, 0x00, +0x00, 0x00, 0x00, 0x09, 0x10, 0xB2, 0x70, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0xB1, 0x80, 0x00, +0x00, 0x00, 0x00, 0x0A, 0xF0, 0x94, 0x70, 0x00, 0x00, 0x00, 0x00, 0x0B, 0xE0, 0x93, 0x80, 0x00, +0x00, 0x00, 0x00, 0x0C, 0xD9, 0xB0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x0D, 0xC0, 0x75, 0x80, 0x00, +0x00, 0x00, 0x00, 0x0E, 0xB9, 0x92, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA9, 0x92, 0x00, 0x00, +0x00, 0x00, 0x00, 0x10, 0x99, 0x74, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x11, 0x89, 0x74, 0x00, 0x00, +0x00, 0x00, 0x00, 0x12, 0x79, 0x56, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x59, 0x38, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x15, 0x49, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x39, 0x1A, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x17, 0x29, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x22, 0x37, 0x70, 0x00, 0x00, 0x00, 0x00, 0x19, 0x08, 0xFC, 0x00, 0x00, @@ -8000,17 +8141,17 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 0x00, 0x00, 0x00, 0x41, 0x84, 0x8D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0xA2, 0x80, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x6F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x84, 0x80, 0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0x51, 0x70, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0xB7, 0x00, 0x02, -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, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x04, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, -0xFF, 0xC7, 0xC0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x09, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, -0x0D, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x11, 0x2D, 0x30, 0x30, 0x00, 0x43, 0x44, 0x44, 0x54, 0x00, -0x43, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x0A, 0x43, 0x53, 0x54, -0x36, 0x43, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, -0x31, 0x2E, 0x30, 0x0A, 0x00, 0xFB, 0x4E, 0x33, 0x00, 0x81, 0xF5, 0xDB, 0x00, 0x00, 0x00, 0x17, -0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x2D, 0x20, 0x4E, 0x55, 0x20, 0x28, 0x52, 0x65, -0x73, 0x6F, 0x6C, 0x75, 0x74, 0x65, 0x29, +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, 0x01, 0x02, 0x01, 0x03, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xB9, +0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x0C, 0x2D, +0x30, 0x30, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x0A, +0x43, 0x53, 0x54, 0x36, 0x43, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, +0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xFB, 0x4E, 0x33, 0x00, 0x81, 0xF5, 0xDB, 0x00, +0x00, 0x00, 0x17, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x2D, 0x20, 0x4E, 0x55, 0x20, +0x28, 0x52, 0x65, 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x65, 0x29, /* America/Rio_Branco */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x42, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -8968,9 +9109,8 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x50, 0x44, 0x54, 0x00, 0x50, 0x57, 0x54, 0x00, 0x50, 0x50, 0x54, 0x00, 0x0A, 0x50, 0x53, 0x54, 0x38, 0x50, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, -0x0A, 0x00, 0xBA, 0xF8, 0x95, 0x00, 0x60, 0x1A, 0xDD, 0x00, 0x00, 0x00, 0x21, 0x50, 0x61, 0x63, -0x69, 0x66, 0x69, 0x63, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x55, 0x53, 0x20, 0x2D, 0x20, 0x42, -0x61, 0x6A, 0x61, 0x20, 0x43, 0x61, 0x6C, 0x69, 0x66, 0x6F, 0x72, 0x6E, 0x69, 0x61, +0x0A, 0x00, 0xBA, 0xF8, 0x95, 0x00, 0x60, 0x1A, 0xDD, 0x00, 0x00, 0x00, 0x0F, 0x42, 0x61, 0x6A, +0x61, 0x20, 0x43, 0x61, 0x6C, 0x69, 0x66, 0x6F, 0x72, 0x6E, 0x69, 0x61, /* America/Toronto */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -9209,7 +9349,7 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 0xFF, 0xFF, 0xFF, 0xA1, 0xA2, 0xD2, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x89, 0x28, 0xB0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x61, 0x34, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0x2F, 0x76, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x28, 0xA2, 0x10, 0xFF, -0xFF, 0xFF, 0xFF, 0xFB, 0x1D, 0x5F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x72, 0x20, 0x00, +0xFF, 0xFF, 0xFF, 0xF8, 0xC5, 0x84, 0x90, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x72, 0x20, 0x00, 0x00, 0x00, 0x00, 0x14, 0x59, 0x55, 0x10, 0x00, 0x00, 0x00, 0x00, 0x15, 0x49, 0x54, 0x20, 0x00, 0x00, 0x00, 0x00, 0x16, 0x39, 0x37, 0x10, 0x00, 0x00, 0x00, 0x00, 0x17, 0x29, 0x36, 0x20, 0x00, 0x00, 0x00, 0x00, 0x18, 0x22, 0x53, 0x90, 0x00, 0x00, 0x00, 0x00, 0x19, 0x09, 0x18, 0x20, 0x00, @@ -9421,10 +9561,17 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 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, 0x3D, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x19, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0xFF, 0xFF, 0xFF, 0xFF, 0xBE, 0x2A, 0x18, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x89, 0x0C, 0x90, 0xFF, -0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x61, 0x18, 0x00, 0xFF, -0xFF, 0xFF, 0xFF, 0xF7, 0x2F, 0x5A, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x28, 0x85, 0xF0, 0x00, +0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x61, 0x18, 0x00, 0x00, +0x00, 0x00, 0x00, 0x04, 0x61, 0x19, 0x90, 0x00, 0x00, 0x00, 0x00, 0x05, 0x50, 0xFC, 0x80, 0x00, +0x00, 0x00, 0x00, 0x06, 0x40, 0xFB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x07, 0x30, 0xDE, 0x80, 0x00, +0x00, 0x00, 0x00, 0x08, 0x20, 0xDD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x09, 0x10, 0xC0, 0x80, 0x00, +0x00, 0x00, 0x00, 0x0A, 0x00, 0xBF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x0A, 0xF0, 0xA2, 0x80, 0x00, +0x00, 0x00, 0x00, 0x0B, 0xE0, 0xA1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x0C, 0xD9, 0xBF, 0x00, 0x00, +0x00, 0x00, 0x00, 0x0D, 0xC0, 0x83, 0x90, 0x00, 0x00, 0x00, 0x00, 0x0E, 0xB9, 0xA1, 0x00, 0x00, +0x00, 0x00, 0x00, 0x0F, 0xA9, 0xA0, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x99, 0x83, 0x00, 0x00, +0x00, 0x00, 0x00, 0x11, 0x89, 0x82, 0x10, 0x00, 0x00, 0x00, 0x00, 0x12, 0x79, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x64, 0x10, 0x00, 0x00, 0x00, 0x00, 0x14, 0x59, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x49, 0x46, 0x10, 0x00, 0x00, 0x00, 0x00, 0x16, 0x39, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x29, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x18, 0x22, 0x45, 0x80, 0x00, @@ -9452,18 +9599,18 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 0x00, 0x00, 0x00, 0x40, 0x6F, 0xCE, 0x90, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x9B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0xB0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x7D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x92, 0x90, 0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0x5F, 0x80, 0x00, -0x00, 0x00, 0x00, 0x45, 0xF3, 0xC5, 0x10, 0x03, 0x01, 0x02, 0x03, 0x04, 0x03, 0x05, 0x03, 0x05, -0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, -0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, -0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, -0x03, 0x05, 0x03, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x04, -0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, -0x01, 0x10, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x15, 0x2D, 0x30, 0x30, 0x00, 0x4D, 0x57, 0x54, 0x00, -0x4D, 0x50, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x44, 0x54, 0x00, 0x4D, 0x44, 0x54, -0x00, 0x0A, 0x4D, 0x53, 0x54, 0x37, 0x4D, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, -0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xE8, 0x9E, 0xC7, 0x00, 0x64, 0x2C, -0x88, 0x00, 0x00, 0x00, 0x17, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x2D, 0x20, -0x4E, 0x54, 0x20, 0x28, 0x63, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x29, +0x00, 0x00, 0x00, 0x45, 0xF3, 0xC5, 0x10, 0x03, 0x01, 0x02, 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, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x04, 0xFF, 0xFF, +0xAB, 0xA0, 0x01, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x0C, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x10, +0x2D, 0x30, 0x30, 0x00, 0x4D, 0x57, 0x54, 0x00, 0x4D, 0x50, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, +0x4D, 0x44, 0x54, 0x00, 0x0A, 0x4D, 0x53, 0x54, 0x37, 0x4D, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, +0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xE8, 0x9E, 0xC7, +0x00, 0x64, 0x2C, 0x88, 0x00, 0x00, 0x00, 0x17, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, +0x20, 0x2D, 0x20, 0x4E, 0x54, 0x20, 0x28, 0x63, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x29, /* Antarctica/Casey */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x41, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -11710,7 +11857,7 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 0xFF, 0xFF, 0xFF, 0x7E, 0x36, 0x55, 0xAA, 0xFF, 0xFF, 0xFF, 0xFF, 0x86, 0x83, 0x85, 0xA3, 0xFF, 0xFF, 0xFF, 0xFF, 0xBA, 0x67, 0x4E, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x0A, 0xE4, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xCA, 0xB3, 0xE5, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x91, 0x5F, 0x08, 0xFF, -0xFF, 0xFF, 0xFF, 0xD2, 0x48, 0x6D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x16, 0x91, 0xF5, 0x08, 0x01, +0xFF, 0xFF, 0xFF, 0xD2, 0x48, 0x6D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x16, 0x91, 0xEE, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x05, 0x07, 0x00, 0x00, 0x5F, 0x56, 0x00, 0x00, 0x00, 0x00, 0x61, 0x5D, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x00, 0x08, 0x00, 0x00, 0x67, 0x20, 0x01, 0x0C, 0x00, 0x00, 0x67, 0x20, 0x00, 0x0C, 0x00, 0x00, 0x69, 0x78, 0x00, 0x12, 0x00, 0x00, 0x7E, 0x90, 0x00, @@ -12544,7 +12691,7 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 0xFF, 0xFF, 0xFF, 0x7E, 0x36, 0x53, 0xA3, 0xFF, 0xFF, 0xFF, 0xFF, 0x86, 0x83, 0x85, 0xA3, 0xFF, 0xFF, 0xFF, 0xFF, 0xBA, 0x67, 0x4E, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x0A, 0xE4, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xCA, 0xB3, 0xE5, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x91, 0x5F, 0x08, 0xFF, -0xFF, 0xFF, 0xFF, 0xD2, 0x48, 0x6D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x16, 0x91, 0xF5, 0x08, 0x01, +0xFF, 0xFF, 0xFF, 0xD2, 0x48, 0x6D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x16, 0x91, 0xEE, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x05, 0x07, 0x00, 0x00, 0x61, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x61, 0x5D, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x00, 0x08, 0x00, 0x00, 0x67, 0x20, 0x01, 0x0C, 0x00, 0x00, 0x67, 0x20, 0x00, 0x0C, 0x00, 0x00, 0x69, 0x78, 0x00, 0x12, 0x00, 0x00, 0x7E, 0x90, 0x00, @@ -15730,7 +15877,7 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 0xFF, 0xFF, 0xFF, 0xA1, 0xA2, 0xD2, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x89, 0x28, 0xB0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x61, 0x34, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0x2F, 0x76, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x28, 0xA2, 0x10, 0xFF, -0xFF, 0xFF, 0xFF, 0xFB, 0x1D, 0x5F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x72, 0x20, 0x00, +0xFF, 0xFF, 0xFF, 0xF8, 0xC5, 0x84, 0x90, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x72, 0x20, 0x00, 0x00, 0x00, 0x00, 0x14, 0x59, 0x55, 0x10, 0x00, 0x00, 0x00, 0x00, 0x15, 0x49, 0x54, 0x20, 0x00, 0x00, 0x00, 0x00, 0x16, 0x39, 0x37, 0x10, 0x00, 0x00, 0x00, 0x00, 0x17, 0x29, 0x36, 0x20, 0x00, 0x00, 0x00, 0x00, 0x18, 0x22, 0x53, 0x90, 0x00, 0x00, 0x00, 0x00, 0x19, 0x09, 0x18, 0x20, 0x00, @@ -22607,7 +22754,7 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 0xFF, 0xFF, 0xFF, 0x7E, 0x36, 0x53, 0xA3, 0xFF, 0xFF, 0xFF, 0xFF, 0x86, 0x83, 0x85, 0xA3, 0xFF, 0xFF, 0xFF, 0xFF, 0xBA, 0x67, 0x4E, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x0A, 0xE4, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xCA, 0xB3, 0xE5, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x91, 0x5F, 0x08, 0xFF, -0xFF, 0xFF, 0xFF, 0xD2, 0x48, 0x6D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x16, 0x91, 0xF5, 0x08, 0x01, +0xFF, 0xFF, 0xFF, 0xD2, 0x48, 0x6D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x16, 0x91, 0xEE, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x05, 0x07, 0x00, 0x00, 0x61, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x61, 0x5D, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x00, 0x08, 0x00, 0x00, 0x67, 0x20, 0x01, 0x0C, 0x00, 0x00, 0x67, 0x20, 0x00, 0x0C, 0x00, 0x00, 0x69, 0x78, 0x00, 0x12, 0x00, 0x00, 0x7E, 0x90, 0x00, @@ -23543,7 +23690,7 @@ const unsigned char timelib_timezone_db_data_builtin[343096] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; #else -const timelib_tzdb_index_entry timezonedb_idx_builtin[596] = { +const timelib_tzdb_index_entry timezonedb_idx_builtin[597] = { { (char*) "Africa/Abidjan" , 0x000000 }, { (char*) "Africa/Accra" , 0x0000A0 }, { (char*) "Africa/Addis_Ababa" , 0x0004D0 }, @@ -23622,528 +23769,529 @@ const timelib_tzdb_index_entry timezonedb_idx_builtin[596] = { { (char*) "America/Atka" , 0x00B430 }, { (char*) "America/Bahia" , 0x00BD70 }, { (char*) "America/Bahia_Banderas" , 0x00C173 }, - { (char*) "America/Barbados" , 0x00C61F }, - { (char*) "America/Belem" , 0x00C7DF }, - { (char*) "America/Belize" , 0x00CA2F }, - { (char*) "America/Blanc-Sablon" , 0x00D089 }, - { (char*) "America/Boa_Vista" , 0x00D1DB }, - { (char*) "America/Bogota" , 0x00D458 }, - { (char*) "America/Boise" , 0x00D54C }, - { (char*) "America/Buenos_Aires" , 0x00DEE2 }, - { (char*) "America/Cambridge_Bay" , 0x00E314 }, - { (char*) "America/Campo_Grande" , 0x00EB58 }, - { (char*) "America/Cancun" , 0x00F10C }, - { (char*) "America/Caracas" , 0x00F47E }, - { (char*) "America/Catamarca" , 0x00F584 }, - { (char*) "America/Cayenne" , 0x00F9B6 }, - { (char*) "America/Cayman" , 0x00FA7A }, - { (char*) "America/Chicago" , 0x00FB3C }, - { (char*) "America/Chihuahua" , 0x010964 }, - { (char*) "America/Coral_Harbour" , 0x010DE4 }, - { (char*) "America/Cordoba" , 0x010EA6 }, - { (char*) "America/Costa_Rica" , 0x0112D8 }, - { (char*) "America/Creston" , 0x011420 }, - { (char*) "America/Cuiaba" , 0x01150E }, - { (char*) "America/Curacao" , 0x011A9F }, - { (char*) "America/Danmarkshavn" , 0x011B65 }, - { (char*) "America/Dawson" , 0x011E45 }, - { (char*) "America/Dawson_Creek" , 0x0124B1 }, - { (char*) "America/Denver" , 0x0128F7 }, - { (char*) "America/Detroit" , 0x0132B4 }, - { (char*) "America/Dominica" , 0x013B8F }, - { (char*) "America/Edmonton" , 0x013C2F }, - { (char*) "America/Eirunepe" , 0x014574 }, - { (char*) "America/El_Salvador" , 0x014811 }, - { (char*) "America/Ensenada" , 0x0148FD }, - { (char*) "America/Fort_Nelson" , 0x01524F }, - { (char*) "America/Fort_Wayne" , 0x015B2F }, - { (char*) "America/Fortaleza" , 0x0161CD }, - { (char*) "America/Glace_Bay" , 0x0164BD }, - { (char*) "America/Godthab" , 0x016D74 }, - { (char*) "America/Goose_Bay" , 0x0174C8 }, - { (char*) "America/Grand_Turk" , 0x01817E }, - { (char*) "America/Grenada" , 0x0188B4 }, - { (char*) "America/Guadeloupe" , 0x018954 }, - { (char*) "America/Guatemala" , 0x0189F4 }, - { (char*) "America/Guayaquil" , 0x018B18 }, - { (char*) "America/Guyana" , 0x018C1E }, - { (char*) "America/Halifax" , 0x018D22 }, - { (char*) "America/Havana" , 0x019AAC }, - { (char*) "America/Hermosillo" , 0x01A428 }, - { (char*) "America/Indiana/Indianapolis" , 0x01A61B }, - { (char*) "America/Indiana/Knox" , 0x01ACD2 }, - { (char*) "America/Indiana/Marengo" , 0x01B67F }, - { (char*) "America/Indiana/Petersburg" , 0x01BD6C }, - { (char*) "America/Indiana/Tell_City" , 0x01C50B }, - { (char*) "America/Indiana/Vevay" , 0x01CBCF }, - { (char*) "America/Indiana/Vincennes" , 0x01D18B }, - { (char*) "America/Indiana/Winamac" , 0x01D861 }, - { (char*) "America/Indianapolis" , 0x01DF85 }, - { (char*) "America/Inuvik" , 0x01E623 }, - { (char*) "America/Iqaluit" , 0x01EDA9 }, - { (char*) "America/Jamaica" , 0x01F5C3 }, - { (char*) "America/Jujuy" , 0x01F7B1 }, - { (char*) "America/Juneau" , 0x01FBC7 }, - { (char*) "America/Kentucky/Louisville" , 0x020518 }, - { (char*) "America/Kentucky/Monticello" , 0x021026 }, - { (char*) "America/Knox_IN" , 0x021986 }, - { (char*) "America/Kralendijk" , 0x02231E }, - { (char*) "America/La_Paz" , 0x022420 }, - { (char*) "America/Lima" , 0x022506 }, - { (char*) "America/Los_Angeles" , 0x02269A }, - { (char*) "America/Louisville" , 0x0231D1 }, - { (char*) "America/Lower_Princes" , 0x023CC1 }, - { (char*) "America/Maceio" , 0x023DC3 }, - { (char*) "America/Managua" , 0x0240B9 }, - { (char*) "America/Manaus" , 0x024273 }, - { (char*) "America/Marigot" , 0x0244DC }, - { (char*) "America/Martinique" , 0x0245DE }, - { (char*) "America/Matamoros" , 0x0246D2 }, - { (char*) "America/Mazatlan" , 0x024CA6 }, - { (char*) "America/Mendoza" , 0x02514F }, - { (char*) "America/Menominee" , 0x025581 }, - { (char*) "America/Merida" , 0x025E8E }, - { (char*) "America/Metlakatla" , 0x0262A6 }, - { (char*) "America/Mexico_City" , 0x026858 }, - { (char*) "America/Miquelon" , 0x026D36 }, - { (char*) "America/Moncton" , 0x0273B6 }, - { (char*) "America/Monterrey" , 0x02802C }, - { (char*) "America/Montevideo" , 0x028451 }, - { (char*) "America/Montreal" , 0x028A35 }, - { (char*) "America/Montserrat" , 0x0297E7 }, - { (char*) "America/Nassau" , 0x029887 }, - { (char*) "America/New_York" , 0x02A1E7 }, - { (char*) "America/Nipigon" , 0x02AFE7 }, - { (char*) "America/Nome" , 0x02BD99 }, - { (char*) "America/Noronha" , 0x02C6F1 }, - { (char*) "America/North_Dakota/Beulah" , 0x02C9CB }, - { (char*) "America/North_Dakota/Center" , 0x02D348 }, - { (char*) "America/North_Dakota/New_Salem" , 0x02DCC5 }, - { (char*) "America/Nuuk" , 0x02E648 }, - { (char*) "America/Ojinaga" , 0x02EDB2 }, - { (char*) "America/Panama" , 0x02F234 }, - { (char*) "America/Pangnirtung" , 0x02F2F6 }, - { (char*) "America/Paramaribo" , 0x02FB4A }, - { (char*) "America/Phoenix" , 0x02FC4E }, - { (char*) "America/Port-au-Prince" , 0x02FDDF }, - { (char*) "America/Port_of_Spain" , 0x030385 }, - { (char*) "America/Porto_Acre" , 0x030425 }, - { (char*) "America/Porto_Velho" , 0x030697 }, - { (char*) "America/Puerto_Rico" , 0x0308DD }, - { (char*) "America/Punta_Arenas" , 0x0309DF }, - { (char*) "America/Rainy_River" , 0x03116D }, - { (char*) "America/Rankin_Inlet" , 0x031CAD }, - { (char*) "America/Recife" , 0x032433 }, - { (char*) "America/Regina" , 0x032707 }, - { (char*) "America/Resolute" , 0x032AFC }, - { (char*) "America/Rio_Branco" , 0x033283 }, - { (char*) "America/Rosario" , 0x0334F9 }, - { (char*) "America/Santa_Isabel" , 0x03392B }, - { (char*) "America/Santarem" , 0x03427D }, - { (char*) "America/Santiago" , 0x0344E0 }, - { (char*) "America/Santo_Domingo" , 0x034ED1 }, - { (char*) "America/Sao_Paulo" , 0x0350A7 }, - { (char*) "America/Scoresbysund" , 0x03567F }, - { (char*) "America/Shiprock" , 0x035E16 }, - { (char*) "America/Sitka" , 0x0367BE }, - { (char*) "America/St_Barthelemy" , 0x0370F6 }, - { (char*) "America/St_Johns" , 0x0371F8 }, - { (char*) "America/St_Kitts" , 0x03806D }, - { (char*) "America/St_Lucia" , 0x03810D }, - { (char*) "America/St_Thomas" , 0x0381CF }, - { (char*) "America/St_Vincent" , 0x03826F }, - { (char*) "America/Swift_Current" , 0x038331 }, - { (char*) "America/Tegucigalpa" , 0x03857F }, - { (char*) "America/Thule" , 0x038687 }, - { (char*) "America/Thunder_Bay" , 0x038C7F }, - { (char*) "America/Tijuana" , 0x039A31 }, - { (char*) "America/Toronto" , 0x03A3A4 }, - { (char*) "America/Tortola" , 0x03B173 }, - { (char*) "America/Vancouver" , 0x03B213 }, - { (char*) "America/Virgin" , 0x03BD84 }, - { (char*) "America/Whitehorse" , 0x03BE86 }, - { (char*) "America/Winnipeg" , 0x03C4F2 }, - { (char*) "America/Yakutat" , 0x03D04F }, - { (char*) "America/Yellowknife" , 0x03D96C }, - { (char*) "Antarctica/Casey" , 0x03E13D }, - { (char*) "Antarctica/Davis" , 0x03E2C0 }, - { (char*) "Antarctica/DumontDUrville" , 0x03E3EC }, - { (char*) "Antarctica/Macquarie" , 0x03E4BC }, - { (char*) "Antarctica/Mawson" , 0x03EDAC }, - { (char*) "Antarctica/McMurdo" , 0x03EE77 }, - { (char*) "Antarctica/Palmer" , 0x03F672 }, - { (char*) "Antarctica/Rothera" , 0x03FC00 }, - { (char*) "Antarctica/South_Pole" , 0x03FCA9 }, - { (char*) "Antarctica/Syowa" , 0x04063A }, - { (char*) "Antarctica/Troll" , 0x0406E2 }, - { (char*) "Antarctica/Vostok" , 0x040B6F }, - { (char*) "Arctic/Longyearbyen" , 0x040C18 }, - { (char*) "Asia/Aden" , 0x04151E }, - { (char*) "Asia/Almaty" , 0x0415C1 }, - { (char*) "Asia/Amman" , 0x0419BB }, - { (char*) "Asia/Anadyr" , 0x041F60 }, - { (char*) "Asia/Aqtau" , 0x042415 }, - { (char*) "Asia/Aqtobe" , 0x0427FF }, - { (char*) "Asia/Ashgabat" , 0x042BFD }, - { (char*) "Asia/Ashkhabad" , 0x042E66 }, - { (char*) "Asia/Atyrau" , 0x0430CF }, - { (char*) "Asia/Baghdad" , 0x0434C1 }, - { (char*) "Asia/Bahrain" , 0x043896 }, - { (char*) "Asia/Baku" , 0x043981 }, - { (char*) "Asia/Bangkok" , 0x043E4A }, - { (char*) "Asia/Barnaul" , 0x043F0F }, - { (char*) "Asia/Beirut" , 0x0443E0 }, - { (char*) "Asia/Bishkek" , 0x044C56 }, - { (char*) "Asia/Brunei" , 0x04502B }, - { (char*) "Asia/Calcutta" , 0x0450F4 }, - { (char*) "Asia/Chita" , 0x04521D }, - { (char*) "Asia/Choibalsan" , 0x0456F4 }, - { (char*) "Asia/Chongqing" , 0x045AB9 }, - { (char*) "Asia/Chungking" , 0x045CF6 }, - { (char*) "Asia/Colombo" , 0x045F33 }, - { (char*) "Asia/Dacca" , 0x0460A5 }, - { (char*) "Asia/Damascus" , 0x0461F4 }, - { (char*) "Asia/Dhaka" , 0x046951 }, - { (char*) "Asia/Dili" , 0x046AA0 }, - { (char*) "Asia/Dubai" , 0x046B81 }, - { (char*) "Asia/Dushanbe" , 0x046C24 }, - { (char*) "Asia/Famagusta" , 0x046E71 }, - { (char*) "Asia/Gaza" , 0x047678 }, - { (char*) "Asia/Harbin" , 0x048004 }, - { (char*) "Asia/Hebron" , 0x048241 }, - { (char*) "Asia/Ho_Chi_Minh" , 0x048BE8 }, - { (char*) "Asia/Hong_Kong" , 0x048D45 }, - { (char*) "Asia/Hovd" , 0x049222 }, - { (char*) "Asia/Irkutsk" , 0x0495C6 }, - { (char*) "Asia/Istanbul" , 0x049AB9 }, - { (char*) "Asia/Jakarta" , 0x04A252 }, - { (char*) "Asia/Jayapura" , 0x04A3EA }, - { (char*) "Asia/Jerusalem" , 0x04A509 }, - { (char*) "Asia/Kabul" , 0x04AE69 }, - { (char*) "Asia/Kamchatka" , 0x04AF37 }, - { (char*) "Asia/Karachi" , 0x04B3D5 }, - { (char*) "Asia/Kashgar" , 0x04B55C }, - { (char*) "Asia/Kathmandu" , 0x04B5FF }, - { (char*) "Asia/Katmandu" , 0x04B6D1 }, - { (char*) "Asia/Khandyga" , 0x04B7A3 }, - { (char*) "Asia/Kolkata" , 0x04BCB6 }, - { (char*) "Asia/Krasnoyarsk" , 0x04BDDF }, - { (char*) "Asia/Kuala_Lumpur" , 0x04C2AD }, - { (char*) "Asia/Kuching" , 0x04C43E }, - { (char*) "Asia/Kuwait" , 0x04C62D }, - { (char*) "Asia/Macao" , 0x04C6D0 }, - { (char*) "Asia/Macau" , 0x04CBA7 }, - { (char*) "Asia/Magadan" , 0x04D07E }, - { (char*) "Asia/Makassar" , 0x04D552 }, - { (char*) "Asia/Manila" , 0x04D6A5 }, - { (char*) "Asia/Muscat" , 0x04D7F9 }, - { (char*) "Asia/Nicosia" , 0x04D89C }, - { (char*) "Asia/Novokuznetsk" , 0x04E08D }, - { (char*) "Asia/Novosibirsk" , 0x04E529 }, - { (char*) "Asia/Omsk" , 0x04EA00 }, - { (char*) "Asia/Oral" , 0x04EEC2 }, - { (char*) "Asia/Phnom_Penh" , 0x04F2BC }, - { (char*) "Asia/Pontianak" , 0x04F3E1 }, - { (char*) "Asia/Pyongyang" , 0x04F564 }, - { (char*) "Asia/Qatar" , 0x04F65D }, - { (char*) "Asia/Qostanay" , 0x04F722 }, - { (char*) "Asia/Qyzylorda" , 0x04FB2D }, - { (char*) "Asia/Rangoon" , 0x04FF49 }, - { (char*) "Asia/Riyadh" , 0x050053 }, - { (char*) "Asia/Saigon" , 0x0500F6 }, - { (char*) "Asia/Sakhalin" , 0x050253 }, - { (char*) "Asia/Samarkand" , 0x05071B }, - { (char*) "Asia/Seoul" , 0x05096B }, - { (char*) "Asia/Shanghai" , 0x050BE0 }, - { (char*) "Asia/Singapore" , 0x050E29 }, - { (char*) "Asia/Srednekolymsk" , 0x050FA6 }, - { (char*) "Asia/Taipei" , 0x05147E }, - { (char*) "Asia/Tashkent" , 0x051783 }, - { (char*) "Asia/Tbilisi" , 0x0519E1 }, - { (char*) "Asia/Tehran" , 0x051DEA }, - { (char*) "Asia/Tel_Aviv" , 0x0522D6 }, - { (char*) "Asia/Thimbu" , 0x052C36 }, - { (char*) "Asia/Thimphu" , 0x052CFF }, - { (char*) "Asia/Tokyo" , 0x052DC8 }, - { (char*) "Asia/Tomsk" , 0x052F09 }, - { (char*) "Asia/Ujung_Pandang" , 0x0533DA }, - { (char*) "Asia/Ulaanbaatar" , 0x0534E4 }, - { (char*) "Asia/Ulan_Bator" , 0x053872 }, - { (char*) "Asia/Urumqi" , 0x053BEB }, - { (char*) "Asia/Ust-Nera" , 0x053C9B }, - { (char*) "Asia/Vientiane" , 0x054191 }, - { (char*) "Asia/Vladivostok" , 0x0542D2 }, - { (char*) "Asia/Yakutsk" , 0x05479B }, - { (char*) "Asia/Yangon" , 0x054C63 }, - { (char*) "Asia/Yekaterinburg" , 0x054D6D }, - { (char*) "Asia/Yerevan" , 0x055254 }, - { (char*) "Atlantic/Azores" , 0x0556D1 }, - { (char*) "Atlantic/Bermuda" , 0x05648D }, - { (char*) "Atlantic/Canary" , 0x056DF5 }, - { (char*) "Atlantic/Cape_Verde" , 0x057578 }, - { (char*) "Atlantic/Faeroe" , 0x057684 }, - { (char*) "Atlantic/Faroe" , 0x057DA7 }, - { (char*) "Atlantic/Jan_Mayen" , 0x0584CA }, - { (char*) "Atlantic/Madeira" , 0x058DD0 }, - { (char*) "Atlantic/Reykjavik" , 0x059B9A }, - { (char*) "Atlantic/South_Georgia" , 0x05A030 }, - { (char*) "Atlantic/St_Helena" , 0x05A0D2 }, - { (char*) "Atlantic/Stanley" , 0x05A194 }, - { (char*) "Australia/ACT" , 0x05A650 }, - { (char*) "Australia/Adelaide" , 0x05AEEA }, - { (char*) "Australia/Brisbane" , 0x05B7A5 }, - { (char*) "Australia/Broken_Hill" , 0x05B96B }, - { (char*) "Australia/Canberra" , 0x05C248 }, - { (char*) "Australia/Currie" , 0x05CAE2 }, - { (char*) "Australia/Darwin" , 0x05D424 }, - { (char*) "Australia/Eucla" , 0x05D587 }, - { (char*) "Australia/Hobart" , 0x05D774 }, - { (char*) "Australia/LHI" , 0x05E0BE }, - { (char*) "Australia/Lindeman" , 0x05E800 }, - { (char*) "Australia/Lord_Howe" , 0x05EA06 }, - { (char*) "Australia/Melbourne" , 0x05F158 }, - { (char*) "Australia/North" , 0x05F9FA }, - { (char*) "Australia/NSW" , 0x05FB4B }, - { (char*) "Australia/Perth" , 0x0603E5 }, - { (char*) "Australia/Queensland" , 0x0605CD }, - { (char*) "Australia/South" , 0x06077C }, - { (char*) "Australia/Sydney" , 0x061028 }, - { (char*) "Australia/Tasmania" , 0x0618DE }, - { (char*) "Australia/Victoria" , 0x062220 }, - { (char*) "Australia/West" , 0x062ABA }, - { (char*) "Australia/Yancowinna" , 0x062C84 }, - { (char*) "Brazil/Acre" , 0x063545 }, - { (char*) "Brazil/DeNoronha" , 0x0637B7 }, - { (char*) "Brazil/East" , 0x063A81 }, - { (char*) "Brazil/West" , 0x064023 }, - { (char*) "Canada/Atlantic" , 0x06427D }, - { (char*) "Canada/Central" , 0x064FE9 }, - { (char*) "Canada/Eastern" , 0x065B29 }, - { (char*) "Canada/Mountain" , 0x0668DB }, - { (char*) "Canada/Newfoundland" , 0x067203 }, - { (char*) "Canada/Pacific" , 0x068056 }, - { (char*) "Canada/Saskatchewan" , 0x068BAE }, - { (char*) "Canada/Yukon" , 0x068F8E }, - { (char*) "CET" , 0x0695E8 }, - { (char*) "Chile/Continental" , 0x069E22 }, - { (char*) "Chile/EasterIsland" , 0x06A801 }, - { (char*) "CST6CDT" , 0x06B0B8 }, - { (char*) "Cuba" , 0x06B9CA }, - { (char*) "EET" , 0x06C346 }, - { (char*) "Egypt" , 0x06CAC6 }, - { (char*) "Eire" , 0x06D275 }, - { (char*) "EST" , 0x06E025 }, - { (char*) "EST5EDT" , 0x06E0A3 }, - { (char*) "Etc/GMT" , 0x06E9B5 }, - { (char*) "Etc/GMT+0" , 0x06EA33 }, - { (char*) "Etc/GMT+1" , 0x06EAB1 }, - { (char*) "Etc/GMT+10" , 0x06EB31 }, - { (char*) "Etc/GMT+11" , 0x06EBB2 }, - { (char*) "Etc/GMT+12" , 0x06EC33 }, - { (char*) "Etc/GMT+2" , 0x06ECB4 }, - { (char*) "Etc/GMT+3" , 0x06ED34 }, - { (char*) "Etc/GMT+4" , 0x06EDB4 }, - { (char*) "Etc/GMT+5" , 0x06EE34 }, - { (char*) "Etc/GMT+6" , 0x06EEB4 }, - { (char*) "Etc/GMT+7" , 0x06EF34 }, - { (char*) "Etc/GMT+8" , 0x06EFB4 }, - { (char*) "Etc/GMT+9" , 0x06F034 }, - { (char*) "Etc/GMT-0" , 0x06F0B4 }, - { (char*) "Etc/GMT-1" , 0x06F132 }, - { (char*) "Etc/GMT-10" , 0x06F1B3 }, - { (char*) "Etc/GMT-11" , 0x06F235 }, - { (char*) "Etc/GMT-12" , 0x06F2B7 }, - { (char*) "Etc/GMT-13" , 0x06F339 }, - { (char*) "Etc/GMT-14" , 0x06F3BB }, - { (char*) "Etc/GMT-2" , 0x06F43D }, - { (char*) "Etc/GMT-3" , 0x06F4BE }, - { (char*) "Etc/GMT-4" , 0x06F53F }, - { (char*) "Etc/GMT-5" , 0x06F5C0 }, - { (char*) "Etc/GMT-6" , 0x06F641 }, - { (char*) "Etc/GMT-7" , 0x06F6C2 }, - { (char*) "Etc/GMT-8" , 0x06F743 }, - { (char*) "Etc/GMT-9" , 0x06F7C4 }, - { (char*) "Etc/GMT0" , 0x06F845 }, - { (char*) "Etc/Greenwich" , 0x06F8C3 }, - { (char*) "Etc/UCT" , 0x06F941 }, - { (char*) "Etc/Universal" , 0x06F9BF }, - { (char*) "Etc/UTC" , 0x06FA3D }, - { (char*) "Etc/Zulu" , 0x06FABB }, - { (char*) "Europe/Amsterdam" , 0x06FB39 }, - { (char*) "Europe/Andorra" , 0x0706A3 }, - { (char*) "Europe/Astrakhan" , 0x070D7D }, - { (char*) "Europe/Athens" , 0x07121A }, - { (char*) "Europe/Belfast" , 0x071AFC }, - { (char*) "Europe/Belgrade" , 0x072958 }, - { (char*) "Europe/Berlin" , 0x0730E4 }, - { (char*) "Europe/Bratislava" , 0x0739FE }, - { (char*) "Europe/Brussels" , 0x074307 }, - { (char*) "Europe/Bucharest" , 0x074E88 }, - { (char*) "Europe/Budapest" , 0x07571C }, - { (char*) "Europe/Busingen" , 0x076068 }, - { (char*) "Europe/Chisinau" , 0x0767F1 }, - { (char*) "Europe/Copenhagen" , 0x077153 }, - { (char*) "Europe/Dublin" , 0x0779B8 }, - { (char*) "Europe/Gibraltar" , 0x078768 }, - { (char*) "Europe/Guernsey" , 0x079370 }, - { (char*) "Europe/Helsinki" , 0x07A210 }, - { (char*) "Europe/Isle_of_Man" , 0x07A988 }, - { (char*) "Europe/Istanbul" , 0x07B7D4 }, - { (char*) "Europe/Jersey" , 0x07BF6D }, - { (char*) "Europe/Kaliningrad" , 0x07CE0D }, - { (char*) "Europe/Kiev" , 0x07D402 }, - { (char*) "Europe/Kirov" , 0x07DC56 }, - { (char*) "Europe/Kyiv" , 0x07E0E3 }, - { (char*) "Europe/Lisbon" , 0x07E94B }, - { (char*) "Europe/Ljubljana" , 0x07F713 }, - { (char*) "Europe/London" , 0x07FE9F }, - { (char*) "Europe/Luxembourg" , 0x080CFB }, - { (char*) "Europe/Madrid" , 0x081889 }, - { (char*) "Europe/Malta" , 0x0822DB }, - { (char*) "Europe/Mariehamn" , 0x082D23 }, - { (char*) "Europe/Minsk" , 0x08349B }, - { (char*) "Europe/Monaco" , 0x0839C2 }, - { (char*) "Europe/Moscow" , 0x08454E }, - { (char*) "Europe/Nicosia" , 0x084B6D }, - { (char*) "Europe/Oslo" , 0x08534B }, - { (char*) "Europe/Paris" , 0x085C0B }, - { (char*) "Europe/Podgorica" , 0x0867A9 }, - { (char*) "Europe/Prague" , 0x086F35 }, - { (char*) "Europe/Riga" , 0x08783E }, - { (char*) "Europe/Rome" , 0x0880E0 }, - { (char*) "Europe/Samara" , 0x088B3D }, - { (char*) "Europe/San_Marino" , 0x089013 }, - { (char*) "Europe/Sarajevo" , 0x089A70 }, - { (char*) "Europe/Saratov" , 0x08A1FC }, - { (char*) "Europe/Simferopol" , 0x08A6A9 }, - { (char*) "Europe/Skopje" , 0x08AC78 }, - { (char*) "Europe/Sofia" , 0x08B404 }, - { (char*) "Europe/Stockholm" , 0x08BC2D }, - { (char*) "Europe/Tallinn" , 0x08C3AE }, - { (char*) "Europe/Tirane" , 0x08CC1E }, - { (char*) "Europe/Tiraspol" , 0x08D44E }, - { (char*) "Europe/Ulyanovsk" , 0x08DDB0 }, - { (char*) "Europe/Uzhgorod" , 0x08E2B3 }, - { (char*) "Europe/Vaduz" , 0x08EB07 }, - { (char*) "Europe/Vatican" , 0x08F273 }, - { (char*) "Europe/Vienna" , 0x08FCD0 }, - { (char*) "Europe/Vilnius" , 0x090574 }, - { (char*) "Europe/Volgograd" , 0x090DF2 }, - { (char*) "Europe/Warsaw" , 0x09128F }, - { (char*) "Europe/Zagreb" , 0x091CF9 }, - { (char*) "Europe/Zaporozhye" , 0x092485 }, - { (char*) "Europe/Zurich" , 0x092CD9 }, - { (char*) "Factory" , 0x09345A }, - { (char*) "GB" , 0x0934DA }, - { (char*) "GB-Eire" , 0x094336 }, - { (char*) "GMT" , 0x095192 }, - { (char*) "GMT+0" , 0x095210 }, - { (char*) "GMT-0" , 0x09528E }, - { (char*) "GMT0" , 0x09530C }, - { (char*) "Greenwich" , 0x09538A }, - { (char*) "Hongkong" , 0x095408 }, - { (char*) "HST" , 0x0958E5 }, - { (char*) "Iceland" , 0x095964 }, - { (char*) "Indian/Antananarivo" , 0x095A04 }, - { (char*) "Indian/Chagos" , 0x095AEB }, - { (char*) "Indian/Christmas" , 0x095BB0 }, - { (char*) "Indian/Cocos" , 0x095C53 }, - { (char*) "Indian/Comoro" , 0x095CFF }, - { (char*) "Indian/Kerguelen" , 0x095DA0 }, - { (char*) "Indian/Mahe" , 0x095E43 }, - { (char*) "Indian/Maldives" , 0x095EE6 }, - { (char*) "Indian/Mauritius" , 0x095FAB }, - { (char*) "Indian/Mayotte" , 0x09609A }, - { (char*) "Indian/Reunion" , 0x09613B }, - { (char*) "Iran" , 0x0961DE }, - { (char*) "Israel" , 0x0966CA }, - { (char*) "Jamaica" , 0x09702A }, - { (char*) "Japan" , 0x097218 }, - { (char*) "Kwajalein" , 0x097359 }, - { (char*) "Libya" , 0x097493 }, - { (char*) "MET" , 0x097710 }, - { (char*) "Mexico/BajaNorte" , 0x097F4A }, - { (char*) "Mexico/BajaSur" , 0x09889C }, - { (char*) "Mexico/General" , 0x098D10 }, - { (char*) "MST" , 0x0991E2 }, - { (char*) "MST7MDT" , 0x099260 }, - { (char*) "Navajo" , 0x099B72 }, - { (char*) "NZ" , 0x09A51A }, - { (char*) "NZ-CHAT" , 0x09AEAB }, - { (char*) "Pacific/Apia" , 0x09B6BD }, - { (char*) "Pacific/Auckland" , 0x09B91F }, - { (char*) "Pacific/Bougainville" , 0x09C2C8 }, - { (char*) "Pacific/Chatham" , 0x09C3DE }, - { (char*) "Pacific/Chuuk" , 0x09CBFF }, - { (char*) "Pacific/Easter" , 0x09CD19 }, - { (char*) "Pacific/Efate" , 0x09D5DD }, - { (char*) "Pacific/Enderbury" , 0x09D7F5 }, - { (char*) "Pacific/Fakaofo" , 0x09D8DD }, - { (char*) "Pacific/Fiji" , 0x09D9A3 }, - { (char*) "Pacific/Funafuti" , 0x09DBE3 }, - { (char*) "Pacific/Galapagos" , 0x09DC87 }, - { (char*) "Pacific/Gambier" , 0x09DD84 }, - { (char*) "Pacific/Guadalcanal" , 0x09DE35 }, - { (char*) "Pacific/Guam" , 0x09DED9 }, - { (char*) "Pacific/Honolulu" , 0x09E0D3 }, - { (char*) "Pacific/Johnston" , 0x09E22E }, - { (char*) "Pacific/Kanton" , 0x09E383 }, - { (char*) "Pacific/Kiritimati" , 0x09E47A }, - { (char*) "Pacific/Kosrae" , 0x09E572 }, - { (char*) "Pacific/Kwajalein" , 0x09E6D5 }, - { (char*) "Pacific/Majuro" , 0x09E818 }, - { (char*) "Pacific/Marquesas" , 0x09E969 }, - { (char*) "Pacific/Midway" , 0x09EA25 }, - { (char*) "Pacific/Nauru" , 0x09EB18 }, - { (char*) "Pacific/Niue" , 0x09EC12 }, - { (char*) "Pacific/Norfolk" , 0x09ECDB }, - { (char*) "Pacific/Noumea" , 0x09F049 }, - { (char*) "Pacific/Pago_Pago" , 0x09F177 }, - { (char*) "Pacific/Palau" , 0x09F232 }, - { (char*) "Pacific/Pitcairn" , 0x09F2E4 }, - { (char*) "Pacific/Pohnpei" , 0x09F3AC }, - { (char*) "Pacific/Ponape" , 0x09F4E7 }, - { (char*) "Pacific/Port_Moresby" , 0x09F58B }, - { (char*) "Pacific/Rarotonga" , 0x09F660 }, - { (char*) "Pacific/Saipan" , 0x09F8B9 }, - { (char*) "Pacific/Samoa" , 0x09FAA5 }, - { (char*) "Pacific/Tahiti" , 0x09FB60 }, - { (char*) "Pacific/Tarawa" , 0x09FC12 }, - { (char*) "Pacific/Tongatapu" , 0x09FCC5 }, - { (char*) "Pacific/Truk" , 0x09FE37 }, - { (char*) "Pacific/Wake" , 0x09FEEF }, - { (char*) "Pacific/Wallis" , 0x09FF9E }, - { (char*) "Pacific/Yap" , 0x0A0042 }, - { (char*) "Poland" , 0x0A00FA }, - { (char*) "Portugal" , 0x0A0B64 }, - { (char*) "PRC" , 0x0A1919 }, - { (char*) "PST8PDT" , 0x0A1B56 }, - { (char*) "ROC" , 0x0A2468 }, - { (char*) "ROK" , 0x0A276D }, - { (char*) "Singapore" , 0x0A29E2 }, - { (char*) "Turkey" , 0x0A2B5F }, - { (char*) "UCT" , 0x0A32F8 }, - { (char*) "Universal" , 0x0A3376 }, - { (char*) "US/Alaska" , 0x0A33F4 }, - { (char*) "US/Aleutian" , 0x0A3D43 }, - { (char*) "US/Arizona" , 0x0A4683 }, - { (char*) "US/Central" , 0x0A47F7 }, - { (char*) "US/East-Indiana" , 0x0A560B }, - { (char*) "US/Eastern" , 0x0A5CA9 }, - { (char*) "US/Hawaii" , 0x0A6A95 }, - { (char*) "US/Indiana-Starke" , 0x0A6BEA }, - { (char*) "US/Michigan" , 0x0A7582 }, - { (char*) "US/Mountain" , 0x0A7E44 }, - { (char*) "US/Pacific" , 0x0A87EC }, - { (char*) "US/Samoa" , 0x0A931C }, - { (char*) "UTC" , 0x0A93D7 }, - { (char*) "W-SU" , 0x0A9455 }, - { (char*) "WET" , 0x0A9A60 }, - { (char*) "Zulu" , 0x0AA1DD }, + { (char*) "America/Barbados" , 0x00C610 }, + { (char*) "America/Belem" , 0x00C7D0 }, + { (char*) "America/Belize" , 0x00CA20 }, + { (char*) "America/Blanc-Sablon" , 0x00D07A }, + { (char*) "America/Boa_Vista" , 0x00D1CC }, + { (char*) "America/Bogota" , 0x00D449 }, + { (char*) "America/Boise" , 0x00D53D }, + { (char*) "America/Buenos_Aires" , 0x00DED3 }, + { (char*) "America/Cambridge_Bay" , 0x00E305 }, + { (char*) "America/Campo_Grande" , 0x00EBF3 }, + { (char*) "America/Cancun" , 0x00F1A7 }, + { (char*) "America/Caracas" , 0x00F501 }, + { (char*) "America/Catamarca" , 0x00F607 }, + { (char*) "America/Cayenne" , 0x00FA39 }, + { (char*) "America/Cayman" , 0x00FAFD }, + { (char*) "America/Chicago" , 0x00FBBF }, + { (char*) "America/Chihuahua" , 0x0109E7 }, + { (char*) "America/Ciudad_Juarez" , 0x010E57 }, + { (char*) "America/Coral_Harbour" , 0x011481 }, + { (char*) "America/Cordoba" , 0x011543 }, + { (char*) "America/Costa_Rica" , 0x011975 }, + { (char*) "America/Creston" , 0x011ABD }, + { (char*) "America/Cuiaba" , 0x011BAB }, + { (char*) "America/Curacao" , 0x01213C }, + { (char*) "America/Danmarkshavn" , 0x012202 }, + { (char*) "America/Dawson" , 0x0124E2 }, + { (char*) "America/Dawson_Creek" , 0x012B4E }, + { (char*) "America/Denver" , 0x012F94 }, + { (char*) "America/Detroit" , 0x013951 }, + { (char*) "America/Dominica" , 0x01422C }, + { (char*) "America/Edmonton" , 0x0142CC }, + { (char*) "America/Eirunepe" , 0x014C11 }, + { (char*) "America/El_Salvador" , 0x014EAE }, + { (char*) "America/Ensenada" , 0x014F9A }, + { (char*) "America/Fort_Nelson" , 0x0158EC }, + { (char*) "America/Fort_Wayne" , 0x0161CC }, + { (char*) "America/Fortaleza" , 0x01686A }, + { (char*) "America/Glace_Bay" , 0x016B5A }, + { (char*) "America/Godthab" , 0x017411 }, + { (char*) "America/Goose_Bay" , 0x0179C5 }, + { (char*) "America/Grand_Turk" , 0x01867B }, + { (char*) "America/Grenada" , 0x018DB1 }, + { (char*) "America/Guadeloupe" , 0x018E51 }, + { (char*) "America/Guatemala" , 0x018EF1 }, + { (char*) "America/Guayaquil" , 0x019015 }, + { (char*) "America/Guyana" , 0x01911B }, + { (char*) "America/Halifax" , 0x01921F }, + { (char*) "America/Havana" , 0x019FA9 }, + { (char*) "America/Hermosillo" , 0x01A925 }, + { (char*) "America/Indiana/Indianapolis" , 0x01AAFF }, + { (char*) "America/Indiana/Knox" , 0x01B1B6 }, + { (char*) "America/Indiana/Marengo" , 0x01BB63 }, + { (char*) "America/Indiana/Petersburg" , 0x01C250 }, + { (char*) "America/Indiana/Tell_City" , 0x01C9EF }, + { (char*) "America/Indiana/Vevay" , 0x01D0B3 }, + { (char*) "America/Indiana/Vincennes" , 0x01D66F }, + { (char*) "America/Indiana/Winamac" , 0x01DD45 }, + { (char*) "America/Indianapolis" , 0x01E469 }, + { (char*) "America/Inuvik" , 0x01EB07 }, + { (char*) "America/Iqaluit" , 0x01F341 }, + { (char*) "America/Jamaica" , 0x01FC00 }, + { (char*) "America/Jujuy" , 0x01FDEE }, + { (char*) "America/Juneau" , 0x020204 }, + { (char*) "America/Kentucky/Louisville" , 0x020B55 }, + { (char*) "America/Kentucky/Monticello" , 0x021663 }, + { (char*) "America/Knox_IN" , 0x021FC3 }, + { (char*) "America/Kralendijk" , 0x02295B }, + { (char*) "America/La_Paz" , 0x022A5D }, + { (char*) "America/Lima" , 0x022B43 }, + { (char*) "America/Los_Angeles" , 0x022CD7 }, + { (char*) "America/Louisville" , 0x02380E }, + { (char*) "America/Lower_Princes" , 0x0242FE }, + { (char*) "America/Maceio" , 0x024400 }, + { (char*) "America/Managua" , 0x0246F6 }, + { (char*) "America/Manaus" , 0x0248B0 }, + { (char*) "America/Marigot" , 0x024B19 }, + { (char*) "America/Martinique" , 0x024C1B }, + { (char*) "America/Matamoros" , 0x024D0F }, + { (char*) "America/Mazatlan" , 0x0252D1 }, + { (char*) "America/Mendoza" , 0x025777 }, + { (char*) "America/Menominee" , 0x025BA9 }, + { (char*) "America/Merida" , 0x0264B6 }, + { (char*) "America/Metlakatla" , 0x0268BF }, + { (char*) "America/Mexico_City" , 0x026E71 }, + { (char*) "America/Miquelon" , 0x027351 }, + { (char*) "America/Moncton" , 0x0279D1 }, + { (char*) "America/Monterrey" , 0x028647 }, + { (char*) "America/Montevideo" , 0x028A5D }, + { (char*) "America/Montreal" , 0x029041 }, + { (char*) "America/Montserrat" , 0x029DF3 }, + { (char*) "America/Nassau" , 0x029E93 }, + { (char*) "America/New_York" , 0x02A7F3 }, + { (char*) "America/Nipigon" , 0x02B5F3 }, + { (char*) "America/Nome" , 0x02C3A5 }, + { (char*) "America/Noronha" , 0x02CCFD }, + { (char*) "America/North_Dakota/Beulah" , 0x02CFD7 }, + { (char*) "America/North_Dakota/Center" , 0x02D954 }, + { (char*) "America/North_Dakota/New_Salem" , 0x02E2D1 }, + { (char*) "America/Nuuk" , 0x02EC54 }, + { (char*) "America/Ojinaga" , 0x02F21E }, + { (char*) "America/Panama" , 0x02F83A }, + { (char*) "America/Pangnirtung" , 0x02F8FC }, + { (char*) "America/Paramaribo" , 0x0301A2 }, + { (char*) "America/Phoenix" , 0x0302A6 }, + { (char*) "America/Port-au-Prince" , 0x030437 }, + { (char*) "America/Port_of_Spain" , 0x0309DD }, + { (char*) "America/Porto_Acre" , 0x030A7D }, + { (char*) "America/Porto_Velho" , 0x030CEF }, + { (char*) "America/Puerto_Rico" , 0x030F35 }, + { (char*) "America/Punta_Arenas" , 0x031037 }, + { (char*) "America/Rainy_River" , 0x0317C5 }, + { (char*) "America/Rankin_Inlet" , 0x032305 }, + { (char*) "America/Recife" , 0x032B39 }, + { (char*) "America/Regina" , 0x032E0D }, + { (char*) "America/Resolute" , 0x033202 }, + { (char*) "America/Rio_Branco" , 0x033A37 }, + { (char*) "America/Rosario" , 0x033CAD }, + { (char*) "America/Santa_Isabel" , 0x0340DF }, + { (char*) "America/Santarem" , 0x034A31 }, + { (char*) "America/Santiago" , 0x034C94 }, + { (char*) "America/Santo_Domingo" , 0x035685 }, + { (char*) "America/Sao_Paulo" , 0x03585B }, + { (char*) "America/Scoresbysund" , 0x035E33 }, + { (char*) "America/Shiprock" , 0x0365CA }, + { (char*) "America/Sitka" , 0x036F72 }, + { (char*) "America/St_Barthelemy" , 0x0378AA }, + { (char*) "America/St_Johns" , 0x0379AC }, + { (char*) "America/St_Kitts" , 0x038821 }, + { (char*) "America/St_Lucia" , 0x0388C1 }, + { (char*) "America/St_Thomas" , 0x038983 }, + { (char*) "America/St_Vincent" , 0x038A23 }, + { (char*) "America/Swift_Current" , 0x038AE5 }, + { (char*) "America/Tegucigalpa" , 0x038D33 }, + { (char*) "America/Thule" , 0x038E3B }, + { (char*) "America/Thunder_Bay" , 0x039433 }, + { (char*) "America/Tijuana" , 0x03A1E5 }, + { (char*) "America/Toronto" , 0x03AB46 }, + { (char*) "America/Tortola" , 0x03B915 }, + { (char*) "America/Vancouver" , 0x03B9B5 }, + { (char*) "America/Virgin" , 0x03C526 }, + { (char*) "America/Whitehorse" , 0x03C628 }, + { (char*) "America/Winnipeg" , 0x03CC94 }, + { (char*) "America/Yakutat" , 0x03D7F1 }, + { (char*) "America/Yellowknife" , 0x03E10E }, + { (char*) "Antarctica/Casey" , 0x03E989 }, + { (char*) "Antarctica/Davis" , 0x03EB0C }, + { (char*) "Antarctica/DumontDUrville" , 0x03EC38 }, + { (char*) "Antarctica/Macquarie" , 0x03ED08 }, + { (char*) "Antarctica/Mawson" , 0x03F5F8 }, + { (char*) "Antarctica/McMurdo" , 0x03F6C3 }, + { (char*) "Antarctica/Palmer" , 0x03FEBE }, + { (char*) "Antarctica/Rothera" , 0x04044C }, + { (char*) "Antarctica/South_Pole" , 0x0404F5 }, + { (char*) "Antarctica/Syowa" , 0x040E86 }, + { (char*) "Antarctica/Troll" , 0x040F2E }, + { (char*) "Antarctica/Vostok" , 0x0413BB }, + { (char*) "Arctic/Longyearbyen" , 0x041464 }, + { (char*) "Asia/Aden" , 0x041D6A }, + { (char*) "Asia/Almaty" , 0x041E0D }, + { (char*) "Asia/Amman" , 0x042207 }, + { (char*) "Asia/Anadyr" , 0x0427AC }, + { (char*) "Asia/Aqtau" , 0x042C61 }, + { (char*) "Asia/Aqtobe" , 0x04304B }, + { (char*) "Asia/Ashgabat" , 0x043449 }, + { (char*) "Asia/Ashkhabad" , 0x0436B2 }, + { (char*) "Asia/Atyrau" , 0x04391B }, + { (char*) "Asia/Baghdad" , 0x043D0D }, + { (char*) "Asia/Bahrain" , 0x0440E2 }, + { (char*) "Asia/Baku" , 0x0441CD }, + { (char*) "Asia/Bangkok" , 0x044696 }, + { (char*) "Asia/Barnaul" , 0x04475B }, + { (char*) "Asia/Beirut" , 0x044C2C }, + { (char*) "Asia/Bishkek" , 0x0454A2 }, + { (char*) "Asia/Brunei" , 0x045877 }, + { (char*) "Asia/Calcutta" , 0x045940 }, + { (char*) "Asia/Chita" , 0x045A69 }, + { (char*) "Asia/Choibalsan" , 0x045F40 }, + { (char*) "Asia/Chongqing" , 0x046305 }, + { (char*) "Asia/Chungking" , 0x046542 }, + { (char*) "Asia/Colombo" , 0x04677F }, + { (char*) "Asia/Dacca" , 0x0468F1 }, + { (char*) "Asia/Damascus" , 0x046A40 }, + { (char*) "Asia/Dhaka" , 0x04719D }, + { (char*) "Asia/Dili" , 0x0472EC }, + { (char*) "Asia/Dubai" , 0x0473CD }, + { (char*) "Asia/Dushanbe" , 0x047470 }, + { (char*) "Asia/Famagusta" , 0x0476BD }, + { (char*) "Asia/Gaza" , 0x047EC4 }, + { (char*) "Asia/Harbin" , 0x048850 }, + { (char*) "Asia/Hebron" , 0x048A8D }, + { (char*) "Asia/Ho_Chi_Minh" , 0x049434 }, + { (char*) "Asia/Hong_Kong" , 0x049591 }, + { (char*) "Asia/Hovd" , 0x049A6E }, + { (char*) "Asia/Irkutsk" , 0x049E12 }, + { (char*) "Asia/Istanbul" , 0x04A305 }, + { (char*) "Asia/Jakarta" , 0x04AA9E }, + { (char*) "Asia/Jayapura" , 0x04AC36 }, + { (char*) "Asia/Jerusalem" , 0x04AD55 }, + { (char*) "Asia/Kabul" , 0x04B6B5 }, + { (char*) "Asia/Kamchatka" , 0x04B783 }, + { (char*) "Asia/Karachi" , 0x04BC21 }, + { (char*) "Asia/Kashgar" , 0x04BDA8 }, + { (char*) "Asia/Kathmandu" , 0x04BE4B }, + { (char*) "Asia/Katmandu" , 0x04BF1D }, + { (char*) "Asia/Khandyga" , 0x04BFEF }, + { (char*) "Asia/Kolkata" , 0x04C502 }, + { (char*) "Asia/Krasnoyarsk" , 0x04C62B }, + { (char*) "Asia/Kuala_Lumpur" , 0x04CAF9 }, + { (char*) "Asia/Kuching" , 0x04CCAA }, + { (char*) "Asia/Kuwait" , 0x04CE99 }, + { (char*) "Asia/Macao" , 0x04CF3C }, + { (char*) "Asia/Macau" , 0x04D413 }, + { (char*) "Asia/Magadan" , 0x04D8EA }, + { (char*) "Asia/Makassar" , 0x04DDBE }, + { (char*) "Asia/Manila" , 0x04DF11 }, + { (char*) "Asia/Muscat" , 0x04E065 }, + { (char*) "Asia/Nicosia" , 0x04E108 }, + { (char*) "Asia/Novokuznetsk" , 0x04E8F9 }, + { (char*) "Asia/Novosibirsk" , 0x04ED95 }, + { (char*) "Asia/Omsk" , 0x04F26C }, + { (char*) "Asia/Oral" , 0x04F72E }, + { (char*) "Asia/Phnom_Penh" , 0x04FB28 }, + { (char*) "Asia/Pontianak" , 0x04FC4D }, + { (char*) "Asia/Pyongyang" , 0x04FDD0 }, + { (char*) "Asia/Qatar" , 0x04FEC9 }, + { (char*) "Asia/Qostanay" , 0x04FF8E }, + { (char*) "Asia/Qyzylorda" , 0x050399 }, + { (char*) "Asia/Rangoon" , 0x0507B5 }, + { (char*) "Asia/Riyadh" , 0x0508BF }, + { (char*) "Asia/Saigon" , 0x050962 }, + { (char*) "Asia/Sakhalin" , 0x050ABF }, + { (char*) "Asia/Samarkand" , 0x050F87 }, + { (char*) "Asia/Seoul" , 0x0511D7 }, + { (char*) "Asia/Shanghai" , 0x05144C }, + { (char*) "Asia/Singapore" , 0x051695 }, + { (char*) "Asia/Srednekolymsk" , 0x051832 }, + { (char*) "Asia/Taipei" , 0x051D0A }, + { (char*) "Asia/Tashkent" , 0x05200F }, + { (char*) "Asia/Tbilisi" , 0x05226D }, + { (char*) "Asia/Tehran" , 0x052676 }, + { (char*) "Asia/Tel_Aviv" , 0x052B62 }, + { (char*) "Asia/Thimbu" , 0x0534C2 }, + { (char*) "Asia/Thimphu" , 0x05358B }, + { (char*) "Asia/Tokyo" , 0x053654 }, + { (char*) "Asia/Tomsk" , 0x053795 }, + { (char*) "Asia/Ujung_Pandang" , 0x053C66 }, + { (char*) "Asia/Ulaanbaatar" , 0x053D70 }, + { (char*) "Asia/Ulan_Bator" , 0x0540FE }, + { (char*) "Asia/Urumqi" , 0x054477 }, + { (char*) "Asia/Ust-Nera" , 0x054527 }, + { (char*) "Asia/Vientiane" , 0x054A1D }, + { (char*) "Asia/Vladivostok" , 0x054B5E }, + { (char*) "Asia/Yakutsk" , 0x055027 }, + { (char*) "Asia/Yangon" , 0x0554EF }, + { (char*) "Asia/Yekaterinburg" , 0x0555F9 }, + { (char*) "Asia/Yerevan" , 0x055AE0 }, + { (char*) "Atlantic/Azores" , 0x055F5D }, + { (char*) "Atlantic/Bermuda" , 0x056D19 }, + { (char*) "Atlantic/Canary" , 0x057681 }, + { (char*) "Atlantic/Cape_Verde" , 0x057E04 }, + { (char*) "Atlantic/Faeroe" , 0x057F10 }, + { (char*) "Atlantic/Faroe" , 0x058633 }, + { (char*) "Atlantic/Jan_Mayen" , 0x058D56 }, + { (char*) "Atlantic/Madeira" , 0x05965C }, + { (char*) "Atlantic/Reykjavik" , 0x05A426 }, + { (char*) "Atlantic/South_Georgia" , 0x05A8BC }, + { (char*) "Atlantic/St_Helena" , 0x05A95E }, + { (char*) "Atlantic/Stanley" , 0x05AA20 }, + { (char*) "Australia/ACT" , 0x05AEDC }, + { (char*) "Australia/Adelaide" , 0x05B776 }, + { (char*) "Australia/Brisbane" , 0x05C031 }, + { (char*) "Australia/Broken_Hill" , 0x05C1F7 }, + { (char*) "Australia/Canberra" , 0x05CAD4 }, + { (char*) "Australia/Currie" , 0x05D36E }, + { (char*) "Australia/Darwin" , 0x05DCB0 }, + { (char*) "Australia/Eucla" , 0x05DE13 }, + { (char*) "Australia/Hobart" , 0x05E000 }, + { (char*) "Australia/LHI" , 0x05E94A }, + { (char*) "Australia/Lindeman" , 0x05F08C }, + { (char*) "Australia/Lord_Howe" , 0x05F292 }, + { (char*) "Australia/Melbourne" , 0x05F9E4 }, + { (char*) "Australia/North" , 0x060286 }, + { (char*) "Australia/NSW" , 0x0603D7 }, + { (char*) "Australia/Perth" , 0x060C71 }, + { (char*) "Australia/Queensland" , 0x060E59 }, + { (char*) "Australia/South" , 0x061008 }, + { (char*) "Australia/Sydney" , 0x0618B4 }, + { (char*) "Australia/Tasmania" , 0x06216A }, + { (char*) "Australia/Victoria" , 0x062AAC }, + { (char*) "Australia/West" , 0x063346 }, + { (char*) "Australia/Yancowinna" , 0x063510 }, + { (char*) "Brazil/Acre" , 0x063DD1 }, + { (char*) "Brazil/DeNoronha" , 0x064043 }, + { (char*) "Brazil/East" , 0x06430D }, + { (char*) "Brazil/West" , 0x0648AF }, + { (char*) "Canada/Atlantic" , 0x064B09 }, + { (char*) "Canada/Central" , 0x065875 }, + { (char*) "Canada/Eastern" , 0x0663B5 }, + { (char*) "Canada/Mountain" , 0x067167 }, + { (char*) "Canada/Newfoundland" , 0x067A8F }, + { (char*) "Canada/Pacific" , 0x0688E2 }, + { (char*) "Canada/Saskatchewan" , 0x06943A }, + { (char*) "Canada/Yukon" , 0x06981A }, + { (char*) "CET" , 0x069E74 }, + { (char*) "Chile/Continental" , 0x06A6AE }, + { (char*) "Chile/EasterIsland" , 0x06B08D }, + { (char*) "CST6CDT" , 0x06B944 }, + { (char*) "Cuba" , 0x06C256 }, + { (char*) "EET" , 0x06CBD2 }, + { (char*) "Egypt" , 0x06D352 }, + { (char*) "Eire" , 0x06DB01 }, + { (char*) "EST" , 0x06E8B1 }, + { (char*) "EST5EDT" , 0x06E92F }, + { (char*) "Etc/GMT" , 0x06F241 }, + { (char*) "Etc/GMT+0" , 0x06F2BF }, + { (char*) "Etc/GMT+1" , 0x06F33D }, + { (char*) "Etc/GMT+10" , 0x06F3BD }, + { (char*) "Etc/GMT+11" , 0x06F43E }, + { (char*) "Etc/GMT+12" , 0x06F4BF }, + { (char*) "Etc/GMT+2" , 0x06F540 }, + { (char*) "Etc/GMT+3" , 0x06F5C0 }, + { (char*) "Etc/GMT+4" , 0x06F640 }, + { (char*) "Etc/GMT+5" , 0x06F6C0 }, + { (char*) "Etc/GMT+6" , 0x06F740 }, + { (char*) "Etc/GMT+7" , 0x06F7C0 }, + { (char*) "Etc/GMT+8" , 0x06F840 }, + { (char*) "Etc/GMT+9" , 0x06F8C0 }, + { (char*) "Etc/GMT-0" , 0x06F940 }, + { (char*) "Etc/GMT-1" , 0x06F9BE }, + { (char*) "Etc/GMT-10" , 0x06FA3F }, + { (char*) "Etc/GMT-11" , 0x06FAC1 }, + { (char*) "Etc/GMT-12" , 0x06FB43 }, + { (char*) "Etc/GMT-13" , 0x06FBC5 }, + { (char*) "Etc/GMT-14" , 0x06FC47 }, + { (char*) "Etc/GMT-2" , 0x06FCC9 }, + { (char*) "Etc/GMT-3" , 0x06FD4A }, + { (char*) "Etc/GMT-4" , 0x06FDCB }, + { (char*) "Etc/GMT-5" , 0x06FE4C }, + { (char*) "Etc/GMT-6" , 0x06FECD }, + { (char*) "Etc/GMT-7" , 0x06FF4E }, + { (char*) "Etc/GMT-8" , 0x06FFCF }, + { (char*) "Etc/GMT-9" , 0x070050 }, + { (char*) "Etc/GMT0" , 0x0700D1 }, + { (char*) "Etc/Greenwich" , 0x07014F }, + { (char*) "Etc/UCT" , 0x0701CD }, + { (char*) "Etc/Universal" , 0x07024B }, + { (char*) "Etc/UTC" , 0x0702C9 }, + { (char*) "Etc/Zulu" , 0x070347 }, + { (char*) "Europe/Amsterdam" , 0x0703C5 }, + { (char*) "Europe/Andorra" , 0x070F2F }, + { (char*) "Europe/Astrakhan" , 0x071609 }, + { (char*) "Europe/Athens" , 0x071AA6 }, + { (char*) "Europe/Belfast" , 0x072388 }, + { (char*) "Europe/Belgrade" , 0x0731E4 }, + { (char*) "Europe/Berlin" , 0x073970 }, + { (char*) "Europe/Bratislava" , 0x07428A }, + { (char*) "Europe/Brussels" , 0x074B93 }, + { (char*) "Europe/Bucharest" , 0x075714 }, + { (char*) "Europe/Budapest" , 0x075FA8 }, + { (char*) "Europe/Busingen" , 0x0768F4 }, + { (char*) "Europe/Chisinau" , 0x07707D }, + { (char*) "Europe/Copenhagen" , 0x0779DF }, + { (char*) "Europe/Dublin" , 0x078244 }, + { (char*) "Europe/Gibraltar" , 0x078FF4 }, + { (char*) "Europe/Guernsey" , 0x079BFC }, + { (char*) "Europe/Helsinki" , 0x07AA9C }, + { (char*) "Europe/Isle_of_Man" , 0x07B214 }, + { (char*) "Europe/Istanbul" , 0x07C060 }, + { (char*) "Europe/Jersey" , 0x07C7F9 }, + { (char*) "Europe/Kaliningrad" , 0x07D699 }, + { (char*) "Europe/Kiev" , 0x07DC8E }, + { (char*) "Europe/Kirov" , 0x07E4E2 }, + { (char*) "Europe/Kyiv" , 0x07E96F }, + { (char*) "Europe/Lisbon" , 0x07F1D7 }, + { (char*) "Europe/Ljubljana" , 0x07FF9F }, + { (char*) "Europe/London" , 0x08072B }, + { (char*) "Europe/Luxembourg" , 0x081587 }, + { (char*) "Europe/Madrid" , 0x082115 }, + { (char*) "Europe/Malta" , 0x082B67 }, + { (char*) "Europe/Mariehamn" , 0x0835AF }, + { (char*) "Europe/Minsk" , 0x083D27 }, + { (char*) "Europe/Monaco" , 0x08424E }, + { (char*) "Europe/Moscow" , 0x084DDA }, + { (char*) "Europe/Nicosia" , 0x0853F9 }, + { (char*) "Europe/Oslo" , 0x085BD7 }, + { (char*) "Europe/Paris" , 0x086497 }, + { (char*) "Europe/Podgorica" , 0x087035 }, + { (char*) "Europe/Prague" , 0x0877C1 }, + { (char*) "Europe/Riga" , 0x0880CA }, + { (char*) "Europe/Rome" , 0x08896C }, + { (char*) "Europe/Samara" , 0x0893C9 }, + { (char*) "Europe/San_Marino" , 0x08989F }, + { (char*) "Europe/Sarajevo" , 0x08A2FC }, + { (char*) "Europe/Saratov" , 0x08AA88 }, + { (char*) "Europe/Simferopol" , 0x08AF35 }, + { (char*) "Europe/Skopje" , 0x08B504 }, + { (char*) "Europe/Sofia" , 0x08BC90 }, + { (char*) "Europe/Stockholm" , 0x08C4B9 }, + { (char*) "Europe/Tallinn" , 0x08CC3A }, + { (char*) "Europe/Tirane" , 0x08D4AA }, + { (char*) "Europe/Tiraspol" , 0x08DCDA }, + { (char*) "Europe/Ulyanovsk" , 0x08E63C }, + { (char*) "Europe/Uzhgorod" , 0x08EB3F }, + { (char*) "Europe/Vaduz" , 0x08F393 }, + { (char*) "Europe/Vatican" , 0x08FAFF }, + { (char*) "Europe/Vienna" , 0x09055C }, + { (char*) "Europe/Vilnius" , 0x090E00 }, + { (char*) "Europe/Volgograd" , 0x09167E }, + { (char*) "Europe/Warsaw" , 0x091B1B }, + { (char*) "Europe/Zagreb" , 0x092585 }, + { (char*) "Europe/Zaporozhye" , 0x092D11 }, + { (char*) "Europe/Zurich" , 0x093565 }, + { (char*) "Factory" , 0x093CE6 }, + { (char*) "GB" , 0x093D66 }, + { (char*) "GB-Eire" , 0x094BC2 }, + { (char*) "GMT" , 0x095A1E }, + { (char*) "GMT+0" , 0x095A9C }, + { (char*) "GMT-0" , 0x095B1A }, + { (char*) "GMT0" , 0x095B98 }, + { (char*) "Greenwich" , 0x095C16 }, + { (char*) "Hongkong" , 0x095C94 }, + { (char*) "HST" , 0x096171 }, + { (char*) "Iceland" , 0x0961F0 }, + { (char*) "Indian/Antananarivo" , 0x096290 }, + { (char*) "Indian/Chagos" , 0x096377 }, + { (char*) "Indian/Christmas" , 0x09643C }, + { (char*) "Indian/Cocos" , 0x0964DF }, + { (char*) "Indian/Comoro" , 0x09658B }, + { (char*) "Indian/Kerguelen" , 0x09662C }, + { (char*) "Indian/Mahe" , 0x0966CF }, + { (char*) "Indian/Maldives" , 0x096772 }, + { (char*) "Indian/Mauritius" , 0x096837 }, + { (char*) "Indian/Mayotte" , 0x096926 }, + { (char*) "Indian/Reunion" , 0x0969C7 }, + { (char*) "Iran" , 0x096A6A }, + { (char*) "Israel" , 0x096F56 }, + { (char*) "Jamaica" , 0x0978B6 }, + { (char*) "Japan" , 0x097AA4 }, + { (char*) "Kwajalein" , 0x097BE5 }, + { (char*) "Libya" , 0x097D1F }, + { (char*) "MET" , 0x097F9C }, + { (char*) "Mexico/BajaNorte" , 0x0987D6 }, + { (char*) "Mexico/BajaSur" , 0x099128 }, + { (char*) "Mexico/General" , 0x09959C }, + { (char*) "MST" , 0x099A6E }, + { (char*) "MST7MDT" , 0x099AEC }, + { (char*) "Navajo" , 0x09A3FE }, + { (char*) "NZ" , 0x09ADA6 }, + { (char*) "NZ-CHAT" , 0x09B737 }, + { (char*) "Pacific/Apia" , 0x09BF49 }, + { (char*) "Pacific/Auckland" , 0x09C1AB }, + { (char*) "Pacific/Bougainville" , 0x09CB54 }, + { (char*) "Pacific/Chatham" , 0x09CC6A }, + { (char*) "Pacific/Chuuk" , 0x09D48B }, + { (char*) "Pacific/Easter" , 0x09D5A5 }, + { (char*) "Pacific/Efate" , 0x09DE69 }, + { (char*) "Pacific/Enderbury" , 0x09E081 }, + { (char*) "Pacific/Fakaofo" , 0x09E169 }, + { (char*) "Pacific/Fiji" , 0x09E22F }, + { (char*) "Pacific/Funafuti" , 0x09E46F }, + { (char*) "Pacific/Galapagos" , 0x09E513 }, + { (char*) "Pacific/Gambier" , 0x09E610 }, + { (char*) "Pacific/Guadalcanal" , 0x09E6C1 }, + { (char*) "Pacific/Guam" , 0x09E765 }, + { (char*) "Pacific/Honolulu" , 0x09E95F }, + { (char*) "Pacific/Johnston" , 0x09EABA }, + { (char*) "Pacific/Kanton" , 0x09EC0F }, + { (char*) "Pacific/Kiritimati" , 0x09ED06 }, + { (char*) "Pacific/Kosrae" , 0x09EDFE }, + { (char*) "Pacific/Kwajalein" , 0x09EF61 }, + { (char*) "Pacific/Majuro" , 0x09F0A4 }, + { (char*) "Pacific/Marquesas" , 0x09F1F5 }, + { (char*) "Pacific/Midway" , 0x09F2B1 }, + { (char*) "Pacific/Nauru" , 0x09F3A4 }, + { (char*) "Pacific/Niue" , 0x09F49E }, + { (char*) "Pacific/Norfolk" , 0x09F567 }, + { (char*) "Pacific/Noumea" , 0x09F8D5 }, + { (char*) "Pacific/Pago_Pago" , 0x09FA03 }, + { (char*) "Pacific/Palau" , 0x09FABE }, + { (char*) "Pacific/Pitcairn" , 0x09FB70 }, + { (char*) "Pacific/Pohnpei" , 0x09FC38 }, + { (char*) "Pacific/Ponape" , 0x09FD73 }, + { (char*) "Pacific/Port_Moresby" , 0x09FE17 }, + { (char*) "Pacific/Rarotonga" , 0x09FEEC }, + { (char*) "Pacific/Saipan" , 0x0A0145 }, + { (char*) "Pacific/Samoa" , 0x0A0331 }, + { (char*) "Pacific/Tahiti" , 0x0A03EC }, + { (char*) "Pacific/Tarawa" , 0x0A049E }, + { (char*) "Pacific/Tongatapu" , 0x0A0551 }, + { (char*) "Pacific/Truk" , 0x0A06C3 }, + { (char*) "Pacific/Wake" , 0x0A077B }, + { (char*) "Pacific/Wallis" , 0x0A082A }, + { (char*) "Pacific/Yap" , 0x0A08CE }, + { (char*) "Poland" , 0x0A0986 }, + { (char*) "Portugal" , 0x0A13F0 }, + { (char*) "PRC" , 0x0A21A5 }, + { (char*) "PST8PDT" , 0x0A23E2 }, + { (char*) "ROC" , 0x0A2CF4 }, + { (char*) "ROK" , 0x0A2FF9 }, + { (char*) "Singapore" , 0x0A326E }, + { (char*) "Turkey" , 0x0A340B }, + { (char*) "UCT" , 0x0A3BA4 }, + { (char*) "Universal" , 0x0A3C22 }, + { (char*) "US/Alaska" , 0x0A3CA0 }, + { (char*) "US/Aleutian" , 0x0A45EF }, + { (char*) "US/Arizona" , 0x0A4F2F }, + { (char*) "US/Central" , 0x0A50A3 }, + { (char*) "US/East-Indiana" , 0x0A5EB7 }, + { (char*) "US/Eastern" , 0x0A6555 }, + { (char*) "US/Hawaii" , 0x0A7341 }, + { (char*) "US/Indiana-Starke" , 0x0A7496 }, + { (char*) "US/Michigan" , 0x0A7E2E }, + { (char*) "US/Mountain" , 0x0A86F0 }, + { (char*) "US/Pacific" , 0x0A9098 }, + { (char*) "US/Samoa" , 0x0A9BC8 }, + { (char*) "UTC" , 0x0A9C83 }, + { (char*) "W-SU" , 0x0A9D01 }, + { (char*) "WET" , 0x0AA30C }, + { (char*) "Zulu" , 0x0AAA89 }, }; -const unsigned char timelib_timezone_db_data_builtin[696923] = { +const unsigned char timelib_timezone_db_data_builtin[699143] = { /* Africa/Abidjan */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -27515,9 +27663,8 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x43, 0x53, 0x54, 0x36, 0x0A, -0x00, 0xA9, 0x11, 0x40, 0x00, 0x72, 0x0F, 0x38, 0x00, 0x00, 0x00, 0x20, 0x43, 0x65, 0x6E, 0x74, -0x72, 0x61, 0x6C, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x42, 0x61, 0x68, 0x69, 0x61, -0x20, 0x64, 0x65, 0x20, 0x42, 0x61, 0x6E, 0x64, 0x65, 0x72, 0x61, 0x73, +0x00, 0xA9, 0x11, 0x40, 0x00, 0x72, 0x0F, 0x38, 0x00, 0x00, 0x00, 0x11, 0x42, 0x61, 0x68, 0x69, +0x61, 0x20, 0x64, 0x65, 0x20, 0x42, 0x61, 0x6E, 0x64, 0x65, 0x72, 0x61, 0x73, /* America/Barbados */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -27764,7 +27911,7 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { 0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x4F, 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, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x80, 0x00, 0x00, 0x00, -0x98, 0x58, 0x55, 0x70, 0x2A, 0x03, 0x73, 0x50, 0x2B, 0xBE, 0x5D, 0x40, 0x01, 0x03, 0x02, 0x03, +0x98, 0x58, 0x55, 0x70, 0x2A, 0x03, 0x73, 0x50, 0x2B, 0x74, 0x89, 0x40, 0x01, 0x03, 0x02, 0x03, 0xFF, 0xFF, 0xBA, 0x90, 0x00, 0x00, 0xFF, 0xFF, 0xBA, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x42, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x34, 0x00, 0x2D, 0x30, 0x35, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, @@ -27772,7 +27919,7 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0x5E, 0x9C, 0x34, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x98, 0x58, 0x55, 0x70, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x03, 0x73, 0x50, 0x00, 0x00, 0x00, 0x00, -0x2B, 0xBE, 0x5D, 0x40, 0x01, 0x03, 0x02, 0x03, 0xFF, 0xFF, 0xBA, 0x90, 0x00, 0x00, 0xFF, 0xFF, +0x2B, 0x74, 0x89, 0x40, 0x01, 0x03, 0x02, 0x03, 0xFF, 0xFF, 0xBA, 0x90, 0x00, 0x00, 0xFF, 0xFF, 0xBA, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x42, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x34, 0x00, 0x2D, 0x30, 0x35, 0x00, 0x0A, 0x3C, 0x2D, 0x30, 0x35, 0x3E, 0x35, 0x0A, 0x00, 0x90, 0x59, 0x20, 0x00, 0xA1, 0x9D, 0xB2, @@ -28006,138 +28153,148 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { /* America/Cambridge_Bay */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x25, 0xA1, 0xF2, 0xCD, 0x80, -0xCB, 0x89, 0x0C, 0x90, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x18, 0x00, 0xF7, 0x2F, 0x5A, 0x70, -0xF8, 0x28, 0x85, 0xF0, 0x13, 0x69, 0x64, 0x10, 0x14, 0x59, 0x47, 0x00, 0x15, 0x49, 0x46, 0x10, -0x16, 0x39, 0x29, 0x00, 0x17, 0x29, 0x28, 0x10, 0x18, 0x22, 0x45, 0x80, 0x19, 0x09, 0x0A, 0x10, -0x1A, 0x02, 0x27, 0x80, 0x1A, 0xF2, 0x26, 0x90, 0x1B, 0xE2, 0x09, 0x80, 0x1C, 0xD2, 0x08, 0x90, -0x1D, 0xC1, 0xEB, 0x80, 0x1E, 0xB1, 0xEA, 0x90, 0x1F, 0xA1, 0xCD, 0x80, 0x20, 0x76, 0x1D, 0x10, -0x21, 0x81, 0xAF, 0x80, 0x22, 0x55, 0xFF, 0x10, 0x23, 0x6A, 0xCC, 0x00, 0x24, 0x35, 0xE1, 0x10, -0x25, 0x4A, 0xAE, 0x00, 0x26, 0x15, 0xC3, 0x10, 0x27, 0x2A, 0x90, 0x00, 0x27, 0xFE, 0xDF, 0x90, -0x29, 0x0A, 0x72, 0x00, 0x29, 0xDE, 0xC1, 0x90, 0x2A, 0xEA, 0x54, 0x00, 0x2B, 0xBE, 0xA3, 0x90, -0x2C, 0xD3, 0x70, 0x80, 0x2D, 0x9E, 0x85, 0x90, 0x2E, 0xB3, 0x52, 0x80, 0x2F, 0x7E, 0x67, 0x90, -0x30, 0x93, 0x34, 0x80, 0x31, 0x67, 0x84, 0x10, 0x32, 0x73, 0x16, 0x80, 0x33, 0x47, 0x66, 0x10, -0x34, 0x52, 0xF8, 0x80, 0x35, 0x27, 0x48, 0x10, 0x36, 0x32, 0xDA, 0x80, 0x37, 0x07, 0x2A, 0x10, -0x38, 0x1B, 0xF7, 0x00, 0x38, 0xE6, 0xFE, 0x00, 0x39, 0xFB, 0xCA, 0xF0, 0x3A, 0x04, 0xE9, 0x50, -0x3A, 0xC6, 0xEE, 0x10, 0x3B, 0xDB, 0xBB, 0x00, 0x3C, 0xB0, 0x0A, 0x90, 0x3D, 0xBB, 0x9D, 0x00, -0x3E, 0x8F, 0xEC, 0x90, 0x3F, 0x9B, 0x7F, 0x00, 0x40, 0x6F, 0xCE, 0x90, 0x41, 0x84, 0x9B, 0x80, -0x42, 0x4F, 0xB0, 0x90, 0x43, 0x64, 0x7D, 0x80, 0x44, 0x2F, 0x92, 0x90, 0x45, 0x44, 0x5F, 0x80, -0x45, 0xF3, 0xC5, 0x10, 0x47, 0x2D, 0x7C, 0x00, 0x47, 0xD3, 0xA7, 0x10, 0x49, 0x0D, 0x5E, 0x00, -0x49, 0xB3, 0x89, 0x10, 0x4A, 0xED, 0x40, 0x00, 0x4B, 0x9C, 0xA5, 0x90, 0x4C, 0xD6, 0x5C, 0x80, -0x4D, 0x7C, 0x87, 0x90, 0x4E, 0xB6, 0x3E, 0x80, 0x4F, 0x5C, 0x69, 0x90, 0x50, 0x96, 0x20, 0x80, -0x51, 0x3C, 0x4B, 0x90, 0x52, 0x76, 0x02, 0x80, 0x53, 0x1C, 0x2D, 0x90, 0x54, 0x55, 0xE4, 0x80, -0x54, 0xFC, 0x0F, 0x90, 0x56, 0x35, 0xC6, 0x80, 0x56, 0xE5, 0x2C, 0x10, 0x58, 0x1E, 0xE3, 0x00, -0x58, 0xC5, 0x0E, 0x10, 0x59, 0xFE, 0xC5, 0x00, 0x5A, 0xA4, 0xF0, 0x10, 0x5B, 0xDE, 0xA7, 0x00, -0x5C, 0x84, 0xD2, 0x10, 0x5D, 0xBE, 0x89, 0x00, 0x5E, 0x64, 0xB4, 0x10, 0x5F, 0x9E, 0x6B, 0x00, -0x60, 0x4D, 0xD0, 0x90, 0x61, 0x87, 0x87, 0x80, 0x62, 0x2D, 0xB2, 0x90, 0x63, 0x67, 0x69, 0x80, -0x64, 0x0D, 0x94, 0x90, 0x65, 0x47, 0x4B, 0x80, 0x65, 0xED, 0x76, 0x90, 0x67, 0x27, 0x2D, 0x80, -0x67, 0xCD, 0x58, 0x90, 0x69, 0x07, 0x0F, 0x80, 0x69, 0xAD, 0x3A, 0x90, 0x6A, 0xE6, 0xF1, 0x80, -0x6B, 0x96, 0x57, 0x10, 0x6C, 0xD0, 0x0E, 0x00, 0x6D, 0x76, 0x39, 0x10, 0x6E, 0xAF, 0xF0, 0x00, -0x6F, 0x56, 0x1B, 0x10, 0x70, 0x8F, 0xD2, 0x00, 0x71, 0x35, 0xFD, 0x10, 0x72, 0x6F, 0xB4, 0x00, -0x73, 0x15, 0xDF, 0x10, 0x74, 0x4F, 0x96, 0x00, 0x74, 0xFE, 0xFB, 0x90, 0x76, 0x38, 0xB2, 0x80, -0x76, 0xDE, 0xDD, 0x90, 0x78, 0x18, 0x94, 0x80, 0x78, 0xBE, 0xBF, 0x90, 0x79, 0xF8, 0x76, 0x80, -0x7A, 0x9E, 0xA1, 0x90, 0x7B, 0xD8, 0x58, 0x80, 0x7C, 0x7E, 0x83, 0x90, 0x7D, 0xB8, 0x3A, 0x80, -0x7E, 0x5E, 0x65, 0x90, 0x7F, 0x98, 0x1C, 0x80, 0x03, 0x01, 0x02, 0x03, 0x04, 0x03, 0x05, 0x03, -0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, -0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, -0x05, 0x03, 0x05, 0x03, 0x05, 0x07, 0x06, 0x08, 0x07, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, -0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, -0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, -0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, -0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, -0x03, 0x05, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x04, 0xFF, -0xFF, 0xAB, 0xA0, 0x01, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, -0x10, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x15, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x19, 0xFF, 0xFF, 0xAB, -0xA0, 0x00, 0x1D, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x21, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x15, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x20, 0xA1, 0xF2, 0xCD, 0x80, +0xCB, 0x89, 0x0C, 0x90, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x18, 0x00, 0x04, 0x61, 0x19, 0x90, +0x05, 0x50, 0xFC, 0x80, 0x06, 0x40, 0xFB, 0x90, 0x07, 0x30, 0xDE, 0x80, 0x08, 0x20, 0xDD, 0x90, +0x09, 0x10, 0xC0, 0x80, 0x0A, 0x00, 0xBF, 0x90, 0x0A, 0xF0, 0xA2, 0x80, 0x0B, 0xE0, 0xA1, 0x90, +0x0C, 0xD9, 0xBF, 0x00, 0x0D, 0xC0, 0x83, 0x90, 0x0E, 0xB9, 0xA1, 0x00, 0x0F, 0xA9, 0xA0, 0x10, +0x10, 0x99, 0x83, 0x00, 0x11, 0x89, 0x82, 0x10, 0x12, 0x79, 0x65, 0x00, 0x13, 0x69, 0x64, 0x10, +0x14, 0x59, 0x47, 0x00, 0x15, 0x49, 0x46, 0x10, 0x16, 0x39, 0x29, 0x00, 0x17, 0x29, 0x28, 0x10, +0x18, 0x22, 0x45, 0x80, 0x19, 0x09, 0x0A, 0x10, 0x1A, 0x02, 0x27, 0x80, 0x1A, 0xF2, 0x26, 0x90, +0x1B, 0xE2, 0x09, 0x80, 0x1C, 0xD2, 0x08, 0x90, 0x1D, 0xC1, 0xEB, 0x80, 0x1E, 0xB1, 0xEA, 0x90, +0x1F, 0xA1, 0xCD, 0x80, 0x20, 0x76, 0x1D, 0x10, 0x21, 0x81, 0xAF, 0x80, 0x22, 0x55, 0xFF, 0x10, +0x23, 0x6A, 0xCC, 0x00, 0x24, 0x35, 0xE1, 0x10, 0x25, 0x4A, 0xAE, 0x00, 0x26, 0x15, 0xC3, 0x10, +0x27, 0x2A, 0x90, 0x00, 0x27, 0xFE, 0xDF, 0x90, 0x29, 0x0A, 0x72, 0x00, 0x29, 0xDE, 0xC1, 0x90, +0x2A, 0xEA, 0x54, 0x00, 0x2B, 0xBE, 0xA3, 0x90, 0x2C, 0xD3, 0x70, 0x80, 0x2D, 0x9E, 0x85, 0x90, +0x2E, 0xB3, 0x52, 0x80, 0x2F, 0x7E, 0x67, 0x90, 0x30, 0x93, 0x34, 0x80, 0x31, 0x67, 0x84, 0x10, +0x32, 0x73, 0x16, 0x80, 0x33, 0x47, 0x66, 0x10, 0x34, 0x52, 0xF8, 0x80, 0x35, 0x27, 0x48, 0x10, +0x36, 0x32, 0xDA, 0x80, 0x37, 0x07, 0x2A, 0x10, 0x38, 0x1B, 0xF7, 0x00, 0x38, 0xE6, 0xFE, 0x00, +0x39, 0xFB, 0xCA, 0xF0, 0x3A, 0x04, 0xE9, 0x50, 0x3A, 0xC6, 0xEE, 0x10, 0x3B, 0xDB, 0xBB, 0x00, +0x3C, 0xB0, 0x0A, 0x90, 0x3D, 0xBB, 0x9D, 0x00, 0x3E, 0x8F, 0xEC, 0x90, 0x3F, 0x9B, 0x7F, 0x00, +0x40, 0x6F, 0xCE, 0x90, 0x41, 0x84, 0x9B, 0x80, 0x42, 0x4F, 0xB0, 0x90, 0x43, 0x64, 0x7D, 0x80, +0x44, 0x2F, 0x92, 0x90, 0x45, 0x44, 0x5F, 0x80, 0x45, 0xF3, 0xC5, 0x10, 0x47, 0x2D, 0x7C, 0x00, +0x47, 0xD3, 0xA7, 0x10, 0x49, 0x0D, 0x5E, 0x00, 0x49, 0xB3, 0x89, 0x10, 0x4A, 0xED, 0x40, 0x00, +0x4B, 0x9C, 0xA5, 0x90, 0x4C, 0xD6, 0x5C, 0x80, 0x4D, 0x7C, 0x87, 0x90, 0x4E, 0xB6, 0x3E, 0x80, +0x4F, 0x5C, 0x69, 0x90, 0x50, 0x96, 0x20, 0x80, 0x51, 0x3C, 0x4B, 0x90, 0x52, 0x76, 0x02, 0x80, +0x53, 0x1C, 0x2D, 0x90, 0x54, 0x55, 0xE4, 0x80, 0x54, 0xFC, 0x0F, 0x90, 0x56, 0x35, 0xC6, 0x80, +0x56, 0xE5, 0x2C, 0x10, 0x58, 0x1E, 0xE3, 0x00, 0x58, 0xC5, 0x0E, 0x10, 0x59, 0xFE, 0xC5, 0x00, +0x5A, 0xA4, 0xF0, 0x10, 0x5B, 0xDE, 0xA7, 0x00, 0x5C, 0x84, 0xD2, 0x10, 0x5D, 0xBE, 0x89, 0x00, +0x5E, 0x64, 0xB4, 0x10, 0x5F, 0x9E, 0x6B, 0x00, 0x60, 0x4D, 0xD0, 0x90, 0x61, 0x87, 0x87, 0x80, +0x62, 0x2D, 0xB2, 0x90, 0x63, 0x67, 0x69, 0x80, 0x64, 0x0D, 0x94, 0x90, 0x65, 0x47, 0x4B, 0x80, +0x65, 0xED, 0x76, 0x90, 0x67, 0x27, 0x2D, 0x80, 0x67, 0xCD, 0x58, 0x90, 0x69, 0x07, 0x0F, 0x80, +0x69, 0xAD, 0x3A, 0x90, 0x6A, 0xE6, 0xF1, 0x80, 0x6B, 0x96, 0x57, 0x10, 0x6C, 0xD0, 0x0E, 0x00, +0x6D, 0x76, 0x39, 0x10, 0x6E, 0xAF, 0xF0, 0x00, 0x6F, 0x56, 0x1B, 0x10, 0x70, 0x8F, 0xD2, 0x00, +0x71, 0x35, 0xFD, 0x10, 0x72, 0x6F, 0xB4, 0x00, 0x73, 0x15, 0xDF, 0x10, 0x74, 0x4F, 0x96, 0x00, +0x74, 0xFE, 0xFB, 0x90, 0x76, 0x38, 0xB2, 0x80, 0x76, 0xDE, 0xDD, 0x90, 0x78, 0x18, 0x94, 0x80, +0x78, 0xBE, 0xBF, 0x90, 0x79, 0xF8, 0x76, 0x80, 0x7A, 0x9E, 0xA1, 0x90, 0x7B, 0xD8, 0x58, 0x80, +0x7C, 0x7E, 0x83, 0x90, 0x7D, 0xB8, 0x3A, 0x80, 0x7E, 0x5E, 0x65, 0x90, 0x7F, 0x98, 0x1C, 0x80, +0x03, 0x01, 0x02, 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, 0x06, 0x05, 0x07, 0x06, 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, 0x04, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, +0xFF, 0xAB, 0xA0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x00, +0x0C, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x10, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x14, 0xFF, 0xFF, 0xAB, +0xA0, 0x00, 0x18, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x1C, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x10, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x0C, 0x2D, 0x30, 0x30, 0x00, 0x4D, 0x57, 0x54, 0x00, 0x4D, 0x50, 0x54, -0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x44, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x43, 0x44, -0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 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, 0x0B, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x25, 0xFF, 0xFF, 0xFF, 0xFF, -0xA1, 0xF2, 0xCD, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x89, 0x0C, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, -0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x61, 0x18, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, -0xF7, 0x2F, 0x5A, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x28, 0x85, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x13, 0x69, 0x64, 0x10, 0x00, 0x00, 0x00, 0x00, 0x14, 0x59, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, -0x15, 0x49, 0x46, 0x10, 0x00, 0x00, 0x00, 0x00, 0x16, 0x39, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, -0x17, 0x29, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x18, 0x22, 0x45, 0x80, 0x00, 0x00, 0x00, 0x00, -0x19, 0x09, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x02, 0x27, 0x80, 0x00, 0x00, 0x00, 0x00, -0x1A, 0xF2, 0x26, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xE2, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, -0x1C, 0xD2, 0x08, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1D, 0xC1, 0xEB, 0x80, 0x00, 0x00, 0x00, 0x00, -0x1E, 0xB1, 0xEA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xA1, 0xCD, 0x80, 0x00, 0x00, 0x00, 0x00, -0x20, 0x76, 0x1D, 0x10, 0x00, 0x00, 0x00, 0x00, 0x21, 0x81, 0xAF, 0x80, 0x00, 0x00, 0x00, 0x00, -0x22, 0x55, 0xFF, 0x10, 0x00, 0x00, 0x00, 0x00, 0x23, 0x6A, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, -0x24, 0x35, 0xE1, 0x10, 0x00, 0x00, 0x00, 0x00, 0x25, 0x4A, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, -0x26, 0x15, 0xC3, 0x10, 0x00, 0x00, 0x00, 0x00, 0x27, 0x2A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, -0x27, 0xFE, 0xDF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x29, 0x0A, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, -0x29, 0xDE, 0xC1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xEA, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, -0x2B, 0xBE, 0xA3, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xD3, 0x70, 0x80, 0x00, 0x00, 0x00, 0x00, -0x2D, 0x9E, 0x85, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0xB3, 0x52, 0x80, 0x00, 0x00, 0x00, 0x00, -0x2F, 0x7E, 0x67, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0x93, 0x34, 0x80, 0x00, 0x00, 0x00, 0x00, -0x31, 0x67, 0x84, 0x10, 0x00, 0x00, 0x00, 0x00, 0x32, 0x73, 0x16, 0x80, 0x00, 0x00, 0x00, 0x00, -0x33, 0x47, 0x66, 0x10, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0xF8, 0x80, 0x00, 0x00, 0x00, 0x00, -0x35, 0x27, 0x48, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0xDA, 0x80, 0x00, 0x00, 0x00, 0x00, -0x37, 0x07, 0x2A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, -0x38, 0xE6, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0xCA, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x3A, 0x04, 0xE9, 0x50, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xC6, 0xEE, 0x10, 0x00, 0x00, 0x00, 0x00, -0x3B, 0xDB, 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xB0, 0x0A, 0x90, 0x00, 0x00, 0x00, 0x00, -0x3D, 0xBB, 0x9D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x8F, 0xEC, 0x90, 0x00, 0x00, 0x00, 0x00, -0x3F, 0x9B, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x6F, 0xCE, 0x90, 0x00, 0x00, 0x00, 0x00, -0x41, 0x84, 0x9B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0xB0, 0x90, 0x00, 0x00, 0x00, 0x00, -0x43, 0x64, 0x7D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x92, 0x90, 0x00, 0x00, 0x00, 0x00, -0x45, 0x44, 0x5F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0xC5, 0x10, 0x00, 0x00, 0x00, 0x00, -0x47, 0x2D, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0xD3, 0xA7, 0x10, 0x00, 0x00, 0x00, 0x00, -0x49, 0x0D, 0x5E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0xB3, 0x89, 0x10, 0x00, 0x00, 0x00, 0x00, -0x4A, 0xED, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0xA5, 0x90, 0x00, 0x00, 0x00, 0x00, -0x4C, 0xD6, 0x5C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x7C, 0x87, 0x90, 0x00, 0x00, 0x00, 0x00, -0x4E, 0xB6, 0x3E, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x5C, 0x69, 0x90, 0x00, 0x00, 0x00, 0x00, -0x50, 0x96, 0x20, 0x80, 0x00, 0x00, 0x00, 0x00, 0x51, 0x3C, 0x4B, 0x90, 0x00, 0x00, 0x00, 0x00, -0x52, 0x76, 0x02, 0x80, 0x00, 0x00, 0x00, 0x00, 0x53, 0x1C, 0x2D, 0x90, 0x00, 0x00, 0x00, 0x00, -0x54, 0x55, 0xE4, 0x80, 0x00, 0x00, 0x00, 0x00, 0x54, 0xFC, 0x0F, 0x90, 0x00, 0x00, 0x00, 0x00, -0x56, 0x35, 0xC6, 0x80, 0x00, 0x00, 0x00, 0x00, 0x56, 0xE5, 0x2C, 0x10, 0x00, 0x00, 0x00, 0x00, -0x58, 0x1E, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0xC5, 0x0E, 0x10, 0x00, 0x00, 0x00, 0x00, -0x59, 0xFE, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xA4, 0xF0, 0x10, 0x00, 0x00, 0x00, 0x00, -0x5B, 0xDE, 0xA7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x84, 0xD2, 0x10, 0x00, 0x00, 0x00, 0x00, -0x5D, 0xBE, 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x64, 0xB4, 0x10, 0x00, 0x00, 0x00, 0x00, -0x5F, 0x9E, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x4D, 0xD0, 0x90, 0x00, 0x00, 0x00, 0x00, -0x61, 0x87, 0x87, 0x80, 0x00, 0x00, 0x00, 0x00, 0x62, 0x2D, 0xB2, 0x90, 0x00, 0x00, 0x00, 0x00, -0x63, 0x67, 0x69, 0x80, 0x00, 0x00, 0x00, 0x00, 0x64, 0x0D, 0x94, 0x90, 0x00, 0x00, 0x00, 0x00, -0x65, 0x47, 0x4B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x65, 0xED, 0x76, 0x90, 0x00, 0x00, 0x00, 0x00, -0x67, 0x27, 0x2D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x67, 0xCD, 0x58, 0x90, 0x00, 0x00, 0x00, 0x00, -0x69, 0x07, 0x0F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x69, 0xAD, 0x3A, 0x90, 0x00, 0x00, 0x00, 0x00, -0x6A, 0xE6, 0xF1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x6B, 0x96, 0x57, 0x10, 0x00, 0x00, 0x00, 0x00, -0x6C, 0xD0, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x76, 0x39, 0x10, 0x00, 0x00, 0x00, 0x00, -0x6E, 0xAF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x56, 0x1B, 0x10, 0x00, 0x00, 0x00, 0x00, -0x70, 0x8F, 0xD2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x35, 0xFD, 0x10, 0x00, 0x00, 0x00, 0x00, -0x72, 0x6F, 0xB4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x15, 0xDF, 0x10, 0x00, 0x00, 0x00, 0x00, -0x74, 0x4F, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0xFE, 0xFB, 0x90, 0x00, 0x00, 0x00, 0x00, -0x76, 0x38, 0xB2, 0x80, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDE, 0xDD, 0x90, 0x00, 0x00, 0x00, 0x00, -0x78, 0x18, 0x94, 0x80, 0x00, 0x00, 0x00, 0x00, 0x78, 0xBE, 0xBF, 0x90, 0x00, 0x00, 0x00, 0x00, -0x79, 0xF8, 0x76, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x9E, 0xA1, 0x90, 0x00, 0x00, 0x00, 0x00, -0x7B, 0xD8, 0x58, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0x83, 0x90, 0x00, 0x00, 0x00, 0x00, -0x7D, 0xB8, 0x3A, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x5E, 0x65, 0x90, 0x00, 0x00, 0x00, 0x00, -0x7F, 0x98, 0x1C, 0x80, 0x03, 0x01, 0x02, 0x03, 0x04, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, -0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, -0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, -0x05, 0x07, 0x06, 0x08, 0x07, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, -0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, -0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, -0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, -0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, -0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x10, 0xFF, 0xFF, 0xAB, -0xA0, 0x01, 0x15, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x19, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x1D, 0xFF, -0xFF, 0xB9, 0xB0, 0x00, 0x21, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x15, 0xFF, 0xFF, 0x9D, 0x90, 0x00, -0x0C, 0x2D, 0x30, 0x30, 0x00, 0x4D, 0x57, 0x54, 0x00, 0x4D, 0x50, 0x54, 0x00, 0x4D, 0x53, 0x54, -0x00, 0x4D, 0x44, 0x44, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, -0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x4D, 0x53, 0x54, -0x37, 0x4D, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, -0x31, 0x2E, 0x30, 0x0A, 0x00, 0xF2, 0xC9, 0xDC, 0x00, 0x72, 0x5C, 0x42, 0x00, 0x00, 0x00, 0x14, -0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x2D, 0x20, 0x4E, 0x55, 0x20, 0x28, 0x77, -0x65, 0x73, 0x74, 0x29, +0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, +0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, +0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, +0x0A, 0x00, 0x00, 0x00, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xA1, 0xF2, 0xCD, 0x80, 0xFF, 0xFF, 0xFF, +0xFF, 0xCB, 0x89, 0x0C, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, +0xFF, 0xD2, 0x61, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x61, 0x19, 0x90, 0x00, 0x00, 0x00, +0x00, 0x05, 0x50, 0xFC, 0x80, 0x00, 0x00, 0x00, 0x00, 0x06, 0x40, 0xFB, 0x90, 0x00, 0x00, 0x00, +0x00, 0x07, 0x30, 0xDE, 0x80, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0xDD, 0x90, 0x00, 0x00, 0x00, +0x00, 0x09, 0x10, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0xBF, 0x90, 0x00, 0x00, 0x00, +0x00, 0x0A, 0xF0, 0xA2, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0B, 0xE0, 0xA1, 0x90, 0x00, 0x00, 0x00, +0x00, 0x0C, 0xD9, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0xC0, 0x83, 0x90, 0x00, 0x00, 0x00, +0x00, 0x0E, 0xB9, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA9, 0xA0, 0x10, 0x00, 0x00, 0x00, +0x00, 0x10, 0x99, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x89, 0x82, 0x10, 0x00, 0x00, 0x00, +0x00, 0x12, 0x79, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x64, 0x10, 0x00, 0x00, 0x00, +0x00, 0x14, 0x59, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x49, 0x46, 0x10, 0x00, 0x00, 0x00, +0x00, 0x16, 0x39, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x29, 0x28, 0x10, 0x00, 0x00, 0x00, +0x00, 0x18, 0x22, 0x45, 0x80, 0x00, 0x00, 0x00, 0x00, 0x19, 0x09, 0x0A, 0x10, 0x00, 0x00, 0x00, +0x00, 0x1A, 0x02, 0x27, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xF2, 0x26, 0x90, 0x00, 0x00, 0x00, +0x00, 0x1B, 0xE2, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xD2, 0x08, 0x90, 0x00, 0x00, 0x00, +0x00, 0x1D, 0xC1, 0xEB, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1E, 0xB1, 0xEA, 0x90, 0x00, 0x00, 0x00, +0x00, 0x1F, 0xA1, 0xCD, 0x80, 0x00, 0x00, 0x00, 0x00, 0x20, 0x76, 0x1D, 0x10, 0x00, 0x00, 0x00, +0x00, 0x21, 0x81, 0xAF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x22, 0x55, 0xFF, 0x10, 0x00, 0x00, 0x00, +0x00, 0x23, 0x6A, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x35, 0xE1, 0x10, 0x00, 0x00, 0x00, +0x00, 0x25, 0x4A, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x15, 0xC3, 0x10, 0x00, 0x00, 0x00, +0x00, 0x27, 0x2A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0xFE, 0xDF, 0x90, 0x00, 0x00, 0x00, +0x00, 0x29, 0x0A, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0xDE, 0xC1, 0x90, 0x00, 0x00, 0x00, +0x00, 0x2A, 0xEA, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xBE, 0xA3, 0x90, 0x00, 0x00, 0x00, +0x00, 0x2C, 0xD3, 0x70, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x9E, 0x85, 0x90, 0x00, 0x00, 0x00, +0x00, 0x2E, 0xB3, 0x52, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x7E, 0x67, 0x90, 0x00, 0x00, 0x00, +0x00, 0x30, 0x93, 0x34, 0x80, 0x00, 0x00, 0x00, 0x00, 0x31, 0x67, 0x84, 0x10, 0x00, 0x00, 0x00, +0x00, 0x32, 0x73, 0x16, 0x80, 0x00, 0x00, 0x00, 0x00, 0x33, 0x47, 0x66, 0x10, 0x00, 0x00, 0x00, +0x00, 0x34, 0x52, 0xF8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x35, 0x27, 0x48, 0x10, 0x00, 0x00, 0x00, +0x00, 0x36, 0x32, 0xDA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x37, 0x07, 0x2A, 0x10, 0x00, 0x00, 0x00, +0x00, 0x38, 0x1B, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xE6, 0xFE, 0x00, 0x00, 0x00, 0x00, +0x00, 0x39, 0xFB, 0xCA, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x3A, 0x04, 0xE9, 0x50, 0x00, 0x00, 0x00, +0x00, 0x3A, 0xC6, 0xEE, 0x10, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xDB, 0xBB, 0x00, 0x00, 0x00, 0x00, +0x00, 0x3C, 0xB0, 0x0A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x9D, 0x00, 0x00, 0x00, 0x00, +0x00, 0x3E, 0x8F, 0xEC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x7F, 0x00, 0x00, 0x00, 0x00, +0x00, 0x40, 0x6F, 0xCE, 0x90, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x9B, 0x80, 0x00, 0x00, 0x00, +0x00, 0x42, 0x4F, 0xB0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x7D, 0x80, 0x00, 0x00, 0x00, +0x00, 0x44, 0x2F, 0x92, 0x90, 0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0x5F, 0x80, 0x00, 0x00, 0x00, +0x00, 0x45, 0xF3, 0xC5, 0x10, 0x00, 0x00, 0x00, 0x00, 0x47, 0x2D, 0x7C, 0x00, 0x00, 0x00, 0x00, +0x00, 0x47, 0xD3, 0xA7, 0x10, 0x00, 0x00, 0x00, 0x00, 0x49, 0x0D, 0x5E, 0x00, 0x00, 0x00, 0x00, +0x00, 0x49, 0xB3, 0x89, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xED, 0x40, 0x00, 0x00, 0x00, 0x00, +0x00, 0x4B, 0x9C, 0xA5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xD6, 0x5C, 0x80, 0x00, 0x00, 0x00, +0x00, 0x4D, 0x7C, 0x87, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xB6, 0x3E, 0x80, 0x00, 0x00, 0x00, +0x00, 0x4F, 0x5C, 0x69, 0x90, 0x00, 0x00, 0x00, 0x00, 0x50, 0x96, 0x20, 0x80, 0x00, 0x00, 0x00, +0x00, 0x51, 0x3C, 0x4B, 0x90, 0x00, 0x00, 0x00, 0x00, 0x52, 0x76, 0x02, 0x80, 0x00, 0x00, 0x00, +0x00, 0x53, 0x1C, 0x2D, 0x90, 0x00, 0x00, 0x00, 0x00, 0x54, 0x55, 0xE4, 0x80, 0x00, 0x00, 0x00, +0x00, 0x54, 0xFC, 0x0F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x56, 0x35, 0xC6, 0x80, 0x00, 0x00, 0x00, +0x00, 0x56, 0xE5, 0x2C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x58, 0x1E, 0xE3, 0x00, 0x00, 0x00, 0x00, +0x00, 0x58, 0xC5, 0x0E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x59, 0xFE, 0xC5, 0x00, 0x00, 0x00, 0x00, +0x00, 0x5A, 0xA4, 0xF0, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xDE, 0xA7, 0x00, 0x00, 0x00, 0x00, +0x00, 0x5C, 0x84, 0xD2, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xBE, 0x89, 0x00, 0x00, 0x00, 0x00, +0x00, 0x5E, 0x64, 0xB4, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x9E, 0x6B, 0x00, 0x00, 0x00, 0x00, +0x00, 0x60, 0x4D, 0xD0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x61, 0x87, 0x87, 0x80, 0x00, 0x00, 0x00, +0x00, 0x62, 0x2D, 0xB2, 0x90, 0x00, 0x00, 0x00, 0x00, 0x63, 0x67, 0x69, 0x80, 0x00, 0x00, 0x00, +0x00, 0x64, 0x0D, 0x94, 0x90, 0x00, 0x00, 0x00, 0x00, 0x65, 0x47, 0x4B, 0x80, 0x00, 0x00, 0x00, +0x00, 0x65, 0xED, 0x76, 0x90, 0x00, 0x00, 0x00, 0x00, 0x67, 0x27, 0x2D, 0x80, 0x00, 0x00, 0x00, +0x00, 0x67, 0xCD, 0x58, 0x90, 0x00, 0x00, 0x00, 0x00, 0x69, 0x07, 0x0F, 0x80, 0x00, 0x00, 0x00, +0x00, 0x69, 0xAD, 0x3A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xE6, 0xF1, 0x80, 0x00, 0x00, 0x00, +0x00, 0x6B, 0x96, 0x57, 0x10, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xD0, 0x0E, 0x00, 0x00, 0x00, 0x00, +0x00, 0x6D, 0x76, 0x39, 0x10, 0x00, 0x00, 0x00, 0x00, 0x6E, 0xAF, 0xF0, 0x00, 0x00, 0x00, 0x00, +0x00, 0x6F, 0x56, 0x1B, 0x10, 0x00, 0x00, 0x00, 0x00, 0x70, 0x8F, 0xD2, 0x00, 0x00, 0x00, 0x00, +0x00, 0x71, 0x35, 0xFD, 0x10, 0x00, 0x00, 0x00, 0x00, 0x72, 0x6F, 0xB4, 0x00, 0x00, 0x00, 0x00, +0x00, 0x73, 0x15, 0xDF, 0x10, 0x00, 0x00, 0x00, 0x00, 0x74, 0x4F, 0x96, 0x00, 0x00, 0x00, 0x00, +0x00, 0x74, 0xFE, 0xFB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x76, 0x38, 0xB2, 0x80, 0x00, 0x00, 0x00, +0x00, 0x76, 0xDE, 0xDD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x78, 0x18, 0x94, 0x80, 0x00, 0x00, 0x00, +0x00, 0x78, 0xBE, 0xBF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x79, 0xF8, 0x76, 0x80, 0x00, 0x00, 0x00, +0x00, 0x7A, 0x9E, 0xA1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7B, 0xD8, 0x58, 0x80, 0x00, 0x00, 0x00, +0x00, 0x7C, 0x7E, 0x83, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7D, 0xB8, 0x3A, 0x80, 0x00, 0x00, 0x00, +0x00, 0x7E, 0x5E, 0x65, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x98, 0x1C, 0x80, 0x03, 0x01, 0x02, +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, 0x06, 0x05, 0x07, 0x06, 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, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, +0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x0C, 0xFF, 0xFF, +0xAB, 0xA0, 0x01, 0x10, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x14, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x18, +0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x1C, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x10, 0xFF, 0xFF, 0x9D, 0x90, +0x00, 0x0C, 0x2D, 0x30, 0x30, 0x00, 0x4D, 0x57, 0x54, 0x00, 0x4D, 0x50, 0x54, 0x00, 0x4D, 0x53, +0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x45, 0x53, +0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x4D, 0x53, 0x54, 0x37, 0x4D, 0x44, 0x54, 0x2C, 0x4D, +0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xF2, +0xC9, 0xDC, 0x00, 0x72, 0x5C, 0x42, 0x00, 0x00, 0x00, 0x14, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, +0x69, 0x6E, 0x20, 0x2D, 0x20, 0x4E, 0x55, 0x20, 0x28, 0x77, 0x65, 0x73, 0x74, 0x29, /* America/Campo_Grande */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x42, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -28286,10 +28443,8 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { 0xB9, 0xB0, 0x01, 0x10, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x45, 0x44, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x45, 0x53, 0x54, -0x35, 0x0A, 0x00, 0xA9, 0x7F, 0xED, 0x00, 0x8E, 0x43, 0x45, 0x00, 0x00, 0x00, 0x24, 0x45, 0x61, -0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x53, 0x74, 0x61, 0x6E, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, -0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x51, 0x75, 0x69, 0x6E, 0x74, 0x61, 0x6E, 0x61, 0x20, 0x52, -0x6F, 0x6F, +0x35, 0x0A, 0x00, 0xA9, 0x7F, 0xED, 0x00, 0x8E, 0x43, 0x45, 0x00, 0x00, 0x00, 0x0C, 0x51, 0x75, +0x69, 0x6E, 0x74, 0x61, 0x6E, 0x61, 0x20, 0x52, 0x6F, 0x6F, /* America/Caracas */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x56, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -28709,11 +28864,111 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { 0xAB, 0xA0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x43, 0x53, 0x54, 0x36, 0x0A, 0x00, 0xB5, -0x05, 0x25, 0x00, 0x70, 0xC9, 0xB2, 0x00, 0x00, 0x00, 0x26, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, -0x69, 0x6E, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x43, 0x68, 0x69, 0x68, 0x75, 0x61, +0x05, 0x25, 0x00, 0x70, 0xC9, 0xB2, 0x00, 0x00, 0x00, 0x16, 0x43, 0x68, 0x69, 0x68, 0x75, 0x61, 0x68, 0x75, 0x61, 0x20, 0x28, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x61, 0x72, 0x65, 0x61, 0x73, 0x29, +/* America/Ciudad_Juarez */ +0x50, 0x48, 0x50, 0x32, 0x01, 0x4D, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x14, 0xA5, 0xB6, 0xE8, 0x70, +0xAF, 0xF2, 0x6E, 0xE0, 0xB6, 0x66, 0x56, 0x60, 0xB7, 0x43, 0xD2, 0x60, 0xB8, 0x0C, 0x36, 0x60, +0xB8, 0xFD, 0x86, 0xF0, 0x31, 0x67, 0x76, 0x00, 0x32, 0x73, 0x08, 0x70, 0x33, 0x47, 0x58, 0x00, +0x34, 0x52, 0xEA, 0x70, 0x35, 0x27, 0x48, 0x10, 0x36, 0x32, 0xDA, 0x80, 0x37, 0x07, 0x2A, 0x10, +0x38, 0x1B, 0xF7, 0x00, 0x38, 0xE7, 0x0C, 0x10, 0x39, 0xFB, 0xD9, 0x00, 0x3A, 0xF5, 0x12, 0x90, +0x3B, 0xB6, 0xD1, 0x00, 0x3C, 0xB0, 0x0A, 0x90, 0x3D, 0xBB, 0x9D, 0x00, 0x3E, 0x8F, 0xEC, 0x90, +0x3F, 0x9B, 0x7F, 0x00, 0x40, 0x6F, 0xCE, 0x90, 0x41, 0x84, 0x9B, 0x80, 0x42, 0x4F, 0xB0, 0x90, +0x43, 0x64, 0x7D, 0x80, 0x44, 0x2F, 0x92, 0x90, 0x45, 0x44, 0x5F, 0x80, 0x46, 0x0F, 0x74, 0x90, +0x47, 0x24, 0x41, 0x80, 0x47, 0xF8, 0x91, 0x10, 0x49, 0x04, 0x23, 0x80, 0x49, 0xD8, 0x73, 0x10, +0x4A, 0xE4, 0x05, 0x80, 0x4B, 0x9C, 0xA5, 0x90, 0x4C, 0xD6, 0x5C, 0x80, 0x4D, 0x7C, 0x87, 0x90, +0x4E, 0xB6, 0x3E, 0x80, 0x4F, 0x5C, 0x69, 0x90, 0x50, 0x96, 0x20, 0x80, 0x51, 0x3C, 0x4B, 0x90, +0x52, 0x76, 0x02, 0x80, 0x53, 0x1C, 0x2D, 0x90, 0x54, 0x55, 0xE4, 0x80, 0x54, 0xFC, 0x0F, 0x90, +0x56, 0x35, 0xC6, 0x80, 0x56, 0xE5, 0x2C, 0x10, 0x58, 0x1E, 0xE3, 0x00, 0x58, 0xC5, 0x0E, 0x10, +0x59, 0xFE, 0xC5, 0x00, 0x5A, 0xA4, 0xF0, 0x10, 0x5B, 0xDE, 0xA7, 0x00, 0x5C, 0x84, 0xD2, 0x10, +0x5D, 0xBE, 0x89, 0x00, 0x5E, 0x64, 0xB4, 0x10, 0x5F, 0x9E, 0x6B, 0x00, 0x60, 0x4D, 0xD0, 0x90, +0x61, 0x87, 0x87, 0x80, 0x62, 0x2D, 0xB2, 0x90, 0x63, 0x5E, 0x2F, 0x00, 0x63, 0x86, 0xF1, 0x60, +0x64, 0x0D, 0x94, 0x90, 0x65, 0x47, 0x4B, 0x80, 0x65, 0xED, 0x76, 0x90, 0x67, 0x27, 0x2D, 0x80, +0x67, 0xCD, 0x58, 0x90, 0x69, 0x07, 0x0F, 0x80, 0x69, 0xAD, 0x3A, 0x90, 0x6A, 0xE6, 0xF1, 0x80, +0x6B, 0x96, 0x57, 0x10, 0x6C, 0xD0, 0x0E, 0x00, 0x6D, 0x76, 0x39, 0x10, 0x6E, 0xAF, 0xF0, 0x00, +0x6F, 0x56, 0x1B, 0x10, 0x70, 0x8F, 0xD2, 0x00, 0x71, 0x35, 0xFD, 0x10, 0x72, 0x6F, 0xB4, 0x00, +0x73, 0x15, 0xDF, 0x10, 0x74, 0x4F, 0x96, 0x00, 0x74, 0xFE, 0xFB, 0x90, 0x76, 0x38, 0xB2, 0x80, +0x76, 0xDE, 0xDD, 0x90, 0x78, 0x18, 0x94, 0x80, 0x78, 0xBE, 0xBF, 0x90, 0x79, 0xF8, 0x76, 0x80, +0x7A, 0x9E, 0xA1, 0x90, 0x7B, 0xD8, 0x58, 0x80, 0x7C, 0x7E, 0x83, 0x90, 0x7D, 0xB8, 0x3A, 0x80, +0x7E, 0x5E, 0x65, 0x90, 0x7F, 0x98, 0x1C, 0x80, 0x01, 0x02, 0x04, 0x03, 0x04, 0x02, 0x05, 0x02, +0x05, 0x02, 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, 0x02, 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, 0xFF, 0xFF, 0x9C, 0x2C, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, +0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x0C, 0xFF, 0xFF, 0x9D, 0x90, 0x00, +0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x10, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x0C, 0x4C, 0x4D, 0x54, +0x00, 0x4D, 0x53, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x43, 0x44, 0x54, +0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 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, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x5B, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x14, 0xFF, 0xFF, 0xFF, 0xFF, 0xA5, +0xB6, 0xE8, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xAF, 0xF2, 0x6E, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xB6, +0x66, 0x56, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xB7, 0x43, 0xD2, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xB8, +0x0C, 0x36, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xB8, 0xFD, 0x86, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x31, +0x67, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x73, 0x08, 0x70, 0x00, 0x00, 0x00, 0x00, 0x33, +0x47, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0xEA, 0x70, 0x00, 0x00, 0x00, 0x00, 0x35, +0x27, 0x48, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0xDA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x37, +0x07, 0x2A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, +0xE7, 0x0C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0xD9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, +0xF5, 0x12, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xB6, 0xD1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, +0xB0, 0x0A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x9D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, +0x8F, 0xEC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, +0x6F, 0xCE, 0x90, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x9B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x42, +0x4F, 0xB0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x7D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x44, +0x2F, 0x92, 0x90, 0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0x5F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x46, +0x0F, 0x74, 0x90, 0x00, 0x00, 0x00, 0x00, 0x47, 0x24, 0x41, 0x80, 0x00, 0x00, 0x00, 0x00, 0x47, +0xF8, 0x91, 0x10, 0x00, 0x00, 0x00, 0x00, 0x49, 0x04, 0x23, 0x80, 0x00, 0x00, 0x00, 0x00, 0x49, +0xD8, 0x73, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xE4, 0x05, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4B, +0x9C, 0xA5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xD6, 0x5C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4D, +0x7C, 0x87, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xB6, 0x3E, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4F, +0x5C, 0x69, 0x90, 0x00, 0x00, 0x00, 0x00, 0x50, 0x96, 0x20, 0x80, 0x00, 0x00, 0x00, 0x00, 0x51, +0x3C, 0x4B, 0x90, 0x00, 0x00, 0x00, 0x00, 0x52, 0x76, 0x02, 0x80, 0x00, 0x00, 0x00, 0x00, 0x53, +0x1C, 0x2D, 0x90, 0x00, 0x00, 0x00, 0x00, 0x54, 0x55, 0xE4, 0x80, 0x00, 0x00, 0x00, 0x00, 0x54, +0xFC, 0x0F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x56, 0x35, 0xC6, 0x80, 0x00, 0x00, 0x00, 0x00, 0x56, +0xE5, 0x2C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x58, 0x1E, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, +0xC5, 0x0E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x59, 0xFE, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5A, +0xA4, 0xF0, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xDE, 0xA7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, +0x84, 0xD2, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xBE, 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, +0x64, 0xB4, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x9E, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, +0x4D, 0xD0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x61, 0x87, 0x87, 0x80, 0x00, 0x00, 0x00, 0x00, 0x62, +0x2D, 0xB2, 0x90, 0x00, 0x00, 0x00, 0x00, 0x63, 0x5E, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, +0x86, 0xF1, 0x60, 0x00, 0x00, 0x00, 0x00, 0x64, 0x0D, 0x94, 0x90, 0x00, 0x00, 0x00, 0x00, 0x65, +0x47, 0x4B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x65, 0xED, 0x76, 0x90, 0x00, 0x00, 0x00, 0x00, 0x67, +0x27, 0x2D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x67, 0xCD, 0x58, 0x90, 0x00, 0x00, 0x00, 0x00, 0x69, +0x07, 0x0F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x69, 0xAD, 0x3A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6A, +0xE6, 0xF1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x6B, 0x96, 0x57, 0x10, 0x00, 0x00, 0x00, 0x00, 0x6C, +0xD0, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x76, 0x39, 0x10, 0x00, 0x00, 0x00, 0x00, 0x6E, +0xAF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x56, 0x1B, 0x10, 0x00, 0x00, 0x00, 0x00, 0x70, +0x8F, 0xD2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x35, 0xFD, 0x10, 0x00, 0x00, 0x00, 0x00, 0x72, +0x6F, 0xB4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x15, 0xDF, 0x10, 0x00, 0x00, 0x00, 0x00, 0x74, +0x4F, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0xFE, 0xFB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x76, +0x38, 0xB2, 0x80, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDE, 0xDD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x78, +0x18, 0x94, 0x80, 0x00, 0x00, 0x00, 0x00, 0x78, 0xBE, 0xBF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x79, +0xF8, 0x76, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x9E, 0xA1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7B, +0xD8, 0x58, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0x83, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7D, +0xB8, 0x3A, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x5E, 0x65, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7F, +0x98, 0x1C, 0x80, 0x01, 0x02, 0x04, 0x03, 0x04, 0x02, 0x05, 0x02, 0x05, 0x02, 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, 0x02, 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, 0xFF, 0xFF, +0x9C, 0x2C, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, +0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x0C, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, +0x01, 0x10, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, +0x43, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x00, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x4D, 0x53, 0x54, 0x37, 0x4D, +0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, +0x30, 0x0A, 0x00, 0xB9, 0xC0, 0x15, 0x00, 0x70, 0x2D, 0x72, 0x00, 0x00, 0x00, 0x1C, 0x43, 0x68, +0x69, 0x68, 0x75, 0x61, 0x68, 0x75, 0x61, 0x20, 0x28, 0x55, 0x53, 0x20, 0x62, 0x6F, 0x72, 0x64, +0x65, 0x72, 0x20, 0x2D, 0x20, 0x77, 0x65, 0x73, 0x74, 0x29, + /* America/Coral_Harbour */ 0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 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, @@ -30297,8 +30552,8 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { /* America/Godthab */ 0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0C, 0x9B, 0x80, 0x68, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0C, 0x9B, 0x80, 0x68, 0x00, 0x13, 0x4D, 0x7C, 0x50, 0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, @@ -30320,99 +30575,73 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, -0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, -0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, -0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, -0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, -0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, -0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, -0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, -0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, -0x01, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x01, 0x04, 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, +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, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x05, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, +0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, +0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, +0x2D, 0x30, 0x32, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 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, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0C, 0xFF, 0xFF, 0xFF, 0xFF, +0x9B, 0x80, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x4D, 0x7C, 0x50, 0x00, 0x00, 0x00, 0x00, +0x14, 0x33, 0xFA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x15, 0x23, 0xEB, 0x90, 0x00, 0x00, 0x00, 0x00, +0x16, 0x13, 0xDC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x17, 0x03, 0xCD, 0x90, 0x00, 0x00, 0x00, 0x00, +0x17, 0xF3, 0xBE, 0x90, 0x00, 0x00, 0x00, 0x00, 0x18, 0xE3, 0xAF, 0x90, 0x00, 0x00, 0x00, 0x00, +0x19, 0xD3, 0xA0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xC3, 0x91, 0x90, 0x00, 0x00, 0x00, 0x00, +0x1B, 0xBC, 0xBD, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xAC, 0xAE, 0x10, 0x00, 0x00, 0x00, 0x00, +0x1D, 0x9C, 0x9F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x8C, 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, +0x1F, 0x7C, 0x81, 0x10, 0x00, 0x00, 0x00, 0x00, 0x20, 0x6C, 0x72, 0x10, 0x00, 0x00, 0x00, 0x00, +0x21, 0x5C, 0x63, 0x10, 0x00, 0x00, 0x00, 0x00, 0x22, 0x4C, 0x54, 0x10, 0x00, 0x00, 0x00, 0x00, +0x23, 0x3C, 0x45, 0x10, 0x00, 0x00, 0x00, 0x00, 0x24, 0x2C, 0x36, 0x10, 0x00, 0x00, 0x00, 0x00, +0x25, 0x1C, 0x27, 0x10, 0x00, 0x00, 0x00, 0x00, 0x26, 0x0C, 0x18, 0x10, 0x00, 0x00, 0x00, 0x00, +0x27, 0x05, 0x43, 0x90, 0x00, 0x00, 0x00, 0x00, 0x27, 0xF5, 0x34, 0x90, 0x00, 0x00, 0x00, 0x00, +0x28, 0xE5, 0x25, 0x90, 0x00, 0x00, 0x00, 0x00, 0x29, 0xD5, 0x16, 0x90, 0x00, 0x00, 0x00, 0x00, +0x2A, 0xC5, 0x07, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xF8, 0x90, 0x00, 0x00, 0x00, 0x00, +0x2C, 0xA4, 0xE9, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xDA, 0x90, 0x00, 0x00, 0x00, 0x00, +0x2E, 0x84, 0xCB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xBC, 0x90, 0x00, 0x00, 0x00, 0x00, +0x30, 0x64, 0xAD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x00, 0x00, 0x00, 0x00, +0x32, 0x72, 0xB4, 0x10, 0x00, 0x00, 0x00, 0x00, 0x33, 0x3D, 0xBB, 0x10, 0x00, 0x00, 0x00, 0x00, +0x34, 0x52, 0x96, 0x10, 0x00, 0x00, 0x00, 0x00, 0x35, 0x1D, 0x9D, 0x10, 0x00, 0x00, 0x00, 0x00, +0x36, 0x32, 0x78, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0xFD, 0x7F, 0x10, 0x00, 0x00, 0x00, 0x00, +0x38, 0x1B, 0x94, 0x90, 0x00, 0x00, 0x00, 0x00, 0x38, 0xDD, 0x61, 0x10, 0x00, 0x00, 0x00, 0x00, +0x39, 0xFB, 0x76, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xBD, 0x43, 0x10, 0x00, 0x00, 0x00, 0x00, +0x3B, 0xDB, 0x58, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xA6, 0x5F, 0x90, 0x00, 0x00, 0x00, 0x00, +0x3D, 0xBB, 0x3A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x86, 0x41, 0x90, 0x00, 0x00, 0x00, 0x00, +0x3F, 0x9B, 0x1C, 0x90, 0x00, 0x00, 0x00, 0x00, 0x40, 0x66, 0x23, 0x90, 0x00, 0x00, 0x00, 0x00, +0x41, 0x84, 0x39, 0x10, 0x00, 0x00, 0x00, 0x00, 0x42, 0x46, 0x05, 0x90, 0x00, 0x00, 0x00, 0x00, +0x43, 0x64, 0x1B, 0x10, 0x00, 0x00, 0x00, 0x00, 0x44, 0x25, 0xE7, 0x90, 0x00, 0x00, 0x00, 0x00, +0x45, 0x43, 0xFD, 0x10, 0x00, 0x00, 0x00, 0x00, 0x46, 0x05, 0xC9, 0x90, 0x00, 0x00, 0x00, 0x00, +0x47, 0x23, 0xDF, 0x10, 0x00, 0x00, 0x00, 0x00, 0x47, 0xEE, 0xE6, 0x10, 0x00, 0x00, 0x00, 0x00, +0x49, 0x03, 0xC1, 0x10, 0x00, 0x00, 0x00, 0x00, 0x49, 0xCE, 0xC8, 0x10, 0x00, 0x00, 0x00, 0x00, +0x4A, 0xE3, 0xA3, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4B, 0xAE, 0xAA, 0x10, 0x00, 0x00, 0x00, 0x00, +0x4C, 0xCC, 0xBF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x8E, 0x8C, 0x10, 0x00, 0x00, 0x00, 0x00, +0x4E, 0xAC, 0xA1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x6E, 0x6E, 0x10, 0x00, 0x00, 0x00, 0x00, +0x50, 0x8C, 0x83, 0x90, 0x00, 0x00, 0x00, 0x00, 0x51, 0x57, 0x8A, 0x90, 0x00, 0x00, 0x00, 0x00, +0x52, 0x6C, 0x65, 0x90, 0x00, 0x00, 0x00, 0x00, 0x53, 0x37, 0x6C, 0x90, 0x00, 0x00, 0x00, 0x00, +0x54, 0x4C, 0x47, 0x90, 0x00, 0x00, 0x00, 0x00, 0x55, 0x17, 0x4E, 0x90, 0x00, 0x00, 0x00, 0x00, +0x56, 0x2C, 0x29, 0x90, 0x00, 0x00, 0x00, 0x00, 0x56, 0xF7, 0x30, 0x90, 0x00, 0x00, 0x00, 0x00, +0x58, 0x15, 0x46, 0x10, 0x00, 0x00, 0x00, 0x00, 0x58, 0xD7, 0x12, 0x90, 0x00, 0x00, 0x00, 0x00, +0x59, 0xF5, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xB6, 0xF4, 0x90, 0x00, 0x00, 0x00, 0x00, +0x5B, 0xD5, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5C, 0xA0, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, +0x5D, 0xB4, 0xEC, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x7F, 0xF3, 0x10, 0x00, 0x00, 0x00, 0x00, +0x5F, 0x94, 0xCE, 0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x5F, 0xD5, 0x10, 0x00, 0x00, 0x00, 0x00, +0x61, 0x7D, 0xEA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x62, 0x3F, 0xB7, 0x10, 0x00, 0x00, 0x00, 0x00, +0x63, 0x5D, 0xCC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x64, 0x1F, 0x99, 0x10, 0x01, 0x04, 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, 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, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, -0x02, 0x03, 0x02, 0x03, 0x02, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, -0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, -0xE0, 0x01, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x00, -0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x33, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, -0x05, 0x00, 0x00, 0x00, 0x0C, 0xFF, 0xFF, 0xFF, 0xFF, 0x9B, 0x80, 0x68, 0x00, 0x00, 0x00, 0x00, -0x00, 0x13, 0x4D, 0x7C, 0x50, 0x00, 0x00, 0x00, 0x00, 0x14, 0x33, 0xFA, 0x90, 0x00, 0x00, 0x00, -0x00, 0x15, 0x23, 0xEB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x16, 0x13, 0xDC, 0x90, 0x00, 0x00, 0x00, -0x00, 0x17, 0x03, 0xCD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x17, 0xF3, 0xBE, 0x90, 0x00, 0x00, 0x00, -0x00, 0x18, 0xE3, 0xAF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x19, 0xD3, 0xA0, 0x90, 0x00, 0x00, 0x00, -0x00, 0x1A, 0xC3, 0x91, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xBC, 0xBD, 0x10, 0x00, 0x00, 0x00, -0x00, 0x1C, 0xAC, 0xAE, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x9C, 0x9F, 0x10, 0x00, 0x00, 0x00, -0x00, 0x1E, 0x8C, 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x7C, 0x81, 0x10, 0x00, 0x00, 0x00, -0x00, 0x20, 0x6C, 0x72, 0x10, 0x00, 0x00, 0x00, 0x00, 0x21, 0x5C, 0x63, 0x10, 0x00, 0x00, 0x00, -0x00, 0x22, 0x4C, 0x54, 0x10, 0x00, 0x00, 0x00, 0x00, 0x23, 0x3C, 0x45, 0x10, 0x00, 0x00, 0x00, -0x00, 0x24, 0x2C, 0x36, 0x10, 0x00, 0x00, 0x00, 0x00, 0x25, 0x1C, 0x27, 0x10, 0x00, 0x00, 0x00, -0x00, 0x26, 0x0C, 0x18, 0x10, 0x00, 0x00, 0x00, 0x00, 0x27, 0x05, 0x43, 0x90, 0x00, 0x00, 0x00, -0x00, 0x27, 0xF5, 0x34, 0x90, 0x00, 0x00, 0x00, 0x00, 0x28, 0xE5, 0x25, 0x90, 0x00, 0x00, 0x00, -0x00, 0x29, 0xD5, 0x16, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xC5, 0x07, 0x90, 0x00, 0x00, 0x00, -0x00, 0x2B, 0xB4, 0xF8, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xE9, 0x90, 0x00, 0x00, 0x00, -0x00, 0x2D, 0x94, 0xDA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0xCB, 0x90, 0x00, 0x00, 0x00, -0x00, 0x2F, 0x74, 0xBC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0xAD, 0x90, 0x00, 0x00, 0x00, -0x00, 0x31, 0x5D, 0xD9, 0x10, 0x00, 0x00, 0x00, 0x00, 0x32, 0x72, 0xB4, 0x10, 0x00, 0x00, 0x00, -0x00, 0x33, 0x3D, 0xBB, 0x10, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0x96, 0x10, 0x00, 0x00, 0x00, -0x00, 0x35, 0x1D, 0x9D, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0x78, 0x10, 0x00, 0x00, 0x00, -0x00, 0x36, 0xFD, 0x7F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0x94, 0x90, 0x00, 0x00, 0x00, -0x00, 0x38, 0xDD, 0x61, 0x10, 0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0x76, 0x90, 0x00, 0x00, 0x00, -0x00, 0x3A, 0xBD, 0x43, 0x10, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xDB, 0x58, 0x90, 0x00, 0x00, 0x00, -0x00, 0x3C, 0xA6, 0x5F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x3A, 0x90, 0x00, 0x00, 0x00, -0x00, 0x3E, 0x86, 0x41, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x1C, 0x90, 0x00, 0x00, 0x00, -0x00, 0x40, 0x66, 0x23, 0x90, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x39, 0x10, 0x00, 0x00, 0x00, -0x00, 0x42, 0x46, 0x05, 0x90, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x1B, 0x10, 0x00, 0x00, 0x00, -0x00, 0x44, 0x25, 0xE7, 0x90, 0x00, 0x00, 0x00, 0x00, 0x45, 0x43, 0xFD, 0x10, 0x00, 0x00, 0x00, -0x00, 0x46, 0x05, 0xC9, 0x90, 0x00, 0x00, 0x00, 0x00, 0x47, 0x23, 0xDF, 0x10, 0x00, 0x00, 0x00, -0x00, 0x47, 0xEE, 0xE6, 0x10, 0x00, 0x00, 0x00, 0x00, 0x49, 0x03, 0xC1, 0x10, 0x00, 0x00, 0x00, -0x00, 0x49, 0xCE, 0xC8, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xE3, 0xA3, 0x10, 0x00, 0x00, 0x00, -0x00, 0x4B, 0xAE, 0xAA, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xCC, 0xBF, 0x90, 0x00, 0x00, 0x00, -0x00, 0x4D, 0x8E, 0x8C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xAC, 0xA1, 0x90, 0x00, 0x00, 0x00, -0x00, 0x4F, 0x6E, 0x6E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x50, 0x8C, 0x83, 0x90, 0x00, 0x00, 0x00, -0x00, 0x51, 0x57, 0x8A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x52, 0x6C, 0x65, 0x90, 0x00, 0x00, 0x00, -0x00, 0x53, 0x37, 0x6C, 0x90, 0x00, 0x00, 0x00, 0x00, 0x54, 0x4C, 0x47, 0x90, 0x00, 0x00, 0x00, -0x00, 0x55, 0x17, 0x4E, 0x90, 0x00, 0x00, 0x00, 0x00, 0x56, 0x2C, 0x29, 0x90, 0x00, 0x00, 0x00, -0x00, 0x56, 0xF7, 0x30, 0x90, 0x00, 0x00, 0x00, 0x00, 0x58, 0x15, 0x46, 0x10, 0x00, 0x00, 0x00, -0x00, 0x58, 0xD7, 0x12, 0x90, 0x00, 0x00, 0x00, 0x00, 0x59, 0xF5, 0x28, 0x10, 0x00, 0x00, 0x00, -0x00, 0x5A, 0xB6, 0xF4, 0x90, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xD5, 0x0A, 0x10, 0x00, 0x00, 0x00, -0x00, 0x5C, 0xA0, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xB4, 0xEC, 0x10, 0x00, 0x00, 0x00, -0x00, 0x5E, 0x7F, 0xF3, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x94, 0xCE, 0x10, 0x00, 0x00, 0x00, -0x00, 0x60, 0x5F, 0xD5, 0x10, 0x00, 0x00, 0x00, 0x00, 0x61, 0x7D, 0xEA, 0x90, 0x00, 0x00, 0x00, -0x00, 0x62, 0x3F, 0xB7, 0x10, 0x00, 0x00, 0x00, 0x00, 0x63, 0x5D, 0xCC, 0x90, 0x00, 0x00, 0x00, -0x00, 0x64, 0x1F, 0x99, 0x10, 0x00, 0x00, 0x00, 0x00, 0x65, 0x3D, 0xAE, 0x90, 0x00, 0x00, 0x00, -0x00, 0x66, 0x08, 0xB5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x67, 0x1D, 0x90, 0x90, 0x00, 0x00, 0x00, -0x00, 0x67, 0xE8, 0x97, 0x90, 0x00, 0x00, 0x00, 0x00, 0x68, 0xFD, 0x72, 0x90, 0x00, 0x00, 0x00, -0x00, 0x69, 0xC8, 0x79, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xDD, 0x54, 0x90, 0x00, 0x00, 0x00, -0x00, 0x6B, 0xA8, 0x5B, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xC6, 0x71, 0x10, 0x00, 0x00, 0x00, -0x00, 0x6D, 0x88, 0x3D, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6E, 0xA6, 0x53, 0x10, 0x00, 0x00, 0x00, -0x00, 0x6F, 0x68, 0x1F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x70, 0x86, 0x35, 0x10, 0x00, 0x00, 0x00, -0x00, 0x71, 0x51, 0x3C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x72, 0x66, 0x17, 0x10, 0x00, 0x00, 0x00, -0x00, 0x73, 0x31, 0x1E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x74, 0x45, 0xF9, 0x10, 0x00, 0x00, 0x00, -0x00, 0x75, 0x11, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x76, 0x2F, 0x15, 0x90, 0x00, 0x00, 0x00, -0x00, 0x76, 0xF0, 0xE2, 0x10, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0E, 0xF7, 0x90, 0x00, 0x00, 0x00, -0x00, 0x78, 0xD0, 0xC4, 0x10, 0x00, 0x00, 0x00, 0x00, 0x79, 0xEE, 0xD9, 0x90, 0x00, 0x00, 0x00, -0x00, 0x7A, 0xB0, 0xA6, 0x10, 0x00, 0x00, 0x00, 0x00, 0x7B, 0xCE, 0xBB, 0x90, 0x00, 0x00, 0x00, -0x00, 0x7C, 0x99, 0xC2, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7D, 0xAE, 0x9D, 0x90, 0x00, 0x00, 0x00, -0x00, 0x7E, 0x79, 0xA4, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x8E, 0x7F, 0x90, 0x01, 0x04, 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, 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, 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, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, -0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, -0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x00, 0x00, 0x01, 0x01, -0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x0A, 0x3C, 0x2D, 0x30, 0x33, 0x3E, 0x33, 0x3C, 0x2D, 0x30, -0x32, 0x3E, 0x2C, 0x4D, 0x33, 0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x2D, 0x32, 0x2C, 0x4D, 0x31, 0x30, -0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x2D, 0x31, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x02, 0x03, 0x02, 0x05, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, +0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, +0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, +0x2D, 0x30, 0x32, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, +0x0A, 0x3C, 0x2D, 0x30, 0x32, 0x3E, 0x32, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* America/Goose_Bay */ @@ -31227,9 +31456,7 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x4D, 0x53, 0x54, 0x37, 0x0A, 0x00, 0xB5, 0xAE, 0x6A, 0x00, 0x69, 0x56, 0x25, -0x00, 0x00, 0x00, 0x1F, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x53, 0x74, 0x61, -0x6E, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x53, 0x6F, 0x6E, -0x6F, 0x72, 0x61, +0x00, 0x00, 0x00, 0x06, 0x53, 0x6F, 0x6E, 0x6F, 0x72, 0x61, /* America/Indiana/Indianapolis */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -32280,37 +32507,122 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { /* America/Inuvik */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x41, 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, 0x78, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x15, 0xE0, 0x06, 0x4E, 0x80, -0xF7, 0x2F, 0x68, 0x80, 0xF8, 0x28, 0x94, 0x00, 0x11, 0x89, 0x90, 0x20, 0x13, 0x69, 0x64, 0x10, -0x14, 0x59, 0x47, 0x00, 0x15, 0x49, 0x46, 0x10, 0x16, 0x39, 0x29, 0x00, 0x17, 0x29, 0x28, 0x10, -0x18, 0x22, 0x45, 0x80, 0x19, 0x09, 0x0A, 0x10, 0x1A, 0x02, 0x27, 0x80, 0x1A, 0xF2, 0x26, 0x90, -0x1B, 0xE2, 0x09, 0x80, 0x1C, 0xD2, 0x08, 0x90, 0x1D, 0xC1, 0xEB, 0x80, 0x1E, 0xB1, 0xEA, 0x90, -0x1F, 0xA1, 0xCD, 0x80, 0x20, 0x76, 0x1D, 0x10, 0x21, 0x81, 0xAF, 0x80, 0x22, 0x55, 0xFF, 0x10, -0x23, 0x6A, 0xCC, 0x00, 0x24, 0x35, 0xE1, 0x10, 0x25, 0x4A, 0xAE, 0x00, 0x26, 0x15, 0xC3, 0x10, -0x27, 0x2A, 0x90, 0x00, 0x27, 0xFE, 0xDF, 0x90, 0x29, 0x0A, 0x72, 0x00, 0x29, 0xDE, 0xC1, 0x90, -0x2A, 0xEA, 0x54, 0x00, 0x2B, 0xBE, 0xA3, 0x90, 0x2C, 0xD3, 0x70, 0x80, 0x2D, 0x9E, 0x85, 0x90, -0x2E, 0xB3, 0x52, 0x80, 0x2F, 0x7E, 0x67, 0x90, 0x30, 0x93, 0x34, 0x80, 0x31, 0x67, 0x84, 0x10, -0x32, 0x73, 0x16, 0x80, 0x33, 0x47, 0x66, 0x10, 0x34, 0x52, 0xF8, 0x80, 0x35, 0x27, 0x48, 0x10, -0x36, 0x32, 0xDA, 0x80, 0x37, 0x07, 0x2A, 0x10, 0x38, 0x1B, 0xF7, 0x00, 0x38, 0xE7, 0x0C, 0x10, -0x39, 0xFB, 0xD9, 0x00, 0x3A, 0xC6, 0xEE, 0x10, 0x3B, 0xDB, 0xBB, 0x00, 0x3C, 0xB0, 0x0A, 0x90, -0x3D, 0xBB, 0x9D, 0x00, 0x3E, 0x8F, 0xEC, 0x90, 0x3F, 0x9B, 0x7F, 0x00, 0x40, 0x6F, 0xCE, 0x90, -0x41, 0x84, 0x9B, 0x80, 0x42, 0x4F, 0xB0, 0x90, 0x43, 0x64, 0x7D, 0x80, 0x44, 0x2F, 0x92, 0x90, -0x45, 0x44, 0x5F, 0x80, 0x45, 0xF3, 0xC5, 0x10, 0x47, 0x2D, 0x7C, 0x00, 0x47, 0xD3, 0xA7, 0x10, -0x49, 0x0D, 0x5E, 0x00, 0x49, 0xB3, 0x89, 0x10, 0x4A, 0xED, 0x40, 0x00, 0x4B, 0x9C, 0xA5, 0x90, -0x4C, 0xD6, 0x5C, 0x80, 0x4D, 0x7C, 0x87, 0x90, 0x4E, 0xB6, 0x3E, 0x80, 0x4F, 0x5C, 0x69, 0x90, -0x50, 0x96, 0x20, 0x80, 0x51, 0x3C, 0x4B, 0x90, 0x52, 0x76, 0x02, 0x80, 0x53, 0x1C, 0x2D, 0x90, -0x54, 0x55, 0xE4, 0x80, 0x54, 0xFC, 0x0F, 0x90, 0x56, 0x35, 0xC6, 0x80, 0x56, 0xE5, 0x2C, 0x10, -0x58, 0x1E, 0xE3, 0x00, 0x58, 0xC5, 0x0E, 0x10, 0x59, 0xFE, 0xC5, 0x00, 0x5A, 0xA4, 0xF0, 0x10, -0x5B, 0xDE, 0xA7, 0x00, 0x5C, 0x84, 0xD2, 0x10, 0x5D, 0xBE, 0x89, 0x00, 0x5E, 0x64, 0xB4, 0x10, -0x5F, 0x9E, 0x6B, 0x00, 0x60, 0x4D, 0xD0, 0x90, 0x61, 0x87, 0x87, 0x80, 0x62, 0x2D, 0xB2, 0x90, -0x63, 0x67, 0x69, 0x80, 0x64, 0x0D, 0x94, 0x90, 0x65, 0x47, 0x4B, 0x80, 0x65, 0xED, 0x76, 0x90, -0x67, 0x27, 0x2D, 0x80, 0x67, 0xCD, 0x58, 0x90, 0x69, 0x07, 0x0F, 0x80, 0x69, 0xAD, 0x3A, 0x90, -0x6A, 0xE6, 0xF1, 0x80, 0x6B, 0x96, 0x57, 0x10, 0x6C, 0xD0, 0x0E, 0x00, 0x6D, 0x76, 0x39, 0x10, -0x6E, 0xAF, 0xF0, 0x00, 0x6F, 0x56, 0x1B, 0x10, 0x70, 0x8F, 0xD2, 0x00, 0x71, 0x35, 0xFD, 0x10, -0x72, 0x6F, 0xB4, 0x00, 0x73, 0x15, 0xDF, 0x10, 0x74, 0x4F, 0x96, 0x00, 0x74, 0xFE, 0xFB, 0x90, -0x76, 0x38, 0xB2, 0x80, 0x76, 0xDE, 0xDD, 0x90, 0x78, 0x18, 0x94, 0x80, 0x78, 0xBE, 0xBF, 0x90, -0x79, 0xF8, 0x76, 0x80, 0x7A, 0x9E, 0xA1, 0x90, 0x7B, 0xD8, 0x58, 0x80, 0x7C, 0x7E, 0x83, 0x90, -0x7D, 0xB8, 0x3A, 0x80, 0x7E, 0x5E, 0x65, 0x90, 0x7F, 0x98, 0x1C, 0x80, 0x02, 0x01, 0x02, 0x03, +0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0xE0, 0x06, 0x4E, 0x80, +0x04, 0x61, 0x27, 0xA0, 0x05, 0x51, 0x0A, 0x90, 0x06, 0x41, 0x09, 0xA0, 0x07, 0x30, 0xEC, 0x90, +0x08, 0x20, 0xEB, 0xA0, 0x09, 0x10, 0xCE, 0x90, 0x0A, 0x00, 0xCD, 0xA0, 0x0A, 0xF0, 0xB0, 0x90, +0x0B, 0xE0, 0xAF, 0xA0, 0x0C, 0xD9, 0xCD, 0x10, 0x0D, 0xC0, 0x91, 0xA0, 0x0E, 0xB9, 0xAF, 0x10, +0x0F, 0xA9, 0xAE, 0x20, 0x10, 0x99, 0x91, 0x10, 0x11, 0x89, 0x90, 0x20, 0x12, 0x79, 0x65, 0x00, +0x13, 0x69, 0x64, 0x10, 0x14, 0x59, 0x47, 0x00, 0x15, 0x49, 0x46, 0x10, 0x16, 0x39, 0x29, 0x00, +0x17, 0x29, 0x28, 0x10, 0x18, 0x22, 0x45, 0x80, 0x19, 0x09, 0x0A, 0x10, 0x1A, 0x02, 0x27, 0x80, +0x1A, 0xF2, 0x26, 0x90, 0x1B, 0xE2, 0x09, 0x80, 0x1C, 0xD2, 0x08, 0x90, 0x1D, 0xC1, 0xEB, 0x80, +0x1E, 0xB1, 0xEA, 0x90, 0x1F, 0xA1, 0xCD, 0x80, 0x20, 0x76, 0x1D, 0x10, 0x21, 0x81, 0xAF, 0x80, +0x22, 0x55, 0xFF, 0x10, 0x23, 0x6A, 0xCC, 0x00, 0x24, 0x35, 0xE1, 0x10, 0x25, 0x4A, 0xAE, 0x00, +0x26, 0x15, 0xC3, 0x10, 0x27, 0x2A, 0x90, 0x00, 0x27, 0xFE, 0xDF, 0x90, 0x29, 0x0A, 0x72, 0x00, +0x29, 0xDE, 0xC1, 0x90, 0x2A, 0xEA, 0x54, 0x00, 0x2B, 0xBE, 0xA3, 0x90, 0x2C, 0xD3, 0x70, 0x80, +0x2D, 0x9E, 0x85, 0x90, 0x2E, 0xB3, 0x52, 0x80, 0x2F, 0x7E, 0x67, 0x90, 0x30, 0x93, 0x34, 0x80, +0x31, 0x67, 0x84, 0x10, 0x32, 0x73, 0x16, 0x80, 0x33, 0x47, 0x66, 0x10, 0x34, 0x52, 0xF8, 0x80, +0x35, 0x27, 0x48, 0x10, 0x36, 0x32, 0xDA, 0x80, 0x37, 0x07, 0x2A, 0x10, 0x38, 0x1B, 0xF7, 0x00, +0x38, 0xE7, 0x0C, 0x10, 0x39, 0xFB, 0xD9, 0x00, 0x3A, 0xC6, 0xEE, 0x10, 0x3B, 0xDB, 0xBB, 0x00, +0x3C, 0xB0, 0x0A, 0x90, 0x3D, 0xBB, 0x9D, 0x00, 0x3E, 0x8F, 0xEC, 0x90, 0x3F, 0x9B, 0x7F, 0x00, +0x40, 0x6F, 0xCE, 0x90, 0x41, 0x84, 0x9B, 0x80, 0x42, 0x4F, 0xB0, 0x90, 0x43, 0x64, 0x7D, 0x80, +0x44, 0x2F, 0x92, 0x90, 0x45, 0x44, 0x5F, 0x80, 0x45, 0xF3, 0xC5, 0x10, 0x47, 0x2D, 0x7C, 0x00, +0x47, 0xD3, 0xA7, 0x10, 0x49, 0x0D, 0x5E, 0x00, 0x49, 0xB3, 0x89, 0x10, 0x4A, 0xED, 0x40, 0x00, +0x4B, 0x9C, 0xA5, 0x90, 0x4C, 0xD6, 0x5C, 0x80, 0x4D, 0x7C, 0x87, 0x90, 0x4E, 0xB6, 0x3E, 0x80, +0x4F, 0x5C, 0x69, 0x90, 0x50, 0x96, 0x20, 0x80, 0x51, 0x3C, 0x4B, 0x90, 0x52, 0x76, 0x02, 0x80, +0x53, 0x1C, 0x2D, 0x90, 0x54, 0x55, 0xE4, 0x80, 0x54, 0xFC, 0x0F, 0x90, 0x56, 0x35, 0xC6, 0x80, +0x56, 0xE5, 0x2C, 0x10, 0x58, 0x1E, 0xE3, 0x00, 0x58, 0xC5, 0x0E, 0x10, 0x59, 0xFE, 0xC5, 0x00, +0x5A, 0xA4, 0xF0, 0x10, 0x5B, 0xDE, 0xA7, 0x00, 0x5C, 0x84, 0xD2, 0x10, 0x5D, 0xBE, 0x89, 0x00, +0x5E, 0x64, 0xB4, 0x10, 0x5F, 0x9E, 0x6B, 0x00, 0x60, 0x4D, 0xD0, 0x90, 0x61, 0x87, 0x87, 0x80, +0x62, 0x2D, 0xB2, 0x90, 0x63, 0x67, 0x69, 0x80, 0x64, 0x0D, 0x94, 0x90, 0x65, 0x47, 0x4B, 0x80, +0x65, 0xED, 0x76, 0x90, 0x67, 0x27, 0x2D, 0x80, 0x67, 0xCD, 0x58, 0x90, 0x69, 0x07, 0x0F, 0x80, +0x69, 0xAD, 0x3A, 0x90, 0x6A, 0xE6, 0xF1, 0x80, 0x6B, 0x96, 0x57, 0x10, 0x6C, 0xD0, 0x0E, 0x00, +0x6D, 0x76, 0x39, 0x10, 0x6E, 0xAF, 0xF0, 0x00, 0x6F, 0x56, 0x1B, 0x10, 0x70, 0x8F, 0xD2, 0x00, +0x71, 0x35, 0xFD, 0x10, 0x72, 0x6F, 0xB4, 0x00, 0x73, 0x15, 0xDF, 0x10, 0x74, 0x4F, 0x96, 0x00, +0x74, 0xFE, 0xFB, 0x90, 0x76, 0x38, 0xB2, 0x80, 0x76, 0xDE, 0xDD, 0x90, 0x78, 0x18, 0x94, 0x80, +0x78, 0xBE, 0xBF, 0x90, 0x79, 0xF8, 0x76, 0x80, 0x7A, 0x9E, 0xA1, 0x90, 0x7B, 0xD8, 0x58, 0x80, +0x7C, 0x7E, 0x83, 0x90, 0x7D, 0xB8, 0x3A, 0x80, 0x7E, 0x5E, 0x65, 0x90, 0x7F, 0x98, 0x1C, 0x80, +0x02, 0x01, 0x02, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x01, +0x04, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x0C, 0xFF, 0xFF, 0xAB, +0xA0, 0x01, 0x10, 0x2D, 0x30, 0x30, 0x00, 0x50, 0x44, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x4D, +0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 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, 0x85, 0x00, 0x00, 0x00, 0x05, 0x00, +0x00, 0x00, 0x14, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x06, 0x4E, 0x80, 0x00, 0x00, 0x00, 0x00, 0x04, +0x61, 0x27, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x05, 0x51, 0x0A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x06, +0x41, 0x09, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x30, 0xEC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x08, +0x20, 0xEB, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x09, 0x10, 0xCE, 0x90, 0x00, 0x00, 0x00, 0x00, 0x0A, +0x00, 0xCD, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x0A, 0xF0, 0xB0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x0B, +0xE0, 0xAF, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x0C, 0xD9, 0xCD, 0x10, 0x00, 0x00, 0x00, 0x00, 0x0D, +0xC0, 0x91, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x0E, 0xB9, 0xAF, 0x10, 0x00, 0x00, 0x00, 0x00, 0x0F, +0xA9, 0xAE, 0x20, 0x00, 0x00, 0x00, 0x00, 0x10, 0x99, 0x91, 0x10, 0x00, 0x00, 0x00, 0x00, 0x11, +0x89, 0x90, 0x20, 0x00, 0x00, 0x00, 0x00, 0x12, 0x79, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, +0x69, 0x64, 0x10, 0x00, 0x00, 0x00, 0x00, 0x14, 0x59, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, +0x49, 0x46, 0x10, 0x00, 0x00, 0x00, 0x00, 0x16, 0x39, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, +0x29, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x18, 0x22, 0x45, 0x80, 0x00, 0x00, 0x00, 0x00, 0x19, +0x09, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x02, 0x27, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1A, +0xF2, 0x26, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xE2, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1C, +0xD2, 0x08, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1D, 0xC1, 0xEB, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1E, +0xB1, 0xEA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xA1, 0xCD, 0x80, 0x00, 0x00, 0x00, 0x00, 0x20, +0x76, 0x1D, 0x10, 0x00, 0x00, 0x00, 0x00, 0x21, 0x81, 0xAF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x22, +0x55, 0xFF, 0x10, 0x00, 0x00, 0x00, 0x00, 0x23, 0x6A, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, +0x35, 0xE1, 0x10, 0x00, 0x00, 0x00, 0x00, 0x25, 0x4A, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, +0x15, 0xC3, 0x10, 0x00, 0x00, 0x00, 0x00, 0x27, 0x2A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, +0xFE, 0xDF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x29, 0x0A, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, +0xDE, 0xC1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xEA, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B, +0xBE, 0xA3, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xD3, 0x70, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2D, +0x9E, 0x85, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0xB3, 0x52, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2F, +0x7E, 0x67, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0x93, 0x34, 0x80, 0x00, 0x00, 0x00, 0x00, 0x31, +0x67, 0x84, 0x10, 0x00, 0x00, 0x00, 0x00, 0x32, 0x73, 0x16, 0x80, 0x00, 0x00, 0x00, 0x00, 0x33, +0x47, 0x66, 0x10, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0xF8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x35, +0x27, 0x48, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0xDA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x37, +0x07, 0x2A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, +0xE7, 0x0C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0xD9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, +0xC6, 0xEE, 0x10, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xDB, 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, +0xB0, 0x0A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x9D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, +0x8F, 0xEC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, +0x6F, 0xCE, 0x90, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x9B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x42, +0x4F, 0xB0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x7D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x44, +0x2F, 0x92, 0x90, 0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0x5F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x45, +0xF3, 0xC5, 0x10, 0x00, 0x00, 0x00, 0x00, 0x47, 0x2D, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, +0xD3, 0xA7, 0x10, 0x00, 0x00, 0x00, 0x00, 0x49, 0x0D, 0x5E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, +0xB3, 0x89, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xED, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4B, +0x9C, 0xA5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xD6, 0x5C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4D, +0x7C, 0x87, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xB6, 0x3E, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4F, +0x5C, 0x69, 0x90, 0x00, 0x00, 0x00, 0x00, 0x50, 0x96, 0x20, 0x80, 0x00, 0x00, 0x00, 0x00, 0x51, +0x3C, 0x4B, 0x90, 0x00, 0x00, 0x00, 0x00, 0x52, 0x76, 0x02, 0x80, 0x00, 0x00, 0x00, 0x00, 0x53, +0x1C, 0x2D, 0x90, 0x00, 0x00, 0x00, 0x00, 0x54, 0x55, 0xE4, 0x80, 0x00, 0x00, 0x00, 0x00, 0x54, +0xFC, 0x0F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x56, 0x35, 0xC6, 0x80, 0x00, 0x00, 0x00, 0x00, 0x56, +0xE5, 0x2C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x58, 0x1E, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, +0xC5, 0x0E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x59, 0xFE, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5A, +0xA4, 0xF0, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xDE, 0xA7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, +0x84, 0xD2, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xBE, 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, +0x64, 0xB4, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x9E, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, +0x4D, 0xD0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x61, 0x87, 0x87, 0x80, 0x00, 0x00, 0x00, 0x00, 0x62, +0x2D, 0xB2, 0x90, 0x00, 0x00, 0x00, 0x00, 0x63, 0x67, 0x69, 0x80, 0x00, 0x00, 0x00, 0x00, 0x64, +0x0D, 0x94, 0x90, 0x00, 0x00, 0x00, 0x00, 0x65, 0x47, 0x4B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x65, +0xED, 0x76, 0x90, 0x00, 0x00, 0x00, 0x00, 0x67, 0x27, 0x2D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x67, +0xCD, 0x58, 0x90, 0x00, 0x00, 0x00, 0x00, 0x69, 0x07, 0x0F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x69, +0xAD, 0x3A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xE6, 0xF1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x6B, +0x96, 0x57, 0x10, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xD0, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6D, +0x76, 0x39, 0x10, 0x00, 0x00, 0x00, 0x00, 0x6E, 0xAF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6F, +0x56, 0x1B, 0x10, 0x00, 0x00, 0x00, 0x00, 0x70, 0x8F, 0xD2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, +0x35, 0xFD, 0x10, 0x00, 0x00, 0x00, 0x00, 0x72, 0x6F, 0xB4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, +0x15, 0xDF, 0x10, 0x00, 0x00, 0x00, 0x00, 0x74, 0x4F, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, +0xFE, 0xFB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x76, 0x38, 0xB2, 0x80, 0x00, 0x00, 0x00, 0x00, 0x76, +0xDE, 0xDD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x78, 0x18, 0x94, 0x80, 0x00, 0x00, 0x00, 0x00, 0x78, +0xBE, 0xBF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x79, 0xF8, 0x76, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7A, +0x9E, 0xA1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7B, 0xD8, 0x58, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7C, +0x7E, 0x83, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7D, 0xB8, 0x3A, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7E, +0x5E, 0x65, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x98, 0x1C, 0x80, 0x02, 0x01, 0x02, 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, 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, @@ -32318,219 +32630,155 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { 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, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x04, -0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x09, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x0D, 0xFF, 0xFF, 0xAB, 0xA0, -0x01, 0x11, 0x2D, 0x30, 0x30, 0x00, 0x50, 0x44, 0x44, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x4D, -0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 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, 0x78, 0x00, 0x00, 0x00, 0x05, 0x00, -0x00, 0x00, 0x15, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x06, 0x4E, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, -0x2F, 0x68, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x28, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, -0x89, 0x90, 0x20, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x64, 0x10, 0x00, 0x00, 0x00, 0x00, 0x14, -0x59, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x49, 0x46, 0x10, 0x00, 0x00, 0x00, 0x00, 0x16, -0x39, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x29, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x18, -0x22, 0x45, 0x80, 0x00, 0x00, 0x00, 0x00, 0x19, 0x09, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1A, -0x02, 0x27, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xF2, 0x26, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1B, -0xE2, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xD2, 0x08, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1D, -0xC1, 0xEB, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1E, 0xB1, 0xEA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1F, -0xA1, 0xCD, 0x80, 0x00, 0x00, 0x00, 0x00, 0x20, 0x76, 0x1D, 0x10, 0x00, 0x00, 0x00, 0x00, 0x21, -0x81, 0xAF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x22, 0x55, 0xFF, 0x10, 0x00, 0x00, 0x00, 0x00, 0x23, -0x6A, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x35, 0xE1, 0x10, 0x00, 0x00, 0x00, 0x00, 0x25, -0x4A, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x15, 0xC3, 0x10, 0x00, 0x00, 0x00, 0x00, 0x27, -0x2A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0xFE, 0xDF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x29, -0x0A, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0xDE, 0xC1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2A, -0xEA, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xBE, 0xA3, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, -0xD3, 0x70, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x9E, 0x85, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, -0xB3, 0x52, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x7E, 0x67, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, -0x93, 0x34, 0x80, 0x00, 0x00, 0x00, 0x00, 0x31, 0x67, 0x84, 0x10, 0x00, 0x00, 0x00, 0x00, 0x32, -0x73, 0x16, 0x80, 0x00, 0x00, 0x00, 0x00, 0x33, 0x47, 0x66, 0x10, 0x00, 0x00, 0x00, 0x00, 0x34, -0x52, 0xF8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x35, 0x27, 0x48, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, -0x32, 0xDA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x37, 0x07, 0x2A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x38, -0x1B, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xE7, 0x0C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x39, -0xFB, 0xD9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xC6, 0xEE, 0x10, 0x00, 0x00, 0x00, 0x00, 0x3B, -0xDB, 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xB0, 0x0A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3D, -0xBB, 0x9D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x8F, 0xEC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3F, -0x9B, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x6F, 0xCE, 0x90, 0x00, 0x00, 0x00, 0x00, 0x41, -0x84, 0x9B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0xB0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x43, -0x64, 0x7D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x92, 0x90, 0x00, 0x00, 0x00, 0x00, 0x45, -0x44, 0x5F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0xC5, 0x10, 0x00, 0x00, 0x00, 0x00, 0x47, -0x2D, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0xD3, 0xA7, 0x10, 0x00, 0x00, 0x00, 0x00, 0x49, -0x0D, 0x5E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0xB3, 0x89, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4A, -0xED, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0xA5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4C, -0xD6, 0x5C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x7C, 0x87, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4E, -0xB6, 0x3E, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x5C, 0x69, 0x90, 0x00, 0x00, 0x00, 0x00, 0x50, -0x96, 0x20, 0x80, 0x00, 0x00, 0x00, 0x00, 0x51, 0x3C, 0x4B, 0x90, 0x00, 0x00, 0x00, 0x00, 0x52, -0x76, 0x02, 0x80, 0x00, 0x00, 0x00, 0x00, 0x53, 0x1C, 0x2D, 0x90, 0x00, 0x00, 0x00, 0x00, 0x54, -0x55, 0xE4, 0x80, 0x00, 0x00, 0x00, 0x00, 0x54, 0xFC, 0x0F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x56, -0x35, 0xC6, 0x80, 0x00, 0x00, 0x00, 0x00, 0x56, 0xE5, 0x2C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x58, -0x1E, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0xC5, 0x0E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x59, -0xFE, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xA4, 0xF0, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5B, -0xDE, 0xA7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x84, 0xD2, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5D, -0xBE, 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x64, 0xB4, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5F, -0x9E, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x4D, 0xD0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x61, -0x87, 0x87, 0x80, 0x00, 0x00, 0x00, 0x00, 0x62, 0x2D, 0xB2, 0x90, 0x00, 0x00, 0x00, 0x00, 0x63, -0x67, 0x69, 0x80, 0x00, 0x00, 0x00, 0x00, 0x64, 0x0D, 0x94, 0x90, 0x00, 0x00, 0x00, 0x00, 0x65, -0x47, 0x4B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x65, 0xED, 0x76, 0x90, 0x00, 0x00, 0x00, 0x00, 0x67, -0x27, 0x2D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x67, 0xCD, 0x58, 0x90, 0x00, 0x00, 0x00, 0x00, 0x69, -0x07, 0x0F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x69, 0xAD, 0x3A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6A, -0xE6, 0xF1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x6B, 0x96, 0x57, 0x10, 0x00, 0x00, 0x00, 0x00, 0x6C, -0xD0, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x76, 0x39, 0x10, 0x00, 0x00, 0x00, 0x00, 0x6E, -0xAF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x56, 0x1B, 0x10, 0x00, 0x00, 0x00, 0x00, 0x70, -0x8F, 0xD2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x35, 0xFD, 0x10, 0x00, 0x00, 0x00, 0x00, 0x72, -0x6F, 0xB4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x15, 0xDF, 0x10, 0x00, 0x00, 0x00, 0x00, 0x74, -0x4F, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0xFE, 0xFB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x76, -0x38, 0xB2, 0x80, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDE, 0xDD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x78, -0x18, 0x94, 0x80, 0x00, 0x00, 0x00, 0x00, 0x78, 0xBE, 0xBF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x79, -0xF8, 0x76, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x9E, 0xA1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7B, -0xD8, 0x58, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0x83, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7D, -0xB8, 0x3A, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x5E, 0x65, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7F, -0x98, 0x1C, 0x80, 0x02, 0x01, 0x02, 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, 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, 0x00, 0x00, 0x00, -0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x04, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x09, 0xFF, 0xFF, 0x9D, -0x90, 0x00, 0x0D, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x11, 0x2D, 0x30, 0x30, 0x00, 0x50, 0x44, 0x44, -0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x0A, 0x4D, -0x53, 0x54, 0x37, 0x4D, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, -0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xF1, 0x9F, 0x5C, 0x00, 0x46, 0x9F, 0x6D, 0x00, 0x00, -0x00, 0x14, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x2D, 0x20, 0x4E, 0x54, 0x20, -0x28, 0x77, 0x65, 0x73, 0x74, 0x29, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x04, 0xFF, 0xFF, 0x8F, 0x80, +0x00, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x0C, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x10, 0x2D, 0x30, +0x30, 0x00, 0x50, 0x44, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x44, +0x54, 0x00, 0x0A, 0x4D, 0x53, 0x54, 0x37, 0x4D, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, +0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xF1, 0x9F, 0x5C, 0x00, 0x46, +0x9F, 0x6D, 0x00, 0x00, 0x00, 0x14, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x2D, +0x20, 0x4E, 0x54, 0x20, 0x28, 0x77, 0x65, 0x73, 0x74, 0x29, /* America/Iqaluit */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x41, 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, 0x00, 0x79, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x21, 0xCC, 0x6C, 0xA1, 0x80, -0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xFB, 0xE0, 0xF7, 0x2F, 0x3E, 0x50, 0xF8, 0x28, 0x69, 0xD0, -0x13, 0x69, 0x47, 0xF0, 0x14, 0x59, 0x2A, 0xE0, 0x15, 0x49, 0x29, 0xF0, 0x16, 0x39, 0x0C, 0xE0, -0x17, 0x29, 0x0B, 0xF0, 0x18, 0x22, 0x29, 0x60, 0x19, 0x08, 0xED, 0xF0, 0x1A, 0x02, 0x0B, 0x60, -0x1A, 0xF2, 0x0A, 0x70, 0x1B, 0xE1, 0xED, 0x60, 0x1C, 0xD1, 0xEC, 0x70, 0x1D, 0xC1, 0xCF, 0x60, -0x1E, 0xB1, 0xCE, 0x70, 0x1F, 0xA1, 0xB1, 0x60, 0x20, 0x76, 0x00, 0xF0, 0x21, 0x81, 0x93, 0x60, -0x22, 0x55, 0xE2, 0xF0, 0x23, 0x6A, 0xAF, 0xE0, 0x24, 0x35, 0xC4, 0xF0, 0x25, 0x4A, 0x91, 0xE0, -0x26, 0x15, 0xA6, 0xF0, 0x27, 0x2A, 0x73, 0xE0, 0x27, 0xFE, 0xC3, 0x70, 0x29, 0x0A, 0x55, 0xE0, -0x29, 0xDE, 0xA5, 0x70, 0x2A, 0xEA, 0x37, 0xE0, 0x2B, 0xBE, 0x87, 0x70, 0x2C, 0xD3, 0x54, 0x60, -0x2D, 0x9E, 0x69, 0x70, 0x2E, 0xB3, 0x36, 0x60, 0x2F, 0x7E, 0x4B, 0x70, 0x30, 0x93, 0x18, 0x60, -0x31, 0x67, 0x67, 0xF0, 0x32, 0x72, 0xFA, 0x60, 0x33, 0x47, 0x49, 0xF0, 0x34, 0x52, 0xDC, 0x60, -0x35, 0x27, 0x2B, 0xF0, 0x36, 0x32, 0xBE, 0x60, 0x37, 0x07, 0x0D, 0xF0, 0x38, 0x1B, 0xDA, 0xE0, -0x38, 0xE6, 0xFE, 0x00, 0x39, 0xFB, 0xCA, 0xF0, 0x3A, 0xC6, 0xD1, 0xF0, 0x3B, 0xDB, 0x9E, 0xE0, -0x3C, 0xAF, 0xEE, 0x70, 0x3D, 0xBB, 0x80, 0xE0, 0x3E, 0x8F, 0xD0, 0x70, 0x3F, 0x9B, 0x62, 0xE0, -0x40, 0x6F, 0xB2, 0x70, 0x41, 0x84, 0x7F, 0x60, 0x42, 0x4F, 0x94, 0x70, 0x43, 0x64, 0x61, 0x60, -0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x43, 0x60, 0x45, 0xF3, 0xA8, 0xF0, 0x47, 0x2D, 0x5F, 0xE0, -0x47, 0xD3, 0x8A, 0xF0, 0x49, 0x0D, 0x41, 0xE0, 0x49, 0xB3, 0x6C, 0xF0, 0x4A, 0xED, 0x23, 0xE0, -0x4B, 0x9C, 0x89, 0x70, 0x4C, 0xD6, 0x40, 0x60, 0x4D, 0x7C, 0x6B, 0x70, 0x4E, 0xB6, 0x22, 0x60, -0x4F, 0x5C, 0x4D, 0x70, 0x50, 0x96, 0x04, 0x60, 0x51, 0x3C, 0x2F, 0x70, 0x52, 0x75, 0xE6, 0x60, -0x53, 0x1C, 0x11, 0x70, 0x54, 0x55, 0xC8, 0x60, 0x54, 0xFB, 0xF3, 0x70, 0x56, 0x35, 0xAA, 0x60, -0x56, 0xE5, 0x0F, 0xF0, 0x58, 0x1E, 0xC6, 0xE0, 0x58, 0xC4, 0xF1, 0xF0, 0x59, 0xFE, 0xA8, 0xE0, -0x5A, 0xA4, 0xD3, 0xF0, 0x5B, 0xDE, 0x8A, 0xE0, 0x5C, 0x84, 0xB5, 0xF0, 0x5D, 0xBE, 0x6C, 0xE0, -0x5E, 0x64, 0x97, 0xF0, 0x5F, 0x9E, 0x4E, 0xE0, 0x60, 0x4D, 0xB4, 0x70, 0x61, 0x87, 0x6B, 0x60, -0x62, 0x2D, 0x96, 0x70, 0x63, 0x67, 0x4D, 0x60, 0x64, 0x0D, 0x78, 0x70, 0x65, 0x47, 0x2F, 0x60, -0x65, 0xED, 0x5A, 0x70, 0x67, 0x27, 0x11, 0x60, 0x67, 0xCD, 0x3C, 0x70, 0x69, 0x06, 0xF3, 0x60, -0x69, 0xAD, 0x1E, 0x70, 0x6A, 0xE6, 0xD5, 0x60, 0x6B, 0x96, 0x3A, 0xF0, 0x6C, 0xCF, 0xF1, 0xE0, -0x6D, 0x76, 0x1C, 0xF0, 0x6E, 0xAF, 0xD3, 0xE0, 0x6F, 0x55, 0xFE, 0xF0, 0x70, 0x8F, 0xB5, 0xE0, -0x71, 0x35, 0xE0, 0xF0, 0x72, 0x6F, 0x97, 0xE0, 0x73, 0x15, 0xC2, 0xF0, 0x74, 0x4F, 0x79, 0xE0, -0x74, 0xFE, 0xDF, 0x70, 0x76, 0x38, 0x96, 0x60, 0x76, 0xDE, 0xC1, 0x70, 0x78, 0x18, 0x78, 0x60, -0x78, 0xBE, 0xA3, 0x70, 0x79, 0xF8, 0x5A, 0x60, 0x7A, 0x9E, 0x85, 0x70, 0x7B, 0xD8, 0x3C, 0x60, -0x7C, 0x7E, 0x67, 0x70, 0x7D, 0xB8, 0x1E, 0x60, 0x7E, 0x5E, 0x49, 0x70, 0x7F, 0x98, 0x00, 0x60, -0x05, 0x01, 0x02, 0x03, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, -0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, -0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x06, 0x07, 0x02, 0x04, -0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, -0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, -0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, -0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, -0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, -0xFF, 0xC7, 0xC0, 0x01, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x08, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, -0x0C, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x11, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x15, 0xFF, 0xFF, 0xAB, -0xA0, 0x00, 0x19, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x1D, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x11, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x1C, 0xCC, 0x6C, 0xA1, 0x80, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xFB, 0xE0, 0x04, 0x60, 0xFD, 0x70, 0x05, 0x50, 0xE0, 0x60, +0x06, 0x40, 0xDF, 0x70, 0x07, 0x30, 0xC2, 0x60, 0x08, 0x20, 0xC1, 0x70, 0x09, 0x10, 0xA4, 0x60, +0x0A, 0x00, 0xA3, 0x70, 0x0A, 0xF0, 0x86, 0x60, 0x0B, 0xE0, 0x85, 0x70, 0x0C, 0xD9, 0xA2, 0xE0, +0x0D, 0xC0, 0x67, 0x70, 0x0E, 0xB9, 0x84, 0xE0, 0x0F, 0xA9, 0x83, 0xF0, 0x10, 0x99, 0x66, 0xE0, +0x11, 0x89, 0x65, 0xF0, 0x12, 0x79, 0x48, 0xE0, 0x13, 0x69, 0x47, 0xF0, 0x14, 0x59, 0x2A, 0xE0, +0x15, 0x49, 0x29, 0xF0, 0x16, 0x39, 0x0C, 0xE0, 0x17, 0x29, 0x0B, 0xF0, 0x18, 0x22, 0x29, 0x60, +0x19, 0x08, 0xED, 0xF0, 0x1A, 0x02, 0x0B, 0x60, 0x1A, 0xF2, 0x0A, 0x70, 0x1B, 0xE1, 0xED, 0x60, +0x1C, 0xD1, 0xEC, 0x70, 0x1D, 0xC1, 0xCF, 0x60, 0x1E, 0xB1, 0xCE, 0x70, 0x1F, 0xA1, 0xB1, 0x60, +0x20, 0x76, 0x00, 0xF0, 0x21, 0x81, 0x93, 0x60, 0x22, 0x55, 0xE2, 0xF0, 0x23, 0x6A, 0xAF, 0xE0, +0x24, 0x35, 0xC4, 0xF0, 0x25, 0x4A, 0x91, 0xE0, 0x26, 0x15, 0xA6, 0xF0, 0x27, 0x2A, 0x73, 0xE0, +0x27, 0xFE, 0xC3, 0x70, 0x29, 0x0A, 0x55, 0xE0, 0x29, 0xDE, 0xA5, 0x70, 0x2A, 0xEA, 0x37, 0xE0, +0x2B, 0xBE, 0x87, 0x70, 0x2C, 0xD3, 0x54, 0x60, 0x2D, 0x9E, 0x69, 0x70, 0x2E, 0xB3, 0x36, 0x60, +0x2F, 0x7E, 0x4B, 0x70, 0x30, 0x93, 0x18, 0x60, 0x31, 0x67, 0x67, 0xF0, 0x32, 0x72, 0xFA, 0x60, +0x33, 0x47, 0x49, 0xF0, 0x34, 0x52, 0xDC, 0x60, 0x35, 0x27, 0x2B, 0xF0, 0x36, 0x32, 0xBE, 0x60, +0x37, 0x07, 0x0D, 0xF0, 0x38, 0x1B, 0xDA, 0xE0, 0x38, 0xE6, 0xFE, 0x00, 0x39, 0xFB, 0xCA, 0xF0, +0x3A, 0xC6, 0xD1, 0xF0, 0x3B, 0xDB, 0x9E, 0xE0, 0x3C, 0xAF, 0xEE, 0x70, 0x3D, 0xBB, 0x80, 0xE0, +0x3E, 0x8F, 0xD0, 0x70, 0x3F, 0x9B, 0x62, 0xE0, 0x40, 0x6F, 0xB2, 0x70, 0x41, 0x84, 0x7F, 0x60, +0x42, 0x4F, 0x94, 0x70, 0x43, 0x64, 0x61, 0x60, 0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x43, 0x60, +0x45, 0xF3, 0xA8, 0xF0, 0x47, 0x2D, 0x5F, 0xE0, 0x47, 0xD3, 0x8A, 0xF0, 0x49, 0x0D, 0x41, 0xE0, +0x49, 0xB3, 0x6C, 0xF0, 0x4A, 0xED, 0x23, 0xE0, 0x4B, 0x9C, 0x89, 0x70, 0x4C, 0xD6, 0x40, 0x60, +0x4D, 0x7C, 0x6B, 0x70, 0x4E, 0xB6, 0x22, 0x60, 0x4F, 0x5C, 0x4D, 0x70, 0x50, 0x96, 0x04, 0x60, +0x51, 0x3C, 0x2F, 0x70, 0x52, 0x75, 0xE6, 0x60, 0x53, 0x1C, 0x11, 0x70, 0x54, 0x55, 0xC8, 0x60, +0x54, 0xFB, 0xF3, 0x70, 0x56, 0x35, 0xAA, 0x60, 0x56, 0xE5, 0x0F, 0xF0, 0x58, 0x1E, 0xC6, 0xE0, +0x58, 0xC4, 0xF1, 0xF0, 0x59, 0xFE, 0xA8, 0xE0, 0x5A, 0xA4, 0xD3, 0xF0, 0x5B, 0xDE, 0x8A, 0xE0, +0x5C, 0x84, 0xB5, 0xF0, 0x5D, 0xBE, 0x6C, 0xE0, 0x5E, 0x64, 0x97, 0xF0, 0x5F, 0x9E, 0x4E, 0xE0, +0x60, 0x4D, 0xB4, 0x70, 0x61, 0x87, 0x6B, 0x60, 0x62, 0x2D, 0x96, 0x70, 0x63, 0x67, 0x4D, 0x60, +0x64, 0x0D, 0x78, 0x70, 0x65, 0x47, 0x2F, 0x60, 0x65, 0xED, 0x5A, 0x70, 0x67, 0x27, 0x11, 0x60, +0x67, 0xCD, 0x3C, 0x70, 0x69, 0x06, 0xF3, 0x60, 0x69, 0xAD, 0x1E, 0x70, 0x6A, 0xE6, 0xD5, 0x60, +0x6B, 0x96, 0x3A, 0xF0, 0x6C, 0xCF, 0xF1, 0xE0, 0x6D, 0x76, 0x1C, 0xF0, 0x6E, 0xAF, 0xD3, 0xE0, +0x6F, 0x55, 0xFE, 0xF0, 0x70, 0x8F, 0xB5, 0xE0, 0x71, 0x35, 0xE0, 0xF0, 0x72, 0x6F, 0x97, 0xE0, +0x73, 0x15, 0xC2, 0xF0, 0x74, 0x4F, 0x79, 0xE0, 0x74, 0xFE, 0xDF, 0x70, 0x76, 0x38, 0x96, 0x60, +0x76, 0xDE, 0xC1, 0x70, 0x78, 0x18, 0x78, 0x60, 0x78, 0xBE, 0xA3, 0x70, 0x79, 0xF8, 0x5A, 0x60, +0x7A, 0x9E, 0x85, 0x70, 0x7B, 0xD8, 0x3C, 0x60, 0x7C, 0x7E, 0x67, 0x70, 0x7D, 0xB8, 0x1E, 0x60, +0x7E, 0x5E, 0x49, 0x70, 0x7F, 0x98, 0x00, 0x60, 0x04, 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, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x05, 0x06, 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, 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, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, +0x08, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x0C, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x10, 0xFF, 0xFF, 0xAB, +0xA0, 0x00, 0x14, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x18, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x08, 0x2D, 0x30, 0x30, 0x00, 0x45, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, -0x00, 0x45, 0x44, 0x44, 0x54, 0x00, 0x45, 0x44, 0x54, 0x00, 0x45, 0x57, 0x54, 0x00, 0x43, 0x53, -0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x01, 0x00, 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, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, -0x00, 0x0A, 0x00, 0x00, 0x00, 0x21, 0xFF, 0xFF, 0xFF, 0xFF, 0xCC, 0x6C, 0xA1, 0x80, 0xFF, 0xFF, -0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xFB, 0xE0, 0xFF, 0xFF, -0xFF, 0xFF, 0xF7, 0x2F, 0x3E, 0x50, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x28, 0x69, 0xD0, 0x00, 0x00, -0x00, 0x00, 0x13, 0x69, 0x47, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x14, 0x59, 0x2A, 0xE0, 0x00, 0x00, -0x00, 0x00, 0x15, 0x49, 0x29, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x16, 0x39, 0x0C, 0xE0, 0x00, 0x00, -0x00, 0x00, 0x17, 0x29, 0x0B, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x18, 0x22, 0x29, 0x60, 0x00, 0x00, -0x00, 0x00, 0x19, 0x08, 0xED, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x02, 0x0B, 0x60, 0x00, 0x00, -0x00, 0x00, 0x1A, 0xF2, 0x0A, 0x70, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xE1, 0xED, 0x60, 0x00, 0x00, -0x00, 0x00, 0x1C, 0xD1, 0xEC, 0x70, 0x00, 0x00, 0x00, 0x00, 0x1D, 0xC1, 0xCF, 0x60, 0x00, 0x00, -0x00, 0x00, 0x1E, 0xB1, 0xCE, 0x70, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xA1, 0xB1, 0x60, 0x00, 0x00, -0x00, 0x00, 0x20, 0x76, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x21, 0x81, 0x93, 0x60, 0x00, 0x00, -0x00, 0x00, 0x22, 0x55, 0xE2, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x23, 0x6A, 0xAF, 0xE0, 0x00, 0x00, -0x00, 0x00, 0x24, 0x35, 0xC4, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x25, 0x4A, 0x91, 0xE0, 0x00, 0x00, -0x00, 0x00, 0x26, 0x15, 0xA6, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x27, 0x2A, 0x73, 0xE0, 0x00, 0x00, -0x00, 0x00, 0x27, 0xFE, 0xC3, 0x70, 0x00, 0x00, 0x00, 0x00, 0x29, 0x0A, 0x55, 0xE0, 0x00, 0x00, -0x00, 0x00, 0x29, 0xDE, 0xA5, 0x70, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xEA, 0x37, 0xE0, 0x00, 0x00, -0x00, 0x00, 0x2B, 0xBE, 0x87, 0x70, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xD3, 0x54, 0x60, 0x00, 0x00, -0x00, 0x00, 0x2D, 0x9E, 0x69, 0x70, 0x00, 0x00, 0x00, 0x00, 0x2E, 0xB3, 0x36, 0x60, 0x00, 0x00, -0x00, 0x00, 0x2F, 0x7E, 0x4B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x30, 0x93, 0x18, 0x60, 0x00, 0x00, -0x00, 0x00, 0x31, 0x67, 0x67, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x32, 0x72, 0xFA, 0x60, 0x00, 0x00, -0x00, 0x00, 0x33, 0x47, 0x49, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0xDC, 0x60, 0x00, 0x00, -0x00, 0x00, 0x35, 0x27, 0x2B, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0xBE, 0x60, 0x00, 0x00, -0x00, 0x00, 0x37, 0x07, 0x0D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0xDA, 0xE0, 0x00, 0x00, -0x00, 0x00, 0x38, 0xE6, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0xCA, 0xF0, 0x00, 0x00, -0x00, 0x00, 0x3A, 0xC6, 0xD1, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xDB, 0x9E, 0xE0, 0x00, 0x00, -0x00, 0x00, 0x3C, 0xAF, 0xEE, 0x70, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x80, 0xE0, 0x00, 0x00, -0x00, 0x00, 0x3E, 0x8F, 0xD0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x62, 0xE0, 0x00, 0x00, -0x00, 0x00, 0x40, 0x6F, 0xB2, 0x70, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x7F, 0x60, 0x00, 0x00, -0x00, 0x00, 0x42, 0x4F, 0x94, 0x70, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x61, 0x60, 0x00, 0x00, -0x00, 0x00, 0x44, 0x2F, 0x76, 0x70, 0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0x43, 0x60, 0x00, 0x00, -0x00, 0x00, 0x45, 0xF3, 0xA8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x47, 0x2D, 0x5F, 0xE0, 0x00, 0x00, -0x00, 0x00, 0x47, 0xD3, 0x8A, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x49, 0x0D, 0x41, 0xE0, 0x00, 0x00, -0x00, 0x00, 0x49, 0xB3, 0x6C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xED, 0x23, 0xE0, 0x00, 0x00, -0x00, 0x00, 0x4B, 0x9C, 0x89, 0x70, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xD6, 0x40, 0x60, 0x00, 0x00, -0x00, 0x00, 0x4D, 0x7C, 0x6B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xB6, 0x22, 0x60, 0x00, 0x00, -0x00, 0x00, 0x4F, 0x5C, 0x4D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x50, 0x96, 0x04, 0x60, 0x00, 0x00, -0x00, 0x00, 0x51, 0x3C, 0x2F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x52, 0x75, 0xE6, 0x60, 0x00, 0x00, -0x00, 0x00, 0x53, 0x1C, 0x11, 0x70, 0x00, 0x00, 0x00, 0x00, 0x54, 0x55, 0xC8, 0x60, 0x00, 0x00, -0x00, 0x00, 0x54, 0xFB, 0xF3, 0x70, 0x00, 0x00, 0x00, 0x00, 0x56, 0x35, 0xAA, 0x60, 0x00, 0x00, -0x00, 0x00, 0x56, 0xE5, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x58, 0x1E, 0xC6, 0xE0, 0x00, 0x00, -0x00, 0x00, 0x58, 0xC4, 0xF1, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x59, 0xFE, 0xA8, 0xE0, 0x00, 0x00, -0x00, 0x00, 0x5A, 0xA4, 0xD3, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xDE, 0x8A, 0xE0, 0x00, 0x00, -0x00, 0x00, 0x5C, 0x84, 0xB5, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xBE, 0x6C, 0xE0, 0x00, 0x00, -0x00, 0x00, 0x5E, 0x64, 0x97, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x9E, 0x4E, 0xE0, 0x00, 0x00, -0x00, 0x00, 0x60, 0x4D, 0xB4, 0x70, 0x00, 0x00, 0x00, 0x00, 0x61, 0x87, 0x6B, 0x60, 0x00, 0x00, -0x00, 0x00, 0x62, 0x2D, 0x96, 0x70, 0x00, 0x00, 0x00, 0x00, 0x63, 0x67, 0x4D, 0x60, 0x00, 0x00, -0x00, 0x00, 0x64, 0x0D, 0x78, 0x70, 0x00, 0x00, 0x00, 0x00, 0x65, 0x47, 0x2F, 0x60, 0x00, 0x00, -0x00, 0x00, 0x65, 0xED, 0x5A, 0x70, 0x00, 0x00, 0x00, 0x00, 0x67, 0x27, 0x11, 0x60, 0x00, 0x00, -0x00, 0x00, 0x67, 0xCD, 0x3C, 0x70, 0x00, 0x00, 0x00, 0x00, 0x69, 0x06, 0xF3, 0x60, 0x00, 0x00, -0x00, 0x00, 0x69, 0xAD, 0x1E, 0x70, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xE6, 0xD5, 0x60, 0x00, 0x00, -0x00, 0x00, 0x6B, 0x96, 0x3A, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xCF, 0xF1, 0xE0, 0x00, 0x00, -0x00, 0x00, 0x6D, 0x76, 0x1C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x6E, 0xAF, 0xD3, 0xE0, 0x00, 0x00, -0x00, 0x00, 0x6F, 0x55, 0xFE, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x70, 0x8F, 0xB5, 0xE0, 0x00, 0x00, -0x00, 0x00, 0x71, 0x35, 0xE0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x72, 0x6F, 0x97, 0xE0, 0x00, 0x00, -0x00, 0x00, 0x73, 0x15, 0xC2, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x74, 0x4F, 0x79, 0xE0, 0x00, 0x00, -0x00, 0x00, 0x74, 0xFE, 0xDF, 0x70, 0x00, 0x00, 0x00, 0x00, 0x76, 0x38, 0x96, 0x60, 0x00, 0x00, -0x00, 0x00, 0x76, 0xDE, 0xC1, 0x70, 0x00, 0x00, 0x00, 0x00, 0x78, 0x18, 0x78, 0x60, 0x00, 0x00, -0x00, 0x00, 0x78, 0xBE, 0xA3, 0x70, 0x00, 0x00, 0x00, 0x00, 0x79, 0xF8, 0x5A, 0x60, 0x00, 0x00, -0x00, 0x00, 0x7A, 0x9E, 0x85, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7B, 0xD8, 0x3C, 0x60, 0x00, 0x00, -0x00, 0x00, 0x7C, 0x7E, 0x67, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7D, 0xB8, 0x1E, 0x60, 0x00, 0x00, -0x00, 0x00, 0x7E, 0x5E, 0x49, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x98, 0x00, 0x60, 0x05, 0x01, -0x02, 0x03, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, -0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, -0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x06, 0x07, 0x02, 0x04, 0x02, 0x04, -0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, -0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, -0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, -0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, -0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC7, -0xC0, 0x01, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x08, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x0C, 0xFF, -0xFF, 0xC7, 0xC0, 0x01, 0x11, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x15, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, -0x19, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x1D, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x11, 0xFF, 0xFF, 0xB9, -0xB0, 0x00, 0x08, 0x2D, 0x30, 0x30, 0x00, 0x45, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x45, -0x44, 0x44, 0x54, 0x00, 0x45, 0x44, 0x54, 0x00, 0x45, 0x57, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, -0x43, 0x44, 0x54, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x45, 0x53, 0x54, 0x35, 0x45, 0x44, 0x54, -0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, -0x00, 0xEA, 0x94, 0x15, 0x00, 0xAA, 0x2F, 0xB5, 0x00, 0x00, 0x00, 0x1E, 0x45, 0x61, 0x73, 0x74, -0x65, 0x72, 0x6E, 0x20, 0x2D, 0x20, 0x4E, 0x55, 0x20, 0x28, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x65, -0x61, 0x73, 0x74, 0x20, 0x61, 0x72, 0x65, 0x61, 0x73, 0x29, +0x00, 0x45, 0x44, 0x54, 0x00, 0x45, 0x57, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, +0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x1C, 0xFF, +0xFF, 0xFF, 0xFF, 0xCC, 0x6C, 0xA1, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, +0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xFB, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x04, 0x60, 0xFD, 0x70, 0x00, +0x00, 0x00, 0x00, 0x05, 0x50, 0xE0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x06, 0x40, 0xDF, 0x70, 0x00, +0x00, 0x00, 0x00, 0x07, 0x30, 0xC2, 0x60, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0xC1, 0x70, 0x00, +0x00, 0x00, 0x00, 0x09, 0x10, 0xA4, 0x60, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0xA3, 0x70, 0x00, +0x00, 0x00, 0x00, 0x0A, 0xF0, 0x86, 0x60, 0x00, 0x00, 0x00, 0x00, 0x0B, 0xE0, 0x85, 0x70, 0x00, +0x00, 0x00, 0x00, 0x0C, 0xD9, 0xA2, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x0D, 0xC0, 0x67, 0x70, 0x00, +0x00, 0x00, 0x00, 0x0E, 0xB9, 0x84, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA9, 0x83, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x10, 0x99, 0x66, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x11, 0x89, 0x65, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x12, 0x79, 0x48, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x47, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x14, 0x59, 0x2A, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x15, 0x49, 0x29, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x16, 0x39, 0x0C, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x17, 0x29, 0x0B, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x18, 0x22, 0x29, 0x60, 0x00, 0x00, 0x00, 0x00, 0x19, 0x08, 0xED, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x1A, 0x02, 0x0B, 0x60, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xF2, 0x0A, 0x70, 0x00, +0x00, 0x00, 0x00, 0x1B, 0xE1, 0xED, 0x60, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xD1, 0xEC, 0x70, 0x00, +0x00, 0x00, 0x00, 0x1D, 0xC1, 0xCF, 0x60, 0x00, 0x00, 0x00, 0x00, 0x1E, 0xB1, 0xCE, 0x70, 0x00, +0x00, 0x00, 0x00, 0x1F, 0xA1, 0xB1, 0x60, 0x00, 0x00, 0x00, 0x00, 0x20, 0x76, 0x00, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x21, 0x81, 0x93, 0x60, 0x00, 0x00, 0x00, 0x00, 0x22, 0x55, 0xE2, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x23, 0x6A, 0xAF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x24, 0x35, 0xC4, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x25, 0x4A, 0x91, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x26, 0x15, 0xA6, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x27, 0x2A, 0x73, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x27, 0xFE, 0xC3, 0x70, 0x00, +0x00, 0x00, 0x00, 0x29, 0x0A, 0x55, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x29, 0xDE, 0xA5, 0x70, 0x00, +0x00, 0x00, 0x00, 0x2A, 0xEA, 0x37, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xBE, 0x87, 0x70, 0x00, +0x00, 0x00, 0x00, 0x2C, 0xD3, 0x54, 0x60, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x9E, 0x69, 0x70, 0x00, +0x00, 0x00, 0x00, 0x2E, 0xB3, 0x36, 0x60, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x7E, 0x4B, 0x70, 0x00, +0x00, 0x00, 0x00, 0x30, 0x93, 0x18, 0x60, 0x00, 0x00, 0x00, 0x00, 0x31, 0x67, 0x67, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x32, 0x72, 0xFA, 0x60, 0x00, 0x00, 0x00, 0x00, 0x33, 0x47, 0x49, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x34, 0x52, 0xDC, 0x60, 0x00, 0x00, 0x00, 0x00, 0x35, 0x27, 0x2B, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x36, 0x32, 0xBE, 0x60, 0x00, 0x00, 0x00, 0x00, 0x37, 0x07, 0x0D, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x38, 0x1B, 0xDA, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x38, 0xE6, 0xFE, 0x00, 0x00, +0x00, 0x00, 0x00, 0x39, 0xFB, 0xCA, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xC6, 0xD1, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x3B, 0xDB, 0x9E, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xAF, 0xEE, 0x70, 0x00, +0x00, 0x00, 0x00, 0x3D, 0xBB, 0x80, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x8F, 0xD0, 0x70, 0x00, +0x00, 0x00, 0x00, 0x3F, 0x9B, 0x62, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x40, 0x6F, 0xB2, 0x70, 0x00, +0x00, 0x00, 0x00, 0x41, 0x84, 0x7F, 0x60, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0x94, 0x70, 0x00, +0x00, 0x00, 0x00, 0x43, 0x64, 0x61, 0x60, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x76, 0x70, 0x00, +0x00, 0x00, 0x00, 0x45, 0x44, 0x43, 0x60, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0xA8, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x47, 0x2D, 0x5F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x47, 0xD3, 0x8A, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x49, 0x0D, 0x41, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x49, 0xB3, 0x6C, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x4A, 0xED, 0x23, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0x89, 0x70, 0x00, +0x00, 0x00, 0x00, 0x4C, 0xD6, 0x40, 0x60, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x7C, 0x6B, 0x70, 0x00, +0x00, 0x00, 0x00, 0x4E, 0xB6, 0x22, 0x60, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x5C, 0x4D, 0x70, 0x00, +0x00, 0x00, 0x00, 0x50, 0x96, 0x04, 0x60, 0x00, 0x00, 0x00, 0x00, 0x51, 0x3C, 0x2F, 0x70, 0x00, +0x00, 0x00, 0x00, 0x52, 0x75, 0xE6, 0x60, 0x00, 0x00, 0x00, 0x00, 0x53, 0x1C, 0x11, 0x70, 0x00, +0x00, 0x00, 0x00, 0x54, 0x55, 0xC8, 0x60, 0x00, 0x00, 0x00, 0x00, 0x54, 0xFB, 0xF3, 0x70, 0x00, +0x00, 0x00, 0x00, 0x56, 0x35, 0xAA, 0x60, 0x00, 0x00, 0x00, 0x00, 0x56, 0xE5, 0x0F, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x58, 0x1E, 0xC6, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x58, 0xC4, 0xF1, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x59, 0xFE, 0xA8, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xA4, 0xD3, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x5B, 0xDE, 0x8A, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x84, 0xB5, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x5D, 0xBE, 0x6C, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x64, 0x97, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x5F, 0x9E, 0x4E, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x60, 0x4D, 0xB4, 0x70, 0x00, +0x00, 0x00, 0x00, 0x61, 0x87, 0x6B, 0x60, 0x00, 0x00, 0x00, 0x00, 0x62, 0x2D, 0x96, 0x70, 0x00, +0x00, 0x00, 0x00, 0x63, 0x67, 0x4D, 0x60, 0x00, 0x00, 0x00, 0x00, 0x64, 0x0D, 0x78, 0x70, 0x00, +0x00, 0x00, 0x00, 0x65, 0x47, 0x2F, 0x60, 0x00, 0x00, 0x00, 0x00, 0x65, 0xED, 0x5A, 0x70, 0x00, +0x00, 0x00, 0x00, 0x67, 0x27, 0x11, 0x60, 0x00, 0x00, 0x00, 0x00, 0x67, 0xCD, 0x3C, 0x70, 0x00, +0x00, 0x00, 0x00, 0x69, 0x06, 0xF3, 0x60, 0x00, 0x00, 0x00, 0x00, 0x69, 0xAD, 0x1E, 0x70, 0x00, +0x00, 0x00, 0x00, 0x6A, 0xE6, 0xD5, 0x60, 0x00, 0x00, 0x00, 0x00, 0x6B, 0x96, 0x3A, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x6C, 0xCF, 0xF1, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x76, 0x1C, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x6E, 0xAF, 0xD3, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x55, 0xFE, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x70, 0x8F, 0xB5, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x71, 0x35, 0xE0, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x72, 0x6F, 0x97, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x73, 0x15, 0xC2, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x74, 0x4F, 0x79, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x74, 0xFE, 0xDF, 0x70, 0x00, +0x00, 0x00, 0x00, 0x76, 0x38, 0x96, 0x60, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDE, 0xC1, 0x70, 0x00, +0x00, 0x00, 0x00, 0x78, 0x18, 0x78, 0x60, 0x00, 0x00, 0x00, 0x00, 0x78, 0xBE, 0xA3, 0x70, 0x00, +0x00, 0x00, 0x00, 0x79, 0xF8, 0x5A, 0x60, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x9E, 0x85, 0x70, 0x00, +0x00, 0x00, 0x00, 0x7B, 0xD8, 0x3C, 0x60, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0x67, 0x70, 0x00, +0x00, 0x00, 0x00, 0x7D, 0xB8, 0x1E, 0x60, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x5E, 0x49, 0x70, 0x00, +0x00, 0x00, 0x00, 0x7F, 0x98, 0x00, 0x60, 0x04, 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, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x05, 0x06, 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, 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, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x08, +0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x0C, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x10, 0xFF, 0xFF, 0xAB, 0xA0, +0x00, 0x14, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x18, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x0C, 0xFF, 0xFF, +0xB9, 0xB0, 0x00, 0x08, 0x2D, 0x30, 0x30, 0x00, 0x45, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, +0x45, 0x44, 0x54, 0x00, 0x45, 0x57, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, +0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x0A, 0x45, 0x53, 0x54, 0x35, 0x45, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, +0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xEA, 0x94, 0x15, 0x00, 0xAA, +0x2F, 0xB5, 0x00, 0x00, 0x00, 0x19, 0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x2D, 0x20, +0x4E, 0x55, 0x20, 0x28, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x61, 0x72, 0x65, 0x61, 0x73, 0x29, /* America/Jamaica */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x4A, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -33964,11 +34212,10 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0x43, 0x53, 0x54, 0x36, 0x43, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xB0, 0xBF, 0x65, 0x00, 0x7D, -0xE2, 0x90, 0x00, 0x00, 0x00, 0x3E, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x54, 0x69, -0x6D, 0x65, 0x20, 0x55, 0x53, 0x20, 0x2D, 0x20, 0x43, 0x6F, 0x61, 0x68, 0x75, 0x69, 0x6C, 0x61, -0x2C, 0x20, 0x4E, 0x75, 0x65, 0x76, 0x6F, 0x20, 0x4C, 0x65, 0x6F, 0x6E, 0x2C, 0x20, 0x54, 0x61, -0x6D, 0x61, 0x75, 0x6C, 0x69, 0x70, 0x61, 0x73, 0x20, 0x28, 0x55, 0x53, 0x20, 0x62, 0x6F, 0x72, -0x64, 0x65, 0x72, 0x29, +0xE2, 0x90, 0x00, 0x00, 0x00, 0x2C, 0x43, 0x6F, 0x61, 0x68, 0x75, 0x69, 0x6C, 0x61, 0x2C, 0x20, +0x4E, 0x75, 0x65, 0x76, 0x6F, 0x20, 0x4C, 0x65, 0x6F, 0x6E, 0x2C, 0x20, 0x54, 0x61, 0x6D, 0x61, +0x75, 0x6C, 0x69, 0x70, 0x61, 0x73, 0x20, 0x28, 0x55, 0x53, 0x20, 0x62, 0x6F, 0x72, 0x64, 0x65, +0x72, 0x29, /* America/Mazatlan */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x4D, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -34042,10 +34289,10 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x4D, 0x53, 0x54, 0x37, 0x0A, 0x00, 0xAC, 0xC1, 0x42, 0x00, 0x70, 0x47, 0x7D, -0x00, 0x00, 0x00, 0x35, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x54, 0x69, 0x6D, -0x65, 0x20, 0x2D, 0x20, 0x42, 0x61, 0x6A, 0x61, 0x20, 0x43, 0x61, 0x6C, 0x69, 0x66, 0x6F, 0x72, +0x00, 0x00, 0x00, 0x32, 0x42, 0x61, 0x6A, 0x61, 0x20, 0x43, 0x61, 0x6C, 0x69, 0x66, 0x6F, 0x72, 0x6E, 0x69, 0x61, 0x20, 0x53, 0x75, 0x72, 0x2C, 0x20, 0x4E, 0x61, 0x79, 0x61, 0x72, 0x69, 0x74, -0x2C, 0x20, 0x53, 0x69, 0x6E, 0x61, 0x6C, 0x6F, 0x61, +0x20, 0x28, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x61, 0x72, 0x65, 0x61, 0x73, 0x29, 0x2C, 0x20, 0x53, +0x69, 0x6E, 0x61, 0x6C, 0x6F, 0x61, /* America/Mendoza */ 0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -34328,9 +34575,8 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x43, 0x53, 0x54, 0x36, 0x0A, 0x00, 0xA9, 0x52, 0x5A, -0x00, 0x89, 0xE9, 0xFD, 0x00, 0x00, 0x00, 0x20, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, -0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x43, 0x61, 0x6D, 0x70, 0x65, 0x63, 0x68, 0x65, 0x2C, -0x20, 0x59, 0x75, 0x63, 0x61, 0x74, 0x61, 0x6E, +0x00, 0x89, 0xE9, 0xFD, 0x00, 0x00, 0x00, 0x11, 0x43, 0x61, 0x6D, 0x70, 0x65, 0x63, 0x68, 0x65, +0x2C, 0x20, 0x59, 0x75, 0x63, 0x61, 0x74, 0x61, 0x6E, /* America/Metlakatla */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -34504,7 +34750,8 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { 0x43, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x43, 0x53, 0x54, 0x36, 0x0A, 0x00, 0xA6, 0xEE, 0x60, 0x00, 0x7B, 0x5E, 0x07, 0x00, 0x00, -0x00, 0x0C, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x54, 0x69, 0x6D, 0x65, +0x00, 0x0E, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x4D, 0x65, 0x78, 0x69, 0x63, 0x6F, + /* America/Miquelon */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x50, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -34877,12 +35124,11 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { 0x02, 0x03, 0xFF, 0xFF, 0xA1, 0xF4, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x08, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0x43, -0x53, 0x54, 0x36, 0x0A, 0x00, 0xB0, 0x7E, 0x4A, 0x00, 0x79, 0x96, 0x4D, 0x00, 0x00, 0x00, 0x45, -0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x2D, 0x20, 0x44, -0x75, 0x72, 0x61, 0x6E, 0x67, 0x6F, 0x3B, 0x20, 0x43, 0x6F, 0x61, 0x68, 0x75, 0x69, 0x6C, 0x61, -0x2C, 0x20, 0x4E, 0x75, 0x65, 0x76, 0x6F, 0x20, 0x4C, 0x65, 0x6F, 0x6E, 0x2C, 0x20, 0x54, 0x61, -0x6D, 0x61, 0x75, 0x6C, 0x69, 0x70, 0x61, 0x73, 0x20, 0x28, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x61, -0x72, 0x65, 0x61, 0x73, 0x29, +0x53, 0x54, 0x36, 0x0A, 0x00, 0xB0, 0x7E, 0x4A, 0x00, 0x79, 0x96, 0x4D, 0x00, 0x00, 0x00, 0x36, +0x44, 0x75, 0x72, 0x61, 0x6E, 0x67, 0x6F, 0x3B, 0x20, 0x43, 0x6F, 0x61, 0x68, 0x75, 0x69, 0x6C, +0x61, 0x2C, 0x20, 0x4E, 0x75, 0x65, 0x76, 0x6F, 0x20, 0x4C, 0x65, 0x6F, 0x6E, 0x2C, 0x20, 0x54, +0x61, 0x6D, 0x61, 0x75, 0x6C, 0x69, 0x70, 0x61, 0x73, 0x20, 0x28, 0x6D, 0x6F, 0x73, 0x74, 0x20, +0x61, 0x72, 0x65, 0x61, 0x73, 0x29, /* America/Montevideo */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x55, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -36483,8 +36729,8 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { /* America/Nuuk */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x47, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0C, 0x9B, 0x80, 0x68, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0C, 0x9B, 0x80, 0x68, 0x00, 0x13, 0x4D, 0x7C, 0x50, 0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, @@ -36506,106 +36752,80 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, -0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, -0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, -0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, -0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, -0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, -0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, -0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, -0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, -0x01, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x01, 0x04, 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, 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, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x05, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, +0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, +0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, +0x2D, 0x30, 0x32, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 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, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0C, 0xFF, 0xFF, 0xFF, 0xFF, +0x9B, 0x80, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x4D, 0x7C, 0x50, 0x00, 0x00, 0x00, 0x00, +0x14, 0x33, 0xFA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x15, 0x23, 0xEB, 0x90, 0x00, 0x00, 0x00, 0x00, +0x16, 0x13, 0xDC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x17, 0x03, 0xCD, 0x90, 0x00, 0x00, 0x00, 0x00, +0x17, 0xF3, 0xBE, 0x90, 0x00, 0x00, 0x00, 0x00, 0x18, 0xE3, 0xAF, 0x90, 0x00, 0x00, 0x00, 0x00, +0x19, 0xD3, 0xA0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xC3, 0x91, 0x90, 0x00, 0x00, 0x00, 0x00, +0x1B, 0xBC, 0xBD, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xAC, 0xAE, 0x10, 0x00, 0x00, 0x00, 0x00, +0x1D, 0x9C, 0x9F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x8C, 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, +0x1F, 0x7C, 0x81, 0x10, 0x00, 0x00, 0x00, 0x00, 0x20, 0x6C, 0x72, 0x10, 0x00, 0x00, 0x00, 0x00, +0x21, 0x5C, 0x63, 0x10, 0x00, 0x00, 0x00, 0x00, 0x22, 0x4C, 0x54, 0x10, 0x00, 0x00, 0x00, 0x00, +0x23, 0x3C, 0x45, 0x10, 0x00, 0x00, 0x00, 0x00, 0x24, 0x2C, 0x36, 0x10, 0x00, 0x00, 0x00, 0x00, +0x25, 0x1C, 0x27, 0x10, 0x00, 0x00, 0x00, 0x00, 0x26, 0x0C, 0x18, 0x10, 0x00, 0x00, 0x00, 0x00, +0x27, 0x05, 0x43, 0x90, 0x00, 0x00, 0x00, 0x00, 0x27, 0xF5, 0x34, 0x90, 0x00, 0x00, 0x00, 0x00, +0x28, 0xE5, 0x25, 0x90, 0x00, 0x00, 0x00, 0x00, 0x29, 0xD5, 0x16, 0x90, 0x00, 0x00, 0x00, 0x00, +0x2A, 0xC5, 0x07, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xF8, 0x90, 0x00, 0x00, 0x00, 0x00, +0x2C, 0xA4, 0xE9, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xDA, 0x90, 0x00, 0x00, 0x00, 0x00, +0x2E, 0x84, 0xCB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xBC, 0x90, 0x00, 0x00, 0x00, 0x00, +0x30, 0x64, 0xAD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x00, 0x00, 0x00, 0x00, +0x32, 0x72, 0xB4, 0x10, 0x00, 0x00, 0x00, 0x00, 0x33, 0x3D, 0xBB, 0x10, 0x00, 0x00, 0x00, 0x00, +0x34, 0x52, 0x96, 0x10, 0x00, 0x00, 0x00, 0x00, 0x35, 0x1D, 0x9D, 0x10, 0x00, 0x00, 0x00, 0x00, +0x36, 0x32, 0x78, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0xFD, 0x7F, 0x10, 0x00, 0x00, 0x00, 0x00, +0x38, 0x1B, 0x94, 0x90, 0x00, 0x00, 0x00, 0x00, 0x38, 0xDD, 0x61, 0x10, 0x00, 0x00, 0x00, 0x00, +0x39, 0xFB, 0x76, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xBD, 0x43, 0x10, 0x00, 0x00, 0x00, 0x00, +0x3B, 0xDB, 0x58, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xA6, 0x5F, 0x90, 0x00, 0x00, 0x00, 0x00, +0x3D, 0xBB, 0x3A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x86, 0x41, 0x90, 0x00, 0x00, 0x00, 0x00, +0x3F, 0x9B, 0x1C, 0x90, 0x00, 0x00, 0x00, 0x00, 0x40, 0x66, 0x23, 0x90, 0x00, 0x00, 0x00, 0x00, +0x41, 0x84, 0x39, 0x10, 0x00, 0x00, 0x00, 0x00, 0x42, 0x46, 0x05, 0x90, 0x00, 0x00, 0x00, 0x00, +0x43, 0x64, 0x1B, 0x10, 0x00, 0x00, 0x00, 0x00, 0x44, 0x25, 0xE7, 0x90, 0x00, 0x00, 0x00, 0x00, +0x45, 0x43, 0xFD, 0x10, 0x00, 0x00, 0x00, 0x00, 0x46, 0x05, 0xC9, 0x90, 0x00, 0x00, 0x00, 0x00, +0x47, 0x23, 0xDF, 0x10, 0x00, 0x00, 0x00, 0x00, 0x47, 0xEE, 0xE6, 0x10, 0x00, 0x00, 0x00, 0x00, +0x49, 0x03, 0xC1, 0x10, 0x00, 0x00, 0x00, 0x00, 0x49, 0xCE, 0xC8, 0x10, 0x00, 0x00, 0x00, 0x00, +0x4A, 0xE3, 0xA3, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4B, 0xAE, 0xAA, 0x10, 0x00, 0x00, 0x00, 0x00, +0x4C, 0xCC, 0xBF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x8E, 0x8C, 0x10, 0x00, 0x00, 0x00, 0x00, +0x4E, 0xAC, 0xA1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x6E, 0x6E, 0x10, 0x00, 0x00, 0x00, 0x00, +0x50, 0x8C, 0x83, 0x90, 0x00, 0x00, 0x00, 0x00, 0x51, 0x57, 0x8A, 0x90, 0x00, 0x00, 0x00, 0x00, +0x52, 0x6C, 0x65, 0x90, 0x00, 0x00, 0x00, 0x00, 0x53, 0x37, 0x6C, 0x90, 0x00, 0x00, 0x00, 0x00, +0x54, 0x4C, 0x47, 0x90, 0x00, 0x00, 0x00, 0x00, 0x55, 0x17, 0x4E, 0x90, 0x00, 0x00, 0x00, 0x00, +0x56, 0x2C, 0x29, 0x90, 0x00, 0x00, 0x00, 0x00, 0x56, 0xF7, 0x30, 0x90, 0x00, 0x00, 0x00, 0x00, +0x58, 0x15, 0x46, 0x10, 0x00, 0x00, 0x00, 0x00, 0x58, 0xD7, 0x12, 0x90, 0x00, 0x00, 0x00, 0x00, +0x59, 0xF5, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xB6, 0xF4, 0x90, 0x00, 0x00, 0x00, 0x00, +0x5B, 0xD5, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5C, 0xA0, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, +0x5D, 0xB4, 0xEC, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x7F, 0xF3, 0x10, 0x00, 0x00, 0x00, 0x00, +0x5F, 0x94, 0xCE, 0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x5F, 0xD5, 0x10, 0x00, 0x00, 0x00, 0x00, +0x61, 0x7D, 0xEA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x62, 0x3F, 0xB7, 0x10, 0x00, 0x00, 0x00, 0x00, +0x63, 0x5D, 0xCC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x64, 0x1F, 0x99, 0x10, 0x01, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, -0x02, 0x03, 0x02, 0x03, 0x02, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, -0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, -0xE0, 0x01, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x00, -0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x33, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, -0x05, 0x00, 0x00, 0x00, 0x0C, 0xFF, 0xFF, 0xFF, 0xFF, 0x9B, 0x80, 0x68, 0x00, 0x00, 0x00, 0x00, -0x00, 0x13, 0x4D, 0x7C, 0x50, 0x00, 0x00, 0x00, 0x00, 0x14, 0x33, 0xFA, 0x90, 0x00, 0x00, 0x00, -0x00, 0x15, 0x23, 0xEB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x16, 0x13, 0xDC, 0x90, 0x00, 0x00, 0x00, -0x00, 0x17, 0x03, 0xCD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x17, 0xF3, 0xBE, 0x90, 0x00, 0x00, 0x00, -0x00, 0x18, 0xE3, 0xAF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x19, 0xD3, 0xA0, 0x90, 0x00, 0x00, 0x00, -0x00, 0x1A, 0xC3, 0x91, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xBC, 0xBD, 0x10, 0x00, 0x00, 0x00, -0x00, 0x1C, 0xAC, 0xAE, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x9C, 0x9F, 0x10, 0x00, 0x00, 0x00, -0x00, 0x1E, 0x8C, 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x7C, 0x81, 0x10, 0x00, 0x00, 0x00, -0x00, 0x20, 0x6C, 0x72, 0x10, 0x00, 0x00, 0x00, 0x00, 0x21, 0x5C, 0x63, 0x10, 0x00, 0x00, 0x00, -0x00, 0x22, 0x4C, 0x54, 0x10, 0x00, 0x00, 0x00, 0x00, 0x23, 0x3C, 0x45, 0x10, 0x00, 0x00, 0x00, -0x00, 0x24, 0x2C, 0x36, 0x10, 0x00, 0x00, 0x00, 0x00, 0x25, 0x1C, 0x27, 0x10, 0x00, 0x00, 0x00, -0x00, 0x26, 0x0C, 0x18, 0x10, 0x00, 0x00, 0x00, 0x00, 0x27, 0x05, 0x43, 0x90, 0x00, 0x00, 0x00, -0x00, 0x27, 0xF5, 0x34, 0x90, 0x00, 0x00, 0x00, 0x00, 0x28, 0xE5, 0x25, 0x90, 0x00, 0x00, 0x00, -0x00, 0x29, 0xD5, 0x16, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xC5, 0x07, 0x90, 0x00, 0x00, 0x00, -0x00, 0x2B, 0xB4, 0xF8, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xE9, 0x90, 0x00, 0x00, 0x00, -0x00, 0x2D, 0x94, 0xDA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0xCB, 0x90, 0x00, 0x00, 0x00, -0x00, 0x2F, 0x74, 0xBC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0xAD, 0x90, 0x00, 0x00, 0x00, -0x00, 0x31, 0x5D, 0xD9, 0x10, 0x00, 0x00, 0x00, 0x00, 0x32, 0x72, 0xB4, 0x10, 0x00, 0x00, 0x00, -0x00, 0x33, 0x3D, 0xBB, 0x10, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0x96, 0x10, 0x00, 0x00, 0x00, -0x00, 0x35, 0x1D, 0x9D, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0x78, 0x10, 0x00, 0x00, 0x00, -0x00, 0x36, 0xFD, 0x7F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0x94, 0x90, 0x00, 0x00, 0x00, -0x00, 0x38, 0xDD, 0x61, 0x10, 0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0x76, 0x90, 0x00, 0x00, 0x00, -0x00, 0x3A, 0xBD, 0x43, 0x10, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xDB, 0x58, 0x90, 0x00, 0x00, 0x00, -0x00, 0x3C, 0xA6, 0x5F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x3A, 0x90, 0x00, 0x00, 0x00, -0x00, 0x3E, 0x86, 0x41, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x1C, 0x90, 0x00, 0x00, 0x00, -0x00, 0x40, 0x66, 0x23, 0x90, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x39, 0x10, 0x00, 0x00, 0x00, -0x00, 0x42, 0x46, 0x05, 0x90, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x1B, 0x10, 0x00, 0x00, 0x00, -0x00, 0x44, 0x25, 0xE7, 0x90, 0x00, 0x00, 0x00, 0x00, 0x45, 0x43, 0xFD, 0x10, 0x00, 0x00, 0x00, -0x00, 0x46, 0x05, 0xC9, 0x90, 0x00, 0x00, 0x00, 0x00, 0x47, 0x23, 0xDF, 0x10, 0x00, 0x00, 0x00, -0x00, 0x47, 0xEE, 0xE6, 0x10, 0x00, 0x00, 0x00, 0x00, 0x49, 0x03, 0xC1, 0x10, 0x00, 0x00, 0x00, -0x00, 0x49, 0xCE, 0xC8, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xE3, 0xA3, 0x10, 0x00, 0x00, 0x00, -0x00, 0x4B, 0xAE, 0xAA, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xCC, 0xBF, 0x90, 0x00, 0x00, 0x00, -0x00, 0x4D, 0x8E, 0x8C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xAC, 0xA1, 0x90, 0x00, 0x00, 0x00, -0x00, 0x4F, 0x6E, 0x6E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x50, 0x8C, 0x83, 0x90, 0x00, 0x00, 0x00, -0x00, 0x51, 0x57, 0x8A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x52, 0x6C, 0x65, 0x90, 0x00, 0x00, 0x00, -0x00, 0x53, 0x37, 0x6C, 0x90, 0x00, 0x00, 0x00, 0x00, 0x54, 0x4C, 0x47, 0x90, 0x00, 0x00, 0x00, -0x00, 0x55, 0x17, 0x4E, 0x90, 0x00, 0x00, 0x00, 0x00, 0x56, 0x2C, 0x29, 0x90, 0x00, 0x00, 0x00, -0x00, 0x56, 0xF7, 0x30, 0x90, 0x00, 0x00, 0x00, 0x00, 0x58, 0x15, 0x46, 0x10, 0x00, 0x00, 0x00, -0x00, 0x58, 0xD7, 0x12, 0x90, 0x00, 0x00, 0x00, 0x00, 0x59, 0xF5, 0x28, 0x10, 0x00, 0x00, 0x00, -0x00, 0x5A, 0xB6, 0xF4, 0x90, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xD5, 0x0A, 0x10, 0x00, 0x00, 0x00, -0x00, 0x5C, 0xA0, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xB4, 0xEC, 0x10, 0x00, 0x00, 0x00, -0x00, 0x5E, 0x7F, 0xF3, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x94, 0xCE, 0x10, 0x00, 0x00, 0x00, -0x00, 0x60, 0x5F, 0xD5, 0x10, 0x00, 0x00, 0x00, 0x00, 0x61, 0x7D, 0xEA, 0x90, 0x00, 0x00, 0x00, -0x00, 0x62, 0x3F, 0xB7, 0x10, 0x00, 0x00, 0x00, 0x00, 0x63, 0x5D, 0xCC, 0x90, 0x00, 0x00, 0x00, -0x00, 0x64, 0x1F, 0x99, 0x10, 0x00, 0x00, 0x00, 0x00, 0x65, 0x3D, 0xAE, 0x90, 0x00, 0x00, 0x00, -0x00, 0x66, 0x08, 0xB5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x67, 0x1D, 0x90, 0x90, 0x00, 0x00, 0x00, -0x00, 0x67, 0xE8, 0x97, 0x90, 0x00, 0x00, 0x00, 0x00, 0x68, 0xFD, 0x72, 0x90, 0x00, 0x00, 0x00, -0x00, 0x69, 0xC8, 0x79, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xDD, 0x54, 0x90, 0x00, 0x00, 0x00, -0x00, 0x6B, 0xA8, 0x5B, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xC6, 0x71, 0x10, 0x00, 0x00, 0x00, -0x00, 0x6D, 0x88, 0x3D, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6E, 0xA6, 0x53, 0x10, 0x00, 0x00, 0x00, -0x00, 0x6F, 0x68, 0x1F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x70, 0x86, 0x35, 0x10, 0x00, 0x00, 0x00, -0x00, 0x71, 0x51, 0x3C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x72, 0x66, 0x17, 0x10, 0x00, 0x00, 0x00, -0x00, 0x73, 0x31, 0x1E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x74, 0x45, 0xF9, 0x10, 0x00, 0x00, 0x00, -0x00, 0x75, 0x11, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x76, 0x2F, 0x15, 0x90, 0x00, 0x00, 0x00, -0x00, 0x76, 0xF0, 0xE2, 0x10, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0E, 0xF7, 0x90, 0x00, 0x00, 0x00, -0x00, 0x78, 0xD0, 0xC4, 0x10, 0x00, 0x00, 0x00, 0x00, 0x79, 0xEE, 0xD9, 0x90, 0x00, 0x00, 0x00, -0x00, 0x7A, 0xB0, 0xA6, 0x10, 0x00, 0x00, 0x00, 0x00, 0x7B, 0xCE, 0xBB, 0x90, 0x00, 0x00, 0x00, -0x00, 0x7C, 0x99, 0xC2, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7D, 0xAE, 0x9D, 0x90, 0x00, 0x00, 0x00, -0x00, 0x7E, 0x79, 0xA4, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x8E, 0x7F, 0x90, 0x01, 0x04, 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, 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, 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, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, -0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, -0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x00, 0x00, 0x01, 0x01, -0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x0A, 0x3C, 0x2D, 0x30, 0x33, 0x3E, 0x33, 0x3C, 0x2D, 0x30, -0x32, 0x3E, 0x2C, 0x4D, 0x33, 0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x2D, 0x32, 0x2C, 0x4D, 0x31, 0x30, -0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x2D, 0x31, 0x0A, 0x00, 0xEB, 0x43, 0xDD, 0x00, 0xC3, 0xB8, 0x2A, +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, 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, 0x05, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, +0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, +0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, +0x2D, 0x30, 0x32, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, +0x0A, 0x3C, 0x2D, 0x30, 0x32, 0x3E, 0x32, 0x0A, 0x00, 0xEB, 0x43, 0xDD, 0x00, 0xC3, 0xB8, 0x2A, 0x00, 0x00, 0x00, 0x16, 0x47, 0x72, 0x65, 0x65, 0x6E, 0x6C, 0x61, 0x6E, 0x64, 0x20, 0x28, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x61, 0x72, 0x65, 0x61, 0x73, 0x29, /* America/Ojinaga */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x4D, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x14, 0xA5, 0xB6, 0xE8, 0x70, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x14, 0xA5, 0xB6, 0xE8, 0x70, 0xAF, 0xF2, 0x6E, 0xE0, 0xB6, 0x66, 0x56, 0x60, 0xB7, 0x43, 0xD2, 0x60, 0xB8, 0x0C, 0x36, 0x60, 0xB8, 0xFD, 0x86, 0xF0, 0x31, 0x67, 0x76, 0x00, 0x32, 0x73, 0x08, 0x70, 0x33, 0x47, 0x58, 0x00, 0x34, 0x52, 0xEA, 0x70, 0x35, 0x27, 0x48, 0x10, 0x36, 0x32, 0xDA, 0x80, 0x37, 0x07, 0x2A, 0x10, @@ -36620,62 +36840,87 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { 0x56, 0x35, 0xC6, 0x80, 0x56, 0xE5, 0x2C, 0x10, 0x58, 0x1E, 0xE3, 0x00, 0x58, 0xC5, 0x0E, 0x10, 0x59, 0xFE, 0xC5, 0x00, 0x5A, 0xA4, 0xF0, 0x10, 0x5B, 0xDE, 0xA7, 0x00, 0x5C, 0x84, 0xD2, 0x10, 0x5D, 0xBE, 0x89, 0x00, 0x5E, 0x64, 0xB4, 0x10, 0x5F, 0x9E, 0x6B, 0x00, 0x60, 0x4D, 0xD0, 0x90, -0x61, 0x87, 0x87, 0x80, 0x62, 0x2D, 0xB2, 0x90, 0x63, 0x5E, 0x2F, 0x00, 0x01, 0x02, 0x04, 0x03, -0x04, 0x02, 0x05, 0x02, 0x05, 0x02, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x61, 0x87, 0x87, 0x80, 0x62, 0x2D, 0xB2, 0x90, 0x63, 0x5E, 0x2F, 0x00, 0x64, 0x0D, 0x86, 0x80, +0x65, 0x47, 0x3D, 0x70, 0x65, 0xED, 0x68, 0x80, 0x67, 0x27, 0x1F, 0x70, 0x67, 0xCD, 0x4A, 0x80, +0x69, 0x07, 0x01, 0x70, 0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70, 0x6B, 0x96, 0x49, 0x00, +0x6C, 0xCF, 0xFF, 0xF0, 0x6D, 0x76, 0x2B, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, 0x6F, 0x56, 0x0D, 0x00, +0x70, 0x8F, 0xC3, 0xF0, 0x71, 0x35, 0xEF, 0x00, 0x72, 0x6F, 0xA5, 0xF0, 0x73, 0x15, 0xD1, 0x00, +0x74, 0x4F, 0x87, 0xF0, 0x74, 0xFE, 0xED, 0x80, 0x76, 0x38, 0xA4, 0x70, 0x76, 0xDE, 0xCF, 0x80, +0x78, 0x18, 0x86, 0x70, 0x78, 0xBE, 0xB1, 0x80, 0x79, 0xF8, 0x68, 0x70, 0x7A, 0x9E, 0x93, 0x80, +0x7B, 0xD8, 0x4A, 0x70, 0x7C, 0x7E, 0x75, 0x80, 0x7D, 0xB8, 0x2C, 0x70, 0x7E, 0x5E, 0x57, 0x80, +0x7F, 0x98, 0x0E, 0x70, 0x01, 0x02, 0x04, 0x03, 0x04, 0x02, 0x05, 0x02, 0x05, 0x02, 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, 0x02, 0xFF, 0xFF, 0x9E, 0x1C, 0x00, 0x00, 0xFF, 0xFF, -0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x0C, -0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x10, 0xFF, 0xFF, 0xAB, 0xA0, -0x01, 0x0C, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x02, +0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, +0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0xFF, 0xFF, +0x9E, 0x1C, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, +0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x0C, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, +0x01, 0x10, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x00, 0x01, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 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, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, -0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x14, 0xFF, 0xFF, 0xFF, 0xFF, 0xA5, 0xB6, 0xE8, 0x70, -0xFF, 0xFF, 0xFF, 0xFF, 0xAF, 0xF2, 0x6E, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xB6, 0x66, 0x56, 0x60, -0xFF, 0xFF, 0xFF, 0xFF, 0xB7, 0x43, 0xD2, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xB8, 0x0C, 0x36, 0x60, -0xFF, 0xFF, 0xFF, 0xFF, 0xB8, 0xFD, 0x86, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x31, 0x67, 0x76, 0x00, -0x00, 0x00, 0x00, 0x00, 0x32, 0x73, 0x08, 0x70, 0x00, 0x00, 0x00, 0x00, 0x33, 0x47, 0x58, 0x00, -0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0xEA, 0x70, 0x00, 0x00, 0x00, 0x00, 0x35, 0x27, 0x48, 0x10, -0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0xDA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x37, 0x07, 0x2A, 0x10, -0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xE7, 0x0C, 0x10, -0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0xD9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xF5, 0x12, 0x90, -0x00, 0x00, 0x00, 0x00, 0x3B, 0xB6, 0xD1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xB0, 0x0A, 0x90, -0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x9D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x8F, 0xEC, 0x90, -0x00, 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x6F, 0xCE, 0x90, -0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x9B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0xB0, 0x90, -0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x7D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x92, 0x90, -0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0x5F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0F, 0x74, 0x90, -0x00, 0x00, 0x00, 0x00, 0x47, 0x24, 0x41, 0x80, 0x00, 0x00, 0x00, 0x00, 0x47, 0xF8, 0x91, 0x10, -0x00, 0x00, 0x00, 0x00, 0x49, 0x04, 0x23, 0x80, 0x00, 0x00, 0x00, 0x00, 0x49, 0xD8, 0x73, 0x10, -0x00, 0x00, 0x00, 0x00, 0x4A, 0xE4, 0x05, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0xA5, 0x90, -0x00, 0x00, 0x00, 0x00, 0x4C, 0xD6, 0x5C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x7C, 0x87, 0x90, -0x00, 0x00, 0x00, 0x00, 0x4E, 0xB6, 0x3E, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x5C, 0x69, 0x90, -0x00, 0x00, 0x00, 0x00, 0x50, 0x96, 0x20, 0x80, 0x00, 0x00, 0x00, 0x00, 0x51, 0x3C, 0x4B, 0x90, -0x00, 0x00, 0x00, 0x00, 0x52, 0x76, 0x02, 0x80, 0x00, 0x00, 0x00, 0x00, 0x53, 0x1C, 0x2D, 0x90, -0x00, 0x00, 0x00, 0x00, 0x54, 0x55, 0xE4, 0x80, 0x00, 0x00, 0x00, 0x00, 0x54, 0xFC, 0x0F, 0x90, -0x00, 0x00, 0x00, 0x00, 0x56, 0x35, 0xC6, 0x80, 0x00, 0x00, 0x00, 0x00, 0x56, 0xE5, 0x2C, 0x10, -0x00, 0x00, 0x00, 0x00, 0x58, 0x1E, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0xC5, 0x0E, 0x10, -0x00, 0x00, 0x00, 0x00, 0x59, 0xFE, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xA4, 0xF0, 0x10, -0x00, 0x00, 0x00, 0x00, 0x5B, 0xDE, 0xA7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x84, 0xD2, 0x10, -0x00, 0x00, 0x00, 0x00, 0x5D, 0xBE, 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x64, 0xB4, 0x10, -0x00, 0x00, 0x00, 0x00, 0x5F, 0x9E, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x4D, 0xD0, 0x90, -0x00, 0x00, 0x00, 0x00, 0x61, 0x87, 0x87, 0x80, 0x00, 0x00, 0x00, 0x00, 0x62, 0x2D, 0xB2, 0x90, -0x00, 0x00, 0x00, 0x00, 0x63, 0x5E, 0x2F, 0x00, 0x01, 0x02, 0x04, 0x03, 0x04, 0x02, 0x05, 0x02, -0x05, 0x02, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x00, 0x00, 0x00, 0x00, 0x01, 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, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5A, 0x00, 0x00, +0x00, 0x07, 0x00, 0x00, 0x00, 0x14, 0xFF, 0xFF, 0xFF, 0xFF, 0xA5, 0xB6, 0xE8, 0x70, 0xFF, 0xFF, +0xFF, 0xFF, 0xAF, 0xF2, 0x6E, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xB6, 0x66, 0x56, 0x60, 0xFF, 0xFF, +0xFF, 0xFF, 0xB7, 0x43, 0xD2, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xB8, 0x0C, 0x36, 0x60, 0xFF, 0xFF, +0xFF, 0xFF, 0xB8, 0xFD, 0x86, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x31, 0x67, 0x76, 0x00, 0x00, 0x00, +0x00, 0x00, 0x32, 0x73, 0x08, 0x70, 0x00, 0x00, 0x00, 0x00, 0x33, 0x47, 0x58, 0x00, 0x00, 0x00, +0x00, 0x00, 0x34, 0x52, 0xEA, 0x70, 0x00, 0x00, 0x00, 0x00, 0x35, 0x27, 0x48, 0x10, 0x00, 0x00, +0x00, 0x00, 0x36, 0x32, 0xDA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x37, 0x07, 0x2A, 0x10, 0x00, 0x00, +0x00, 0x00, 0x38, 0x1B, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xE7, 0x0C, 0x10, 0x00, 0x00, +0x00, 0x00, 0x39, 0xFB, 0xD9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xF5, 0x12, 0x90, 0x00, 0x00, +0x00, 0x00, 0x3B, 0xB6, 0xD1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xB0, 0x0A, 0x90, 0x00, 0x00, +0x00, 0x00, 0x3D, 0xBB, 0x9D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x8F, 0xEC, 0x90, 0x00, 0x00, +0x00, 0x00, 0x3F, 0x9B, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x6F, 0xCE, 0x90, 0x00, 0x00, +0x00, 0x00, 0x41, 0x84, 0x9B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0xB0, 0x90, 0x00, 0x00, +0x00, 0x00, 0x43, 0x64, 0x7D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x92, 0x90, 0x00, 0x00, +0x00, 0x00, 0x45, 0x44, 0x5F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0F, 0x74, 0x90, 0x00, 0x00, +0x00, 0x00, 0x47, 0x24, 0x41, 0x80, 0x00, 0x00, 0x00, 0x00, 0x47, 0xF8, 0x91, 0x10, 0x00, 0x00, +0x00, 0x00, 0x49, 0x04, 0x23, 0x80, 0x00, 0x00, 0x00, 0x00, 0x49, 0xD8, 0x73, 0x10, 0x00, 0x00, +0x00, 0x00, 0x4A, 0xE4, 0x05, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0xA5, 0x90, 0x00, 0x00, +0x00, 0x00, 0x4C, 0xD6, 0x5C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x7C, 0x87, 0x90, 0x00, 0x00, +0x00, 0x00, 0x4E, 0xB6, 0x3E, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x5C, 0x69, 0x90, 0x00, 0x00, +0x00, 0x00, 0x50, 0x96, 0x20, 0x80, 0x00, 0x00, 0x00, 0x00, 0x51, 0x3C, 0x4B, 0x90, 0x00, 0x00, +0x00, 0x00, 0x52, 0x76, 0x02, 0x80, 0x00, 0x00, 0x00, 0x00, 0x53, 0x1C, 0x2D, 0x90, 0x00, 0x00, +0x00, 0x00, 0x54, 0x55, 0xE4, 0x80, 0x00, 0x00, 0x00, 0x00, 0x54, 0xFC, 0x0F, 0x90, 0x00, 0x00, +0x00, 0x00, 0x56, 0x35, 0xC6, 0x80, 0x00, 0x00, 0x00, 0x00, 0x56, 0xE5, 0x2C, 0x10, 0x00, 0x00, +0x00, 0x00, 0x58, 0x1E, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0xC5, 0x0E, 0x10, 0x00, 0x00, +0x00, 0x00, 0x59, 0xFE, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xA4, 0xF0, 0x10, 0x00, 0x00, +0x00, 0x00, 0x5B, 0xDE, 0xA7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x84, 0xD2, 0x10, 0x00, 0x00, +0x00, 0x00, 0x5D, 0xBE, 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x64, 0xB4, 0x10, 0x00, 0x00, +0x00, 0x00, 0x5F, 0x9E, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x4D, 0xD0, 0x90, 0x00, 0x00, +0x00, 0x00, 0x61, 0x87, 0x87, 0x80, 0x00, 0x00, 0x00, 0x00, 0x62, 0x2D, 0xB2, 0x90, 0x00, 0x00, +0x00, 0x00, 0x63, 0x5E, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x0D, 0x86, 0x80, 0x00, 0x00, +0x00, 0x00, 0x65, 0x47, 0x3D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x65, 0xED, 0x68, 0x80, 0x00, 0x00, +0x00, 0x00, 0x67, 0x27, 0x1F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x67, 0xCD, 0x4A, 0x80, 0x00, 0x00, +0x00, 0x00, 0x69, 0x07, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, 0x69, 0xAD, 0x2C, 0x80, 0x00, 0x00, +0x00, 0x00, 0x6A, 0xE6, 0xE3, 0x70, 0x00, 0x00, 0x00, 0x00, 0x6B, 0x96, 0x49, 0x00, 0x00, 0x00, +0x00, 0x00, 0x6C, 0xCF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x76, 0x2B, 0x00, 0x00, 0x00, +0x00, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x56, 0x0D, 0x00, 0x00, 0x00, +0x00, 0x00, 0x70, 0x8F, 0xC3, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x71, 0x35, 0xEF, 0x00, 0x00, 0x00, +0x00, 0x00, 0x72, 0x6F, 0xA5, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x73, 0x15, 0xD1, 0x00, 0x00, 0x00, +0x00, 0x00, 0x74, 0x4F, 0x87, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x74, 0xFE, 0xED, 0x80, 0x00, 0x00, +0x00, 0x00, 0x76, 0x38, 0xA4, 0x70, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDE, 0xCF, 0x80, 0x00, 0x00, +0x00, 0x00, 0x78, 0x18, 0x86, 0x70, 0x00, 0x00, 0x00, 0x00, 0x78, 0xBE, 0xB1, 0x80, 0x00, 0x00, +0x00, 0x00, 0x79, 0xF8, 0x68, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x9E, 0x93, 0x80, 0x00, 0x00, +0x00, 0x00, 0x7B, 0xD8, 0x4A, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0x75, 0x80, 0x00, 0x00, +0x00, 0x00, 0x7D, 0xB8, 0x2C, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x5E, 0x57, 0x80, 0x00, 0x00, +0x00, 0x00, 0x7F, 0x98, 0x0E, 0x70, 0x01, 0x02, 0x04, 0x03, 0x04, 0x02, 0x05, 0x02, 0x05, 0x02, 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, 0x02, 0xFF, 0xFF, 0x9E, 0x1C, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, -0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x0C, 0xFF, 0xFF, 0x9D, 0x90, -0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x10, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x0C, 0xFF, 0xFF, -0xAB, 0xA0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, -0x4D, 0x44, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x43, 0x53, 0x54, 0x36, 0x0A, 0x00, 0xB6, -0x71, 0xBA, 0x00, 0x73, 0x54, 0xBD, 0x00, 0x00, 0x00, 0x28, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, -0x69, 0x6E, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x55, 0x53, 0x20, 0x2D, 0x20, 0x43, 0x68, 0x69, -0x68, 0x75, 0x61, 0x68, 0x75, 0x61, 0x20, 0x28, 0x55, 0x53, 0x20, 0x62, 0x6F, 0x72, 0x64, 0x65, -0x72, 0x29, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, +0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, +0xFF, 0xFF, 0x9E, 0x1C, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, +0x00, 0x08, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x0C, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, +0xB9, 0xB0, 0x01, 0x10, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, +0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x00, 0x01, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x43, 0x53, 0x54, +0x36, 0x43, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, +0x31, 0x2E, 0x30, 0x0A, 0x00, 0xB6, 0x71, 0xBA, 0x00, 0x73, 0x54, 0xBD, 0x00, 0x00, 0x00, 0x1C, +0x43, 0x68, 0x69, 0x68, 0x75, 0x61, 0x68, 0x75, 0x61, 0x20, 0x28, 0x55, 0x53, 0x20, 0x62, 0x6F, +0x72, 0x64, 0x65, 0x72, 0x20, 0x2D, 0x20, 0x65, 0x61, 0x73, 0x74, 0x29, /* America/Panama */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x50, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -36693,140 +36938,145 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { 0x00, 0x00, /* America/Pangnirtung */ -0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x29, 0xA3, 0xD5, 0x52, 0x80, -0xCB, 0x88, 0xE2, 0x60, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xED, 0xD0, 0xF7, 0x2F, 0x30, 0x40, -0xF8, 0x28, 0x5B, 0xC0, 0x13, 0x69, 0x39, 0xE0, 0x14, 0x59, 0x1C, 0xD0, 0x15, 0x49, 0x1B, 0xE0, -0x16, 0x38, 0xFE, 0xD0, 0x17, 0x28, 0xFD, 0xE0, 0x18, 0x22, 0x1B, 0x50, 0x19, 0x08, 0xDF, 0xE0, -0x1A, 0x01, 0xFD, 0x50, 0x1A, 0xF1, 0xFC, 0x60, 0x1B, 0xE1, 0xDF, 0x50, 0x1C, 0xD1, 0xDE, 0x60, -0x1D, 0xC1, 0xC1, 0x50, 0x1E, 0xB1, 0xC0, 0x60, 0x1F, 0xA1, 0xA3, 0x50, 0x20, 0x75, 0xF2, 0xE0, -0x21, 0x81, 0x85, 0x50, 0x22, 0x55, 0xD4, 0xE0, 0x23, 0x6A, 0xA1, 0xD0, 0x24, 0x35, 0xB6, 0xE0, -0x25, 0x4A, 0x83, 0xD0, 0x26, 0x15, 0x98, 0xE0, 0x27, 0x2A, 0x65, 0xD0, 0x27, 0xFE, 0xB5, 0x60, -0x29, 0x0A, 0x47, 0xD0, 0x29, 0xDE, 0x97, 0x60, 0x2A, 0xEA, 0x29, 0xD0, 0x2B, 0xBE, 0x79, 0x60, -0x2C, 0xD3, 0x46, 0x50, 0x2D, 0x9E, 0x5B, 0x60, 0x2E, 0xB3, 0x28, 0x50, 0x2F, 0x7E, 0x3D, 0x60, -0x30, 0x93, 0x18, 0x60, 0x31, 0x67, 0x67, 0xF0, 0x32, 0x72, 0xFA, 0x60, 0x33, 0x47, 0x49, 0xF0, -0x34, 0x52, 0xDC, 0x60, 0x35, 0x27, 0x2B, 0xF0, 0x36, 0x32, 0xBE, 0x60, 0x37, 0x07, 0x0D, 0xF0, -0x38, 0x1B, 0xDA, 0xE0, 0x38, 0xE6, 0xFE, 0x00, 0x39, 0xFB, 0xCA, 0xF0, 0x3A, 0xC6, 0xD1, 0xF0, -0x3B, 0xDB, 0x9E, 0xE0, 0x3C, 0xAF, 0xEE, 0x70, 0x3D, 0xBB, 0x80, 0xE0, 0x3E, 0x8F, 0xD0, 0x70, -0x3F, 0x9B, 0x62, 0xE0, 0x40, 0x6F, 0xB2, 0x70, 0x41, 0x84, 0x7F, 0x60, 0x42, 0x4F, 0x94, 0x70, -0x43, 0x64, 0x61, 0x60, 0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x43, 0x60, 0x45, 0xF3, 0xA8, 0xF0, -0x47, 0x2D, 0x5F, 0xE0, 0x47, 0xD3, 0x8A, 0xF0, 0x49, 0x0D, 0x41, 0xE0, 0x49, 0xB3, 0x6C, 0xF0, -0x4A, 0xED, 0x23, 0xE0, 0x4B, 0x9C, 0x89, 0x70, 0x4C, 0xD6, 0x40, 0x60, 0x4D, 0x7C, 0x6B, 0x70, -0x4E, 0xB6, 0x22, 0x60, 0x4F, 0x5C, 0x4D, 0x70, 0x50, 0x96, 0x04, 0x60, 0x51, 0x3C, 0x2F, 0x70, -0x52, 0x75, 0xE6, 0x60, 0x53, 0x1C, 0x11, 0x70, 0x54, 0x55, 0xC8, 0x60, 0x54, 0xFB, 0xF3, 0x70, -0x56, 0x35, 0xAA, 0x60, 0x56, 0xE5, 0x0F, 0xF0, 0x58, 0x1E, 0xC6, 0xE0, 0x58, 0xC4, 0xF1, 0xF0, -0x59, 0xFE, 0xA8, 0xE0, 0x5A, 0xA4, 0xD3, 0xF0, 0x5B, 0xDE, 0x8A, 0xE0, 0x5C, 0x84, 0xB5, 0xF0, -0x5D, 0xBE, 0x6C, 0xE0, 0x5E, 0x64, 0x97, 0xF0, 0x5F, 0x9E, 0x4E, 0xE0, 0x60, 0x4D, 0xB4, 0x70, -0x61, 0x87, 0x6B, 0x60, 0x62, 0x2D, 0x96, 0x70, 0x63, 0x67, 0x4D, 0x60, 0x64, 0x0D, 0x78, 0x70, -0x65, 0x47, 0x2F, 0x60, 0x65, 0xED, 0x5A, 0x70, 0x67, 0x27, 0x11, 0x60, 0x67, 0xCD, 0x3C, 0x70, -0x69, 0x06, 0xF3, 0x60, 0x69, 0xAD, 0x1E, 0x70, 0x6A, 0xE6, 0xD5, 0x60, 0x6B, 0x96, 0x3A, 0xF0, -0x6C, 0xCF, 0xF1, 0xE0, 0x6D, 0x76, 0x1C, 0xF0, 0x6E, 0xAF, 0xD3, 0xE0, 0x6F, 0x55, 0xFE, 0xF0, -0x70, 0x8F, 0xB5, 0xE0, 0x71, 0x35, 0xE0, 0xF0, 0x72, 0x6F, 0x97, 0xE0, 0x73, 0x15, 0xC2, 0xF0, -0x74, 0x4F, 0x79, 0xE0, 0x74, 0xFE, 0xDF, 0x70, 0x76, 0x38, 0x96, 0x60, 0x76, 0xDE, 0xC1, 0x70, -0x78, 0x18, 0x78, 0x60, 0x78, 0xBE, 0xA3, 0x70, 0x79, 0xF8, 0x5A, 0x60, 0x7A, 0x9E, 0x85, 0x70, -0x7B, 0xD8, 0x3C, 0x60, 0x7C, 0x7E, 0x67, 0x70, 0x7D, 0xB8, 0x1E, 0x60, 0x7E, 0x5E, 0x49, 0x70, -0x7F, 0x98, 0x00, 0x60, 0x03, 0x01, 0x02, 0x03, 0x04, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, -0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, -0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, -0x06, 0x08, 0x09, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, -0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, -0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, -0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, -0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x08, -0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x0C, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x10, 0xFF, 0xFF, 0xD5, 0xD0, -0x01, 0x15, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x19, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x1D, 0xFF, 0xFF, -0xAB, 0xA0, 0x00, 0x21, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x25, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x19, -0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x1D, 0x2D, 0x30, 0x30, 0x00, 0x41, 0x57, 0x54, 0x00, 0x41, 0x50, -0x54, 0x00, 0x41, 0x53, 0x54, 0x00, 0x41, 0x44, 0x44, 0x54, 0x00, 0x41, 0x44, 0x54, 0x00, 0x45, -0x44, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x00, -0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, -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, 0x0C, 0x00, -0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00, 0x0C, 0x00, -0x00, 0x00, 0x29, 0xFF, 0xFF, 0xFF, 0xFF, 0xA3, 0xD5, 0x52, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, -0x88, 0xE2, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, -0x60, 0xED, 0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0x2F, 0x30, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, -0x28, 0x5B, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x39, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x14, -0x59, 0x1C, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x15, 0x49, 0x1B, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x16, -0x38, 0xFE, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x17, 0x28, 0xFD, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x18, -0x22, 0x1B, 0x50, 0x00, 0x00, 0x00, 0x00, 0x19, 0x08, 0xDF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x1A, -0x01, 0xFD, 0x50, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xF1, 0xFC, 0x60, 0x00, 0x00, 0x00, 0x00, 0x1B, -0xE1, 0xDF, 0x50, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xD1, 0xDE, 0x60, 0x00, 0x00, 0x00, 0x00, 0x1D, -0xC1, 0xC1, 0x50, 0x00, 0x00, 0x00, 0x00, 0x1E, 0xB1, 0xC0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x1F, -0xA1, 0xA3, 0x50, 0x00, 0x00, 0x00, 0x00, 0x20, 0x75, 0xF2, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x21, -0x81, 0x85, 0x50, 0x00, 0x00, 0x00, 0x00, 0x22, 0x55, 0xD4, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x23, -0x6A, 0xA1, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x24, 0x35, 0xB6, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x25, -0x4A, 0x83, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x26, 0x15, 0x98, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x27, -0x2A, 0x65, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x27, 0xFE, 0xB5, 0x60, 0x00, 0x00, 0x00, 0x00, 0x29, -0x0A, 0x47, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x29, 0xDE, 0x97, 0x60, 0x00, 0x00, 0x00, 0x00, 0x2A, -0xEA, 0x29, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xBE, 0x79, 0x60, 0x00, 0x00, 0x00, 0x00, 0x2C, -0xD3, 0x46, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x9E, 0x5B, 0x60, 0x00, 0x00, 0x00, 0x00, 0x2E, -0xB3, 0x28, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x7E, 0x3D, 0x60, 0x00, 0x00, 0x00, 0x00, 0x30, -0x93, 0x18, 0x60, 0x00, 0x00, 0x00, 0x00, 0x31, 0x67, 0x67, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x32, -0x72, 0xFA, 0x60, 0x00, 0x00, 0x00, 0x00, 0x33, 0x47, 0x49, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x34, -0x52, 0xDC, 0x60, 0x00, 0x00, 0x00, 0x00, 0x35, 0x27, 0x2B, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x36, -0x32, 0xBE, 0x60, 0x00, 0x00, 0x00, 0x00, 0x37, 0x07, 0x0D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x38, -0x1B, 0xDA, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x38, 0xE6, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, -0xFB, 0xCA, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xC6, 0xD1, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x3B, -0xDB, 0x9E, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xAF, 0xEE, 0x70, 0x00, 0x00, 0x00, 0x00, 0x3D, -0xBB, 0x80, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x8F, 0xD0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x3F, -0x9B, 0x62, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x40, 0x6F, 0xB2, 0x70, 0x00, 0x00, 0x00, 0x00, 0x41, -0x84, 0x7F, 0x60, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0x94, 0x70, 0x00, 0x00, 0x00, 0x00, 0x43, -0x64, 0x61, 0x60, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x76, 0x70, 0x00, 0x00, 0x00, 0x00, 0x45, -0x44, 0x43, 0x60, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0xA8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x47, -0x2D, 0x5F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x47, 0xD3, 0x8A, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x49, -0x0D, 0x41, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x49, 0xB3, 0x6C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x4A, -0xED, 0x23, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0x89, 0x70, 0x00, 0x00, 0x00, 0x00, 0x4C, -0xD6, 0x40, 0x60, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x7C, 0x6B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x4E, -0xB6, 0x22, 0x60, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x5C, 0x4D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x50, -0x96, 0x04, 0x60, 0x00, 0x00, 0x00, 0x00, 0x51, 0x3C, 0x2F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x52, -0x75, 0xE6, 0x60, 0x00, 0x00, 0x00, 0x00, 0x53, 0x1C, 0x11, 0x70, 0x00, 0x00, 0x00, 0x00, 0x54, -0x55, 0xC8, 0x60, 0x00, 0x00, 0x00, 0x00, 0x54, 0xFB, 0xF3, 0x70, 0x00, 0x00, 0x00, 0x00, 0x56, -0x35, 0xAA, 0x60, 0x00, 0x00, 0x00, 0x00, 0x56, 0xE5, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x58, -0x1E, 0xC6, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x58, 0xC4, 0xF1, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x59, -0xFE, 0xA8, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xA4, 0xD3, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5B, -0xDE, 0x8A, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x84, 0xB5, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5D, -0xBE, 0x6C, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x64, 0x97, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5F, -0x9E, 0x4E, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x60, 0x4D, 0xB4, 0x70, 0x00, 0x00, 0x00, 0x00, 0x61, -0x87, 0x6B, 0x60, 0x00, 0x00, 0x00, 0x00, 0x62, 0x2D, 0x96, 0x70, 0x00, 0x00, 0x00, 0x00, 0x63, -0x67, 0x4D, 0x60, 0x00, 0x00, 0x00, 0x00, 0x64, 0x0D, 0x78, 0x70, 0x00, 0x00, 0x00, 0x00, 0x65, -0x47, 0x2F, 0x60, 0x00, 0x00, 0x00, 0x00, 0x65, 0xED, 0x5A, 0x70, 0x00, 0x00, 0x00, 0x00, 0x67, -0x27, 0x11, 0x60, 0x00, 0x00, 0x00, 0x00, 0x67, 0xCD, 0x3C, 0x70, 0x00, 0x00, 0x00, 0x00, 0x69, -0x06, 0xF3, 0x60, 0x00, 0x00, 0x00, 0x00, 0x69, 0xAD, 0x1E, 0x70, 0x00, 0x00, 0x00, 0x00, 0x6A, -0xE6, 0xD5, 0x60, 0x00, 0x00, 0x00, 0x00, 0x6B, 0x96, 0x3A, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x6C, -0xCF, 0xF1, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x76, 0x1C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x6E, -0xAF, 0xD3, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x55, 0xFE, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x70, -0x8F, 0xB5, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x71, 0x35, 0xE0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x72, -0x6F, 0x97, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x73, 0x15, 0xC2, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x74, -0x4F, 0x79, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x74, 0xFE, 0xDF, 0x70, 0x00, 0x00, 0x00, 0x00, 0x76, -0x38, 0x96, 0x60, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDE, 0xC1, 0x70, 0x00, 0x00, 0x00, 0x00, 0x78, -0x18, 0x78, 0x60, 0x00, 0x00, 0x00, 0x00, 0x78, 0xBE, 0xA3, 0x70, 0x00, 0x00, 0x00, 0x00, 0x79, -0xF8, 0x5A, 0x60, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x9E, 0x85, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7B, -0xD8, 0x3C, 0x60, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0x67, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7D, -0xB8, 0x1E, 0x60, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x5E, 0x49, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7F, -0x98, 0x00, 0x60, 0x03, 0x01, 0x02, 0x03, 0x04, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, -0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, -0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, -0x08, 0x09, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, -0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, -0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, -0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, -0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x08, 0xFF, -0xFF, 0xC7, 0xC0, 0x00, 0x0C, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x10, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, -0x15, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x19, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x1D, 0xFF, 0xFF, 0xAB, -0xA0, 0x00, 0x21, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x25, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x19, 0xFF, -0xFF, 0xB9, 0xB0, 0x00, 0x1D, 0x2D, 0x30, 0x30, 0x00, 0x41, 0x57, 0x54, 0x00, 0x41, 0x50, 0x54, -0x00, 0x41, 0x53, 0x54, 0x00, 0x41, 0x44, 0x44, 0x54, 0x00, 0x41, 0x44, 0x54, 0x00, 0x45, 0x44, -0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x00, 0x00, -0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x45, 0x53, 0x54, 0x35, 0x45, 0x44, 0x54, 0x2C, 0x4D, -0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xEE, -0x3D, 0x95, 0x00, 0xAE, 0x5B, 0x6A, 0x00, 0x00, 0x00, 0x1A, 0x45, 0x61, 0x73, 0x74, 0x65, 0x72, -0x6E, 0x20, 0x2D, 0x20, 0x4E, 0x55, 0x20, 0x28, 0x50, 0x61, 0x6E, 0x67, 0x6E, 0x69, 0x72, 0x74, -0x75, 0x6E, 0x67, 0x29, +0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x1C, 0xCC, 0x6C, 0xA1, 0x80, +0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xFB, 0xE0, 0x04, 0x60, 0xFD, 0x70, 0x05, 0x50, 0xE0, 0x60, +0x06, 0x40, 0xDF, 0x70, 0x07, 0x30, 0xC2, 0x60, 0x08, 0x20, 0xC1, 0x70, 0x09, 0x10, 0xA4, 0x60, +0x0A, 0x00, 0xA3, 0x70, 0x0A, 0xF0, 0x86, 0x60, 0x0B, 0xE0, 0x85, 0x70, 0x0C, 0xD9, 0xA2, 0xE0, +0x0D, 0xC0, 0x67, 0x70, 0x0E, 0xB9, 0x84, 0xE0, 0x0F, 0xA9, 0x83, 0xF0, 0x10, 0x99, 0x66, 0xE0, +0x11, 0x89, 0x65, 0xF0, 0x12, 0x79, 0x48, 0xE0, 0x13, 0x69, 0x47, 0xF0, 0x14, 0x59, 0x2A, 0xE0, +0x15, 0x49, 0x29, 0xF0, 0x16, 0x39, 0x0C, 0xE0, 0x17, 0x29, 0x0B, 0xF0, 0x18, 0x22, 0x29, 0x60, +0x19, 0x08, 0xED, 0xF0, 0x1A, 0x02, 0x0B, 0x60, 0x1A, 0xF2, 0x0A, 0x70, 0x1B, 0xE1, 0xED, 0x60, +0x1C, 0xD1, 0xEC, 0x70, 0x1D, 0xC1, 0xCF, 0x60, 0x1E, 0xB1, 0xCE, 0x70, 0x1F, 0xA1, 0xB1, 0x60, +0x20, 0x76, 0x00, 0xF0, 0x21, 0x81, 0x93, 0x60, 0x22, 0x55, 0xE2, 0xF0, 0x23, 0x6A, 0xAF, 0xE0, +0x24, 0x35, 0xC4, 0xF0, 0x25, 0x4A, 0x91, 0xE0, 0x26, 0x15, 0xA6, 0xF0, 0x27, 0x2A, 0x73, 0xE0, +0x27, 0xFE, 0xC3, 0x70, 0x29, 0x0A, 0x55, 0xE0, 0x29, 0xDE, 0xA5, 0x70, 0x2A, 0xEA, 0x37, 0xE0, +0x2B, 0xBE, 0x87, 0x70, 0x2C, 0xD3, 0x54, 0x60, 0x2D, 0x9E, 0x69, 0x70, 0x2E, 0xB3, 0x36, 0x60, +0x2F, 0x7E, 0x4B, 0x70, 0x30, 0x93, 0x18, 0x60, 0x31, 0x67, 0x67, 0xF0, 0x32, 0x72, 0xFA, 0x60, +0x33, 0x47, 0x49, 0xF0, 0x34, 0x52, 0xDC, 0x60, 0x35, 0x27, 0x2B, 0xF0, 0x36, 0x32, 0xBE, 0x60, +0x37, 0x07, 0x0D, 0xF0, 0x38, 0x1B, 0xDA, 0xE0, 0x38, 0xE6, 0xFE, 0x00, 0x39, 0xFB, 0xCA, 0xF0, +0x3A, 0xC6, 0xD1, 0xF0, 0x3B, 0xDB, 0x9E, 0xE0, 0x3C, 0xAF, 0xEE, 0x70, 0x3D, 0xBB, 0x80, 0xE0, +0x3E, 0x8F, 0xD0, 0x70, 0x3F, 0x9B, 0x62, 0xE0, 0x40, 0x6F, 0xB2, 0x70, 0x41, 0x84, 0x7F, 0x60, +0x42, 0x4F, 0x94, 0x70, 0x43, 0x64, 0x61, 0x60, 0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x43, 0x60, +0x45, 0xF3, 0xA8, 0xF0, 0x47, 0x2D, 0x5F, 0xE0, 0x47, 0xD3, 0x8A, 0xF0, 0x49, 0x0D, 0x41, 0xE0, +0x49, 0xB3, 0x6C, 0xF0, 0x4A, 0xED, 0x23, 0xE0, 0x4B, 0x9C, 0x89, 0x70, 0x4C, 0xD6, 0x40, 0x60, +0x4D, 0x7C, 0x6B, 0x70, 0x4E, 0xB6, 0x22, 0x60, 0x4F, 0x5C, 0x4D, 0x70, 0x50, 0x96, 0x04, 0x60, +0x51, 0x3C, 0x2F, 0x70, 0x52, 0x75, 0xE6, 0x60, 0x53, 0x1C, 0x11, 0x70, 0x54, 0x55, 0xC8, 0x60, +0x54, 0xFB, 0xF3, 0x70, 0x56, 0x35, 0xAA, 0x60, 0x56, 0xE5, 0x0F, 0xF0, 0x58, 0x1E, 0xC6, 0xE0, +0x58, 0xC4, 0xF1, 0xF0, 0x59, 0xFE, 0xA8, 0xE0, 0x5A, 0xA4, 0xD3, 0xF0, 0x5B, 0xDE, 0x8A, 0xE0, +0x5C, 0x84, 0xB5, 0xF0, 0x5D, 0xBE, 0x6C, 0xE0, 0x5E, 0x64, 0x97, 0xF0, 0x5F, 0x9E, 0x4E, 0xE0, +0x60, 0x4D, 0xB4, 0x70, 0x61, 0x87, 0x6B, 0x60, 0x62, 0x2D, 0x96, 0x70, 0x63, 0x67, 0x4D, 0x60, +0x64, 0x0D, 0x78, 0x70, 0x65, 0x47, 0x2F, 0x60, 0x65, 0xED, 0x5A, 0x70, 0x67, 0x27, 0x11, 0x60, +0x67, 0xCD, 0x3C, 0x70, 0x69, 0x06, 0xF3, 0x60, 0x69, 0xAD, 0x1E, 0x70, 0x6A, 0xE6, 0xD5, 0x60, +0x6B, 0x96, 0x3A, 0xF0, 0x6C, 0xCF, 0xF1, 0xE0, 0x6D, 0x76, 0x1C, 0xF0, 0x6E, 0xAF, 0xD3, 0xE0, +0x6F, 0x55, 0xFE, 0xF0, 0x70, 0x8F, 0xB5, 0xE0, 0x71, 0x35, 0xE0, 0xF0, 0x72, 0x6F, 0x97, 0xE0, +0x73, 0x15, 0xC2, 0xF0, 0x74, 0x4F, 0x79, 0xE0, 0x74, 0xFE, 0xDF, 0x70, 0x76, 0x38, 0x96, 0x60, +0x76, 0xDE, 0xC1, 0x70, 0x78, 0x18, 0x78, 0x60, 0x78, 0xBE, 0xA3, 0x70, 0x79, 0xF8, 0x5A, 0x60, +0x7A, 0x9E, 0x85, 0x70, 0x7B, 0xD8, 0x3C, 0x60, 0x7C, 0x7E, 0x67, 0x70, 0x7D, 0xB8, 0x1E, 0x60, +0x7E, 0x5E, 0x49, 0x70, 0x7F, 0x98, 0x00, 0x60, 0x04, 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, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x05, 0x06, 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, 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, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, +0x08, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x0C, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x10, 0xFF, 0xFF, 0xAB, +0xA0, 0x00, 0x14, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x18, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x0C, 0xFF, +0xFF, 0xB9, 0xB0, 0x00, 0x08, 0x2D, 0x30, 0x30, 0x00, 0x45, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, +0x00, 0x45, 0x44, 0x54, 0x00, 0x45, 0x57, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, +0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x1C, 0xFF, +0xFF, 0xFF, 0xFF, 0xCC, 0x6C, 0xA1, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, +0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xFB, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x04, 0x60, 0xFD, 0x70, 0x00, +0x00, 0x00, 0x00, 0x05, 0x50, 0xE0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x06, 0x40, 0xDF, 0x70, 0x00, +0x00, 0x00, 0x00, 0x07, 0x30, 0xC2, 0x60, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0xC1, 0x70, 0x00, +0x00, 0x00, 0x00, 0x09, 0x10, 0xA4, 0x60, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0xA3, 0x70, 0x00, +0x00, 0x00, 0x00, 0x0A, 0xF0, 0x86, 0x60, 0x00, 0x00, 0x00, 0x00, 0x0B, 0xE0, 0x85, 0x70, 0x00, +0x00, 0x00, 0x00, 0x0C, 0xD9, 0xA2, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x0D, 0xC0, 0x67, 0x70, 0x00, +0x00, 0x00, 0x00, 0x0E, 0xB9, 0x84, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA9, 0x83, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x10, 0x99, 0x66, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x11, 0x89, 0x65, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x12, 0x79, 0x48, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x47, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x14, 0x59, 0x2A, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x15, 0x49, 0x29, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x16, 0x39, 0x0C, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x17, 0x29, 0x0B, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x18, 0x22, 0x29, 0x60, 0x00, 0x00, 0x00, 0x00, 0x19, 0x08, 0xED, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x1A, 0x02, 0x0B, 0x60, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xF2, 0x0A, 0x70, 0x00, +0x00, 0x00, 0x00, 0x1B, 0xE1, 0xED, 0x60, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xD1, 0xEC, 0x70, 0x00, +0x00, 0x00, 0x00, 0x1D, 0xC1, 0xCF, 0x60, 0x00, 0x00, 0x00, 0x00, 0x1E, 0xB1, 0xCE, 0x70, 0x00, +0x00, 0x00, 0x00, 0x1F, 0xA1, 0xB1, 0x60, 0x00, 0x00, 0x00, 0x00, 0x20, 0x76, 0x00, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x21, 0x81, 0x93, 0x60, 0x00, 0x00, 0x00, 0x00, 0x22, 0x55, 0xE2, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x23, 0x6A, 0xAF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x24, 0x35, 0xC4, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x25, 0x4A, 0x91, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x26, 0x15, 0xA6, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x27, 0x2A, 0x73, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x27, 0xFE, 0xC3, 0x70, 0x00, +0x00, 0x00, 0x00, 0x29, 0x0A, 0x55, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x29, 0xDE, 0xA5, 0x70, 0x00, +0x00, 0x00, 0x00, 0x2A, 0xEA, 0x37, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xBE, 0x87, 0x70, 0x00, +0x00, 0x00, 0x00, 0x2C, 0xD3, 0x54, 0x60, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x9E, 0x69, 0x70, 0x00, +0x00, 0x00, 0x00, 0x2E, 0xB3, 0x36, 0x60, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x7E, 0x4B, 0x70, 0x00, +0x00, 0x00, 0x00, 0x30, 0x93, 0x18, 0x60, 0x00, 0x00, 0x00, 0x00, 0x31, 0x67, 0x67, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x32, 0x72, 0xFA, 0x60, 0x00, 0x00, 0x00, 0x00, 0x33, 0x47, 0x49, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x34, 0x52, 0xDC, 0x60, 0x00, 0x00, 0x00, 0x00, 0x35, 0x27, 0x2B, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x36, 0x32, 0xBE, 0x60, 0x00, 0x00, 0x00, 0x00, 0x37, 0x07, 0x0D, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x38, 0x1B, 0xDA, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x38, 0xE6, 0xFE, 0x00, 0x00, +0x00, 0x00, 0x00, 0x39, 0xFB, 0xCA, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xC6, 0xD1, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x3B, 0xDB, 0x9E, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xAF, 0xEE, 0x70, 0x00, +0x00, 0x00, 0x00, 0x3D, 0xBB, 0x80, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x8F, 0xD0, 0x70, 0x00, +0x00, 0x00, 0x00, 0x3F, 0x9B, 0x62, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x40, 0x6F, 0xB2, 0x70, 0x00, +0x00, 0x00, 0x00, 0x41, 0x84, 0x7F, 0x60, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0x94, 0x70, 0x00, +0x00, 0x00, 0x00, 0x43, 0x64, 0x61, 0x60, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x76, 0x70, 0x00, +0x00, 0x00, 0x00, 0x45, 0x44, 0x43, 0x60, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0xA8, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x47, 0x2D, 0x5F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x47, 0xD3, 0x8A, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x49, 0x0D, 0x41, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x49, 0xB3, 0x6C, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x4A, 0xED, 0x23, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0x89, 0x70, 0x00, +0x00, 0x00, 0x00, 0x4C, 0xD6, 0x40, 0x60, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x7C, 0x6B, 0x70, 0x00, +0x00, 0x00, 0x00, 0x4E, 0xB6, 0x22, 0x60, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x5C, 0x4D, 0x70, 0x00, +0x00, 0x00, 0x00, 0x50, 0x96, 0x04, 0x60, 0x00, 0x00, 0x00, 0x00, 0x51, 0x3C, 0x2F, 0x70, 0x00, +0x00, 0x00, 0x00, 0x52, 0x75, 0xE6, 0x60, 0x00, 0x00, 0x00, 0x00, 0x53, 0x1C, 0x11, 0x70, 0x00, +0x00, 0x00, 0x00, 0x54, 0x55, 0xC8, 0x60, 0x00, 0x00, 0x00, 0x00, 0x54, 0xFB, 0xF3, 0x70, 0x00, +0x00, 0x00, 0x00, 0x56, 0x35, 0xAA, 0x60, 0x00, 0x00, 0x00, 0x00, 0x56, 0xE5, 0x0F, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x58, 0x1E, 0xC6, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x58, 0xC4, 0xF1, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x59, 0xFE, 0xA8, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xA4, 0xD3, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x5B, 0xDE, 0x8A, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x84, 0xB5, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x5D, 0xBE, 0x6C, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x64, 0x97, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x5F, 0x9E, 0x4E, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x60, 0x4D, 0xB4, 0x70, 0x00, +0x00, 0x00, 0x00, 0x61, 0x87, 0x6B, 0x60, 0x00, 0x00, 0x00, 0x00, 0x62, 0x2D, 0x96, 0x70, 0x00, +0x00, 0x00, 0x00, 0x63, 0x67, 0x4D, 0x60, 0x00, 0x00, 0x00, 0x00, 0x64, 0x0D, 0x78, 0x70, 0x00, +0x00, 0x00, 0x00, 0x65, 0x47, 0x2F, 0x60, 0x00, 0x00, 0x00, 0x00, 0x65, 0xED, 0x5A, 0x70, 0x00, +0x00, 0x00, 0x00, 0x67, 0x27, 0x11, 0x60, 0x00, 0x00, 0x00, 0x00, 0x67, 0xCD, 0x3C, 0x70, 0x00, +0x00, 0x00, 0x00, 0x69, 0x06, 0xF3, 0x60, 0x00, 0x00, 0x00, 0x00, 0x69, 0xAD, 0x1E, 0x70, 0x00, +0x00, 0x00, 0x00, 0x6A, 0xE6, 0xD5, 0x60, 0x00, 0x00, 0x00, 0x00, 0x6B, 0x96, 0x3A, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x6C, 0xCF, 0xF1, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x76, 0x1C, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x6E, 0xAF, 0xD3, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x55, 0xFE, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x70, 0x8F, 0xB5, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x71, 0x35, 0xE0, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x72, 0x6F, 0x97, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x73, 0x15, 0xC2, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x74, 0x4F, 0x79, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x74, 0xFE, 0xDF, 0x70, 0x00, +0x00, 0x00, 0x00, 0x76, 0x38, 0x96, 0x60, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDE, 0xC1, 0x70, 0x00, +0x00, 0x00, 0x00, 0x78, 0x18, 0x78, 0x60, 0x00, 0x00, 0x00, 0x00, 0x78, 0xBE, 0xA3, 0x70, 0x00, +0x00, 0x00, 0x00, 0x79, 0xF8, 0x5A, 0x60, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x9E, 0x85, 0x70, 0x00, +0x00, 0x00, 0x00, 0x7B, 0xD8, 0x3C, 0x60, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0x67, 0x70, 0x00, +0x00, 0x00, 0x00, 0x7D, 0xB8, 0x1E, 0x60, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x5E, 0x49, 0x70, 0x00, +0x00, 0x00, 0x00, 0x7F, 0x98, 0x00, 0x60, 0x04, 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, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x05, 0x06, 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, 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, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x08, +0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x0C, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x10, 0xFF, 0xFF, 0xAB, 0xA0, +0x00, 0x14, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x18, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x0C, 0xFF, 0xFF, +0xB9, 0xB0, 0x00, 0x08, 0x2D, 0x30, 0x30, 0x00, 0x45, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, +0x45, 0x44, 0x54, 0x00, 0x45, 0x57, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, +0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x0A, 0x45, 0x53, 0x54, 0x35, 0x45, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, +0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* America/Paramaribo */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x53, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -37390,125 +37640,136 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { /* America/Rankin_Inlet */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x41, 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, 0x77, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x15, 0xE7, 0x8C, 0x6E, 0x00, -0xF7, 0x2F, 0x4C, 0x60, 0xF8, 0x28, 0x77, 0xE0, 0x13, 0x69, 0x56, 0x00, 0x14, 0x59, 0x38, 0xF0, -0x15, 0x49, 0x38, 0x00, 0x16, 0x39, 0x1A, 0xF0, 0x17, 0x29, 0x1A, 0x00, 0x18, 0x22, 0x37, 0x70, -0x19, 0x08, 0xFC, 0x00, 0x1A, 0x02, 0x19, 0x70, 0x1A, 0xF2, 0x18, 0x80, 0x1B, 0xE1, 0xFB, 0x70, -0x1C, 0xD1, 0xFA, 0x80, 0x1D, 0xC1, 0xDD, 0x70, 0x1E, 0xB1, 0xDC, 0x80, 0x1F, 0xA1, 0xBF, 0x70, -0x20, 0x76, 0x0F, 0x00, 0x21, 0x81, 0xA1, 0x70, 0x22, 0x55, 0xF1, 0x00, 0x23, 0x6A, 0xBD, 0xF0, -0x24, 0x35, 0xD3, 0x00, 0x25, 0x4A, 0x9F, 0xF0, 0x26, 0x15, 0xB5, 0x00, 0x27, 0x2A, 0x81, 0xF0, -0x27, 0xFE, 0xD1, 0x80, 0x29, 0x0A, 0x63, 0xF0, 0x29, 0xDE, 0xB3, 0x80, 0x2A, 0xEA, 0x45, 0xF0, -0x2B, 0xBE, 0x95, 0x80, 0x2C, 0xD3, 0x62, 0x70, 0x2D, 0x9E, 0x77, 0x80, 0x2E, 0xB3, 0x44, 0x70, -0x2F, 0x7E, 0x59, 0x80, 0x30, 0x93, 0x26, 0x70, 0x31, 0x67, 0x76, 0x00, 0x32, 0x73, 0x08, 0x70, -0x33, 0x47, 0x58, 0x00, 0x34, 0x52, 0xEA, 0x70, 0x35, 0x27, 0x3A, 0x00, 0x36, 0x32, 0xCC, 0x70, -0x37, 0x07, 0x1C, 0x00, 0x38, 0x1B, 0xE8, 0xF0, 0x38, 0xE6, 0xFE, 0x00, 0x39, 0xFB, 0xCA, 0xF0, -0x3A, 0xC6, 0xE0, 0x00, 0x3B, 0xDB, 0xAC, 0xF0, 0x3C, 0xAF, 0xFC, 0x80, 0x3D, 0xBB, 0x8E, 0xF0, -0x3E, 0x8F, 0xDE, 0x80, 0x3F, 0x9B, 0x70, 0xF0, 0x40, 0x6F, 0xC0, 0x80, 0x41, 0x84, 0x8D, 0x70, -0x42, 0x4F, 0xA2, 0x80, 0x43, 0x64, 0x6F, 0x70, 0x44, 0x2F, 0x84, 0x80, 0x45, 0x44, 0x51, 0x70, -0x45, 0xF3, 0xB7, 0x00, 0x47, 0x2D, 0x6D, 0xF0, 0x47, 0xD3, 0x99, 0x00, 0x49, 0x0D, 0x4F, 0xF0, -0x49, 0xB3, 0x7B, 0x00, 0x4A, 0xED, 0x31, 0xF0, 0x4B, 0x9C, 0x97, 0x80, 0x4C, 0xD6, 0x4E, 0x70, -0x4D, 0x7C, 0x79, 0x80, 0x4E, 0xB6, 0x30, 0x70, 0x4F, 0x5C, 0x5B, 0x80, 0x50, 0x96, 0x12, 0x70, -0x51, 0x3C, 0x3D, 0x80, 0x52, 0x75, 0xF4, 0x70, 0x53, 0x1C, 0x1F, 0x80, 0x54, 0x55, 0xD6, 0x70, -0x54, 0xFC, 0x01, 0x80, 0x56, 0x35, 0xB8, 0x70, 0x56, 0xE5, 0x1E, 0x00, 0x58, 0x1E, 0xD4, 0xF0, -0x58, 0xC5, 0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0, 0x5A, 0xA4, 0xE2, 0x00, 0x5B, 0xDE, 0x98, 0xF0, -0x5C, 0x84, 0xC4, 0x00, 0x5D, 0xBE, 0x7A, 0xF0, 0x5E, 0x64, 0xA6, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, -0x60, 0x4D, 0xC2, 0x80, 0x61, 0x87, 0x79, 0x70, 0x62, 0x2D, 0xA4, 0x80, 0x63, 0x67, 0x5B, 0x70, -0x64, 0x0D, 0x86, 0x80, 0x65, 0x47, 0x3D, 0x70, 0x65, 0xED, 0x68, 0x80, 0x67, 0x27, 0x1F, 0x70, -0x67, 0xCD, 0x4A, 0x80, 0x69, 0x07, 0x01, 0x70, 0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70, -0x6B, 0x96, 0x49, 0x00, 0x6C, 0xCF, 0xFF, 0xF0, 0x6D, 0x76, 0x2B, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, -0x6F, 0x56, 0x0D, 0x00, 0x70, 0x8F, 0xC3, 0xF0, 0x71, 0x35, 0xEF, 0x00, 0x72, 0x6F, 0xA5, 0xF0, -0x73, 0x15, 0xD1, 0x00, 0x74, 0x4F, 0x87, 0xF0, 0x74, 0xFE, 0xED, 0x80, 0x76, 0x38, 0xA4, 0x70, -0x76, 0xDE, 0xCF, 0x80, 0x78, 0x18, 0x86, 0x70, 0x78, 0xBE, 0xB1, 0x80, 0x79, 0xF8, 0x68, 0x70, -0x7A, 0x9E, 0x93, 0x80, 0x7B, 0xD8, 0x4A, 0x70, 0x7C, 0x7E, 0x75, 0x80, 0x7D, 0xB8, 0x2C, 0x70, -0x7E, 0x5E, 0x57, 0x80, 0x7F, 0x98, 0x0E, 0x70, 0x02, 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, 0x02, 0x03, 0x02, 0x03, -0x02, 0x03, 0x02, 0x03, 0x04, 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, 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, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, -0x09, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0D, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x11, 0xFF, 0xFF, 0xAB, -0xA0, 0x00, 0x09, 0x2D, 0x30, 0x30, 0x00, 0x43, 0x44, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, -0x43, 0x44, 0x54, 0x00, 0x45, 0x53, 0x54, 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, 0x77, 0x00, 0x00, 0x00, 0x06, -0x00, 0x00, 0x00, 0x15, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0x8C, 0x6E, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, -0xF7, 0x2F, 0x4C, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x28, 0x77, 0xE0, 0x00, 0x00, 0x00, 0x00, -0x13, 0x69, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x59, 0x38, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x15, 0x49, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x39, 0x1A, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x17, 0x29, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x22, 0x37, 0x70, 0x00, 0x00, 0x00, 0x00, -0x19, 0x08, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x02, 0x19, 0x70, 0x00, 0x00, 0x00, 0x00, -0x1A, 0xF2, 0x18, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xE1, 0xFB, 0x70, 0x00, 0x00, 0x00, 0x00, -0x1C, 0xD1, 0xFA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1D, 0xC1, 0xDD, 0x70, 0x00, 0x00, 0x00, 0x00, -0x1E, 0xB1, 0xDC, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xA1, 0xBF, 0x70, 0x00, 0x00, 0x00, 0x00, -0x20, 0x76, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x81, 0xA1, 0x70, 0x00, 0x00, 0x00, 0x00, -0x22, 0x55, 0xF1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x6A, 0xBD, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x24, 0x35, 0xD3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x4A, 0x9F, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x26, 0x15, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0x2A, 0x81, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x27, 0xFE, 0xD1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x29, 0x0A, 0x63, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x29, 0xDE, 0xB3, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xEA, 0x45, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x2B, 0xBE, 0x95, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xD3, 0x62, 0x70, 0x00, 0x00, 0x00, 0x00, -0x2D, 0x9E, 0x77, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2E, 0xB3, 0x44, 0x70, 0x00, 0x00, 0x00, 0x00, -0x2F, 0x7E, 0x59, 0x80, 0x00, 0x00, 0x00, 0x00, 0x30, 0x93, 0x26, 0x70, 0x00, 0x00, 0x00, 0x00, -0x31, 0x67, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x73, 0x08, 0x70, 0x00, 0x00, 0x00, 0x00, -0x33, 0x47, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0xEA, 0x70, 0x00, 0x00, 0x00, 0x00, -0x35, 0x27, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0xCC, 0x70, 0x00, 0x00, 0x00, 0x00, -0x37, 0x07, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0xE8, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x38, 0xE6, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0xCA, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x3A, 0xC6, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xDB, 0xAC, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x3C, 0xAF, 0xFC, 0x80, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x8E, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x3E, 0x8F, 0xDE, 0x80, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x70, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x40, 0x6F, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x8D, 0x70, 0x00, 0x00, 0x00, 0x00, -0x42, 0x4F, 0xA2, 0x80, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x6F, 0x70, 0x00, 0x00, 0x00, 0x00, -0x44, 0x2F, 0x84, 0x80, 0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0x51, 0x70, 0x00, 0x00, 0x00, 0x00, -0x45, 0xF3, 0xB7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x2D, 0x6D, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x47, 0xD3, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x0D, 0x4F, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x49, 0xB3, 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xED, 0x31, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x4B, 0x9C, 0x97, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xD6, 0x4E, 0x70, 0x00, 0x00, 0x00, 0x00, -0x4D, 0x7C, 0x79, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xB6, 0x30, 0x70, 0x00, 0x00, 0x00, 0x00, -0x4F, 0x5C, 0x5B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x50, 0x96, 0x12, 0x70, 0x00, 0x00, 0x00, 0x00, -0x51, 0x3C, 0x3D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x52, 0x75, 0xF4, 0x70, 0x00, 0x00, 0x00, 0x00, -0x53, 0x1C, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x54, 0x55, 0xD6, 0x70, 0x00, 0x00, 0x00, 0x00, -0x54, 0xFC, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x56, 0x35, 0xB8, 0x70, 0x00, 0x00, 0x00, 0x00, -0x56, 0xE5, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x1E, 0xD4, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x58, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x5A, 0xA4, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xDE, 0x98, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x5C, 0x84, 0xC4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xBE, 0x7A, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x5E, 0x64, 0xA6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x60, 0x4D, 0xC2, 0x80, 0x00, 0x00, 0x00, 0x00, 0x61, 0x87, 0x79, 0x70, 0x00, 0x00, 0x00, 0x00, -0x62, 0x2D, 0xA4, 0x80, 0x00, 0x00, 0x00, 0x00, 0x63, 0x67, 0x5B, 0x70, 0x00, 0x00, 0x00, 0x00, -0x64, 0x0D, 0x86, 0x80, 0x00, 0x00, 0x00, 0x00, 0x65, 0x47, 0x3D, 0x70, 0x00, 0x00, 0x00, 0x00, -0x65, 0xED, 0x68, 0x80, 0x00, 0x00, 0x00, 0x00, 0x67, 0x27, 0x1F, 0x70, 0x00, 0x00, 0x00, 0x00, -0x67, 0xCD, 0x4A, 0x80, 0x00, 0x00, 0x00, 0x00, 0x69, 0x07, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, -0x69, 0xAD, 0x2C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xE6, 0xE3, 0x70, 0x00, 0x00, 0x00, 0x00, -0x6B, 0x96, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xCF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x6D, 0x76, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x6F, 0x56, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x8F, 0xC3, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x71, 0x35, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0x6F, 0xA5, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x73, 0x15, 0xD1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x4F, 0x87, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x74, 0xFE, 0xED, 0x80, 0x00, 0x00, 0x00, 0x00, 0x76, 0x38, 0xA4, 0x70, 0x00, 0x00, 0x00, 0x00, -0x76, 0xDE, 0xCF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x78, 0x18, 0x86, 0x70, 0x00, 0x00, 0x00, 0x00, -0x78, 0xBE, 0xB1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x79, 0xF8, 0x68, 0x70, 0x00, 0x00, 0x00, 0x00, -0x7A, 0x9E, 0x93, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7B, 0xD8, 0x4A, 0x70, 0x00, 0x00, 0x00, 0x00, -0x7C, 0x7E, 0x75, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7D, 0xB8, 0x2C, 0x70, 0x00, 0x00, 0x00, 0x00, -0x7E, 0x5E, 0x57, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x98, 0x0E, 0x70, 0x02, 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, -0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x04, 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, 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, 0x02, 0x03, -0x02, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x04, 0xFF, -0xFF, 0xAB, 0xA0, 0x00, 0x09, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0D, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, -0x11, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x09, 0x2D, 0x30, 0x30, 0x00, 0x43, 0x44, 0x44, 0x54, 0x00, -0x43, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x0A, 0x43, 0x53, 0x54, -0x36, 0x43, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, -0x31, 0x2E, 0x30, 0x0A, 0x00, 0xE9, 0x2E, 0x02, 0x00, 0x86, 0x26, 0x8E, 0x00, 0x00, 0x00, 0x16, -0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x2D, 0x20, 0x4E, 0x55, 0x20, 0x28, 0x63, 0x65, -0x6E, 0x74, 0x72, 0x61, 0x6C, 0x29, +0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x10, 0xE7, 0x8C, 0x6E, 0x00, +0x04, 0x61, 0x0B, 0x80, 0x05, 0x50, 0xEE, 0x70, 0x06, 0x40, 0xED, 0x80, 0x07, 0x30, 0xD0, 0x70, +0x08, 0x20, 0xCF, 0x80, 0x09, 0x10, 0xB2, 0x70, 0x0A, 0x00, 0xB1, 0x80, 0x0A, 0xF0, 0x94, 0x70, +0x0B, 0xE0, 0x93, 0x80, 0x0C, 0xD9, 0xB0, 0xF0, 0x0D, 0xC0, 0x75, 0x80, 0x0E, 0xB9, 0x92, 0xF0, +0x0F, 0xA9, 0x92, 0x00, 0x10, 0x99, 0x74, 0xF0, 0x11, 0x89, 0x74, 0x00, 0x12, 0x79, 0x56, 0xF0, +0x13, 0x69, 0x56, 0x00, 0x14, 0x59, 0x38, 0xF0, 0x15, 0x49, 0x38, 0x00, 0x16, 0x39, 0x1A, 0xF0, +0x17, 0x29, 0x1A, 0x00, 0x18, 0x22, 0x37, 0x70, 0x19, 0x08, 0xFC, 0x00, 0x1A, 0x02, 0x19, 0x70, +0x1A, 0xF2, 0x18, 0x80, 0x1B, 0xE1, 0xFB, 0x70, 0x1C, 0xD1, 0xFA, 0x80, 0x1D, 0xC1, 0xDD, 0x70, +0x1E, 0xB1, 0xDC, 0x80, 0x1F, 0xA1, 0xBF, 0x70, 0x20, 0x76, 0x0F, 0x00, 0x21, 0x81, 0xA1, 0x70, +0x22, 0x55, 0xF1, 0x00, 0x23, 0x6A, 0xBD, 0xF0, 0x24, 0x35, 0xD3, 0x00, 0x25, 0x4A, 0x9F, 0xF0, +0x26, 0x15, 0xB5, 0x00, 0x27, 0x2A, 0x81, 0xF0, 0x27, 0xFE, 0xD1, 0x80, 0x29, 0x0A, 0x63, 0xF0, +0x29, 0xDE, 0xB3, 0x80, 0x2A, 0xEA, 0x45, 0xF0, 0x2B, 0xBE, 0x95, 0x80, 0x2C, 0xD3, 0x62, 0x70, +0x2D, 0x9E, 0x77, 0x80, 0x2E, 0xB3, 0x44, 0x70, 0x2F, 0x7E, 0x59, 0x80, 0x30, 0x93, 0x26, 0x70, +0x31, 0x67, 0x76, 0x00, 0x32, 0x73, 0x08, 0x70, 0x33, 0x47, 0x58, 0x00, 0x34, 0x52, 0xEA, 0x70, +0x35, 0x27, 0x3A, 0x00, 0x36, 0x32, 0xCC, 0x70, 0x37, 0x07, 0x1C, 0x00, 0x38, 0x1B, 0xE8, 0xF0, +0x38, 0xE6, 0xFE, 0x00, 0x39, 0xFB, 0xCA, 0xF0, 0x3A, 0xC6, 0xE0, 0x00, 0x3B, 0xDB, 0xAC, 0xF0, +0x3C, 0xAF, 0xFC, 0x80, 0x3D, 0xBB, 0x8E, 0xF0, 0x3E, 0x8F, 0xDE, 0x80, 0x3F, 0x9B, 0x70, 0xF0, +0x40, 0x6F, 0xC0, 0x80, 0x41, 0x84, 0x8D, 0x70, 0x42, 0x4F, 0xA2, 0x80, 0x43, 0x64, 0x6F, 0x70, +0x44, 0x2F, 0x84, 0x80, 0x45, 0x44, 0x51, 0x70, 0x45, 0xF3, 0xB7, 0x00, 0x47, 0x2D, 0x6D, 0xF0, +0x47, 0xD3, 0x99, 0x00, 0x49, 0x0D, 0x4F, 0xF0, 0x49, 0xB3, 0x7B, 0x00, 0x4A, 0xED, 0x31, 0xF0, +0x4B, 0x9C, 0x97, 0x80, 0x4C, 0xD6, 0x4E, 0x70, 0x4D, 0x7C, 0x79, 0x80, 0x4E, 0xB6, 0x30, 0x70, +0x4F, 0x5C, 0x5B, 0x80, 0x50, 0x96, 0x12, 0x70, 0x51, 0x3C, 0x3D, 0x80, 0x52, 0x75, 0xF4, 0x70, +0x53, 0x1C, 0x1F, 0x80, 0x54, 0x55, 0xD6, 0x70, 0x54, 0xFC, 0x01, 0x80, 0x56, 0x35, 0xB8, 0x70, +0x56, 0xE5, 0x1E, 0x00, 0x58, 0x1E, 0xD4, 0xF0, 0x58, 0xC5, 0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0, +0x5A, 0xA4, 0xE2, 0x00, 0x5B, 0xDE, 0x98, 0xF0, 0x5C, 0x84, 0xC4, 0x00, 0x5D, 0xBE, 0x7A, 0xF0, +0x5E, 0x64, 0xA6, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, 0x60, 0x4D, 0xC2, 0x80, 0x61, 0x87, 0x79, 0x70, +0x62, 0x2D, 0xA4, 0x80, 0x63, 0x67, 0x5B, 0x70, 0x64, 0x0D, 0x86, 0x80, 0x65, 0x47, 0x3D, 0x70, +0x65, 0xED, 0x68, 0x80, 0x67, 0x27, 0x1F, 0x70, 0x67, 0xCD, 0x4A, 0x80, 0x69, 0x07, 0x01, 0x70, +0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70, 0x6B, 0x96, 0x49, 0x00, 0x6C, 0xCF, 0xFF, 0xF0, +0x6D, 0x76, 0x2B, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, 0x6F, 0x56, 0x0D, 0x00, 0x70, 0x8F, 0xC3, 0xF0, +0x71, 0x35, 0xEF, 0x00, 0x72, 0x6F, 0xA5, 0xF0, 0x73, 0x15, 0xD1, 0x00, 0x74, 0x4F, 0x87, 0xF0, +0x74, 0xFE, 0xED, 0x80, 0x76, 0x38, 0xA4, 0x70, 0x76, 0xDE, 0xCF, 0x80, 0x78, 0x18, 0x86, 0x70, +0x78, 0xBE, 0xB1, 0x80, 0x79, 0xF8, 0x68, 0x70, 0x7A, 0x9E, 0x93, 0x80, 0x7B, 0xD8, 0x4A, 0x70, +0x7C, 0x7E, 0x75, 0x80, 0x7D, 0xB8, 0x2C, 0x70, 0x7E, 0x5E, 0x57, 0x80, 0x7F, 0x98, 0x0E, 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, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 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, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, +0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x0C, 0xFF, 0xFF, 0xAB, +0xA0, 0x00, 0x08, 0x2D, 0x30, 0x30, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x45, +0x53, 0x54, 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, 0x85, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x10, 0xFF, +0xFF, 0xFF, 0xFF, 0xE7, 0x8C, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x61, 0x0B, 0x80, 0x00, +0x00, 0x00, 0x00, 0x05, 0x50, 0xEE, 0x70, 0x00, 0x00, 0x00, 0x00, 0x06, 0x40, 0xED, 0x80, 0x00, +0x00, 0x00, 0x00, 0x07, 0x30, 0xD0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0xCF, 0x80, 0x00, +0x00, 0x00, 0x00, 0x09, 0x10, 0xB2, 0x70, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0xB1, 0x80, 0x00, +0x00, 0x00, 0x00, 0x0A, 0xF0, 0x94, 0x70, 0x00, 0x00, 0x00, 0x00, 0x0B, 0xE0, 0x93, 0x80, 0x00, +0x00, 0x00, 0x00, 0x0C, 0xD9, 0xB0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x0D, 0xC0, 0x75, 0x80, 0x00, +0x00, 0x00, 0x00, 0x0E, 0xB9, 0x92, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA9, 0x92, 0x00, 0x00, +0x00, 0x00, 0x00, 0x10, 0x99, 0x74, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x11, 0x89, 0x74, 0x00, 0x00, +0x00, 0x00, 0x00, 0x12, 0x79, 0x56, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x56, 0x00, 0x00, +0x00, 0x00, 0x00, 0x14, 0x59, 0x38, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x15, 0x49, 0x38, 0x00, 0x00, +0x00, 0x00, 0x00, 0x16, 0x39, 0x1A, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x17, 0x29, 0x1A, 0x00, 0x00, +0x00, 0x00, 0x00, 0x18, 0x22, 0x37, 0x70, 0x00, 0x00, 0x00, 0x00, 0x19, 0x08, 0xFC, 0x00, 0x00, +0x00, 0x00, 0x00, 0x1A, 0x02, 0x19, 0x70, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xF2, 0x18, 0x80, 0x00, +0x00, 0x00, 0x00, 0x1B, 0xE1, 0xFB, 0x70, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xD1, 0xFA, 0x80, 0x00, +0x00, 0x00, 0x00, 0x1D, 0xC1, 0xDD, 0x70, 0x00, 0x00, 0x00, 0x00, 0x1E, 0xB1, 0xDC, 0x80, 0x00, +0x00, 0x00, 0x00, 0x1F, 0xA1, 0xBF, 0x70, 0x00, 0x00, 0x00, 0x00, 0x20, 0x76, 0x0F, 0x00, 0x00, +0x00, 0x00, 0x00, 0x21, 0x81, 0xA1, 0x70, 0x00, 0x00, 0x00, 0x00, 0x22, 0x55, 0xF1, 0x00, 0x00, +0x00, 0x00, 0x00, 0x23, 0x6A, 0xBD, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x24, 0x35, 0xD3, 0x00, 0x00, +0x00, 0x00, 0x00, 0x25, 0x4A, 0x9F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x26, 0x15, 0xB5, 0x00, 0x00, +0x00, 0x00, 0x00, 0x27, 0x2A, 0x81, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x27, 0xFE, 0xD1, 0x80, 0x00, +0x00, 0x00, 0x00, 0x29, 0x0A, 0x63, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x29, 0xDE, 0xB3, 0x80, 0x00, +0x00, 0x00, 0x00, 0x2A, 0xEA, 0x45, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xBE, 0x95, 0x80, 0x00, +0x00, 0x00, 0x00, 0x2C, 0xD3, 0x62, 0x70, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x9E, 0x77, 0x80, 0x00, +0x00, 0x00, 0x00, 0x2E, 0xB3, 0x44, 0x70, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x7E, 0x59, 0x80, 0x00, +0x00, 0x00, 0x00, 0x30, 0x93, 0x26, 0x70, 0x00, 0x00, 0x00, 0x00, 0x31, 0x67, 0x76, 0x00, 0x00, +0x00, 0x00, 0x00, 0x32, 0x73, 0x08, 0x70, 0x00, 0x00, 0x00, 0x00, 0x33, 0x47, 0x58, 0x00, 0x00, +0x00, 0x00, 0x00, 0x34, 0x52, 0xEA, 0x70, 0x00, 0x00, 0x00, 0x00, 0x35, 0x27, 0x3A, 0x00, 0x00, +0x00, 0x00, 0x00, 0x36, 0x32, 0xCC, 0x70, 0x00, 0x00, 0x00, 0x00, 0x37, 0x07, 0x1C, 0x00, 0x00, +0x00, 0x00, 0x00, 0x38, 0x1B, 0xE8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x38, 0xE6, 0xFE, 0x00, 0x00, +0x00, 0x00, 0x00, 0x39, 0xFB, 0xCA, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xC6, 0xE0, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3B, 0xDB, 0xAC, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xAF, 0xFC, 0x80, 0x00, +0x00, 0x00, 0x00, 0x3D, 0xBB, 0x8E, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x8F, 0xDE, 0x80, 0x00, +0x00, 0x00, 0x00, 0x3F, 0x9B, 0x70, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x40, 0x6F, 0xC0, 0x80, 0x00, +0x00, 0x00, 0x00, 0x41, 0x84, 0x8D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0xA2, 0x80, 0x00, +0x00, 0x00, 0x00, 0x43, 0x64, 0x6F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x84, 0x80, 0x00, +0x00, 0x00, 0x00, 0x45, 0x44, 0x51, 0x70, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0xB7, 0x00, 0x00, +0x00, 0x00, 0x00, 0x47, 0x2D, 0x6D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x47, 0xD3, 0x99, 0x00, 0x00, +0x00, 0x00, 0x00, 0x49, 0x0D, 0x4F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x49, 0xB3, 0x7B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x4A, 0xED, 0x31, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0x97, 0x80, 0x00, +0x00, 0x00, 0x00, 0x4C, 0xD6, 0x4E, 0x70, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x7C, 0x79, 0x80, 0x00, +0x00, 0x00, 0x00, 0x4E, 0xB6, 0x30, 0x70, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x5C, 0x5B, 0x80, 0x00, +0x00, 0x00, 0x00, 0x50, 0x96, 0x12, 0x70, 0x00, 0x00, 0x00, 0x00, 0x51, 0x3C, 0x3D, 0x80, 0x00, +0x00, 0x00, 0x00, 0x52, 0x75, 0xF4, 0x70, 0x00, 0x00, 0x00, 0x00, 0x53, 0x1C, 0x1F, 0x80, 0x00, +0x00, 0x00, 0x00, 0x54, 0x55, 0xD6, 0x70, 0x00, 0x00, 0x00, 0x00, 0x54, 0xFC, 0x01, 0x80, 0x00, +0x00, 0x00, 0x00, 0x56, 0x35, 0xB8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x56, 0xE5, 0x1E, 0x00, 0x00, +0x00, 0x00, 0x00, 0x58, 0x1E, 0xD4, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x58, 0xC5, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xA4, 0xE2, 0x00, 0x00, +0x00, 0x00, 0x00, 0x5B, 0xDE, 0x98, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x84, 0xC4, 0x00, 0x00, +0x00, 0x00, 0x00, 0x5D, 0xBE, 0x7A, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x64, 0xA6, 0x00, 0x00, +0x00, 0x00, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x60, 0x4D, 0xC2, 0x80, 0x00, +0x00, 0x00, 0x00, 0x61, 0x87, 0x79, 0x70, 0x00, 0x00, 0x00, 0x00, 0x62, 0x2D, 0xA4, 0x80, 0x00, +0x00, 0x00, 0x00, 0x63, 0x67, 0x5B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x64, 0x0D, 0x86, 0x80, 0x00, +0x00, 0x00, 0x00, 0x65, 0x47, 0x3D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x65, 0xED, 0x68, 0x80, 0x00, +0x00, 0x00, 0x00, 0x67, 0x27, 0x1F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x67, 0xCD, 0x4A, 0x80, 0x00, +0x00, 0x00, 0x00, 0x69, 0x07, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, 0x69, 0xAD, 0x2C, 0x80, 0x00, +0x00, 0x00, 0x00, 0x6A, 0xE6, 0xE3, 0x70, 0x00, 0x00, 0x00, 0x00, 0x6B, 0x96, 0x49, 0x00, 0x00, +0x00, 0x00, 0x00, 0x6C, 0xCF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x76, 0x2B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x56, 0x0D, 0x00, 0x00, +0x00, 0x00, 0x00, 0x70, 0x8F, 0xC3, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x71, 0x35, 0xEF, 0x00, 0x00, +0x00, 0x00, 0x00, 0x72, 0x6F, 0xA5, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x73, 0x15, 0xD1, 0x00, 0x00, +0x00, 0x00, 0x00, 0x74, 0x4F, 0x87, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x74, 0xFE, 0xED, 0x80, 0x00, +0x00, 0x00, 0x00, 0x76, 0x38, 0xA4, 0x70, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDE, 0xCF, 0x80, 0x00, +0x00, 0x00, 0x00, 0x78, 0x18, 0x86, 0x70, 0x00, 0x00, 0x00, 0x00, 0x78, 0xBE, 0xB1, 0x80, 0x00, +0x00, 0x00, 0x00, 0x79, 0xF8, 0x68, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x9E, 0x93, 0x80, 0x00, +0x00, 0x00, 0x00, 0x7B, 0xD8, 0x4A, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0x75, 0x80, 0x00, +0x00, 0x00, 0x00, 0x7D, 0xB8, 0x2C, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x5E, 0x57, 0x80, 0x00, +0x00, 0x00, 0x00, 0x7F, 0x98, 0x0E, 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, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x03, 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, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, +0xB9, 0xB0, 0x00, 0x0C, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0x2D, 0x30, 0x30, 0x00, 0x43, 0x44, +0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x0A, 0x43, 0x53, 0x54, 0x36, 0x43, +0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, +0x30, 0x0A, 0x00, 0xE9, 0x2E, 0x02, 0x00, 0x86, 0x26, 0x8E, 0x00, 0x00, 0x00, 0x16, 0x43, 0x65, +0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x2D, 0x20, 0x4E, 0x55, 0x20, 0x28, 0x63, 0x65, 0x6E, 0x74, +0x72, 0x61, 0x6C, 0x29, /* America/Recife */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x42, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -37627,125 +37888,136 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { /* America/Resolute */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x41, 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, 0x77, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x15, 0xD5, 0xFB, 0x81, 0x80, -0xF7, 0x2F, 0x4C, 0x60, 0xF8, 0x28, 0x77, 0xE0, 0x13, 0x69, 0x56, 0x00, 0x14, 0x59, 0x38, 0xF0, -0x15, 0x49, 0x38, 0x00, 0x16, 0x39, 0x1A, 0xF0, 0x17, 0x29, 0x1A, 0x00, 0x18, 0x22, 0x37, 0x70, -0x19, 0x08, 0xFC, 0x00, 0x1A, 0x02, 0x19, 0x70, 0x1A, 0xF2, 0x18, 0x80, 0x1B, 0xE1, 0xFB, 0x70, -0x1C, 0xD1, 0xFA, 0x80, 0x1D, 0xC1, 0xDD, 0x70, 0x1E, 0xB1, 0xDC, 0x80, 0x1F, 0xA1, 0xBF, 0x70, -0x20, 0x76, 0x0F, 0x00, 0x21, 0x81, 0xA1, 0x70, 0x22, 0x55, 0xF1, 0x00, 0x23, 0x6A, 0xBD, 0xF0, -0x24, 0x35, 0xD3, 0x00, 0x25, 0x4A, 0x9F, 0xF0, 0x26, 0x15, 0xB5, 0x00, 0x27, 0x2A, 0x81, 0xF0, -0x27, 0xFE, 0xD1, 0x80, 0x29, 0x0A, 0x63, 0xF0, 0x29, 0xDE, 0xB3, 0x80, 0x2A, 0xEA, 0x45, 0xF0, -0x2B, 0xBE, 0x95, 0x80, 0x2C, 0xD3, 0x62, 0x70, 0x2D, 0x9E, 0x77, 0x80, 0x2E, 0xB3, 0x44, 0x70, -0x2F, 0x7E, 0x59, 0x80, 0x30, 0x93, 0x26, 0x70, 0x31, 0x67, 0x76, 0x00, 0x32, 0x73, 0x08, 0x70, -0x33, 0x47, 0x58, 0x00, 0x34, 0x52, 0xEA, 0x70, 0x35, 0x27, 0x3A, 0x00, 0x36, 0x32, 0xCC, 0x70, -0x37, 0x07, 0x1C, 0x00, 0x38, 0x1B, 0xE8, 0xF0, 0x38, 0xE6, 0xFE, 0x00, 0x39, 0xFB, 0xCA, 0xF0, -0x3A, 0xC6, 0xE0, 0x00, 0x3B, 0xDB, 0xAC, 0xF0, 0x3C, 0xAF, 0xFC, 0x80, 0x3D, 0xBB, 0x8E, 0xF0, -0x3E, 0x8F, 0xDE, 0x80, 0x3F, 0x9B, 0x70, 0xF0, 0x40, 0x6F, 0xC0, 0x80, 0x41, 0x84, 0x8D, 0x70, -0x42, 0x4F, 0xA2, 0x80, 0x43, 0x64, 0x6F, 0x70, 0x44, 0x2F, 0x84, 0x80, 0x45, 0x44, 0x51, 0x70, -0x45, 0xF3, 0xB7, 0x00, 0x47, 0x2D, 0x6D, 0xF0, 0x47, 0xD3, 0x99, 0x00, 0x49, 0x0D, 0x4F, 0xF0, -0x49, 0xB3, 0x7B, 0x00, 0x4A, 0xED, 0x31, 0xF0, 0x4B, 0x9C, 0x97, 0x80, 0x4C, 0xD6, 0x4E, 0x70, -0x4D, 0x7C, 0x79, 0x80, 0x4E, 0xB6, 0x30, 0x70, 0x4F, 0x5C, 0x5B, 0x80, 0x50, 0x96, 0x12, 0x70, -0x51, 0x3C, 0x3D, 0x80, 0x52, 0x75, 0xF4, 0x70, 0x53, 0x1C, 0x1F, 0x80, 0x54, 0x55, 0xD6, 0x70, -0x54, 0xFC, 0x01, 0x80, 0x56, 0x35, 0xB8, 0x70, 0x56, 0xE5, 0x1E, 0x00, 0x58, 0x1E, 0xD4, 0xF0, -0x58, 0xC5, 0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0, 0x5A, 0xA4, 0xE2, 0x00, 0x5B, 0xDE, 0x98, 0xF0, -0x5C, 0x84, 0xC4, 0x00, 0x5D, 0xBE, 0x7A, 0xF0, 0x5E, 0x64, 0xA6, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, -0x60, 0x4D, 0xC2, 0x80, 0x61, 0x87, 0x79, 0x70, 0x62, 0x2D, 0xA4, 0x80, 0x63, 0x67, 0x5B, 0x70, -0x64, 0x0D, 0x86, 0x80, 0x65, 0x47, 0x3D, 0x70, 0x65, 0xED, 0x68, 0x80, 0x67, 0x27, 0x1F, 0x70, -0x67, 0xCD, 0x4A, 0x80, 0x69, 0x07, 0x01, 0x70, 0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70, -0x6B, 0x96, 0x49, 0x00, 0x6C, 0xCF, 0xFF, 0xF0, 0x6D, 0x76, 0x2B, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, -0x6F, 0x56, 0x0D, 0x00, 0x70, 0x8F, 0xC3, 0xF0, 0x71, 0x35, 0xEF, 0x00, 0x72, 0x6F, 0xA5, 0xF0, -0x73, 0x15, 0xD1, 0x00, 0x74, 0x4F, 0x87, 0xF0, 0x74, 0xFE, 0xED, 0x80, 0x76, 0x38, 0xA4, 0x70, -0x76, 0xDE, 0xCF, 0x80, 0x78, 0x18, 0x86, 0x70, 0x78, 0xBE, 0xB1, 0x80, 0x79, 0xF8, 0x68, 0x70, -0x7A, 0x9E, 0x93, 0x80, 0x7B, 0xD8, 0x4A, 0x70, 0x7C, 0x7E, 0x75, 0x80, 0x7D, 0xB8, 0x2C, 0x70, -0x7E, 0x5E, 0x57, 0x80, 0x7F, 0x98, 0x0E, 0x70, 0x02, 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, 0x02, 0x03, 0x02, 0x03, -0x02, 0x03, 0x02, 0x03, 0x04, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, -0x04, 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, 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, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, -0x09, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0D, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x11, 0xFF, 0xFF, 0xAB, -0xA0, 0x00, 0x09, 0x2D, 0x30, 0x30, 0x00, 0x43, 0x44, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, -0x43, 0x44, 0x54, 0x00, 0x45, 0x53, 0x54, 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, 0x77, 0x00, 0x00, 0x00, 0x06, -0x00, 0x00, 0x00, 0x15, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0xFB, 0x81, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, -0xF7, 0x2F, 0x4C, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x28, 0x77, 0xE0, 0x00, 0x00, 0x00, 0x00, -0x13, 0x69, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x59, 0x38, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x15, 0x49, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x39, 0x1A, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x17, 0x29, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x22, 0x37, 0x70, 0x00, 0x00, 0x00, 0x00, -0x19, 0x08, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x02, 0x19, 0x70, 0x00, 0x00, 0x00, 0x00, -0x1A, 0xF2, 0x18, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xE1, 0xFB, 0x70, 0x00, 0x00, 0x00, 0x00, -0x1C, 0xD1, 0xFA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1D, 0xC1, 0xDD, 0x70, 0x00, 0x00, 0x00, 0x00, -0x1E, 0xB1, 0xDC, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xA1, 0xBF, 0x70, 0x00, 0x00, 0x00, 0x00, -0x20, 0x76, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x81, 0xA1, 0x70, 0x00, 0x00, 0x00, 0x00, -0x22, 0x55, 0xF1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x6A, 0xBD, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x24, 0x35, 0xD3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x4A, 0x9F, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x26, 0x15, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0x2A, 0x81, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x27, 0xFE, 0xD1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x29, 0x0A, 0x63, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x29, 0xDE, 0xB3, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xEA, 0x45, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x2B, 0xBE, 0x95, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xD3, 0x62, 0x70, 0x00, 0x00, 0x00, 0x00, -0x2D, 0x9E, 0x77, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2E, 0xB3, 0x44, 0x70, 0x00, 0x00, 0x00, 0x00, -0x2F, 0x7E, 0x59, 0x80, 0x00, 0x00, 0x00, 0x00, 0x30, 0x93, 0x26, 0x70, 0x00, 0x00, 0x00, 0x00, -0x31, 0x67, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x73, 0x08, 0x70, 0x00, 0x00, 0x00, 0x00, -0x33, 0x47, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0xEA, 0x70, 0x00, 0x00, 0x00, 0x00, -0x35, 0x27, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0xCC, 0x70, 0x00, 0x00, 0x00, 0x00, -0x37, 0x07, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0xE8, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x38, 0xE6, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0xCA, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x3A, 0xC6, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xDB, 0xAC, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x3C, 0xAF, 0xFC, 0x80, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x8E, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x3E, 0x8F, 0xDE, 0x80, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x70, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x40, 0x6F, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x8D, 0x70, 0x00, 0x00, 0x00, 0x00, -0x42, 0x4F, 0xA2, 0x80, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x6F, 0x70, 0x00, 0x00, 0x00, 0x00, -0x44, 0x2F, 0x84, 0x80, 0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0x51, 0x70, 0x00, 0x00, 0x00, 0x00, -0x45, 0xF3, 0xB7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x2D, 0x6D, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x47, 0xD3, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x0D, 0x4F, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x49, 0xB3, 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xED, 0x31, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x4B, 0x9C, 0x97, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xD6, 0x4E, 0x70, 0x00, 0x00, 0x00, 0x00, -0x4D, 0x7C, 0x79, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xB6, 0x30, 0x70, 0x00, 0x00, 0x00, 0x00, -0x4F, 0x5C, 0x5B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x50, 0x96, 0x12, 0x70, 0x00, 0x00, 0x00, 0x00, -0x51, 0x3C, 0x3D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x52, 0x75, 0xF4, 0x70, 0x00, 0x00, 0x00, 0x00, -0x53, 0x1C, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x54, 0x55, 0xD6, 0x70, 0x00, 0x00, 0x00, 0x00, -0x54, 0xFC, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x56, 0x35, 0xB8, 0x70, 0x00, 0x00, 0x00, 0x00, -0x56, 0xE5, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x1E, 0xD4, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x58, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x5A, 0xA4, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xDE, 0x98, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x5C, 0x84, 0xC4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xBE, 0x7A, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x5E, 0x64, 0xA6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x60, 0x4D, 0xC2, 0x80, 0x00, 0x00, 0x00, 0x00, 0x61, 0x87, 0x79, 0x70, 0x00, 0x00, 0x00, 0x00, -0x62, 0x2D, 0xA4, 0x80, 0x00, 0x00, 0x00, 0x00, 0x63, 0x67, 0x5B, 0x70, 0x00, 0x00, 0x00, 0x00, -0x64, 0x0D, 0x86, 0x80, 0x00, 0x00, 0x00, 0x00, 0x65, 0x47, 0x3D, 0x70, 0x00, 0x00, 0x00, 0x00, -0x65, 0xED, 0x68, 0x80, 0x00, 0x00, 0x00, 0x00, 0x67, 0x27, 0x1F, 0x70, 0x00, 0x00, 0x00, 0x00, -0x67, 0xCD, 0x4A, 0x80, 0x00, 0x00, 0x00, 0x00, 0x69, 0x07, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, -0x69, 0xAD, 0x2C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xE6, 0xE3, 0x70, 0x00, 0x00, 0x00, 0x00, -0x6B, 0x96, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xCF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x6D, 0x76, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x6F, 0x56, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x8F, 0xC3, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x71, 0x35, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0x6F, 0xA5, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x73, 0x15, 0xD1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x4F, 0x87, 0xF0, 0x00, 0x00, 0x00, 0x00, -0x74, 0xFE, 0xED, 0x80, 0x00, 0x00, 0x00, 0x00, 0x76, 0x38, 0xA4, 0x70, 0x00, 0x00, 0x00, 0x00, -0x76, 0xDE, 0xCF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x78, 0x18, 0x86, 0x70, 0x00, 0x00, 0x00, 0x00, -0x78, 0xBE, 0xB1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x79, 0xF8, 0x68, 0x70, 0x00, 0x00, 0x00, 0x00, -0x7A, 0x9E, 0x93, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7B, 0xD8, 0x4A, 0x70, 0x00, 0x00, 0x00, 0x00, -0x7C, 0x7E, 0x75, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7D, 0xB8, 0x2C, 0x70, 0x00, 0x00, 0x00, 0x00, -0x7E, 0x5E, 0x57, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x98, 0x0E, 0x70, 0x02, 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, -0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x04, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, -0x02, 0x03, 0x02, 0x03, 0x04, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x04, 0xFF, -0xFF, 0xAB, 0xA0, 0x00, 0x09, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0D, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, -0x11, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x09, 0x2D, 0x30, 0x30, 0x00, 0x43, 0x44, 0x44, 0x54, 0x00, -0x43, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x0A, 0x43, 0x53, 0x54, -0x36, 0x43, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, -0x31, 0x2E, 0x30, 0x0A, 0x00, 0xFB, 0x4E, 0x33, 0x00, 0x81, 0xF5, 0xDB, 0x00, 0x00, 0x00, 0x17, -0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x2D, 0x20, 0x4E, 0x55, 0x20, 0x28, 0x52, 0x65, -0x73, 0x6F, 0x6C, 0x75, 0x74, 0x65, 0x29, +0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x10, 0xD5, 0xFB, 0x81, 0x80, +0x04, 0x61, 0x0B, 0x80, 0x05, 0x50, 0xEE, 0x70, 0x06, 0x40, 0xED, 0x80, 0x07, 0x30, 0xD0, 0x70, +0x08, 0x20, 0xCF, 0x80, 0x09, 0x10, 0xB2, 0x70, 0x0A, 0x00, 0xB1, 0x80, 0x0A, 0xF0, 0x94, 0x70, +0x0B, 0xE0, 0x93, 0x80, 0x0C, 0xD9, 0xB0, 0xF0, 0x0D, 0xC0, 0x75, 0x80, 0x0E, 0xB9, 0x92, 0xF0, +0x0F, 0xA9, 0x92, 0x00, 0x10, 0x99, 0x74, 0xF0, 0x11, 0x89, 0x74, 0x00, 0x12, 0x79, 0x56, 0xF0, +0x13, 0x69, 0x56, 0x00, 0x14, 0x59, 0x38, 0xF0, 0x15, 0x49, 0x38, 0x00, 0x16, 0x39, 0x1A, 0xF0, +0x17, 0x29, 0x1A, 0x00, 0x18, 0x22, 0x37, 0x70, 0x19, 0x08, 0xFC, 0x00, 0x1A, 0x02, 0x19, 0x70, +0x1A, 0xF2, 0x18, 0x80, 0x1B, 0xE1, 0xFB, 0x70, 0x1C, 0xD1, 0xFA, 0x80, 0x1D, 0xC1, 0xDD, 0x70, +0x1E, 0xB1, 0xDC, 0x80, 0x1F, 0xA1, 0xBF, 0x70, 0x20, 0x76, 0x0F, 0x00, 0x21, 0x81, 0xA1, 0x70, +0x22, 0x55, 0xF1, 0x00, 0x23, 0x6A, 0xBD, 0xF0, 0x24, 0x35, 0xD3, 0x00, 0x25, 0x4A, 0x9F, 0xF0, +0x26, 0x15, 0xB5, 0x00, 0x27, 0x2A, 0x81, 0xF0, 0x27, 0xFE, 0xD1, 0x80, 0x29, 0x0A, 0x63, 0xF0, +0x29, 0xDE, 0xB3, 0x80, 0x2A, 0xEA, 0x45, 0xF0, 0x2B, 0xBE, 0x95, 0x80, 0x2C, 0xD3, 0x62, 0x70, +0x2D, 0x9E, 0x77, 0x80, 0x2E, 0xB3, 0x44, 0x70, 0x2F, 0x7E, 0x59, 0x80, 0x30, 0x93, 0x26, 0x70, +0x31, 0x67, 0x76, 0x00, 0x32, 0x73, 0x08, 0x70, 0x33, 0x47, 0x58, 0x00, 0x34, 0x52, 0xEA, 0x70, +0x35, 0x27, 0x3A, 0x00, 0x36, 0x32, 0xCC, 0x70, 0x37, 0x07, 0x1C, 0x00, 0x38, 0x1B, 0xE8, 0xF0, +0x38, 0xE6, 0xFE, 0x00, 0x39, 0xFB, 0xCA, 0xF0, 0x3A, 0xC6, 0xE0, 0x00, 0x3B, 0xDB, 0xAC, 0xF0, +0x3C, 0xAF, 0xFC, 0x80, 0x3D, 0xBB, 0x8E, 0xF0, 0x3E, 0x8F, 0xDE, 0x80, 0x3F, 0x9B, 0x70, 0xF0, +0x40, 0x6F, 0xC0, 0x80, 0x41, 0x84, 0x8D, 0x70, 0x42, 0x4F, 0xA2, 0x80, 0x43, 0x64, 0x6F, 0x70, +0x44, 0x2F, 0x84, 0x80, 0x45, 0x44, 0x51, 0x70, 0x45, 0xF3, 0xB7, 0x00, 0x47, 0x2D, 0x6D, 0xF0, +0x47, 0xD3, 0x99, 0x00, 0x49, 0x0D, 0x4F, 0xF0, 0x49, 0xB3, 0x7B, 0x00, 0x4A, 0xED, 0x31, 0xF0, +0x4B, 0x9C, 0x97, 0x80, 0x4C, 0xD6, 0x4E, 0x70, 0x4D, 0x7C, 0x79, 0x80, 0x4E, 0xB6, 0x30, 0x70, +0x4F, 0x5C, 0x5B, 0x80, 0x50, 0x96, 0x12, 0x70, 0x51, 0x3C, 0x3D, 0x80, 0x52, 0x75, 0xF4, 0x70, +0x53, 0x1C, 0x1F, 0x80, 0x54, 0x55, 0xD6, 0x70, 0x54, 0xFC, 0x01, 0x80, 0x56, 0x35, 0xB8, 0x70, +0x56, 0xE5, 0x1E, 0x00, 0x58, 0x1E, 0xD4, 0xF0, 0x58, 0xC5, 0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0, +0x5A, 0xA4, 0xE2, 0x00, 0x5B, 0xDE, 0x98, 0xF0, 0x5C, 0x84, 0xC4, 0x00, 0x5D, 0xBE, 0x7A, 0xF0, +0x5E, 0x64, 0xA6, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, 0x60, 0x4D, 0xC2, 0x80, 0x61, 0x87, 0x79, 0x70, +0x62, 0x2D, 0xA4, 0x80, 0x63, 0x67, 0x5B, 0x70, 0x64, 0x0D, 0x86, 0x80, 0x65, 0x47, 0x3D, 0x70, +0x65, 0xED, 0x68, 0x80, 0x67, 0x27, 0x1F, 0x70, 0x67, 0xCD, 0x4A, 0x80, 0x69, 0x07, 0x01, 0x70, +0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70, 0x6B, 0x96, 0x49, 0x00, 0x6C, 0xCF, 0xFF, 0xF0, +0x6D, 0x76, 0x2B, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, 0x6F, 0x56, 0x0D, 0x00, 0x70, 0x8F, 0xC3, 0xF0, +0x71, 0x35, 0xEF, 0x00, 0x72, 0x6F, 0xA5, 0xF0, 0x73, 0x15, 0xD1, 0x00, 0x74, 0x4F, 0x87, 0xF0, +0x74, 0xFE, 0xED, 0x80, 0x76, 0x38, 0xA4, 0x70, 0x76, 0xDE, 0xCF, 0x80, 0x78, 0x18, 0x86, 0x70, +0x78, 0xBE, 0xB1, 0x80, 0x79, 0xF8, 0x68, 0x70, 0x7A, 0x9E, 0x93, 0x80, 0x7B, 0xD8, 0x4A, 0x70, +0x7C, 0x7E, 0x75, 0x80, 0x7D, 0xB8, 0x2C, 0x70, 0x7E, 0x5E, 0x57, 0x80, 0x7F, 0x98, 0x0E, 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, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 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, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, +0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x0C, 0xFF, 0xFF, 0xAB, +0xA0, 0x00, 0x08, 0x2D, 0x30, 0x30, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x45, +0x53, 0x54, 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, 0x85, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x10, 0xFF, +0xFF, 0xFF, 0xFF, 0xD5, 0xFB, 0x81, 0x80, 0x00, 0x00, 0x00, 0x00, 0x04, 0x61, 0x0B, 0x80, 0x00, +0x00, 0x00, 0x00, 0x05, 0x50, 0xEE, 0x70, 0x00, 0x00, 0x00, 0x00, 0x06, 0x40, 0xED, 0x80, 0x00, +0x00, 0x00, 0x00, 0x07, 0x30, 0xD0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0xCF, 0x80, 0x00, +0x00, 0x00, 0x00, 0x09, 0x10, 0xB2, 0x70, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0xB1, 0x80, 0x00, +0x00, 0x00, 0x00, 0x0A, 0xF0, 0x94, 0x70, 0x00, 0x00, 0x00, 0x00, 0x0B, 0xE0, 0x93, 0x80, 0x00, +0x00, 0x00, 0x00, 0x0C, 0xD9, 0xB0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x0D, 0xC0, 0x75, 0x80, 0x00, +0x00, 0x00, 0x00, 0x0E, 0xB9, 0x92, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA9, 0x92, 0x00, 0x00, +0x00, 0x00, 0x00, 0x10, 0x99, 0x74, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x11, 0x89, 0x74, 0x00, 0x00, +0x00, 0x00, 0x00, 0x12, 0x79, 0x56, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x56, 0x00, 0x00, +0x00, 0x00, 0x00, 0x14, 0x59, 0x38, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x15, 0x49, 0x38, 0x00, 0x00, +0x00, 0x00, 0x00, 0x16, 0x39, 0x1A, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x17, 0x29, 0x1A, 0x00, 0x00, +0x00, 0x00, 0x00, 0x18, 0x22, 0x37, 0x70, 0x00, 0x00, 0x00, 0x00, 0x19, 0x08, 0xFC, 0x00, 0x00, +0x00, 0x00, 0x00, 0x1A, 0x02, 0x19, 0x70, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xF2, 0x18, 0x80, 0x00, +0x00, 0x00, 0x00, 0x1B, 0xE1, 0xFB, 0x70, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xD1, 0xFA, 0x80, 0x00, +0x00, 0x00, 0x00, 0x1D, 0xC1, 0xDD, 0x70, 0x00, 0x00, 0x00, 0x00, 0x1E, 0xB1, 0xDC, 0x80, 0x00, +0x00, 0x00, 0x00, 0x1F, 0xA1, 0xBF, 0x70, 0x00, 0x00, 0x00, 0x00, 0x20, 0x76, 0x0F, 0x00, 0x00, +0x00, 0x00, 0x00, 0x21, 0x81, 0xA1, 0x70, 0x00, 0x00, 0x00, 0x00, 0x22, 0x55, 0xF1, 0x00, 0x00, +0x00, 0x00, 0x00, 0x23, 0x6A, 0xBD, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x24, 0x35, 0xD3, 0x00, 0x00, +0x00, 0x00, 0x00, 0x25, 0x4A, 0x9F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x26, 0x15, 0xB5, 0x00, 0x00, +0x00, 0x00, 0x00, 0x27, 0x2A, 0x81, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x27, 0xFE, 0xD1, 0x80, 0x00, +0x00, 0x00, 0x00, 0x29, 0x0A, 0x63, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x29, 0xDE, 0xB3, 0x80, 0x00, +0x00, 0x00, 0x00, 0x2A, 0xEA, 0x45, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xBE, 0x95, 0x80, 0x00, +0x00, 0x00, 0x00, 0x2C, 0xD3, 0x62, 0x70, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x9E, 0x77, 0x80, 0x00, +0x00, 0x00, 0x00, 0x2E, 0xB3, 0x44, 0x70, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x7E, 0x59, 0x80, 0x00, +0x00, 0x00, 0x00, 0x30, 0x93, 0x26, 0x70, 0x00, 0x00, 0x00, 0x00, 0x31, 0x67, 0x76, 0x00, 0x00, +0x00, 0x00, 0x00, 0x32, 0x73, 0x08, 0x70, 0x00, 0x00, 0x00, 0x00, 0x33, 0x47, 0x58, 0x00, 0x00, +0x00, 0x00, 0x00, 0x34, 0x52, 0xEA, 0x70, 0x00, 0x00, 0x00, 0x00, 0x35, 0x27, 0x3A, 0x00, 0x00, +0x00, 0x00, 0x00, 0x36, 0x32, 0xCC, 0x70, 0x00, 0x00, 0x00, 0x00, 0x37, 0x07, 0x1C, 0x00, 0x00, +0x00, 0x00, 0x00, 0x38, 0x1B, 0xE8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x38, 0xE6, 0xFE, 0x00, 0x00, +0x00, 0x00, 0x00, 0x39, 0xFB, 0xCA, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xC6, 0xE0, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3B, 0xDB, 0xAC, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xAF, 0xFC, 0x80, 0x00, +0x00, 0x00, 0x00, 0x3D, 0xBB, 0x8E, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x8F, 0xDE, 0x80, 0x00, +0x00, 0x00, 0x00, 0x3F, 0x9B, 0x70, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x40, 0x6F, 0xC0, 0x80, 0x00, +0x00, 0x00, 0x00, 0x41, 0x84, 0x8D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0xA2, 0x80, 0x00, +0x00, 0x00, 0x00, 0x43, 0x64, 0x6F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x84, 0x80, 0x00, +0x00, 0x00, 0x00, 0x45, 0x44, 0x51, 0x70, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0xB7, 0x00, 0x00, +0x00, 0x00, 0x00, 0x47, 0x2D, 0x6D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x47, 0xD3, 0x99, 0x00, 0x00, +0x00, 0x00, 0x00, 0x49, 0x0D, 0x4F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x49, 0xB3, 0x7B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x4A, 0xED, 0x31, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0x97, 0x80, 0x00, +0x00, 0x00, 0x00, 0x4C, 0xD6, 0x4E, 0x70, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x7C, 0x79, 0x80, 0x00, +0x00, 0x00, 0x00, 0x4E, 0xB6, 0x30, 0x70, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x5C, 0x5B, 0x80, 0x00, +0x00, 0x00, 0x00, 0x50, 0x96, 0x12, 0x70, 0x00, 0x00, 0x00, 0x00, 0x51, 0x3C, 0x3D, 0x80, 0x00, +0x00, 0x00, 0x00, 0x52, 0x75, 0xF4, 0x70, 0x00, 0x00, 0x00, 0x00, 0x53, 0x1C, 0x1F, 0x80, 0x00, +0x00, 0x00, 0x00, 0x54, 0x55, 0xD6, 0x70, 0x00, 0x00, 0x00, 0x00, 0x54, 0xFC, 0x01, 0x80, 0x00, +0x00, 0x00, 0x00, 0x56, 0x35, 0xB8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x56, 0xE5, 0x1E, 0x00, 0x00, +0x00, 0x00, 0x00, 0x58, 0x1E, 0xD4, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x58, 0xC5, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xA4, 0xE2, 0x00, 0x00, +0x00, 0x00, 0x00, 0x5B, 0xDE, 0x98, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x84, 0xC4, 0x00, 0x00, +0x00, 0x00, 0x00, 0x5D, 0xBE, 0x7A, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x64, 0xA6, 0x00, 0x00, +0x00, 0x00, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x60, 0x4D, 0xC2, 0x80, 0x00, +0x00, 0x00, 0x00, 0x61, 0x87, 0x79, 0x70, 0x00, 0x00, 0x00, 0x00, 0x62, 0x2D, 0xA4, 0x80, 0x00, +0x00, 0x00, 0x00, 0x63, 0x67, 0x5B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x64, 0x0D, 0x86, 0x80, 0x00, +0x00, 0x00, 0x00, 0x65, 0x47, 0x3D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x65, 0xED, 0x68, 0x80, 0x00, +0x00, 0x00, 0x00, 0x67, 0x27, 0x1F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x67, 0xCD, 0x4A, 0x80, 0x00, +0x00, 0x00, 0x00, 0x69, 0x07, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, 0x69, 0xAD, 0x2C, 0x80, 0x00, +0x00, 0x00, 0x00, 0x6A, 0xE6, 0xE3, 0x70, 0x00, 0x00, 0x00, 0x00, 0x6B, 0x96, 0x49, 0x00, 0x00, +0x00, 0x00, 0x00, 0x6C, 0xCF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x76, 0x2B, 0x00, 0x00, +0x00, 0x00, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x56, 0x0D, 0x00, 0x00, +0x00, 0x00, 0x00, 0x70, 0x8F, 0xC3, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x71, 0x35, 0xEF, 0x00, 0x00, +0x00, 0x00, 0x00, 0x72, 0x6F, 0xA5, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x73, 0x15, 0xD1, 0x00, 0x00, +0x00, 0x00, 0x00, 0x74, 0x4F, 0x87, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x74, 0xFE, 0xED, 0x80, 0x00, +0x00, 0x00, 0x00, 0x76, 0x38, 0xA4, 0x70, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDE, 0xCF, 0x80, 0x00, +0x00, 0x00, 0x00, 0x78, 0x18, 0x86, 0x70, 0x00, 0x00, 0x00, 0x00, 0x78, 0xBE, 0xB1, 0x80, 0x00, +0x00, 0x00, 0x00, 0x79, 0xF8, 0x68, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x9E, 0x93, 0x80, 0x00, +0x00, 0x00, 0x00, 0x7B, 0xD8, 0x4A, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0x75, 0x80, 0x00, +0x00, 0x00, 0x00, 0x7D, 0xB8, 0x2C, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x5E, 0x57, 0x80, 0x00, +0x00, 0x00, 0x00, 0x7F, 0x98, 0x0E, 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, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x03, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 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, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, +0xB9, 0xB0, 0x00, 0x0C, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0x2D, 0x30, 0x30, 0x00, 0x43, 0x44, +0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x0A, 0x43, 0x53, 0x54, 0x36, 0x43, +0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, +0x30, 0x0A, 0x00, 0xFB, 0x4E, 0x33, 0x00, 0x81, 0xF5, 0xDB, 0x00, 0x00, 0x00, 0x17, 0x43, 0x65, +0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x2D, 0x20, 0x4E, 0x55, 0x20, 0x28, 0x52, 0x65, 0x73, 0x6F, +0x6C, 0x75, 0x74, 0x65, 0x29, /* America/Rio_Branco */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x42, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -39610,9 +39882,8 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0A, 0x50, 0x53, 0x54, 0x38, 0x50, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xBA, 0xF8, 0x95, 0x00, 0x60, 0x1A, 0xDD, 0x00, 0x00, -0x00, 0x21, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x20, 0x55, -0x53, 0x20, 0x2D, 0x20, 0x42, 0x61, 0x6A, 0x61, 0x20, 0x43, 0x61, 0x6C, 0x69, 0x66, 0x6F, 0x72, -0x6E, 0x69, 0x61, +0x00, 0x0F, 0x42, 0x61, 0x6A, 0x61, 0x20, 0x43, 0x61, 0x6C, 0x69, 0x66, 0x6F, 0x72, 0x6E, 0x69, +0x61, /* America/Toronto */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -40061,7 +40332,7 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { 0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x25, 0x80, 0x00, 0x00, 0x00, 0x9E, 0xB8, 0xCB, 0xB0, 0x9F, 0xBB, 0x23, 0xA0, 0xA0, 0xD0, 0x0C, 0xB0, 0xA1, 0xA2, 0xD2, 0x80, 0xCB, 0x89, 0x28, 0xB0, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x34, 0x20, 0xF7, 0x2F, 0x76, 0x90, -0xF8, 0x28, 0xA2, 0x10, 0xFB, 0x1D, 0x5F, 0x10, 0x13, 0x69, 0x72, 0x20, 0x14, 0x59, 0x55, 0x10, +0xF8, 0x28, 0xA2, 0x10, 0xF8, 0xC5, 0x84, 0x90, 0x13, 0x69, 0x72, 0x20, 0x14, 0x59, 0x55, 0x10, 0x15, 0x49, 0x54, 0x20, 0x16, 0x39, 0x37, 0x10, 0x17, 0x29, 0x36, 0x20, 0x18, 0x22, 0x53, 0x90, 0x19, 0x09, 0x18, 0x20, 0x1A, 0x02, 0x35, 0x90, 0x1A, 0xF2, 0x34, 0xA0, 0x1B, 0xE2, 0x17, 0x90, 0x1C, 0xD2, 0x16, 0xA0, 0x1D, 0xC1, 0xF9, 0x90, 0x1E, 0xB1, 0xF8, 0xA0, 0x1F, 0xA1, 0xDB, 0x90, @@ -40102,7 +40373,7 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { 0xFF, 0xFF, 0xA0, 0xD0, 0x0C, 0xB0, 0xFF, 0xFF, 0xFF, 0xFF, 0xA1, 0xA2, 0xD2, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x89, 0x28, 0xB0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x61, 0x34, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0x2F, 0x76, 0x90, 0xFF, 0xFF, -0xFF, 0xFF, 0xF8, 0x28, 0xA2, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0x1D, 0x5F, 0x10, 0x00, 0x00, +0xFF, 0xFF, 0xF8, 0x28, 0xA2, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xC5, 0x84, 0x90, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x72, 0x20, 0x00, 0x00, 0x00, 0x00, 0x14, 0x59, 0x55, 0x10, 0x00, 0x00, 0x00, 0x00, 0x15, 0x49, 0x54, 0x20, 0x00, 0x00, 0x00, 0x00, 0x16, 0x39, 0x37, 0x10, 0x00, 0x00, 0x00, 0x00, 0x17, 0x29, 0x36, 0x20, 0x00, 0x00, 0x00, 0x00, 0x18, 0x22, 0x53, 0x90, 0x00, 0x00, @@ -40494,131 +40765,141 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { /* America/Yellowknife */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x19, 0xBE, 0x2A, 0x18, 0x00, -0xCB, 0x89, 0x0C, 0x90, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x18, 0x00, 0xF7, 0x2F, 0x5A, 0x70, -0xF8, 0x28, 0x85, 0xF0, 0x13, 0x69, 0x64, 0x10, 0x14, 0x59, 0x47, 0x00, 0x15, 0x49, 0x46, 0x10, -0x16, 0x39, 0x29, 0x00, 0x17, 0x29, 0x28, 0x10, 0x18, 0x22, 0x45, 0x80, 0x19, 0x09, 0x0A, 0x10, -0x1A, 0x02, 0x27, 0x80, 0x1A, 0xF2, 0x26, 0x90, 0x1B, 0xE2, 0x09, 0x80, 0x1C, 0xD2, 0x08, 0x90, -0x1D, 0xC1, 0xEB, 0x80, 0x1E, 0xB1, 0xEA, 0x90, 0x1F, 0xA1, 0xCD, 0x80, 0x20, 0x76, 0x1D, 0x10, -0x21, 0x81, 0xAF, 0x80, 0x22, 0x55, 0xFF, 0x10, 0x23, 0x6A, 0xCC, 0x00, 0x24, 0x35, 0xE1, 0x10, -0x25, 0x4A, 0xAE, 0x00, 0x26, 0x15, 0xC3, 0x10, 0x27, 0x2A, 0x90, 0x00, 0x27, 0xFE, 0xDF, 0x90, -0x29, 0x0A, 0x72, 0x00, 0x29, 0xDE, 0xC1, 0x90, 0x2A, 0xEA, 0x54, 0x00, 0x2B, 0xBE, 0xA3, 0x90, -0x2C, 0xD3, 0x70, 0x80, 0x2D, 0x9E, 0x85, 0x90, 0x2E, 0xB3, 0x52, 0x80, 0x2F, 0x7E, 0x67, 0x90, -0x30, 0x93, 0x34, 0x80, 0x31, 0x67, 0x84, 0x10, 0x32, 0x73, 0x16, 0x80, 0x33, 0x47, 0x66, 0x10, -0x34, 0x52, 0xF8, 0x80, 0x35, 0x27, 0x48, 0x10, 0x36, 0x32, 0xDA, 0x80, 0x37, 0x07, 0x2A, 0x10, -0x38, 0x1B, 0xF7, 0x00, 0x38, 0xE7, 0x0C, 0x10, 0x39, 0xFB, 0xD9, 0x00, 0x3A, 0xC6, 0xEE, 0x10, -0x3B, 0xDB, 0xBB, 0x00, 0x3C, 0xB0, 0x0A, 0x90, 0x3D, 0xBB, 0x9D, 0x00, 0x3E, 0x8F, 0xEC, 0x90, -0x3F, 0x9B, 0x7F, 0x00, 0x40, 0x6F, 0xCE, 0x90, 0x41, 0x84, 0x9B, 0x80, 0x42, 0x4F, 0xB0, 0x90, -0x43, 0x64, 0x7D, 0x80, 0x44, 0x2F, 0x92, 0x90, 0x45, 0x44, 0x5F, 0x80, 0x45, 0xF3, 0xC5, 0x10, -0x47, 0x2D, 0x7C, 0x00, 0x47, 0xD3, 0xA7, 0x10, 0x49, 0x0D, 0x5E, 0x00, 0x49, 0xB3, 0x89, 0x10, -0x4A, 0xED, 0x40, 0x00, 0x4B, 0x9C, 0xA5, 0x90, 0x4C, 0xD6, 0x5C, 0x80, 0x4D, 0x7C, 0x87, 0x90, -0x4E, 0xB6, 0x3E, 0x80, 0x4F, 0x5C, 0x69, 0x90, 0x50, 0x96, 0x20, 0x80, 0x51, 0x3C, 0x4B, 0x90, -0x52, 0x76, 0x02, 0x80, 0x53, 0x1C, 0x2D, 0x90, 0x54, 0x55, 0xE4, 0x80, 0x54, 0xFC, 0x0F, 0x90, -0x56, 0x35, 0xC6, 0x80, 0x56, 0xE5, 0x2C, 0x10, 0x58, 0x1E, 0xE3, 0x00, 0x58, 0xC5, 0x0E, 0x10, -0x59, 0xFE, 0xC5, 0x00, 0x5A, 0xA4, 0xF0, 0x10, 0x5B, 0xDE, 0xA7, 0x00, 0x5C, 0x84, 0xD2, 0x10, -0x5D, 0xBE, 0x89, 0x00, 0x5E, 0x64, 0xB4, 0x10, 0x5F, 0x9E, 0x6B, 0x00, 0x60, 0x4D, 0xD0, 0x90, -0x61, 0x87, 0x87, 0x80, 0x62, 0x2D, 0xB2, 0x90, 0x63, 0x67, 0x69, 0x80, 0x64, 0x0D, 0x94, 0x90, -0x65, 0x47, 0x4B, 0x80, 0x65, 0xED, 0x76, 0x90, 0x67, 0x27, 0x2D, 0x80, 0x67, 0xCD, 0x58, 0x90, -0x69, 0x07, 0x0F, 0x80, 0x69, 0xAD, 0x3A, 0x90, 0x6A, 0xE6, 0xF1, 0x80, 0x6B, 0x96, 0x57, 0x10, -0x6C, 0xD0, 0x0E, 0x00, 0x6D, 0x76, 0x39, 0x10, 0x6E, 0xAF, 0xF0, 0x00, 0x6F, 0x56, 0x1B, 0x10, -0x70, 0x8F, 0xD2, 0x00, 0x71, 0x35, 0xFD, 0x10, 0x72, 0x6F, 0xB4, 0x00, 0x73, 0x15, 0xDF, 0x10, -0x74, 0x4F, 0x96, 0x00, 0x74, 0xFE, 0xFB, 0x90, 0x76, 0x38, 0xB2, 0x80, 0x76, 0xDE, 0xDD, 0x90, -0x78, 0x18, 0x94, 0x80, 0x78, 0xBE, 0xBF, 0x90, 0x79, 0xF8, 0x76, 0x80, 0x7A, 0x9E, 0xA1, 0x90, -0x7B, 0xD8, 0x58, 0x80, 0x7C, 0x7E, 0x83, 0x90, 0x7D, 0xB8, 0x3A, 0x80, 0x7E, 0x5E, 0x65, 0x90, -0x7F, 0x98, 0x1C, 0x80, 0x03, 0x01, 0x02, 0x03, 0x04, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, -0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, -0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, -0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, -0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, -0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, -0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, -0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x08, -0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x10, 0xFF, 0xFF, 0xAB, 0xA0, -0x01, 0x15, 0x2D, 0x30, 0x30, 0x00, 0x4D, 0x57, 0x54, 0x00, 0x4D, 0x50, 0x54, 0x00, 0x4D, 0x53, -0x54, 0x00, 0x4D, 0x44, 0x44, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, -0x00, 0x00, 0x00, 0x01, 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, 0x06, 0x00, -0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00, 0x06, 0x00, -0x00, 0x00, 0x19, 0xFF, 0xFF, 0xFF, 0xFF, 0xBE, 0x2A, 0x18, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, -0x89, 0x0C, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, -0x61, 0x18, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0x2F, 0x5A, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, -0x28, 0x85, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x64, 0x10, 0x00, 0x00, 0x00, 0x00, 0x14, -0x59, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x49, 0x46, 0x10, 0x00, 0x00, 0x00, 0x00, 0x16, -0x39, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x29, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x18, -0x22, 0x45, 0x80, 0x00, 0x00, 0x00, 0x00, 0x19, 0x09, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1A, -0x02, 0x27, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xF2, 0x26, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1B, -0xE2, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xD2, 0x08, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1D, -0xC1, 0xEB, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1E, 0xB1, 0xEA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1F, -0xA1, 0xCD, 0x80, 0x00, 0x00, 0x00, 0x00, 0x20, 0x76, 0x1D, 0x10, 0x00, 0x00, 0x00, 0x00, 0x21, -0x81, 0xAF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x22, 0x55, 0xFF, 0x10, 0x00, 0x00, 0x00, 0x00, 0x23, -0x6A, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x35, 0xE1, 0x10, 0x00, 0x00, 0x00, 0x00, 0x25, -0x4A, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x15, 0xC3, 0x10, 0x00, 0x00, 0x00, 0x00, 0x27, -0x2A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0xFE, 0xDF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x29, -0x0A, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0xDE, 0xC1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2A, -0xEA, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xBE, 0xA3, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, -0xD3, 0x70, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x9E, 0x85, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, -0xB3, 0x52, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x7E, 0x67, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, -0x93, 0x34, 0x80, 0x00, 0x00, 0x00, 0x00, 0x31, 0x67, 0x84, 0x10, 0x00, 0x00, 0x00, 0x00, 0x32, -0x73, 0x16, 0x80, 0x00, 0x00, 0x00, 0x00, 0x33, 0x47, 0x66, 0x10, 0x00, 0x00, 0x00, 0x00, 0x34, -0x52, 0xF8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x35, 0x27, 0x48, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, -0x32, 0xDA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x37, 0x07, 0x2A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x38, -0x1B, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xE7, 0x0C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x39, -0xFB, 0xD9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xC6, 0xEE, 0x10, 0x00, 0x00, 0x00, 0x00, 0x3B, -0xDB, 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xB0, 0x0A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3D, -0xBB, 0x9D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x8F, 0xEC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3F, -0x9B, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x6F, 0xCE, 0x90, 0x00, 0x00, 0x00, 0x00, 0x41, -0x84, 0x9B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0xB0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x43, -0x64, 0x7D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x92, 0x90, 0x00, 0x00, 0x00, 0x00, 0x45, -0x44, 0x5F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0xC5, 0x10, 0x00, 0x00, 0x00, 0x00, 0x47, -0x2D, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0xD3, 0xA7, 0x10, 0x00, 0x00, 0x00, 0x00, 0x49, -0x0D, 0x5E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0xB3, 0x89, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4A, -0xED, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0xA5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4C, -0xD6, 0x5C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x7C, 0x87, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4E, -0xB6, 0x3E, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x5C, 0x69, 0x90, 0x00, 0x00, 0x00, 0x00, 0x50, -0x96, 0x20, 0x80, 0x00, 0x00, 0x00, 0x00, 0x51, 0x3C, 0x4B, 0x90, 0x00, 0x00, 0x00, 0x00, 0x52, -0x76, 0x02, 0x80, 0x00, 0x00, 0x00, 0x00, 0x53, 0x1C, 0x2D, 0x90, 0x00, 0x00, 0x00, 0x00, 0x54, -0x55, 0xE4, 0x80, 0x00, 0x00, 0x00, 0x00, 0x54, 0xFC, 0x0F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x56, -0x35, 0xC6, 0x80, 0x00, 0x00, 0x00, 0x00, 0x56, 0xE5, 0x2C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x58, -0x1E, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0xC5, 0x0E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x59, -0xFE, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xA4, 0xF0, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5B, -0xDE, 0xA7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x84, 0xD2, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5D, -0xBE, 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x64, 0xB4, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5F, -0x9E, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x4D, 0xD0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x61, -0x87, 0x87, 0x80, 0x00, 0x00, 0x00, 0x00, 0x62, 0x2D, 0xB2, 0x90, 0x00, 0x00, 0x00, 0x00, 0x63, -0x67, 0x69, 0x80, 0x00, 0x00, 0x00, 0x00, 0x64, 0x0D, 0x94, 0x90, 0x00, 0x00, 0x00, 0x00, 0x65, -0x47, 0x4B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x65, 0xED, 0x76, 0x90, 0x00, 0x00, 0x00, 0x00, 0x67, -0x27, 0x2D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x67, 0xCD, 0x58, 0x90, 0x00, 0x00, 0x00, 0x00, 0x69, -0x07, 0x0F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x69, 0xAD, 0x3A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6A, -0xE6, 0xF1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x6B, 0x96, 0x57, 0x10, 0x00, 0x00, 0x00, 0x00, 0x6C, -0xD0, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x76, 0x39, 0x10, 0x00, 0x00, 0x00, 0x00, 0x6E, -0xAF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x56, 0x1B, 0x10, 0x00, 0x00, 0x00, 0x00, 0x70, -0x8F, 0xD2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x35, 0xFD, 0x10, 0x00, 0x00, 0x00, 0x00, 0x72, -0x6F, 0xB4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x15, 0xDF, 0x10, 0x00, 0x00, 0x00, 0x00, 0x74, -0x4F, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0xFE, 0xFB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x76, -0x38, 0xB2, 0x80, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDE, 0xDD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x78, -0x18, 0x94, 0x80, 0x00, 0x00, 0x00, 0x00, 0x78, 0xBE, 0xBF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x79, -0xF8, 0x76, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x9E, 0xA1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7B, -0xD8, 0x58, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0x83, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7D, -0xB8, 0x3A, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x5E, 0x65, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7F, -0x98, 0x1C, 0x80, 0x03, 0x01, 0x02, 0x03, 0x04, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, -0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, -0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, -0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, -0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, -0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, -0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, -0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x08, 0xFF, -0xFF, 0x9D, 0x90, 0x00, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x10, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, -0x15, 0x2D, 0x30, 0x30, 0x00, 0x4D, 0x57, 0x54, 0x00, 0x4D, 0x50, 0x54, 0x00, 0x4D, 0x53, 0x54, -0x00, 0x4D, 0x44, 0x44, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, -0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x4D, 0x53, 0x54, 0x37, 0x4D, 0x44, 0x54, 0x2C, 0x4D, -0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xE8, -0x9E, 0xC7, 0x00, 0x64, 0x2C, 0x88, 0x00, 0x00, 0x00, 0x17, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, -0x69, 0x6E, 0x20, 0x2D, 0x20, 0x4E, 0x54, 0x20, 0x28, 0x63, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, -0x29, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0xBE, 0x2A, 0x18, 0x00, +0xCB, 0x89, 0x0C, 0x90, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x18, 0x00, 0x04, 0x61, 0x19, 0x90, +0x05, 0x50, 0xFC, 0x80, 0x06, 0x40, 0xFB, 0x90, 0x07, 0x30, 0xDE, 0x80, 0x08, 0x20, 0xDD, 0x90, +0x09, 0x10, 0xC0, 0x80, 0x0A, 0x00, 0xBF, 0x90, 0x0A, 0xF0, 0xA2, 0x80, 0x0B, 0xE0, 0xA1, 0x90, +0x0C, 0xD9, 0xBF, 0x00, 0x0D, 0xC0, 0x83, 0x90, 0x0E, 0xB9, 0xA1, 0x00, 0x0F, 0xA9, 0xA0, 0x10, +0x10, 0x99, 0x83, 0x00, 0x11, 0x89, 0x82, 0x10, 0x12, 0x79, 0x65, 0x00, 0x13, 0x69, 0x64, 0x10, +0x14, 0x59, 0x47, 0x00, 0x15, 0x49, 0x46, 0x10, 0x16, 0x39, 0x29, 0x00, 0x17, 0x29, 0x28, 0x10, +0x18, 0x22, 0x45, 0x80, 0x19, 0x09, 0x0A, 0x10, 0x1A, 0x02, 0x27, 0x80, 0x1A, 0xF2, 0x26, 0x90, +0x1B, 0xE2, 0x09, 0x80, 0x1C, 0xD2, 0x08, 0x90, 0x1D, 0xC1, 0xEB, 0x80, 0x1E, 0xB1, 0xEA, 0x90, +0x1F, 0xA1, 0xCD, 0x80, 0x20, 0x76, 0x1D, 0x10, 0x21, 0x81, 0xAF, 0x80, 0x22, 0x55, 0xFF, 0x10, +0x23, 0x6A, 0xCC, 0x00, 0x24, 0x35, 0xE1, 0x10, 0x25, 0x4A, 0xAE, 0x00, 0x26, 0x15, 0xC3, 0x10, +0x27, 0x2A, 0x90, 0x00, 0x27, 0xFE, 0xDF, 0x90, 0x29, 0x0A, 0x72, 0x00, 0x29, 0xDE, 0xC1, 0x90, +0x2A, 0xEA, 0x54, 0x00, 0x2B, 0xBE, 0xA3, 0x90, 0x2C, 0xD3, 0x70, 0x80, 0x2D, 0x9E, 0x85, 0x90, +0x2E, 0xB3, 0x52, 0x80, 0x2F, 0x7E, 0x67, 0x90, 0x30, 0x93, 0x34, 0x80, 0x31, 0x67, 0x84, 0x10, +0x32, 0x73, 0x16, 0x80, 0x33, 0x47, 0x66, 0x10, 0x34, 0x52, 0xF8, 0x80, 0x35, 0x27, 0x48, 0x10, +0x36, 0x32, 0xDA, 0x80, 0x37, 0x07, 0x2A, 0x10, 0x38, 0x1B, 0xF7, 0x00, 0x38, 0xE7, 0x0C, 0x10, +0x39, 0xFB, 0xD9, 0x00, 0x3A, 0xC6, 0xEE, 0x10, 0x3B, 0xDB, 0xBB, 0x00, 0x3C, 0xB0, 0x0A, 0x90, +0x3D, 0xBB, 0x9D, 0x00, 0x3E, 0x8F, 0xEC, 0x90, 0x3F, 0x9B, 0x7F, 0x00, 0x40, 0x6F, 0xCE, 0x90, +0x41, 0x84, 0x9B, 0x80, 0x42, 0x4F, 0xB0, 0x90, 0x43, 0x64, 0x7D, 0x80, 0x44, 0x2F, 0x92, 0x90, +0x45, 0x44, 0x5F, 0x80, 0x45, 0xF3, 0xC5, 0x10, 0x47, 0x2D, 0x7C, 0x00, 0x47, 0xD3, 0xA7, 0x10, +0x49, 0x0D, 0x5E, 0x00, 0x49, 0xB3, 0x89, 0x10, 0x4A, 0xED, 0x40, 0x00, 0x4B, 0x9C, 0xA5, 0x90, +0x4C, 0xD6, 0x5C, 0x80, 0x4D, 0x7C, 0x87, 0x90, 0x4E, 0xB6, 0x3E, 0x80, 0x4F, 0x5C, 0x69, 0x90, +0x50, 0x96, 0x20, 0x80, 0x51, 0x3C, 0x4B, 0x90, 0x52, 0x76, 0x02, 0x80, 0x53, 0x1C, 0x2D, 0x90, +0x54, 0x55, 0xE4, 0x80, 0x54, 0xFC, 0x0F, 0x90, 0x56, 0x35, 0xC6, 0x80, 0x56, 0xE5, 0x2C, 0x10, +0x58, 0x1E, 0xE3, 0x00, 0x58, 0xC5, 0x0E, 0x10, 0x59, 0xFE, 0xC5, 0x00, 0x5A, 0xA4, 0xF0, 0x10, +0x5B, 0xDE, 0xA7, 0x00, 0x5C, 0x84, 0xD2, 0x10, 0x5D, 0xBE, 0x89, 0x00, 0x5E, 0x64, 0xB4, 0x10, +0x5F, 0x9E, 0x6B, 0x00, 0x60, 0x4D, 0xD0, 0x90, 0x61, 0x87, 0x87, 0x80, 0x62, 0x2D, 0xB2, 0x90, +0x63, 0x67, 0x69, 0x80, 0x64, 0x0D, 0x94, 0x90, 0x65, 0x47, 0x4B, 0x80, 0x65, 0xED, 0x76, 0x90, +0x67, 0x27, 0x2D, 0x80, 0x67, 0xCD, 0x58, 0x90, 0x69, 0x07, 0x0F, 0x80, 0x69, 0xAD, 0x3A, 0x90, +0x6A, 0xE6, 0xF1, 0x80, 0x6B, 0x96, 0x57, 0x10, 0x6C, 0xD0, 0x0E, 0x00, 0x6D, 0x76, 0x39, 0x10, +0x6E, 0xAF, 0xF0, 0x00, 0x6F, 0x56, 0x1B, 0x10, 0x70, 0x8F, 0xD2, 0x00, 0x71, 0x35, 0xFD, 0x10, +0x72, 0x6F, 0xB4, 0x00, 0x73, 0x15, 0xDF, 0x10, 0x74, 0x4F, 0x96, 0x00, 0x74, 0xFE, 0xFB, 0x90, +0x76, 0x38, 0xB2, 0x80, 0x76, 0xDE, 0xDD, 0x90, 0x78, 0x18, 0x94, 0x80, 0x78, 0xBE, 0xBF, 0x90, +0x79, 0xF8, 0x76, 0x80, 0x7A, 0x9E, 0xA1, 0x90, 0x7B, 0xD8, 0x58, 0x80, 0x7C, 0x7E, 0x83, 0x90, +0x7D, 0xB8, 0x3A, 0x80, 0x7E, 0x5E, 0x65, 0x90, 0x7F, 0x98, 0x1C, 0x80, 0x03, 0x01, 0x02, 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, +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, +0x04, 0x03, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x04, +0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x0C, 0xFF, 0xFF, 0xAB, 0xA0, +0x01, 0x10, 0x2D, 0x30, 0x30, 0x00, 0x4D, 0x57, 0x54, 0x00, 0x4D, 0x50, 0x54, 0x00, 0x4D, 0x53, +0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 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, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0xFF, 0xFF, 0xFF, 0xFF, +0xBE, 0x2A, 0x18, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x89, 0x0C, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, +0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x61, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, +0x04, 0x61, 0x19, 0x90, 0x00, 0x00, 0x00, 0x00, 0x05, 0x50, 0xFC, 0x80, 0x00, 0x00, 0x00, 0x00, +0x06, 0x40, 0xFB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x07, 0x30, 0xDE, 0x80, 0x00, 0x00, 0x00, 0x00, +0x08, 0x20, 0xDD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x09, 0x10, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, +0x0A, 0x00, 0xBF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x0A, 0xF0, 0xA2, 0x80, 0x00, 0x00, 0x00, 0x00, +0x0B, 0xE0, 0xA1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x0C, 0xD9, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, +0x0D, 0xC0, 0x83, 0x90, 0x00, 0x00, 0x00, 0x00, 0x0E, 0xB9, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x00, +0x0F, 0xA9, 0xA0, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x99, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, +0x11, 0x89, 0x82, 0x10, 0x00, 0x00, 0x00, 0x00, 0x12, 0x79, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, +0x13, 0x69, 0x64, 0x10, 0x00, 0x00, 0x00, 0x00, 0x14, 0x59, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, +0x15, 0x49, 0x46, 0x10, 0x00, 0x00, 0x00, 0x00, 0x16, 0x39, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, +0x17, 0x29, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x18, 0x22, 0x45, 0x80, 0x00, 0x00, 0x00, 0x00, +0x19, 0x09, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x02, 0x27, 0x80, 0x00, 0x00, 0x00, 0x00, +0x1A, 0xF2, 0x26, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xE2, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, +0x1C, 0xD2, 0x08, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1D, 0xC1, 0xEB, 0x80, 0x00, 0x00, 0x00, 0x00, +0x1E, 0xB1, 0xEA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xA1, 0xCD, 0x80, 0x00, 0x00, 0x00, 0x00, +0x20, 0x76, 0x1D, 0x10, 0x00, 0x00, 0x00, 0x00, 0x21, 0x81, 0xAF, 0x80, 0x00, 0x00, 0x00, 0x00, +0x22, 0x55, 0xFF, 0x10, 0x00, 0x00, 0x00, 0x00, 0x23, 0x6A, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, +0x24, 0x35, 0xE1, 0x10, 0x00, 0x00, 0x00, 0x00, 0x25, 0x4A, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, +0x26, 0x15, 0xC3, 0x10, 0x00, 0x00, 0x00, 0x00, 0x27, 0x2A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, +0x27, 0xFE, 0xDF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x29, 0x0A, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, +0x29, 0xDE, 0xC1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xEA, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, +0x2B, 0xBE, 0xA3, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xD3, 0x70, 0x80, 0x00, 0x00, 0x00, 0x00, +0x2D, 0x9E, 0x85, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0xB3, 0x52, 0x80, 0x00, 0x00, 0x00, 0x00, +0x2F, 0x7E, 0x67, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0x93, 0x34, 0x80, 0x00, 0x00, 0x00, 0x00, +0x31, 0x67, 0x84, 0x10, 0x00, 0x00, 0x00, 0x00, 0x32, 0x73, 0x16, 0x80, 0x00, 0x00, 0x00, 0x00, +0x33, 0x47, 0x66, 0x10, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0xF8, 0x80, 0x00, 0x00, 0x00, 0x00, +0x35, 0x27, 0x48, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0xDA, 0x80, 0x00, 0x00, 0x00, 0x00, +0x37, 0x07, 0x2A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, +0x38, 0xE7, 0x0C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0xD9, 0x00, 0x00, 0x00, 0x00, 0x00, +0x3A, 0xC6, 0xEE, 0x10, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xDB, 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00, +0x3C, 0xB0, 0x0A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x9D, 0x00, 0x00, 0x00, 0x00, 0x00, +0x3E, 0x8F, 0xEC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, +0x40, 0x6F, 0xCE, 0x90, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x9B, 0x80, 0x00, 0x00, 0x00, 0x00, +0x42, 0x4F, 0xB0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x7D, 0x80, 0x00, 0x00, 0x00, 0x00, +0x44, 0x2F, 0x92, 0x90, 0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0x5F, 0x80, 0x00, 0x00, 0x00, 0x00, +0x45, 0xF3, 0xC5, 0x10, 0x00, 0x00, 0x00, 0x00, 0x47, 0x2D, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, +0x47, 0xD3, 0xA7, 0x10, 0x00, 0x00, 0x00, 0x00, 0x49, 0x0D, 0x5E, 0x00, 0x00, 0x00, 0x00, 0x00, +0x49, 0xB3, 0x89, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xED, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, +0x4B, 0x9C, 0xA5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xD6, 0x5C, 0x80, 0x00, 0x00, 0x00, 0x00, +0x4D, 0x7C, 0x87, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xB6, 0x3E, 0x80, 0x00, 0x00, 0x00, 0x00, +0x4F, 0x5C, 0x69, 0x90, 0x00, 0x00, 0x00, 0x00, 0x50, 0x96, 0x20, 0x80, 0x00, 0x00, 0x00, 0x00, +0x51, 0x3C, 0x4B, 0x90, 0x00, 0x00, 0x00, 0x00, 0x52, 0x76, 0x02, 0x80, 0x00, 0x00, 0x00, 0x00, +0x53, 0x1C, 0x2D, 0x90, 0x00, 0x00, 0x00, 0x00, 0x54, 0x55, 0xE4, 0x80, 0x00, 0x00, 0x00, 0x00, +0x54, 0xFC, 0x0F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x56, 0x35, 0xC6, 0x80, 0x00, 0x00, 0x00, 0x00, +0x56, 0xE5, 0x2C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x58, 0x1E, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, +0x58, 0xC5, 0x0E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x59, 0xFE, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, +0x5A, 0xA4, 0xF0, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xDE, 0xA7, 0x00, 0x00, 0x00, 0x00, 0x00, +0x5C, 0x84, 0xD2, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xBE, 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, +0x5E, 0x64, 0xB4, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x9E, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00, +0x60, 0x4D, 0xD0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x61, 0x87, 0x87, 0x80, 0x00, 0x00, 0x00, 0x00, +0x62, 0x2D, 0xB2, 0x90, 0x00, 0x00, 0x00, 0x00, 0x63, 0x67, 0x69, 0x80, 0x00, 0x00, 0x00, 0x00, +0x64, 0x0D, 0x94, 0x90, 0x00, 0x00, 0x00, 0x00, 0x65, 0x47, 0x4B, 0x80, 0x00, 0x00, 0x00, 0x00, +0x65, 0xED, 0x76, 0x90, 0x00, 0x00, 0x00, 0x00, 0x67, 0x27, 0x2D, 0x80, 0x00, 0x00, 0x00, 0x00, +0x67, 0xCD, 0x58, 0x90, 0x00, 0x00, 0x00, 0x00, 0x69, 0x07, 0x0F, 0x80, 0x00, 0x00, 0x00, 0x00, +0x69, 0xAD, 0x3A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xE6, 0xF1, 0x80, 0x00, 0x00, 0x00, 0x00, +0x6B, 0x96, 0x57, 0x10, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xD0, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, +0x6D, 0x76, 0x39, 0x10, 0x00, 0x00, 0x00, 0x00, 0x6E, 0xAF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, +0x6F, 0x56, 0x1B, 0x10, 0x00, 0x00, 0x00, 0x00, 0x70, 0x8F, 0xD2, 0x00, 0x00, 0x00, 0x00, 0x00, +0x71, 0x35, 0xFD, 0x10, 0x00, 0x00, 0x00, 0x00, 0x72, 0x6F, 0xB4, 0x00, 0x00, 0x00, 0x00, 0x00, +0x73, 0x15, 0xDF, 0x10, 0x00, 0x00, 0x00, 0x00, 0x74, 0x4F, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, +0x74, 0xFE, 0xFB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x76, 0x38, 0xB2, 0x80, 0x00, 0x00, 0x00, 0x00, +0x76, 0xDE, 0xDD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x78, 0x18, 0x94, 0x80, 0x00, 0x00, 0x00, 0x00, +0x78, 0xBE, 0xBF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x79, 0xF8, 0x76, 0x80, 0x00, 0x00, 0x00, 0x00, +0x7A, 0x9E, 0xA1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7B, 0xD8, 0x58, 0x80, 0x00, 0x00, 0x00, 0x00, +0x7C, 0x7E, 0x83, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7D, 0xB8, 0x3A, 0x80, 0x00, 0x00, 0x00, 0x00, +0x7E, 0x5E, 0x65, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x98, 0x1C, 0x80, 0x03, 0x01, 0x02, 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, +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, +0x04, 0x03, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x04, +0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x0C, 0xFF, 0xFF, 0xAB, 0xA0, +0x01, 0x10, 0x2D, 0x30, 0x30, 0x00, 0x4D, 0x57, 0x54, 0x00, 0x4D, 0x50, 0x54, 0x00, 0x4D, 0x53, +0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, +0x0A, 0x4D, 0x53, 0x54, 0x37, 0x4D, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, +0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xE8, 0x9E, 0xC7, 0x00, 0x64, 0x2C, 0x88, +0x00, 0x00, 0x00, 0x17, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x2D, 0x20, 0x4E, +0x54, 0x20, 0x28, 0x63, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x29, /* Antarctica/Casey */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x41, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -44387,28 +44668,30 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { /* Asia/Kuala_Lumpur */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x4D, 0x59, 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, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x20, 0x80, 0x00, 0x00, 0x00, 0x86, 0x83, 0x85, 0xA3, 0xBA, 0x67, 0x4E, 0x90, 0xC0, 0x0A, 0xE4, 0x60, 0xCA, 0xB3, 0xE5, 0x60, -0xCB, 0x91, 0x5F, 0x08, 0xD2, 0x48, 0x6D, 0xF0, 0x16, 0x91, 0xF5, 0x08, 0x01, 0x02, 0x03, 0x04, +0xCB, 0x91, 0x5F, 0x08, 0xD2, 0x48, 0x6D, 0xF0, 0x16, 0x91, 0xEE, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x05, 0x07, 0x00, 0x00, 0x5F, 0x56, 0x00, 0x00, 0x00, 0x00, 0x61, 0x5D, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x00, 0x08, 0x00, 0x00, 0x67, 0x20, 0x01, 0x0C, 0x00, 0x00, 0x67, 0x20, 0x00, 0x0C, 0x00, 0x00, 0x69, 0x78, 0x00, 0x12, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x18, 0x00, 0x00, 0x70, 0x80, 0x00, 0x1C, 0x4C, 0x4D, 0x54, 0x00, 0x53, 0x4D, 0x54, 0x00, 0x2B, 0x30, 0x37, 0x00, 0x2B, 0x30, 0x37, 0x32, 0x30, 0x00, 0x2B, 0x30, 0x37, 0x33, 0x30, 0x00, 0x2B, 0x30, 0x39, 0x00, -0x2B, 0x30, 0x38, 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, +0x2B, 0x30, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x36, 0x55, 0xAA, 0xFF, 0xFF, 0xFF, 0xFF, 0x86, 0x83, 0x85, 0xA3, 0xFF, 0xFF, 0xFF, 0xFF, 0xBA, 0x67, 0x4E, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x0A, 0xE4, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xCA, 0xB3, 0xE5, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x91, 0x5F, 0x08, -0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x48, 0x6D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x16, 0x91, 0xF5, 0x08, +0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x48, 0x6D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x16, 0x91, 0xEE, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x05, 0x07, 0x00, 0x00, 0x5F, 0x56, 0x00, 0x00, 0x00, 0x00, 0x61, 0x5D, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x00, 0x08, 0x00, 0x00, 0x67, 0x20, 0x01, 0x0C, 0x00, 0x00, 0x67, 0x20, 0x00, 0x0C, 0x00, 0x00, 0x69, 0x78, 0x00, 0x12, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x18, 0x00, 0x00, 0x70, 0x80, 0x00, 0x1C, 0x4C, 0x4D, 0x54, 0x00, 0x53, 0x4D, 0x54, 0x00, 0x2B, 0x30, 0x37, 0x00, 0x2B, 0x30, 0x37, 0x32, 0x30, 0x00, 0x2B, 0x30, 0x37, 0x33, 0x30, 0x00, -0x2B, 0x30, 0x39, 0x00, 0x2B, 0x30, 0x38, 0x00, 0x0A, 0x3C, 0x2B, 0x30, 0x38, 0x3E, 0x2D, 0x38, +0x2B, 0x30, 0x39, 0x00, 0x2B, 0x30, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0A, 0x3C, 0x2B, 0x30, 0x38, 0x3E, 0x2D, 0x38, 0x0A, 0x00, 0x8E, 0x29, 0x3A, 0x01, 0xAD, 0xD7, 0x10, 0x00, 0x00, 0x00, 0x14, 0x4D, 0x61, 0x6C, 0x61, 0x79, 0x73, 0x69, 0x61, 0x20, 0x28, 0x70, 0x65, 0x6E, 0x69, 0x6E, 0x73, 0x75, 0x6C, 0x61, 0x29, @@ -45665,28 +45948,30 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { /* Asia/Singapore */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x53, 0x47, 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, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x20, 0x80, 0x00, 0x00, 0x00, 0x86, 0x83, 0x85, 0xA3, 0xBA, 0x67, 0x4E, 0x90, 0xC0, 0x0A, 0xE4, 0x60, 0xCA, 0xB3, 0xE5, 0x60, -0xCB, 0x91, 0x5F, 0x08, 0xD2, 0x48, 0x6D, 0xF0, 0x16, 0x91, 0xF5, 0x08, 0x01, 0x02, 0x03, 0x04, +0xCB, 0x91, 0x5F, 0x08, 0xD2, 0x48, 0x6D, 0xF0, 0x16, 0x91, 0xEE, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x05, 0x07, 0x00, 0x00, 0x61, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x61, 0x5D, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x00, 0x08, 0x00, 0x00, 0x67, 0x20, 0x01, 0x0C, 0x00, 0x00, 0x67, 0x20, 0x00, 0x0C, 0x00, 0x00, 0x69, 0x78, 0x00, 0x12, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x18, 0x00, 0x00, 0x70, 0x80, 0x00, 0x1C, 0x4C, 0x4D, 0x54, 0x00, 0x53, 0x4D, 0x54, 0x00, 0x2B, 0x30, 0x37, 0x00, 0x2B, 0x30, 0x37, 0x32, 0x30, 0x00, 0x2B, 0x30, 0x37, 0x33, 0x30, 0x00, 0x2B, 0x30, 0x39, 0x00, -0x2B, 0x30, 0x38, 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, +0x2B, 0x30, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x36, 0x53, 0xA3, 0xFF, 0xFF, 0xFF, 0xFF, 0x86, 0x83, 0x85, 0xA3, 0xFF, 0xFF, 0xFF, 0xFF, 0xBA, 0x67, 0x4E, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x0A, 0xE4, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xCA, 0xB3, 0xE5, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x91, 0x5F, 0x08, -0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x48, 0x6D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x16, 0x91, 0xF5, 0x08, +0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x48, 0x6D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x16, 0x91, 0xEE, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x05, 0x07, 0x00, 0x00, 0x61, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x61, 0x5D, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x00, 0x08, 0x00, 0x00, 0x67, 0x20, 0x01, 0x0C, 0x00, 0x00, 0x67, 0x20, 0x00, 0x0C, 0x00, 0x00, 0x69, 0x78, 0x00, 0x12, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x18, 0x00, 0x00, 0x70, 0x80, 0x00, 0x1C, 0x4C, 0x4D, 0x54, 0x00, 0x53, 0x4D, 0x54, 0x00, 0x2B, 0x30, 0x37, 0x00, 0x2B, 0x30, 0x37, 0x32, 0x30, 0x00, 0x2B, 0x30, 0x37, 0x33, 0x30, 0x00, -0x2B, 0x30, 0x39, 0x00, 0x2B, 0x30, 0x38, 0x00, 0x0A, 0x3C, 0x2B, 0x30, 0x38, 0x3E, 0x2D, 0x38, +0x2B, 0x30, 0x39, 0x00, 0x2B, 0x30, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0A, 0x3C, 0x2B, 0x30, 0x38, 0x3E, 0x2D, 0x38, 0x0A, 0x00, 0x8B, 0x49, 0x8D, 0x01, 0xB1, 0x1E, 0xE8, 0x00, 0x00, 0x00, 0x00, /* Asia/Srednekolymsk */ @@ -52010,7 +52295,7 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { 0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x25, 0x80, 0x00, 0x00, 0x00, 0x9E, 0xB8, 0xCB, 0xB0, 0x9F, 0xBB, 0x23, 0xA0, 0xA0, 0xD0, 0x0C, 0xB0, 0xA1, 0xA2, 0xD2, 0x80, 0xCB, 0x89, 0x28, 0xB0, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x34, 0x20, 0xF7, 0x2F, 0x76, 0x90, -0xF8, 0x28, 0xA2, 0x10, 0xFB, 0x1D, 0x5F, 0x10, 0x13, 0x69, 0x72, 0x20, 0x14, 0x59, 0x55, 0x10, +0xF8, 0x28, 0xA2, 0x10, 0xF8, 0xC5, 0x84, 0x90, 0x13, 0x69, 0x72, 0x20, 0x14, 0x59, 0x55, 0x10, 0x15, 0x49, 0x54, 0x20, 0x16, 0x39, 0x37, 0x10, 0x17, 0x29, 0x36, 0x20, 0x18, 0x22, 0x53, 0x90, 0x19, 0x09, 0x18, 0x20, 0x1A, 0x02, 0x35, 0x90, 0x1A, 0xF2, 0x34, 0xA0, 0x1B, 0xE2, 0x17, 0x90, 0x1C, 0xD2, 0x16, 0xA0, 0x1D, 0xC1, 0xF9, 0x90, 0x1E, 0xB1, 0xF8, 0xA0, 0x1F, 0xA1, 0xDB, 0x90, @@ -52051,7 +52336,7 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { 0xFF, 0xFF, 0xA0, 0xD0, 0x0C, 0xB0, 0xFF, 0xFF, 0xFF, 0xFF, 0xA1, 0xA2, 0xD2, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x89, 0x28, 0xB0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x61, 0x34, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0x2F, 0x76, 0x90, 0xFF, 0xFF, -0xFF, 0xFF, 0xF8, 0x28, 0xA2, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0x1D, 0x5F, 0x10, 0x00, 0x00, +0xFF, 0xFF, 0xF8, 0x28, 0xA2, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xC5, 0x84, 0x90, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x72, 0x20, 0x00, 0x00, 0x00, 0x00, 0x14, 0x59, 0x55, 0x10, 0x00, 0x00, 0x00, 0x00, 0x15, 0x49, 0x54, 0x20, 0x00, 0x00, 0x00, 0x00, 0x16, 0x39, 0x37, 0x10, 0x00, 0x00, 0x00, 0x00, 0x17, 0x29, 0x36, 0x20, 0x00, 0x00, 0x00, 0x00, 0x18, 0x22, 0x53, 0x90, 0x00, 0x00, @@ -67269,28 +67554,30 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { /* Singapore */ 0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 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, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x20, 0x80, 0x00, 0x00, 0x00, 0x86, 0x83, 0x85, 0xA3, 0xBA, 0x67, 0x4E, 0x90, 0xC0, 0x0A, 0xE4, 0x60, 0xCA, 0xB3, 0xE5, 0x60, -0xCB, 0x91, 0x5F, 0x08, 0xD2, 0x48, 0x6D, 0xF0, 0x16, 0x91, 0xF5, 0x08, 0x01, 0x02, 0x03, 0x04, +0xCB, 0x91, 0x5F, 0x08, 0xD2, 0x48, 0x6D, 0xF0, 0x16, 0x91, 0xEE, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x05, 0x07, 0x00, 0x00, 0x61, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x61, 0x5D, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x00, 0x08, 0x00, 0x00, 0x67, 0x20, 0x01, 0x0C, 0x00, 0x00, 0x67, 0x20, 0x00, 0x0C, 0x00, 0x00, 0x69, 0x78, 0x00, 0x12, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x18, 0x00, 0x00, 0x70, 0x80, 0x00, 0x1C, 0x4C, 0x4D, 0x54, 0x00, 0x53, 0x4D, 0x54, 0x00, 0x2B, 0x30, 0x37, 0x00, 0x2B, 0x30, 0x37, 0x32, 0x30, 0x00, 0x2B, 0x30, 0x37, 0x33, 0x30, 0x00, 0x2B, 0x30, 0x39, 0x00, -0x2B, 0x30, 0x38, 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, +0x2B, 0x30, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x36, 0x53, 0xA3, 0xFF, 0xFF, 0xFF, 0xFF, 0x86, 0x83, 0x85, 0xA3, 0xFF, 0xFF, 0xFF, 0xFF, 0xBA, 0x67, 0x4E, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x0A, 0xE4, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xCA, 0xB3, 0xE5, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x91, 0x5F, 0x08, -0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x48, 0x6D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x16, 0x91, 0xF5, 0x08, +0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x48, 0x6D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x16, 0x91, 0xEE, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x05, 0x07, 0x00, 0x00, 0x61, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x61, 0x5D, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x00, 0x08, 0x00, 0x00, 0x67, 0x20, 0x01, 0x0C, 0x00, 0x00, 0x67, 0x20, 0x00, 0x0C, 0x00, 0x00, 0x69, 0x78, 0x00, 0x12, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x18, 0x00, 0x00, 0x70, 0x80, 0x00, 0x1C, 0x4C, 0x4D, 0x54, 0x00, 0x53, 0x4D, 0x54, 0x00, 0x2B, 0x30, 0x37, 0x00, 0x2B, 0x30, 0x37, 0x32, 0x30, 0x00, 0x2B, 0x30, 0x37, 0x33, 0x30, 0x00, -0x2B, 0x30, 0x39, 0x00, 0x2B, 0x30, 0x38, 0x00, 0x0A, 0x3C, 0x2B, 0x30, 0x38, 0x3E, 0x2D, 0x38, +0x2B, 0x30, 0x39, 0x00, 0x2B, 0x30, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0A, 0x3C, 0x2B, 0x30, 0x38, 0x3E, 0x2D, 0x38, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Turkey */ @@ -69245,4 +69532,4 @@ const unsigned char timelib_timezone_db_data_builtin[696923] = { }; #endif -const timelib_tzdb timezonedb_builtin = { "2022.6", 596, timezonedb_idx_builtin, timelib_timezone_db_data_builtin }; +const timelib_tzdb timezonedb_builtin = { "2022.7", 597, timezonedb_idx_builtin, timelib_timezone_db_data_builtin }; diff --git a/ext/date/lib/tm2unixtime.c b/ext/date/lib/tm2unixtime.c index 08332bb470624..37bfc98fa1d60 100644 --- a/ext/date/lib/tm2unixtime.c +++ b/ext/date/lib/tm2unixtime.c @@ -423,6 +423,7 @@ static void do_adjust_timezone(timelib_time *tz, timelib_tzinfo *tzi) tz->is_localtime = 1; in_transition = ( + actual_transition_time != INT64_MIN && ((tz->sse - actual_offset) >= (actual_transition_time + (current_offset - actual_offset))) && ((tz->sse - actual_offset) < actual_transition_time) ); diff --git a/ext/date/tests/bug81263.phpt b/ext/date/tests/bug81263.phpt index 4b1defc350e09..afeba1ebbb1aa 100644 --- a/ext/date/tests/bug81263.phpt +++ b/ext/date/tests/bug81263.phpt @@ -32,7 +32,7 @@ DateInterval Object [i] => 0 [s] => 0 [f] => 0 - [invert] => 1 + [invert] => 0 [days] => 0 [from_string] => ) diff --git a/ext/date/tests/gh7758.phpt b/ext/date/tests/gh7758.phpt index cec5b7d77bf75..ad1fee335eac1 100644 --- a/ext/date/tests/gh7758.phpt +++ b/ext/date/tests/gh7758.phpt @@ -1,5 +1,5 @@ --TEST-- -GH-7758 (Problems with negative timestamps and fractions) +Bug GH-7758 (Problems with negative timestamps and fractions) --FILE-- diff($now)->format("%R %Y %M %D %H %I %S %F"), "\n"; +?> +--EXPECT-- ++ 00 00 00 23 00 00 019290 diff --git a/ext/date/tests/gh9700.phpt b/ext/date/tests/gh9700.phpt new file mode 100644 index 0000000000000..89f8651557781 --- /dev/null +++ b/ext/date/tests/gh9700.phpt @@ -0,0 +1,15 @@ +--TEST-- +Bug GH-9700 (DateTime::createFromFormat: Parsing TZID string is too greedy) +--FILE-- + +--EXPECTF-- +object(DateTime)#%d (%d) { + ["date"]=> + string(26) "2022-02-18 00:00:00.000000" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(13) "Europe/Berlin" +} diff --git a/ext/date/tests/gh9866.phpt b/ext/date/tests/gh9866.phpt new file mode 100644 index 0000000000000..70fd8c7e7133a --- /dev/null +++ b/ext/date/tests/gh9866.phpt @@ -0,0 +1,22 @@ +--TEST-- +Bug GH-9866 (Time zone bug with \DateTimeInterface::diff()) +--FILE-- +diff($endDate, true); + return $dateInterval->y; +} + +$start = new \DateTimeImmutable('2000-11-01 09:29:22.907606', new \DateTimeZone('America/Chicago')); +$end = new \DateTimeImmutable('2022-06-06 11:00:00.000000', new \DateTimeZone('America/New_York')); +$result = getYearsBetween($start, $end); +var_dump($result); +$diff = $start->diff($end); +echo $diff->format("%R %Y %M %D (%a) %H %I %S %F"), "\n"; +?> +--EXPECT-- +int(21) ++ 21 07 04 (7886) 23 30 37 092394 diff --git a/ext/date/tests/gh9880.phpt b/ext/date/tests/gh9880.phpt new file mode 100644 index 0000000000000..5bd0a547090d4 --- /dev/null +++ b/ext/date/tests/gh9880.phpt @@ -0,0 +1,18 @@ +--TEST-- +Bug GH-9880 (DateTime diff returns wrong sign on day count when using a timezone) +--FILE-- +setTimestamp(1667416695); + +$dateTime = new DateTime(); +$dateTime->setTimestamp(1671904800); +$dateTime->setTimezone(new DateTimeZone('America/New_York')); + +echo $dateTime->diff($nowTime)->format('%R %a %H %I %S'), "\n"; +?> +--EXPECT-- +- 51 22 41 45 diff --git a/ext/date/tests/rfc-datetime_and_daylight_saving_time-type3-bd2.phpt b/ext/date/tests/rfc-datetime_and_daylight_saving_time-type3-bd2.phpt index 6639c4218e9e8..74ee040390f17 100644 --- a/ext/date/tests/rfc-datetime_and_daylight_saving_time-type3-bd2.phpt +++ b/ext/date/tests/rfc-datetime_and_daylight_saving_time-type3-bd2.phpt @@ -54,7 +54,7 @@ echo 'bd8b ' . $end->format($date_format) . ' - ' . $start->format($date_format) echo "\n"; ?> --EXPECT-- -bd0 2010-11-07 01:00:00 EST America/New_York - 2010-11-07 01:59:59 EDT America/New_York = P0DT0H0M1S +bd0 2010-11-07 01:00:00 EST America/New_York - 2010-11-07 01:59:59 EDT America/New_York = P0DT0H59M59S bd5 2010-11-07 01:30:00 EST America/New_York - 2010-11-06 04:30:00 EDT America/New_York = P0DT22H bd6 2010-11-07 01:30:00 EDT America/New_York - 2010-11-06 04:30:00 EDT America/New_York = P0DT21H bd8a 2010-11-07 01:00:00 EST America/New_York - 2010-11-06 01:00:00 EDT America/New_York = P1DT0H diff --git a/ext/hash/xxhash/xxhash.h b/ext/hash/xxhash/xxhash.h index 08ab79457233e..7850622aae44a 100644 --- a/ext/hash/xxhash/xxhash.h +++ b/ext/hash/xxhash/xxhash.h @@ -4129,7 +4129,7 @@ XXH3_accumulate_512_vsx( void* XXH_RESTRICT acc, const void* XXH_RESTRICT secret) { /* presumed aligned */ - unsigned long long* const xacc = (unsigned long long*) acc; + unsigned int* const xacc = (unsigned int*) acc; xxh_u64x2 const* const xinput = (xxh_u64x2 const*) input; /* no alignment restriction */ xxh_u64x2 const* const xsecret = (xxh_u64x2 const*) secret; /* no alignment restriction */ xxh_u64x2 const v32 = { 32, 32 }; @@ -4145,7 +4145,7 @@ XXH3_accumulate_512_vsx( void* XXH_RESTRICT acc, /* product = ((xxh_u64x2)data_key & 0xFFFFFFFF) * ((xxh_u64x2)shuffled & 0xFFFFFFFF); */ xxh_u64x2 const product = XXH_vec_mulo((xxh_u32x4)data_key, shuffled); /* acc_vec = xacc[i]; */ - xxh_u64x2 acc_vec = vec_xl(0, xacc + 2 * i); + xxh_u64x2 acc_vec = (xxh_u64x2)vec_xl(0, xacc + 4 * i); acc_vec += product; /* swap high and low halves */ @@ -4155,7 +4155,7 @@ XXH3_accumulate_512_vsx( void* XXH_RESTRICT acc, acc_vec += vec_xxpermdi(data_vec, data_vec, 2); #endif /* xacc[i] = acc_vec; */ - vec_xst(acc_vec, 0, xacc + 2 * i); + vec_xst((xxh_u32x4)acc_vec, 0, xacc + 4 * i); } } diff --git a/ext/imap/php_imap.c b/ext/imap/php_imap.c index c171969fa6657..880470601d219 100644 --- a/ext/imap/php_imap.c +++ b/ext/imap/php_imap.c @@ -781,6 +781,24 @@ PHP_FUNCTION(imap_reopen) } /* }}} */ +PHP_FUNCTION(imap_is_open) +{ + zval *imap_conn_obj; + php_imap_object *imap_conn_struct; + + if (zend_parse_parameters(ZEND_NUM_ARGS(), "O", &imap_conn_obj, php_imap_ce) == FAILURE) { + RETURN_THROWS(); + } + + /* Manual reimplementation of the GET_IMAP_STREAM() macro that doesn't throw */ + imap_conn_struct = imap_object_from_zend_object(Z_OBJ_P(imap_conn_obj)); + /* Stream was closed */ + if (imap_conn_struct->imap_stream == NULL) { + RETURN_FALSE; + } + RETURN_TRUE; +} + /* {{{ Append a new message to a specified mailbox */ PHP_FUNCTION(imap_append) { diff --git a/ext/imap/php_imap.stub.php b/ext/imap/php_imap.stub.php index 4c94b72656ee7..346ce2d3dc5dc 100644 --- a/ext/imap/php_imap.stub.php +++ b/ext/imap/php_imap.stub.php @@ -411,6 +411,8 @@ function imap_reopen(IMAP\Connection $imap, string $mailbox, int $flags = 0, int function imap_close(IMAP\Connection $imap, int $flags = 0): bool {} + function imap_is_open(IMAP\Connection $imap): bool {} + function imap_num_msg(IMAP\Connection $imap): int|false {} function imap_num_recent(IMAP\Connection $imap): int {} diff --git a/ext/imap/php_imap_arginfo.h b/ext/imap/php_imap_arginfo.h index e6d1ed4c921ab..eb49ae1dfb404 100644 --- a/ext/imap/php_imap_arginfo.h +++ b/ext/imap/php_imap_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: c1f54f259bde2c49c5b49a595751acd2fb365efe */ + * Stub hash: c7ef736ea5c4121a4694c24af33fa1672f502c25 */ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_imap_open, 0, 3, IMAP\\Connection, MAY_BE_FALSE) ZEND_ARG_TYPE_INFO(0, mailbox, IS_STRING, 0) @@ -22,6 +22,10 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_imap_close, 0, 1, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "0") ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_imap_is_open, 0, 1, _IS_BOOL, 0) + ZEND_ARG_OBJ_INFO(0, imap, IMAP\\Connection, 0) +ZEND_END_ARG_INFO() + ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_imap_num_msg, 0, 1, MAY_BE_LONG|MAY_BE_FALSE) ZEND_ARG_OBJ_INFO(0, imap, IMAP\\Connection, 0) ZEND_END_ARG_INFO() @@ -101,9 +105,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_imap_gc, 0, 2, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_imap_expunge, 0, 1, _IS_BOOL, 0) - ZEND_ARG_OBJ_INFO(0, imap, IMAP\\Connection, 0) -ZEND_END_ARG_INFO() +#define arginfo_imap_expunge arginfo_imap_is_open ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_imap_delete, 0, 2, _IS_BOOL, 0) ZEND_ARG_OBJ_INFO(0, imap, IMAP\\Connection, 0) @@ -171,7 +173,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_imap_append, 0, 3, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, internal_date, IS_STRING, 1, "null") ZEND_END_ARG_INFO() -#define arginfo_imap_ping arginfo_imap_expunge +#define arginfo_imap_ping arginfo_imap_is_open ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_imap_base64, 0, 1, MAY_BE_STRING|MAY_BE_FALSE) ZEND_ARG_TYPE_INFO(0, string, IS_STRING, 0) @@ -341,6 +343,7 @@ ZEND_END_ARG_INFO() ZEND_FUNCTION(imap_open); ZEND_FUNCTION(imap_reopen); ZEND_FUNCTION(imap_close); +ZEND_FUNCTION(imap_is_open); ZEND_FUNCTION(imap_num_msg); ZEND_FUNCTION(imap_num_recent); ZEND_FUNCTION(imap_headers); @@ -425,6 +428,7 @@ static const zend_function_entry ext_functions[] = { ZEND_FE(imap_open, arginfo_imap_open) ZEND_FE(imap_reopen, arginfo_imap_reopen) ZEND_FE(imap_close, arginfo_imap_close) + ZEND_FE(imap_is_open, arginfo_imap_is_open) ZEND_FE(imap_num_msg, arginfo_imap_num_msg) ZEND_FE(imap_num_recent, arginfo_imap_num_recent) ZEND_FE(imap_headers, arginfo_imap_headers) diff --git a/ext/imap/tests/imap_is_open.phpt b/ext/imap/tests/imap_is_open.phpt new file mode 100644 index 0000000000000..db937ac9b7182 --- /dev/null +++ b/ext/imap/tests/imap_is_open.phpt @@ -0,0 +1,37 @@ +--TEST-- +Test imap_is_open() +--EXTENSIONS-- +imap +--SKIPIF-- + +--FILE-- + +--CLEAN-- + +--EXPECT-- +Create a temporary mailbox and add 0 msgs +New mailbox created +bool(true) +bool(true) +bool(false) diff --git a/ext/mbstring/libmbfl/filters/mbfilter_jis.c b/ext/mbstring/libmbfl/filters/mbfilter_jis.c index af3c24ea6366f..fc5f18aeb5d1c 100644 --- a/ext/mbstring/libmbfl/filters/mbfilter_jis.c +++ b/ext/mbstring/libmbfl/filters/mbfilter_jis.c @@ -584,6 +584,17 @@ static size_t mb_iso2022jp_to_wchar(unsigned char **in, size_t *in_len, uint32_t } else if (c < 0x80) { *out++ = c; } else if (c >= 0xA1 && c <= 0xDF) { + /* GR-invoked Kana; "GR" stands for "graphics right" and refers to bytes + * with the MSB bit (in the context of ISO-2022 encoding). + * + * In this regard, Wikipedia states: + * "Other, older variants known as JIS7 and JIS8 build directly on the 7-bit and 8-bit + * encodings defined by JIS X 0201 and allow use of JIS X 0201 kana from G1 without + * escape sequences, using Shift Out and Shift In or setting the eighth bit + * (GR-invoked), respectively." + * + * Note that we support both the 'JIS7' use of 0xE/0xF Shift In/Shift Out codes + * and the 'JIS8' use of GR-invoked Kana */ *out++ = 0xFEC0 + c; } else { *out++ = MBFL_BAD_INPUT; @@ -731,6 +742,13 @@ static void mb_wchar_to_jis(uint32_t *in, size_t len, mb_convert_buf *buf, bool buf->state = ASCII; } out = mb_convert_buf_add(out, s); + } else if (s >= 0xA1 && s <= 0xDF) { + if (buf->state != JISX_0201_KANA) { + MB_CONVERT_BUF_ENSURE(buf, out, limit, (len * 2) + 4); + out = mb_convert_buf_add3(out, 0x1B, '(', 'I'); + buf->state = JISX_0201_KANA; + } + out = mb_convert_buf_add(out, s & 0x7F); } else if (s < 0x8080) { /* JIS X 0208 */ if (buf->state != JISX_0208) { MB_CONVERT_BUF_ENSURE(buf, out, limit, (len * 2) + 5); diff --git a/ext/mbstring/libmbfl/filters/mbfilter_singlebyte.c b/ext/mbstring/libmbfl/filters/mbfilter_singlebyte.c index f2973b92095d3..56c9b2dbc85d9 100644 --- a/ext/mbstring/libmbfl/filters/mbfilter_singlebyte.c +++ b/ext/mbstring/libmbfl/filters/mbfilter_singlebyte.c @@ -485,10 +485,10 @@ DEF_SB_TBL(cp1251, "Windows-1251", "Windows-1251", cp1251_aliases, 0x80, cp1251_ static const char *cp1252_aliases[] = {"cp1252", NULL}; static const unsigned short cp1252_ucs_table[] = { - 0x20AC, 0x0000, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, - 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0x0000, 0x017D, 0x0000, - 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, - 0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, 0x0000, 0x017E, 0x0178 + 0x20AC, 0x0081, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, + 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0x008D, 0x017D, 0x008F, + 0x0090, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, + 0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, 0x009D, 0x017E, 0x0178 }; DEF_SB(cp1252, "Windows-1252", "Windows-1252", cp1252_aliases); @@ -504,7 +504,7 @@ static int mbfl_filt_conv_wchar_cp1252(int c, mbfl_convert_filter *filter) } } CK(mbfl_filt_conv_illegal_output(c, filter)); - } else if (c <= 0x7F || c >= 0xA0) { + } else if (c <= 0x7F || c >= 0xA0 || c == 0x81 || c == 0x8D || c == 0x8F || c == 0x90 || c == 0x9D) { CK((*filter->output_function)(c, filter->data)); } else { CK(mbfl_filt_conv_illegal_output(c, filter)); @@ -562,7 +562,7 @@ static void mb_wchar_to_cp1252(uint32_t *in, size_t len, mb_convert_buf *buf, bo } MB_CONVERT_ERROR(buf, out, limit, w, mb_wchar_to_cp1252); MB_CONVERT_BUF_ENSURE(buf, out, limit, len); - } else if (w <= 0x7F || w >= 0xA0) { + } else if (w <= 0x7F || w >= 0xA0 || w == 0x81 || w == 0x8D || w == 0x8F || w == 0x90 || w == 0x9D) { out = mb_convert_buf_add(out, w); } else { MB_CONVERT_ERROR(buf, out, limit, w, mb_wchar_to_cp1252); diff --git a/ext/mbstring/libmbfl/filters/mbfilter_utf7.c b/ext/mbstring/libmbfl/filters/mbfilter_utf7.c index bcc590b680c83..f5fe261f69d00 100644 --- a/ext/mbstring/libmbfl/filters/mbfilter_utf7.c +++ b/ext/mbstring/libmbfl/filters/mbfilter_utf7.c @@ -530,9 +530,12 @@ static size_t mb_utf7_to_wchar(unsigned char **in, size_t *in_len, uint32_t *buf } unsigned char n4 = decode_base64(*p++); - if (is_base64_end(n4) || p == e) { + if (is_base64_end(n4)) { out = handle_base64_end(n4, &p, out, &base64, n3 & 0x3, &surrogate1); continue; + } else if (p == e) { + out = handle_base64_end(n4, &p, out, &base64, true, &surrogate1); + continue; } unsigned char n5 = decode_base64(*p++); if (is_base64_end(n5) || p == e) { @@ -552,9 +555,12 @@ static size_t mb_utf7_to_wchar(unsigned char **in, size_t *in_len, uint32_t *buf } unsigned char n7 = decode_base64(*p++); - if (is_base64_end(n7) || p == e) { + if (is_base64_end(n7)) { out = handle_base64_end(n7, &p, out, &base64, n6 & 0xF, &surrogate1); continue; + } else if (p == e) { + out = handle_base64_end(n7, &p, out, &base64, true, &surrogate1); + continue; } unsigned char n8 = decode_base64(*p++); if (is_base64_end(n8)) { diff --git a/ext/mbstring/libmbfl/filters/mbfilter_utf7imap.c b/ext/mbstring/libmbfl/filters/mbfilter_utf7imap.c index 45722ce2c8904..850edfbd63a1e 100644 --- a/ext/mbstring/libmbfl/filters/mbfilter_utf7imap.c +++ b/ext/mbstring/libmbfl/filters/mbfilter_utf7imap.c @@ -147,6 +147,9 @@ int mbfl_filt_conv_utf7imap_wchar(int c, mbfl_convert_filter *filter) * or it could be that it ended on the first half of a surrogate pair */ filter->cache = filter->status = 0; CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); + } else { + /* Base64-encoded section properly terminated by - */ + filter->cache = filter->status = 0; } } else { /* illegal character */ filter->cache = filter->status = 0; @@ -555,9 +558,12 @@ static size_t mb_utf7imap_to_wchar(unsigned char **in, size_t *in_len, uint32_t } unsigned char n4 = decode_base64(*p++); - if (is_base64_end(n4) || p == e) { + if (is_base64_end(n4)) { out = handle_base64_end(n4, out, &base64, n3 & 0x3, &surrogate1); continue; + } else if (p == e) { + out = handle_base64_end(n4, out, &base64, true, &surrogate1); + continue; } unsigned char n5 = decode_base64(*p++); if (is_base64_end(n5) || p == e) { @@ -577,9 +583,12 @@ static size_t mb_utf7imap_to_wchar(unsigned char **in, size_t *in_len, uint32_t } unsigned char n7 = decode_base64(*p++); - if (is_base64_end(n7) || p == e) { + if (is_base64_end(n7)) { out = handle_base64_end(n7, out, &base64, n6 & 0xF, &surrogate1); continue; + } else if (p == e) { + out = handle_base64_end(n7, out, &base64, true, &surrogate1); + continue; } unsigned char n8 = decode_base64(*p++); if (is_base64_end(n8)) { diff --git a/ext/mbstring/libmbfl/mbfl/mbfilter.c b/ext/mbstring/libmbfl/mbfl/mbfilter.c index 0918140cf5324..e0cfa13e0b4f6 100644 --- a/ext/mbstring/libmbfl/mbfl/mbfilter.c +++ b/ext/mbstring/libmbfl/mbfl/mbfilter.c @@ -1174,6 +1174,7 @@ mbfl_strcut( bk = _bk; } + decoder->illegal_mode = MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE; (*encoder->filter_flush)(encoder); if (bk.decoder.filter_dtor) diff --git a/ext/mbstring/tests/cp1252_encoding.phpt b/ext/mbstring/tests/cp1252_encoding.phpt index 0688fe943134e..228dfde905c5c 100644 --- a/ext/mbstring/tests/cp1252_encoding.phpt +++ b/ext/mbstring/tests/cp1252_encoding.phpt @@ -11,11 +11,6 @@ if (getenv("SKIP_SLOW_TESTS")) die("skip slow test"); include('encoding_tests.inc'); testEncodingFromUTF16ConversionTable(__DIR__ . '/data/CP1252.txt', 'CP1252'); -// Test "long" illegal character markers -mb_substitute_character("long"); -convertInvalidString("\x81", "%", "CP1252", "UTF-8"); -convertInvalidString("\x9D", "%", "CP1252", "UTF-8"); - // Test replacement character which cannot be encoded in CP1252 mb_substitute_character(0x1234); convertInvalidString("\x23\x45", '?', 'UTF-16BE', 'CP1252'); diff --git a/ext/mbstring/tests/data/CP1252.txt b/ext/mbstring/tests/data/CP1252.txt index 8ff4b204b755e..0ccd4ff189861 100644 --- a/ext/mbstring/tests/data/CP1252.txt +++ b/ext/mbstring/tests/data/CP1252.txt @@ -145,7 +145,7 @@ 0x7E 0x007E #TILDE 0x7F 0x007F #DELETE 0x80 0x20AC #EURO SIGN -0x81 #UNDEFINED +0x81 0x0081 #*** MODIFIED TO FOLLOW WINDOWS "BEST FIT" MAPPINGS 0x82 0x201A #SINGLE LOW-9 QUOTATION MARK 0x83 0x0192 #LATIN SMALL LETTER F WITH HOOK 0x84 0x201E #DOUBLE LOW-9 QUOTATION MARK @@ -157,10 +157,10 @@ 0x8A 0x0160 #LATIN CAPITAL LETTER S WITH CARON 0x8B 0x2039 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK 0x8C 0x0152 #LATIN CAPITAL LIGATURE OE -0x8D #UNDEFINED +0x8D 0x008D #*** MODIFIED TO FOLLOW WINDOWS "BEST FIT" MAPPINGS 0x8E 0x017D #LATIN CAPITAL LETTER Z WITH CARON -0x8F #UNDEFINED -0x90 #UNDEFINED +0x8F 0x008F #*** MODIFIED TO FOLLOW WINDOWS "BEST FIT" MAPPINGS +0x90 0x0090 #*** MODIFIED TO FOLLOW WINDOWS "BEST FIT" MAPPINGS 0x91 0x2018 #LEFT SINGLE QUOTATION MARK 0x92 0x2019 #RIGHT SINGLE QUOTATION MARK 0x93 0x201C #LEFT DOUBLE QUOTATION MARK @@ -173,7 +173,7 @@ 0x9A 0x0161 #LATIN SMALL LETTER S WITH CARON 0x9B 0x203A #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK 0x9C 0x0153 #LATIN SMALL LIGATURE OE -0x9D #UNDEFINED +0x9D 0x009D #*** MODIFIED TO FOLLOW WINDOWS "BEST FIT" MAPPINGS 0x9E 0x017E #LATIN SMALL LETTER Z WITH CARON 0x9F 0x0178 #LATIN CAPITAL LETTER Y WITH DIAERESIS 0xA0 0x00A0 #NO-BREAK SPACE diff --git a/ext/mbstring/tests/gh9535.phpt b/ext/mbstring/tests/gh9535.phpt new file mode 100644 index 0000000000000..9b4916737313e --- /dev/null +++ b/ext/mbstring/tests/gh9535.phpt @@ -0,0 +1,169 @@ +--TEST-- +GH-9535 (mb_strcut(): The behavior of mb_strcut in mbstring has been changed in PHP8.1) +--EXTENSIONS-- +mbstring +--FILE-- + +--EXPECT-- +UTF-16: 宛如繁星般宛如 +UTF-16BE: 宛如繁星般宛如 +UTF-16LE: 宛如繁星般宛如 +UTF-7: 宛如繁星 +UTF7-IMAP: 宛如繁星 +ISO-2022-JP-MS: 宛如繁星 +GB18030: 宛如繁星般宛如 +HZ: 宛如繁星般 +ISO-2022-KR: 宛如繁星 +ISO-2022-JP-MOBILE#KDDI: 宛如繁星 +CP50220: 宛如繁星 +CP50221: 宛如繁星 +CP50222: 宛如繁星 + +UTF-16: 星のように月のように +UTF-16BE: 星のように月のように +UTF-16LE: 星のように月のように +UTF-7: 星のように月 +UTF7-IMAP: 星のように月 +ISO-2022-JP-MS: 星のように月の +GB18030: 星のように月のように +HZ: 星のように月のよ +ISO-2022-KR: 星のように月の +ISO-2022-JP-MOBILE#KDDI: 星のように月の +CP50220: 星のように月の +CP50221: 星のように月の +CP50222: 星のように月の + +UTF-16: あaいb +UTF-16BE: あaいb +UTF-16LE: あaいb +UTF-7: あa +UTF7-IMAP: あa +ISO-2022-JP-MS: あa +GB18030: あaいb +HZ: あa +ISO-2022-KR: あa +ISO-2022-JP-MOBILE#KDDI: あa +CP50220: あa +CP50221: あa +CP50222: あa + +UTF-16: AAAAA +UTF-16BE: AAAAA +UTF-16LE: AAAAA +UTF-7: AAAAAAAAAA +UTF7-IMAP: AAAAAAAAAA +ISO-2022-JP-MS: AAAAAAAAAA +GB18030: AAAAAAAAAA +HZ: AAAAAAAAAA +ISO-2022-KR: AAAAAA +ISO-2022-JP-MOBILE#KDDI: AAAAAAAAAA +CP50220: AAAAAAAAAA +CP50221: AAAAAAAAAA +CP50222: AAAAAAAAAA + +UTF-16: ? +UTF-16BE: ? +UTF-16LE: ? +UTF-7: ?? +UTF7-IMAP: ?? +ISO-2022-JP-MS: ?? +GB18030: ?? +HZ: ?? +ISO-2022-KR: +ISO-2022-JP-MOBILE#KDDI: ?? +CP50220: ?? +CP50221: ?? +CP50222: ?? + +UTF-16: ?? +UTF-16BE: ?? +UTF-16LE: ?? +UTF-7: ?? +UTF7-IMAP: ?? +ISO-2022-JP-MS: ?? +GB18030: ?? +HZ: ?? +ISO-2022-KR: +ISO-2022-JP-MOBILE#KDDI: ?? +CP50220: ?? +CP50221: ?? +CP50222: ?? diff --git a/ext/mbstring/tests/gh9535b.phpt b/ext/mbstring/tests/gh9535b.phpt new file mode 100644 index 0000000000000..8e68e6becdbc1 --- /dev/null +++ b/ext/mbstring/tests/gh9535b.phpt @@ -0,0 +1,106 @@ +--TEST-- +Output of mb_strcut covers requested range of bytes even when output contains ending escape sequences +--EXTENSIONS-- +mbstring +--FILE-- + +--XFAIL-- +Discussion: https://github.com/php/php-src/pull/9562 +--EXPECTF-- +JIS: 宛如繁星般 +ISO-2022-JP: 宛如繁星般 +ISO-2022-JP-2004: 宛如繁星 + +JIS: 星のように月の +ISO-2022-JP: 星のように月の +ISO-2022-JP-2004: 星のように月の + +JIS: あa +ISO-2022-JP: あa +ISO-2022-JP-2004: あa + +JIS: AAAAAAAAAA +ISO-2022-JP: AAAAAAAAAA +ISO-2022-JP-2004: AAAAAAAAAA + +JIS: ?? +ISO-2022-JP: ?? +ISO-2022-JP-2004: ?? + +string(2) "??" +string(2) "??" +string(2) "??" diff --git a/ext/mbstring/tests/iso2022jp_encoding.phpt b/ext/mbstring/tests/iso2022jp_encoding.phpt index f3a6e9e850b90..634f0976994c3 100644 --- a/ext/mbstring/tests/iso2022jp_encoding.phpt +++ b/ext/mbstring/tests/iso2022jp_encoding.phpt @@ -218,6 +218,23 @@ testValidString("\x20\x3E", "\x1B\$B!1\x1B(B", 'UTF-16BE', 'ISO-2022-JP', false) echo "Other mappings from Unicode -> ISO-2022-JP are OK\n"; +// Single bytes from 0xA3-0xDF can be used to encode kana in JIS8 +$grInvoked = [ + "\xA3" => "\x1B(I\x23\x1B(B", + "\xB1" => "\x1B(I\x31\x1B(B", + "\xC2" => "\x1B(I\x42\x1B(B", + "\xDF" => "\x1B(I\x5F\x1B(B" +]; +foreach ($grInvoked as $gr => $jisx) { + // JISX 0201 is used as the canonical form for outputting kana + testValidString($gr, $jisx, 'JIS', 'JIS', false); + if (mb_convert_encoding($gr, 'UTF-16BE', 'JIS') !== mb_convert_encoding($jisx, 'UTF-16BE', 'JIS')) + die("Equivalent GR byte and JISX 0201 sequence do not decode to the same codepoint"); +} + +echo "GR-invoked kana support OK\n"; + +// Check handling of BOM convertInvalidString("\xFF\xFE", "%", "UTF-16BE", "JIS", false); convertInvalidString("\xFF\xFE", "%", "UTF-16BE", "ISO-2022-JP", false); @@ -239,4 +256,5 @@ JIS X 0208 support OK JIS X 0212 support OK All escape sequences work as expected Other mappings from Unicode -> ISO-2022-JP are OK +GR-invoked kana support OK Done! diff --git a/ext/mbstring/tests/utf7imap_encoding.phpt b/ext/mbstring/tests/utf7imap_encoding.phpt index 06852c9190e70..e91bfbbe05a69 100644 --- a/ext/mbstring/tests/utf7imap_encoding.phpt +++ b/ext/mbstring/tests/utf7imap_encoding.phpt @@ -221,6 +221,14 @@ convertInvalidString("\x80", "%", "UTF7-IMAP", "UTF-8"); convertInvalidString("abc&", "abc%", "UTF7-IMAP", "UTF-8"); // The & starts a Base-64 coded section, which is OK... but there's no data in it convertInvalidString("&**-", "%*-", "UTF7-IMAP", "UTF-8"); // When we hit the first bad byte in a Base-64 coded section, it drops us back into the default mode, so the following characters are literal +// Try strings where Base64 has an extra trailing byte which is not needed +convertInvalidString('&RR8I', "\xE4\x94\x9F%", 'UTF7-IMAP', 'UTF-8'); +convertInvalidString('&RR8IAAA', "\xE4\x94\x9F\xE0\xA0\x80%", 'UTF7-IMAP', 'UTF-8'); + +// It is useless for a Base64 section to only contain a single 'A' +// (which decodes to only zero bits) +convertInvalidString("&A", "\x00\x00\x00%", 'UTF7-IMAP', 'UTF-32BE'); + echo "Done!\n"; ?> --EXPECT-- diff --git a/ext/mbstring/tests/utf_encodings.phpt b/ext/mbstring/tests/utf_encodings.phpt index da2b8d07c5aa7..2f050c657c2f3 100644 --- a/ext/mbstring/tests/utf_encodings.phpt +++ b/ext/mbstring/tests/utf_encodings.phpt @@ -1063,6 +1063,16 @@ testInvalidString('+' . rawEncode("\xD8\x01"), "\x00\x00\x00%", 'UTF-7', 'UTF-32 testInvalidString('+' . rawEncode("\x01") . '-', "\x00\x00\x00%", 'UTF-7', 'UTF-32BE'); testInvalidString('+l', "\x00\x00\x00%", 'UTF-7', 'UTF-32BE'); +// Base64 section should not have 4 ASCII characters; the first 3 can encode one +// UTF-16 character, so there is no need for the 4th +testInvalidString('+RR8I', "\xE4\x94\x9F%", 'UTF-7', 'UTF-8'); +// Likewise with 7 characters +testInvalidString('+RR8IAAA', "\xE4\x94\x9F\xE0\xA0\x80%", 'UTF-7', 'UTF-8'); + +// Similarly, it is useless for a Base64 section to only contain a single 'A' +// (which decodes to only zero bits) +testInvalidString("+A", "\x00\x00\x00%", 'UTF-7', 'UTF-32BE'); + // And then, messed up Base64 encoding // Bad padding on + section (not zeroes) diff --git a/ext/mysqli/tests/mysqli_connect.phpt b/ext/mysqli/tests/mysqli_connect.phpt index 0e1142ee92a61..f229515f0de06 100644 --- a/ext/mysqli/tests/mysqli_connect.phpt +++ b/ext/mysqli/tests/mysqli_connect.phpt @@ -143,7 +143,7 @@ require_once('skipifconnectfailure.inc'); print "done!"; ?> --EXPECTF-- -Warning: mysqli_connect(): (%s/%d): Access denied for user '%s'@'%s' (using password: YES) in %s on line %d +Warning: mysqli_connect(): (%s/%d): Access denied for user '%s'@'%s'%r( \(using password: \w+\)){0,1}%r in %s on line %d array(1) { ["testing"]=> string(21) "mysqli.default_socket" diff --git a/ext/mysqli/tests/mysqli_connect_oo.phpt b/ext/mysqli/tests/mysqli_connect_oo.phpt index a5b065a065f56..78293eb849f0f 100644 --- a/ext/mysqli/tests/mysqli_connect_oo.phpt +++ b/ext/mysqli/tests/mysqli_connect_oo.phpt @@ -148,9 +148,9 @@ require_once('skipifconnectfailure.inc'); print "done!"; ?> --EXPECTF-- -Warning: mysqli::__construct(): (%s/%d): Access denied for user '%sunknown%s'@'%s' (using password: %s) in %s on line %d +Warning: mysqli::__construct(): (%s/%d): Access denied for user '%sunknown%s'@'%s' %r(\(using password: \w+\) ){0,1}%rin %s on line %d mysqli object is not fully initialized mysqli object is not fully initialized ... and now Exceptions -Access denied for user '%s'@'%s' (using password: %s) +Access denied for user '%s'@'%s'%r( \(using password: \w+\)){0,1}%r done! diff --git a/ext/mysqli/tests/mysqli_execute_query.phpt b/ext/mysqli/tests/mysqli_execute_query.phpt index 64b7fbcf3e770..0cb5c29f72766 100644 --- a/ext/mysqli/tests/mysqli_execute_query.phpt +++ b/ext/mysqli/tests/mysqli_execute_query.phpt @@ -89,7 +89,7 @@ print "done!"; require_once "clean_table.inc"; ?> --EXPECTF-- -[005] [1064] You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'some random gibberish' at line 1 +[005] [1064] You have an error in your SQL syntax; check the manual that corresponds to your %s server version for the right syntax to use near 'some random gibberish' at line 1 [006] [1062] Duplicate entry '1' for key '%s' [009] mysqli::execute_query(): Argument #2 ($params) must consist of exactly 3 elements, 2 present [010] mysqli::execute_query(): Argument #2 ($params) must be a list array diff --git a/ext/mysqli/tests/mysqli_real_connect.phpt b/ext/mysqli/tests/mysqli_real_connect.phpt index b2b23ea45018c..d58513630ef28 100644 --- a/ext/mysqli/tests/mysqli_real_connect.phpt +++ b/ext/mysqli/tests/mysqli_real_connect.phpt @@ -151,7 +151,7 @@ mysqli.allow_local_infile=1 require_once("clean_table.inc"); ?> --EXPECTF-- -Warning: mysqli_real_connect(): (%s/%d): Access denied for user '%s'@'%s' (using password: YES) in %s on line %d +Warning: mysqli_real_connect(): (%s/%d): Access denied for user '%s'@'%s' %r(\(using password: \w+\) ){0,1}%rin %s on line %d object(mysqli)#%d (%d) { ["client_info"]=> string(%d) "%s" diff --git a/ext/mysqli/tests/mysqli_real_connect_pconn.phpt b/ext/mysqli/tests/mysqli_real_connect_pconn.phpt index 087bc64a43dc9..b2bd61978e778 100644 --- a/ext/mysqli/tests/mysqli_real_connect_pconn.phpt +++ b/ext/mysqli/tests/mysqli_real_connect_pconn.phpt @@ -147,5 +147,5 @@ mysqli.max_persistent=10 require_once "clean_table.inc"; ?> --EXPECTF-- -Warning: mysqli_real_connect(): (%s/%d): Access denied for user '%s'@'%s' (using password: YES) in %s on line %d +Warning: mysqli_real_connect(): (%s/%d): Access denied for user '%s'@'%s' %r(\(using password: \w+\) ){0,1}%rin %s on line %d done! diff --git a/ext/mysqli/tests/mysqli_reap_async_query_error.phpt b/ext/mysqli/tests/mysqli_reap_async_query_error.phpt index d5672ba177649..e7a48eaf1a38f 100644 --- a/ext/mysqli/tests/mysqli_reap_async_query_error.phpt +++ b/ext/mysqli/tests/mysqli_reap_async_query_error.phpt @@ -26,6 +26,6 @@ try { print "done!"; ?> ---EXPECT-- -You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1 +--EXPECTF-- +You have an error in your SQL syntax; check the manual that corresponds to your %s server version for the right syntax to use near ')' at line 1 done! diff --git a/ext/mysqli/tests/mysqli_report.phpt b/ext/mysqli/tests/mysqli_report.phpt index 110d25726cdbd..91a88815fd447 100644 --- a/ext/mysqli/tests/mysqli_report.phpt +++ b/ext/mysqli/tests/mysqli_report.phpt @@ -337,6 +337,6 @@ Warning: mysqli_stmt_attr_set(): (%s/%d): Not implemented in %s on line %d mysqli_kill(): Argument #2 ($process_id) must be greater than 0 Warning: mysqli_stmt_prepare(): (%d/%d): You have an error in your SQL syntax; check the manual that corresponds to your %s server version for the right syntax to use near 'FOO' at line 1 in %s on line %d -[013] Access denied for user '%s'@'%s' (using password: YES) -[016] Access denied for user '%s'@'%s' (using password: YES) +[013] Access denied for user '%s'@'%s'%r( \(using password: \w+\)){0,1}%r +[016] Access denied for user '%s'@'%s'%r( \(using password: \w+\)){0,1}%r done! diff --git a/ext/opcache/ZendAccelerator.c b/ext/opcache/ZendAccelerator.c index f78ae8755f336..2d0dcee76fc52 100644 --- a/ext/opcache/ZendAccelerator.c +++ b/ext/opcache/ZendAccelerator.c @@ -35,6 +35,7 @@ #include "zend_inheritance.h" #include "zend_exceptions.h" #include "zend_mmap.h" +#include "zend_observer.h" #include "main/php_main.h" #include "main/SAPI.h" #include "main/php_streams.h" @@ -3982,7 +3983,7 @@ static void preload_link(void) if (ce->type == ZEND_INTERNAL_CLASS) { break; } - if (!(ce->ce_flags & ZEND_ACC_CONSTANTS_UPDATED)) { + if ((ce->ce_flags & ZEND_ACC_LINKED) && !(ce->ce_flags & ZEND_ACC_CONSTANTS_UPDATED)) { if (!(ce->ce_flags & ZEND_ACC_TRAIT)) { /* don't update traits */ CG(in_compilation) = true; /* prevent autoloading */ if (preload_try_resolve_constants(ce)) { @@ -4480,6 +4481,7 @@ static int accel_preload(const char *config, bool in_child) script->script.main_op_array.fn_flags |= ZEND_ACC_DONE_PASS_TWO; script->script.main_op_array.last = 1; script->script.main_op_array.last_literal = 1; + script->script.main_op_array.T = ZEND_OBSERVER_ENABLED; #if ZEND_USE_ABS_CONST_ADDR script->script.main_op_array.literals = (zval*)emalloc(sizeof(zval)); #else diff --git a/ext/opcache/jit/zend_jit_arm64.dasc b/ext/opcache/jit/zend_jit_arm64.dasc index 098baea5bc6f2..712e3ba113606 100644 --- a/ext/opcache/jit/zend_jit_arm64.dasc +++ b/ext/opcache/jit/zend_jit_arm64.dasc @@ -5574,7 +5574,8 @@ static int zend_jit_simple_assign(dasm_State **Dst, uint32_t val_info, zend_jit_addr res_addr, int in_cold, - int save_r1) + int save_r1, + bool check_exception) /* Labels: 1,2,3 */ { zend_reg tmp_reg; @@ -5624,7 +5625,9 @@ static int zend_jit_simple_assign(dasm_State **Dst, ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL && Z_REG(val_addr) == ZREG_FP); | LOAD_32BIT_VAL FCARG1w, Z_OFFSET(val_addr) | EXT_CALL zend_jit_undefined_op_helper, REG0 - | cbz RETVALx, ->exception_handler_undef + if (check_exception) { + | cbz RETVALx, ->exception_handler_undef + } if (save_r1) { | ldr FCARG1x, T1 // restore } @@ -5933,7 +5936,7 @@ static int zend_jit_assign_to_variable(dasm_State **Dst, if (!keep_gc) { | str Rx(tmp_reg), T1 // save } - if (!zend_jit_simple_assign(Dst, opline, var_addr, var_info, var_def_info, val_type, val_addr, val_info, res_addr, in_cold, 0)) { + if (!zend_jit_simple_assign(Dst, opline, var_addr, var_info, var_def_info, val_type, val_addr, val_info, res_addr, in_cold, 0, 0)) { return 0; } if (!keep_gc) { @@ -5941,7 +5944,7 @@ static int zend_jit_assign_to_variable(dasm_State **Dst, } } else { | GET_ZVAL_PTR FCARG1x, var_use_addr, TMP1 - if (!zend_jit_simple_assign(Dst, opline, var_addr, var_info, var_def_info, val_type, val_addr, val_info, res_addr, in_cold, 1)) { + if (!zend_jit_simple_assign(Dst, opline, var_addr, var_info, var_def_info, val_type, val_addr, val_info, res_addr, in_cold, 1, 0)) { return 0; } } @@ -5953,7 +5956,7 @@ static int zend_jit_assign_to_variable(dasm_State **Dst, } | ZVAL_DTOR_FUNC var_info, opline, TMP1 if (in_cold || (RC_MAY_BE_N(var_info) && (var_info & (MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0)) { - if (check_exception) { + if (check_exception && !(val_info & MAY_BE_UNDEF)) { | MEM_LOAD_64_ZTS ldr, REG0, executor_globals, exception, TMP1 | cbz REG0, >8 | b ->exception_handler @@ -5969,6 +5972,12 @@ static int zend_jit_assign_to_variable(dasm_State **Dst, | b >8 } } + if (check_exception && (val_info & MAY_BE_UNDEF)) { + |8: + | MEM_LOAD_64_ZTS ldr, REG0, executor_globals, exception, TMP1 + | cbz REG0, >8 + | b ->exception_handler + } if (in_cold) { |.code } else { @@ -5997,7 +6006,7 @@ static int zend_jit_assign_to_variable(dasm_State **Dst, } } - if (!done && !zend_jit_simple_assign(Dst, opline, var_addr, var_info, var_def_info, val_type, val_addr, val_info, res_addr, 0, 0)) { + if (!done && !zend_jit_simple_assign(Dst, opline, var_addr, var_info, var_def_info, val_type, val_addr, val_info, res_addr, 0, 0, check_exception)) { return 0; } @@ -6097,7 +6106,7 @@ static int zend_jit_assign_dim(dasm_State **Dst, const zend_op *opline, uint32_t | b >9 |.code - if (!zend_jit_simple_assign(Dst, opline, var_addr, var_info, -1, (opline+1)->op1_type, op3_addr, val_info, res_addr, 0, 0)) { + if (!zend_jit_simple_assign(Dst, opline, var_addr, var_info, -1, (opline+1)->op1_type, op3_addr, val_info, res_addr, 0, 0, 0)) { return 0; } } else { @@ -8351,7 +8360,7 @@ static int zend_jit_qm_assign(dasm_State **Dst, const zend_op *opline, uint32_t } } - if (!zend_jit_simple_assign(Dst, opline, res_addr, res_use_info, res_info, opline->op1_type, op1_addr, op1_info, 0, 0, 0)) { + if (!zend_jit_simple_assign(Dst, opline, res_addr, res_use_info, res_info, opline->op1_type, op1_addr, op1_info, 0, 0, 0, 1)) { return 0; } if (!zend_jit_store_var_if_necessary(Dst, opline->result.var, res_addr, res_info)) { diff --git a/ext/opcache/jit/zend_jit_x86.dasc b/ext/opcache/jit/zend_jit_x86.dasc index eac18de7a8ae3..c2f2772208be5 100644 --- a/ext/opcache/jit/zend_jit_x86.dasc +++ b/ext/opcache/jit/zend_jit_x86.dasc @@ -6110,7 +6110,8 @@ static int zend_jit_simple_assign(dasm_State **Dst, uint32_t val_info, zend_jit_addr res_addr, int in_cold, - int save_r1) + int save_r1, + bool check_exception) /* Labels: 1,2,3 */ { zend_reg tmp_reg; @@ -6160,8 +6161,10 @@ static int zend_jit_simple_assign(dasm_State **Dst, ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL && Z_REG(val_addr) == ZREG_FP); | mov FCARG1d, Z_OFFSET(val_addr) | EXT_CALL zend_jit_undefined_op_helper, r0 - | test r0, r0 - | jz ->exception_handler_undef + if (check_exception) { + | test r0, r0 + | jz ->exception_handler_undef + } if (save_r1) { | mov FCARG1a, aword T1 // restore } @@ -6476,7 +6479,7 @@ static int zend_jit_assign_to_variable(dasm_State **Dst, if (!keep_gc) { | mov aword T1, Ra(tmp_reg) // save } - if (!zend_jit_simple_assign(Dst, opline, var_addr, var_info, var_def_info, val_type, val_addr, val_info, res_addr, in_cold, 0)) { + if (!zend_jit_simple_assign(Dst, opline, var_addr, var_info, var_def_info, val_type, val_addr, val_info, res_addr, in_cold, 0, 0)) { return 0; } if (!keep_gc) { @@ -6484,7 +6487,7 @@ static int zend_jit_assign_to_variable(dasm_State **Dst, } } else { | GET_ZVAL_PTR FCARG1a, var_use_addr - if (!zend_jit_simple_assign(Dst, opline, var_addr, var_info, var_def_info, val_type, val_addr, val_info, res_addr, in_cold, 1)) { + if (!zend_jit_simple_assign(Dst, opline, var_addr, var_info, var_def_info, val_type, val_addr, val_info, res_addr, in_cold, 1, 0)) { return 0; } } @@ -6496,7 +6499,7 @@ static int zend_jit_assign_to_variable(dasm_State **Dst, } | ZVAL_DTOR_FUNC var_info, opline if (in_cold || (RC_MAY_BE_N(var_info) && (var_info & (MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0)) { - if (check_exception) { + if (check_exception && !(val_info & MAY_BE_UNDEF)) { | MEM_CMP_ZTS aword, executor_globals, exception, 0, r0 | je >8 | jmp ->exception_handler @@ -6512,6 +6515,12 @@ static int zend_jit_assign_to_variable(dasm_State **Dst, | jmp >8 } } + if (check_exception && (val_info & MAY_BE_UNDEF)) { + |8: + | MEM_CMP_ZTS aword, executor_globals, exception, 0, r0 + | je >8 + | jmp ->exception_handler + } if (in_cold) { |.code } else { @@ -6540,7 +6549,7 @@ static int zend_jit_assign_to_variable(dasm_State **Dst, } } - if (!done && !zend_jit_simple_assign(Dst, opline, var_addr, var_info, var_def_info, val_type, val_addr, val_info, res_addr, 0, 0)) { + if (!done && !zend_jit_simple_assign(Dst, opline, var_addr, var_info, var_def_info, val_type, val_addr, val_info, res_addr, 0, 0, check_exception)) { return 0; } @@ -6638,7 +6647,7 @@ static int zend_jit_assign_dim(dasm_State **Dst, const zend_op *opline, uint32_t | jmp >9 |.code - if (!zend_jit_simple_assign(Dst, opline, var_addr, var_info, -1, (opline+1)->op1_type, op3_addr, val_info, res_addr, 0, 0)) { + if (!zend_jit_simple_assign(Dst, opline, var_addr, var_info, -1, (opline+1)->op1_type, op3_addr, val_info, res_addr, 0, 0, 0)) { return 0; } } else { @@ -8961,7 +8970,7 @@ static int zend_jit_qm_assign(dasm_State **Dst, const zend_op *opline, uint32_t } } - if (!zend_jit_simple_assign(Dst, opline, res_addr, res_use_info, res_info, opline->op1_type, op1_addr, op1_info, 0, 0, 0)) { + if (!zend_jit_simple_assign(Dst, opline, res_addr, res_use_info, res_info, opline->op1_type, op1_addr, op1_info, 0, 0, 0, 1)) { return 0; } if (!zend_jit_store_var_if_necessary(Dst, opline->result.var, res_addr, res_info)) { diff --git a/ext/opcache/tests/gh9968-1.inc b/ext/opcache/tests/gh9968-1.inc new file mode 100644 index 0000000000000..468178c78483f --- /dev/null +++ b/ext/opcache/tests/gh9968-1.inc @@ -0,0 +1,3 @@ + +--FILE-- + +==DONE== +--EXPECTF-- +Warning: Can't preload unlinked class Root1_Constant_Referencer: Unknown parent Root2_Empty_Empty in %s on line %d + +Fatal error: Uncaught Error: Class "Root1_Constant_Referencer" not found in %s:%d +Stack trace: +#0 {main} + thrown in %s on line %d diff --git a/ext/opcache/tests/jit/assign_055.phpt b/ext/opcache/tests/jit/assign_055.phpt new file mode 100644 index 0000000000000..e1aa607f236c2 --- /dev/null +++ b/ext/opcache/tests/jit/assign_055.phpt @@ -0,0 +1,25 @@ +--TEST-- +JIT ASSIGN: memory leak +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +opcache.file_update_protection=0 +opcache.jit_buffer_size=1M +opcache.protect_memory=1 +--FILE-- + +--EXPECTF-- +Fatal error: Uncaught Error: Undefined constant "y" in %sassign_055.php:3 +Stack trace: +#0 %sassign_055.php(7): {closure}(2, 'Undefined varia...', '%s', 7) +#1 {main} + thrown in %sassign_055.php on line 3 \ No newline at end of file diff --git a/ext/opcache/tests/jit/closure_001.phpt b/ext/opcache/tests/jit/closure_001.phpt new file mode 100644 index 0000000000000..3e47d016d83b4 --- /dev/null +++ b/ext/opcache/tests/jit/closure_001.phpt @@ -0,0 +1,46 @@ +--TEST-- +Closures should be always called with ZEND_ACC_CLOSURE flag set +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +opcache.file_update_protection=0 +opcache.jit_buffer_size=1M +opcache.protect_memory=1 +opcache.jit_hot_func=2 +--EXTENSIONS-- +opcache +--FILE-- +call($foo)); +var_dump($f->call($foo)); +var_dump($f()); +?> +--EXPECT-- +object(Closure)#3 (1) { + ["this"]=> + object(Foo)#1 (0) { + } +} +object(Closure)#3 (1) { + ["this"]=> + object(Foo)#1 (0) { + } +} +object(Closure)#3 (0) { +} diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c index cb5e6260b4abb..806d7cc21cf73 100644 --- a/ext/openssl/openssl.c +++ b/ext/openssl/openssl.c @@ -1324,13 +1324,14 @@ PHP_MSHUTDOWN_FUNCTION(openssl) #if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER) EVP_cleanup(); + /* prevent accessing locking callback from unloaded extension */ + CRYPTO_set_locking_callback(NULL); + #ifndef OPENSSL_NO_ENGINE /* Free engine list initialized by OPENSSL_config */ ENGINE_cleanup(); #endif - /* prevent accessing locking callback from unloaded extension */ - CRYPTO_set_locking_callback(NULL); /* free allocated error strings */ ERR_free_strings(); CONF_modules_free(); @@ -3642,7 +3643,7 @@ static int php_openssl_get_evp_pkey_type(int key_type) { switch (key_type) { case OPENSSL_KEYTYPE_RSA: return EVP_PKEY_RSA; -#if !defined(NO_DSA) +#if !defined(OPENSSL_NO_DSA) case OPENSSL_KEYTYPE_DSA: return EVP_PKEY_DSA; #endif @@ -3694,7 +3695,7 @@ static EVP_PKEY * php_openssl_generate_private_key(struct php_x509_request * req } switch (type) { -#if !defined(NO_DSA) +#if !defined(OPENSSL_NO_DSA) case EVP_PKEY_DSA: if (EVP_PKEY_CTX_set_dsa_paramgen_bits(ctx, req->priv_key_bits) <= 0) { php_openssl_store_errors(); @@ -4713,6 +4714,7 @@ static void php_openssl_copy_bn_param( } } +#ifdef HAVE_EVP_PKEY_EC static zend_string *php_openssl_get_utf8_param( EVP_PKEY *pkey, const char *param, const char *name) { char buf[64]; @@ -4726,6 +4728,7 @@ static zend_string *php_openssl_get_utf8_param( return NULL; } #endif +#endif /* {{{ returns an array with the key details (bits, pkey, type)*/ PHP_FUNCTION(openssl_pkey_get_details) @@ -4790,6 +4793,7 @@ PHP_FUNCTION(openssl_pkey_get_details) php_openssl_copy_bn_param(&ary, pkey, OSSL_PKEY_PARAM_PRIV_KEY, "priv_key"); php_openssl_copy_bn_param(&ary, pkey, OSSL_PKEY_PARAM_PUB_KEY, "pub_key"); break; +#ifdef HAVE_EVP_PKEY_EC case EVP_PKEY_EC: { ktype = OPENSSL_KEYTYPE_EC; array_init(&ary); @@ -4818,6 +4822,7 @@ PHP_FUNCTION(openssl_pkey_get_details) php_openssl_copy_bn_param(&ary, pkey, OSSL_PKEY_PARAM_PRIV_KEY, "d"); break; } +#endif EMPTY_SWITCH_DEFAULT_CASE(); } #else diff --git a/ext/openssl/openssl.stub.php b/ext/openssl/openssl.stub.php index 16923ad42fca2..a9fad2eaeae90 100644 --- a/ext/openssl/openssl.stub.php +++ b/ext/openssl/openssl.stub.php @@ -293,7 +293,7 @@ * @cvalue OPENSSL_KEYTYPE_RSA */ const OPENSSL_KEYTYPE_RSA = UNKNOWN; -#ifndef NO_DSA +#ifndef OPENSSL_NO_DSA /** * @var int * @cvalue OPENSSL_KEYTYPE_DSA diff --git a/ext/openssl/openssl_arginfo.h b/ext/openssl/openssl_arginfo.h index 2c0eb850dfb4a..3e1b4a778a967 100644 --- a/ext/openssl/openssl_arginfo.h +++ b/ext/openssl/openssl_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: ec0f6d5850d52d9bf8f6e9262ef49c68a818a946 */ + * Stub hash: be79b4cc0d9eb4469c43f10208b86369dcc1239d */ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_x509_export_to_file, 0, 2, _IS_BOOL, 0) ZEND_ARG_OBJ_TYPE_MASK(0, certificate, OpenSSLCertificate, MAY_BE_STRING, NULL) @@ -618,7 +618,7 @@ static void register_openssl_symbols(int module_number) REGISTER_LONG_CONSTANT("OPENSSL_CIPHER_AES_256_CBC", PHP_OPENSSL_CIPHER_AES_256_CBC, CONST_PERSISTENT); #endif REGISTER_LONG_CONSTANT("OPENSSL_KEYTYPE_RSA", OPENSSL_KEYTYPE_RSA, CONST_PERSISTENT); -#if !defined(NO_DSA) +#if !defined(OPENSSL_NO_DSA) REGISTER_LONG_CONSTANT("OPENSSL_KEYTYPE_DSA", OPENSSL_KEYTYPE_DSA, CONST_PERSISTENT); #endif REGISTER_LONG_CONSTANT("OPENSSL_KEYTYPE_DH", OPENSSL_KEYTYPE_DH, CONST_PERSISTENT); diff --git a/ext/openssl/tests/bug41033.phpt b/ext/openssl/tests/bug41033.phpt index 73cca19506af3..17982ecf73afc 100644 --- a/ext/openssl/tests/bug41033.phpt +++ b/ext/openssl/tests/bug41033.phpt @@ -2,6 +2,10 @@ #41033, enable signing with DSA keys --EXTENSIONS-- openssl +--SKIPIF-- + --FILE-- --FILE-- --FILE-- --FILE-- + --FILE-- --FILE-- --FILE-- --FILE-- --FILE-- --FILE-- --FILE-- next; @@ -154,6 +162,7 @@ PHP_RSHUTDOWN_FUNCTION(pcntl) PCNTL_G(spares) = sig->next; efree(sig); } + return SUCCESS; } diff --git a/ext/pdo/pdo_dbh.c b/ext/pdo/pdo_dbh.c index 0de21811f26e4..ed45c6d7ce40e 100644 --- a/ext/pdo/pdo_dbh.c +++ b/ext/pdo/pdo_dbh.c @@ -1164,7 +1164,7 @@ PHP_METHOD(PDO, query) PHP_METHOD(PDO, quote) { pdo_dbh_t *dbh = Z_PDO_DBH_P(ZEND_THIS); - zend_string *str; + zend_string *str, *quoted; zend_long paramtype = PDO_PARAM_STR; ZEND_PARSE_PARAMETERS_START(1, 2) @@ -1180,8 +1180,14 @@ PHP_METHOD(PDO, quote) pdo_raise_impl_error(dbh, NULL, "IM001", "driver does not support quoting"); RETURN_FALSE; } + quoted = dbh->methods->quoter(dbh, str, paramtype); - RETURN_STR(dbh->methods->quoter(dbh, str, paramtype)); + if (quoted == NULL) { + PDO_HANDLE_DBH_ERR(); + RETURN_FALSE; + } + + RETURN_STR(quoted); } /* }}} */ diff --git a/ext/pdo/pdo_sql_parser.re b/ext/pdo/pdo_sql_parser.re index 4c20700379731..6bb0837fb31f9 100644 --- a/ext/pdo/pdo_sql_parser.re +++ b/ext/pdo/pdo_sql_parser.re @@ -242,6 +242,13 @@ safe: if (buf) { zend_string_release_ex(buf, 0); } + if (plc->quoted == NULL) { + /* bork */ + ret = -1; + strncpy(stmt->error_code, stmt->dbh->error_code, 6); + goto clean_up; + } + } else { pdo_raise_impl_error(stmt->dbh, stmt, "HY105", "Expected a stream resource"); ret = -1; diff --git a/ext/pdo_firebird/firebird_statement.c b/ext/pdo_firebird/firebird_statement.c index 171a378a9b41c..71fee89570cbc 100644 --- a/ext/pdo_firebird/firebird_statement.c +++ b/ext/pdo_firebird/firebird_statement.c @@ -385,6 +385,8 @@ static int firebird_stmt_get_col( case SQL_INT64: n = *(ISC_INT64*)var->sqldata; break; + case SQL_DOUBLE: + break; EMPTY_SWITCH_DEFAULT_CASE() } diff --git a/ext/pdo_sqlite/sqlite_driver.c b/ext/pdo_sqlite/sqlite_driver.c index 6a41e2162a934..de5170a35a96b 100644 --- a/ext/pdo_sqlite/sqlite_driver.c +++ b/ext/pdo_sqlite/sqlite_driver.c @@ -226,7 +226,11 @@ static zend_string *pdo_sqlite_last_insert_id(pdo_dbh_t *dbh, const zend_string /* NB: doesn't handle binary strings... use prepared stmts for that */ static zend_string* sqlite_handle_quoter(pdo_dbh_t *dbh, const zend_string *unquoted, enum pdo_param_type paramtype) { - char *quoted = safe_emalloc(2, ZSTR_LEN(unquoted), 3); + char *quoted; + if (ZSTR_LEN(unquoted) > (INT_MAX - 3) / 2) { + return NULL; + } + quoted = safe_emalloc(2, ZSTR_LEN(unquoted), 3); /* TODO use %Q format? */ sqlite3_snprintf(2*ZSTR_LEN(unquoted) + 3, quoted, "'%q'", ZSTR_VAL(unquoted)); zend_string *quoted_str = zend_string_init(quoted, strlen(quoted), 0); diff --git a/ext/pdo_sqlite/tests/bug81740.phpt b/ext/pdo_sqlite/tests/bug81740.phpt new file mode 100644 index 0000000000000..99fb07c3048b0 --- /dev/null +++ b/ext/pdo_sqlite/tests/bug81740.phpt @@ -0,0 +1,17 @@ +--TEST-- +Bug #81740 (PDO::quote() may return unquoted string) +--SKIPIF-- + +--INI-- +memory_limit=-1 +--FILE-- +quote($string)); +?> +--EXPECT-- +bool(false) diff --git a/ext/random/randomizer.c b/ext/random/randomizer.c index 391cc16cc74db..05461ea3b86f9 100644 --- a/ext/random/randomizer.c +++ b/ext/random/randomizer.c @@ -131,7 +131,7 @@ PHP_METHOD(Random_Randomizer, getInt) && ((php_random_status_state_mt19937 *) randomizer->status->state)->mode != MT_RAND_MT19937 )) { uint64_t r = php_random_algo_mt19937.generate(randomizer->status) >> 1; - + /* This is an inlined version of the RAND_RANGE_BADSCALING macro that does not invoke UB when encountering * (max - min) > ZEND_LONG_MAX. */ diff --git a/ext/session/session.c b/ext/session/session.c index 13e2d2dbf8144..bd940ded0feb7 100644 --- a/ext/session/session.c +++ b/ext/session/session.c @@ -93,6 +93,8 @@ zend_class_entry *php_session_update_timestamp_iface_entry; return FAILURE; \ } +#define SESSION_FORBIDDEN_CHARS "=,;.[ \t\r\n\013\014" + #define APPLY_TRANS_SID (PS(use_trans_sid) && !PS(use_only_cookies)) static int php_session_send_cookie(void); @@ -1254,7 +1256,7 @@ static void php_session_remove_cookie(void) { size_t session_cookie_len; size_t len = sizeof("Set-Cookie")-1; - ZEND_ASSERT(strpbrk(PS(session_name), "=,; \t\r\n\013\014") == NULL); + ZEND_ASSERT(strpbrk(PS(session_name), SESSION_FORBIDDEN_CHARS) == NULL); spprintf(&session_cookie, 0, "Set-Cookie: %s=", PS(session_name)); session_cookie_len = strlen(session_cookie); @@ -1302,8 +1304,8 @@ static zend_result php_session_send_cookie(void) /* {{{ */ } /* Prevent broken Set-Cookie header, because the session_name might be user supplied */ - if (strpbrk(PS(session_name), "=,; \t\r\n\013\014") != NULL) { /* man isspace for \013 and \014 */ - php_error_docref(NULL, E_WARNING, "session.name cannot contain any of the following '=,; \\t\\r\\n\\013\\014'"); + if (strpbrk(PS(session_name), SESSION_FORBIDDEN_CHARS) != NULL) { /* man isspace for \013 and \014 */ + php_error_docref(NULL, E_WARNING, "session.name cannot contain any of the following '=,;.[ \\t\\r\\n\\013\\014'"); return FAILURE; } diff --git a/ext/session/tests/session_name_variation1.phpt b/ext/session/tests/session_name_variation1.phpt index f7ccc7744a8ff..07fb7f10ca89b 100644 --- a/ext/session/tests/session_name_variation1.phpt +++ b/ext/session/tests/session_name_variation1.phpt @@ -45,7 +45,7 @@ bool(true) string(9) "PHPSESSID" string(9) "PHPSESSID" -Warning: session_start(): session.name cannot contain any of the following '=,; \t\r\n\013\014' in %s on line %d +Warning: session_start(): session.name cannot contain any of the following '=,;.[ \t\r\n\013\014' in %s on line %d bool(true) string(1) " " bool(true) @@ -54,7 +54,7 @@ string(1) " " Warning: session_name(): session.name "" cannot be numeric or empty in %s on line %d string(1) " " -Warning: session_start(): session.name cannot contain any of the following '=,; \t\r\n\013\014' in %s on line %d +Warning: session_start(): session.name cannot contain any of the following '=,;.[ \t\r\n\013\014' in %s on line %d bool(true) string(1) " " bool(true) diff --git a/ext/spl/php_spl.c b/ext/spl/php_spl.c index 71ddb63333207..710b2f97ffb9a 100644 --- a/ext/spl/php_spl.c +++ b/ext/spl/php_spl.c @@ -401,6 +401,16 @@ static autoload_func_info *autoload_func_info_from_fci( static bool autoload_func_info_equals( const autoload_func_info *alfi1, const autoload_func_info *alfi2) { + if (UNEXPECTED( + (alfi1->func_ptr->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) && + (alfi2->func_ptr->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) + )) { + return alfi1->obj == alfi2->obj + && alfi1->ce == alfi2->ce + && alfi1->closure == alfi2->closure + && zend_string_equals(alfi1->func_ptr->common.function_name, alfi2->func_ptr->common.function_name) + ; + } return alfi1->func_ptr == alfi2->func_ptr && alfi1->obj == alfi2->obj && alfi1->ce == alfi2->ce @@ -580,6 +590,13 @@ PHP_FUNCTION(spl_autoload_unregister) RETURN_TRUE; } + if (!fcc.function_handler) { + /* Call trampoline has been cleared by zpp. Refetch it, because we want to deal + * with it outselves. It is important that it is not refetched on every call, + * because calls may occur from different scopes. */ + zend_is_callable_ex(&fci.function_name, NULL, 0, NULL, &fcc, NULL); + } + autoload_func_info *alfi = autoload_func_info_from_fci(&fci, &fcc); Bucket *p = spl_find_registered_function(alfi); autoload_func_info_destroy(alfi); diff --git a/ext/spl/spl_directory.c b/ext/spl/spl_directory.c index c8cd8f684d406..83ce1c1103e18 100644 --- a/ext/spl/spl_directory.c +++ b/ext/spl/spl_directory.c @@ -1859,35 +1859,7 @@ zend_object_iterator *spl_filesystem_tree_get_iterator(zend_class_entry *ce, zva } /* }}} */ -/* {{{ spl_filesystem_object_cast */ -static zend_result spl_filesystem_object_cast(zend_object *readobj, zval *writeobj, int type) -{ - spl_filesystem_object *intern = spl_filesystem_from_obj(readobj); - - if (type == IS_STRING) { - if (readobj->ce->__tostring) { - return zend_std_cast_object_tostring(readobj, writeobj, type); - } - - switch (intern->type) { - case SPL_FS_INFO: - case SPL_FS_FILE: - ZVAL_STR_COPY(writeobj, intern->file_name); - return SUCCESS; - case SPL_FS_DIR: - ZVAL_STRING(writeobj, intern->u.dir.entry.d_name); - return SUCCESS; - } - } else if (type == _IS_BOOL) { - ZVAL_TRUE(writeobj); - return SUCCESS; - } - ZVAL_NULL(writeobj); - return FAILURE; -} -/* }}} */ - -static zend_result spl_filesystem_file_read_ex(spl_filesystem_object *intern, bool silent, zend_long line_add, bool csv) /* {{{ */ +static zend_result spl_filesystem_file_read_ex(spl_filesystem_object *intern, bool silent, zend_long line_add, bool csv) { char *buf; size_t line_len = 0; @@ -2751,6 +2723,23 @@ PHP_METHOD(SplFileObject, seek) } } /* }}} */ +PHP_METHOD(SplFileObject, __toString) +{ + if (zend_parse_parameters_none() == FAILURE) { + RETURN_THROWS(); + } + + spl_filesystem_object *intern = spl_filesystem_from_obj(Z_OBJ_P(ZEND_THIS)); + + CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); + + if (!intern->u.file.current_line && Z_ISUNDEF(intern->u.file.current_zval)) { + spl_filesystem_file_read_line(ZEND_THIS, intern); + } + + RETURN_STRINGL(intern->u.file.current_line, intern->u.file.current_line_len); +} + /* {{{ PHP_MINIT_FUNCTION(spl_directory) */ PHP_MINIT_FUNCTION(spl_directory) { @@ -2760,7 +2749,6 @@ PHP_MINIT_FUNCTION(spl_directory) memcpy(&spl_filesystem_object_handlers, &std_object_handlers, sizeof(zend_object_handlers)); spl_filesystem_object_handlers.offset = XtOffsetOf(spl_filesystem_object, std); spl_filesystem_object_handlers.clone_obj = spl_filesystem_object_clone; - spl_filesystem_object_handlers.cast_object = spl_filesystem_object_cast; spl_filesystem_object_handlers.dtor_obj = spl_filesystem_object_destroy_object; spl_filesystem_object_handlers.free_obj = spl_filesystem_object_free_storage; diff --git a/ext/spl/spl_directory.stub.php b/ext/spl/spl_directory.stub.php index 0ddd6c9268cda..d11c9b50daf9d 100644 --- a/ext/spl/spl_directory.stub.php +++ b/ext/spl/spl_directory.stub.php @@ -378,7 +378,6 @@ public function seek(int $line): void {} */ public function getCurrentLine(): string {} - /** @implementation-alias SplFileObject::fgets */ public function __toString(): string {} } diff --git a/ext/spl/spl_directory_arginfo.h b/ext/spl/spl_directory_arginfo.h index 6d45358e30336..99a6e0b854421 100644 --- a/ext/spl/spl_directory_arginfo.h +++ b/ext/spl/spl_directory_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: 06f914771f457db2308473ad072d594f2c6c1ae0 */ + * Stub hash: 7e67d07b6079c39a091e91dfddfbe7170067955e */ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplFileInfo___construct, 0, 0, 1) ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0) @@ -361,6 +361,7 @@ ZEND_METHOD(SplFileObject, getMaxLineLen); ZEND_METHOD(SplFileObject, hasChildren); ZEND_METHOD(SplFileObject, getChildren); ZEND_METHOD(SplFileObject, seek); +ZEND_METHOD(SplFileObject, __toString); ZEND_METHOD(SplTempFileObject, __construct); @@ -479,7 +480,7 @@ static const zend_function_entry class_SplFileObject_methods[] = { ZEND_ME(SplFileObject, getChildren, arginfo_class_SplFileObject_getChildren, ZEND_ACC_PUBLIC) ZEND_ME(SplFileObject, seek, arginfo_class_SplFileObject_seek, ZEND_ACC_PUBLIC) ZEND_MALIAS(SplFileObject, getCurrentLine, fgets, arginfo_class_SplFileObject_getCurrentLine, ZEND_ACC_PUBLIC) - ZEND_MALIAS(SplFileObject, __toString, fgets, arginfo_class_SplFileObject___toString, ZEND_ACC_PUBLIC) + ZEND_ME(SplFileObject, __toString, arginfo_class_SplFileObject___toString, ZEND_ACC_PUBLIC) ZEND_FE_END }; diff --git a/ext/spl/tests/gh10011.phpt b/ext/spl/tests/gh10011.phpt new file mode 100644 index 0000000000000..3603011f70bc6 --- /dev/null +++ b/ext/spl/tests/gh10011.phpt @@ -0,0 +1,59 @@ +--TEST-- +Bug GH-10011 (Trampoline autoloader will get reregistered and cannot be unregistered) +--FILE-- + +--EXPECT-- +array(2) { + [0]=> + array(2) { + [0]=> + object(TrampolineTest)#1 (0) { + } + [1]=> + string(11) "trampoline1" + } + [1]=> + array(2) { + [0]=> + object(TrampolineTest)#1 (0) { + } + [1]=> + string(11) "trampoline2" + } +} +Trampoline for trampoline1 +Trampoline for trampoline2 +bool(false) +Unregister trampoline: +bool(true) +bool(false) +bool(true) +array(0) { +} +bool(false) diff --git a/ext/spl/tests/gh9883-extra.phpt b/ext/spl/tests/gh9883-extra.phpt new file mode 100644 index 0000000000000..810cdda42c11c --- /dev/null +++ b/ext/spl/tests/gh9883-extra.phpt @@ -0,0 +1,14 @@ +--TEST-- +Bug GH-9883 (SplFileObject::__toString() reads next line) +--FILE-- + +--EXPECT-- diff --git a/ext/spl/tests/gh9883.phpt b/ext/spl/tests/gh9883.phpt new file mode 100644 index 0000000000000..22972e6f262d8 --- /dev/null +++ b/ext/spl/tests/gh9883.phpt @@ -0,0 +1,20 @@ +--TEST-- +Bug GH-9883 (SplFileObject::__toString() reads next line) +--FILE-- + +--EXPECT-- +query("ATTACH 'file:..%2ffoo.php' as db2;"); +?> +--EXPECTF-- +Warning: SQLite3::query(): not authorized in %s on line %d diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index 00713766fde60..6967307df453e 100755 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -525,7 +525,7 @@ PHP_FUNCTION(constant) ZEND_PARSE_PARAMETERS_END(); scope = zend_get_executed_scope(); - c = zend_get_constant_ex(const_name, scope, 0); + c = zend_get_constant_ex(const_name, scope, ZEND_FETCH_CLASS_EXCEPTION); if (!c) { RETURN_THROWS(); } diff --git a/ext/standard/dl.c b/ext/standard/dl.c index 7b47c4726d1a7..ebf8a3a507ebb 100644 --- a/ext/standard/dl.c +++ b/ext/standard/dl.c @@ -206,8 +206,8 @@ PHPAPI int php_load_extension(const char *filename, int type, int start_now) } module_entry = get_module(); if (zend_hash_str_exists(&module_registry, module_entry->name, strlen(module_entry->name))) { - DL_UNLOAD(handle); zend_error(E_CORE_WARNING, "Module \"%s\" is already loaded", module_entry->name); + DL_UNLOAD(handle); return FAILURE; } if (module_entry->zend_api != ZEND_MODULE_API_NO) { diff --git a/ext/standard/tests/general_functions/gh9905.phpt b/ext/standard/tests/general_functions/gh9905.phpt new file mode 100644 index 0000000000000..33d2f4f737026 --- /dev/null +++ b/ext/standard/tests/general_functions/gh9905.phpt @@ -0,0 +1,12 @@ +--TEST-- +GH-9905 (constant() behaves inconsistent when class is undefined) +--FILE-- +getMessage()); +} +?> +--EXPECT-- +Class "NonExistantClass" not found diff --git a/ext/zend_test/tests/observer_preload.inc b/ext/zend_test/tests/observer_preload.inc new file mode 100644 index 0000000000000..7652014f91bf0 --- /dev/null +++ b/ext/zend_test/tests/observer_preload.inc @@ -0,0 +1,13 @@ + +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +opcache.optimization_level=-1 +opcache.preload={PWD}/observer_preload.inc +opcache.file_cache= +opcache.file_cache_only=0 +zend_test.observer.enabled=1 +zend_test.observer.observe_all=1 +zend_test.observer.observe_declaring=1 +zend_test.observer.show_return_value=1 +--FILE-- + +--EXPECTF-- + + + + + + + + + + + + + +Done + \ No newline at end of file diff --git a/main/php_version.h b/main/php_version.h index e7993749fd9e5..9644e6957d57a 100644 --- a/main/php_version.h +++ b/main/php_version.h @@ -2,7 +2,7 @@ /* edit configure.ac to change version number */ #define PHP_MAJOR_VERSION 8 #define PHP_MINOR_VERSION 2 -#define PHP_RELEASE_VERSION 0 -#define PHP_EXTRA_VERSION "-dev" -#define PHP_VERSION "8.2.0-dev" -#define PHP_VERSION_ID 80200 +#define PHP_RELEASE_VERSION 1 +#define PHP_EXTRA_VERSION "" +#define PHP_VERSION "8.2.1" +#define PHP_VERSION_ID 80201 diff --git a/php.ini-development b/php.ini-development index 4a62b5af60e10..70c6b00555844 100644 --- a/php.ini-development +++ b/php.ini-development @@ -913,6 +913,12 @@ default_socket_timeout = 60 ; Be sure to appropriately set the extension_dir directive. ; ;extension=bz2 + +; The ldap extension must be before curl if OpenSSL 1.0.2 and OpenLDAP is used +; otherwise it results in segfault when unloading after using SASL. +; See https://github.com/php/php-src/issues/8620 for more info. +;extension=ldap + ;extension=curl ;extension=ffi ;extension=ftp @@ -922,7 +928,6 @@ default_socket_timeout = 60 ;extension=gmp ;extension=intl ;extension=imap -;extension=ldap ;extension=mbstring ;extension=exif ; Must be after mbstring as it depends on it ;extension=mysqli diff --git a/php.ini-production b/php.ini-production index 8a1eb9674e2f3..21627c9142487 100644 --- a/php.ini-production +++ b/php.ini-production @@ -915,6 +915,12 @@ default_socket_timeout = 60 ; Be sure to appropriately set the extension_dir directive. ; ;extension=bz2 + +; The ldap extension must be before curl if OpenSSL 1.0.2 and OpenLDAP is used +; otherwise it results in segfault when unloading after using SASL. +; See https://github.com/php/php-src/issues/8620 for more info. +;extension=ldap + ;extension=curl ;extension=ffi ;extension=ftp @@ -924,7 +930,6 @@ default_socket_timeout = 60 ;extension=gmp ;extension=intl ;extension=imap -;extension=ldap ;extension=mbstring ;extension=exif ; Must be after mbstring as it depends on it ;extension=mysqli diff --git a/sapi/apache2handler/sapi_apache2.c b/sapi/apache2handler/sapi_apache2.c index 5238b02bbd625..30e05aec79ef8 100644 --- a/sapi/apache2handler/sapi_apache2.c +++ b/sapi/apache2handler/sapi_apache2.c @@ -182,6 +182,7 @@ php_apache_sapi_read_post(char *buf, size_t count_bytes) php_struct *ctx = SG(server_context); request_rec *r; apr_bucket_brigade *brigade; + apr_status_t status; r = ctx->r; brigade = ctx->brigade; @@ -193,7 +194,7 @@ php_apache_sapi_read_post(char *buf, size_t count_bytes) * need to make sure that if data is available we fill the buffer completely. */ - while (ap_get_brigade(r->input_filters, brigade, AP_MODE_READBYTES, APR_BLOCK_READ, len) == APR_SUCCESS) { + while ((status = ap_get_brigade(r->input_filters, brigade, AP_MODE_READBYTES, APR_BLOCK_READ, len)) == APR_SUCCESS) { apr_brigade_flatten(brigade, buf, &len); apr_brigade_cleanup(brigade); tlen += len; @@ -204,6 +205,10 @@ php_apache_sapi_read_post(char *buf, size_t count_bytes) len = count_bytes - tlen; } + if (status != APR_SUCCESS) { + return 0; + } + return tlen; } diff --git a/sapi/fpm/fpm/events/port.c b/sapi/fpm/fpm/events/port.c index 0df106250a977..71810e45c6823 100644 --- a/sapi/fpm/fpm/events/port.c +++ b/sapi/fpm/fpm/events/port.c @@ -144,14 +144,20 @@ static int fpm_event_port_wait(struct fpm_event_queue_s *queue, unsigned long in } for (i = 0; i < nget; i++) { + struct fpm_event_s *ev; /* do we have a ptr to the event ? */ if (!events[i].portev_user) { continue; } + ev = (struct fpm_event_s *)events[i].portev_user; + + /* re-associate for next event */ + fpm_event_port_add(ev); + /* fire the event */ - fpm_event_fire((struct fpm_event_s *)events[i].portev_user); + fpm_event_fire(ev); /* sanity check */ if (fpm_globals.parent_pid != getpid()) { diff --git a/sapi/fpm/fpm/fpm_children.c b/sapi/fpm/fpm/fpm_children.c index 741fc27631516..6a5787c7ec8d4 100644 --- a/sapi/fpm/fpm/fpm_children.c +++ b/sapi/fpm/fpm/fpm_children.c @@ -120,7 +120,7 @@ static void fpm_child_unlink(struct fpm_child_s *child) /* {{{ */ } /* }}} */ -static struct fpm_child_s *fpm_child_find(pid_t pid) /* {{{ */ +struct fpm_child_s *fpm_child_find(pid_t pid) /* {{{ */ { struct fpm_worker_pool_s *wp; struct fpm_child_s *child = 0; diff --git a/sapi/fpm/fpm/fpm_children.h b/sapi/fpm/fpm/fpm_children.h index 5ae4e2062e468..679c34ba0383e 100644 --- a/sapi/fpm/fpm/fpm_children.h +++ b/sapi/fpm/fpm/fpm_children.h @@ -10,13 +10,14 @@ #include "fpm_events.h" #include "zlog.h" +struct fpm_child_s; + int fpm_children_create_initial(struct fpm_worker_pool_s *wp); int fpm_children_free(struct fpm_child_s *child); void fpm_children_bury(void); int fpm_children_init_main(void); int fpm_children_make(struct fpm_worker_pool_s *wp, int in_event_loop, int nb_to_spawn, int is_debug); - -struct fpm_child_s; +struct fpm_child_s *fpm_child_find(pid_t pid); struct fpm_child_s { struct fpm_child_s *prev, *next; diff --git a/sapi/fpm/fpm/fpm_main.c b/sapi/fpm/fpm/fpm_main.c index 8ce59a43b4145..a8d77ef3bed21 100644 --- a/sapi/fpm/fpm/fpm_main.c +++ b/sapi/fpm/fpm/fpm_main.c @@ -1901,7 +1901,7 @@ consult the installation file that came with this distribution, or visit \n\ request_body_fd = -2; if (UNEXPECTED(EG(exit_status) == 255)) { - if (CGIG(error_header) && *CGIG(error_header)) { + if (CGIG(error_header) && *CGIG(error_header) && !SG(headers_sent)) { sapi_header_line ctr = {0}; ctr.line = CGIG(error_header); diff --git a/sapi/fpm/fpm/fpm_stdio.c b/sapi/fpm/fpm/fpm_stdio.c index 1dc65aaa3452a..46cf4aaa2851d 100644 --- a/sapi/fpm/fpm/fpm_stdio.c +++ b/sapi/fpm/fpm/fpm_stdio.c @@ -181,7 +181,10 @@ static void fpm_stdio_child_said(struct fpm_event_s *ev, short which, void *arg) if (!arg) { return; } - child = (struct fpm_child_s *)arg; + child = fpm_child_find((intptr_t) arg); + if (!child) { + return; + } is_stdout = (fd == child->fd_stdout); if (is_stdout) { @@ -327,10 +330,10 @@ int fpm_stdio_parent_use_pipes(struct fpm_child_s *child) /* {{{ */ child->fd_stdout = fd_stdout[0]; child->fd_stderr = fd_stderr[0]; - fpm_event_set(&child->ev_stdout, child->fd_stdout, FPM_EV_READ, fpm_stdio_child_said, child); + fpm_event_set(&child->ev_stdout, child->fd_stdout, FPM_EV_READ, fpm_stdio_child_said, (void *) (intptr_t) child->pid); fpm_event_add(&child->ev_stdout, 0); - fpm_event_set(&child->ev_stderr, child->fd_stderr, FPM_EV_READ, fpm_stdio_child_said, child); + fpm_event_set(&child->ev_stderr, child->fd_stderr, FPM_EV_READ, fpm_stdio_child_said, (void *) (intptr_t) child->pid); fpm_event_add(&child->ev_stderr, 0); return 0; } diff --git a/sapi/fpm/fpm/fpm_unix.c b/sapi/fpm/fpm/fpm_unix.c index 333265b07bd4a..b1127b35949d3 100644 --- a/sapi/fpm/fpm/fpm_unix.c +++ b/sapi/fpm/fpm/fpm_unix.c @@ -281,6 +281,11 @@ static int fpm_unix_conf_wp(struct fpm_worker_pool_s *wp) /* {{{ */ if (wp->config->user && *wp->config->user) { if (strlen(wp->config->user) == strspn(wp->config->user, "0123456789")) { wp->set_uid = strtoul(wp->config->user, 0, 10); + pwd = getpwuid(wp->set_uid); + if (pwd) { + wp->set_gid = pwd->pw_gid; + wp->set_user = strdup(pwd->pw_name); + } } else { struct passwd *pwd; @@ -404,7 +409,7 @@ int fpm_unix_init_child(struct fpm_worker_pool_s *wp) /* {{{ */ } } if (wp->set_uid) { - if (0 > initgroups(wp->config->user, wp->set_gid)) { + if (0 > initgroups(wp->set_user ? wp->set_user : wp->config->user, wp->set_gid)) { zlog(ZLOG_SYSERROR, "[pool %s] failed to initgroups(%s, %d)", wp->config->name, wp->config->user, wp->set_gid); return -1; } diff --git a/sapi/fpm/fpm/fpm_worker_pool.c b/sapi/fpm/fpm/fpm_worker_pool.c index 974238de296d4..6016b5867f5c6 100644 --- a/sapi/fpm/fpm/fpm_worker_pool.c +++ b/sapi/fpm/fpm/fpm_worker_pool.c @@ -34,6 +34,9 @@ void fpm_worker_pool_free(struct fpm_worker_pool_s *wp) /* {{{ */ if (wp->user) { free(wp->user); } + if (wp->set_user) { + free(wp->set_user); + } if (wp->home) { free(wp->home); } diff --git a/sapi/fpm/fpm/fpm_worker_pool.h b/sapi/fpm/fpm/fpm_worker_pool.h index 809f53a0545b5..efb8640cd32f0 100644 --- a/sapi/fpm/fpm/fpm_worker_pool.h +++ b/sapi/fpm/fpm/fpm_worker_pool.h @@ -24,6 +24,7 @@ struct fpm_worker_pool_s { enum fpm_address_domain listen_address_domain; int listening_socket; int set_uid, set_gid; /* config uid and gid */ + char *set_user; /* config user name */ int socket_uid, socket_gid, socket_mode; /* runtime */ diff --git a/sapi/fpm/tests/bug68207-fastcgi-error-header-sent.phpt b/sapi/fpm/tests/bug68207-fastcgi-error-header-sent.phpt new file mode 100644 index 0000000000000..3708b51b7a167 --- /dev/null +++ b/sapi/fpm/tests/bug68207-fastcgi-error-header-sent.phpt @@ -0,0 +1,45 @@ +--TEST-- +FPM: bug68207 - fastcgi.error_header setting headers after sent +--SKIPIF-- + +--FILE-- +start(iniEntries: ['fastcgi.error_header' => '"HTTP/1.1 550 PHP Error"']); +$tester->expectLogStartNotices(); +$tester->request()->expectBody('1'); +$tester->terminate(); +$tester->expectLogTerminatingNotices(); +$tester->expectNoLogPattern('/Cannot modify header information/'); +$tester->close(); + +?> +Done +--EXPECT-- +Done +--CLEAN-- + diff --git a/sapi/fpm/tests/bug77780-header-sent-error.phpt b/sapi/fpm/tests/bug77780-header-sent-error.phpt index b5e76918547f1..017a2aa513c2a 100644 --- a/sapi/fpm/tests/bug77780-header-sent-error.phpt +++ b/sapi/fpm/tests/bug77780-header-sent-error.phpt @@ -24,7 +24,7 @@ echo str_repeat('asdfghjkl', 150000) . "\n"; EOT; $tester = new FPM\Tester($cfg, $code); -$tester->start(); +$tester->start(extensions: ['session']); $tester->expectLogStartNotices(); $tester ->request( diff --git a/sapi/fpm/tests/bug80669-uid-user-groups.phpt b/sapi/fpm/tests/bug80669-uid-user-groups.phpt new file mode 100644 index 0000000000000..9a69473004778 --- /dev/null +++ b/sapi/fpm/tests/bug80669-uid-user-groups.phpt @@ -0,0 +1,52 @@ +--TEST-- +FPM: Process user setting ignored when FPM is not running as root +--SKIPIF-- + +--FILE-- +start(); +$tester->expectLogStartNotices(); +$tester->request()->expectBody((string) $gid); +$tester->terminate(); +$tester->expectLogTerminatingNotices(); +$tester->close(); + +?> +Done +--EXPECT-- +Done +--CLEAN-- + diff --git a/sapi/fpm/tests/logreader.inc b/sapi/fpm/tests/logreader.inc index c8ecb3ad2beeb..96bcc9ec7cfb3 100644 --- a/sapi/fpm/tests/logreader.inc +++ b/sapi/fpm/tests/logreader.inc @@ -137,7 +137,7 @@ class LogReader * * @return false */ - private function printError(?string $errorMessage): bool + public function printError(?string $errorMessage): bool { if (is_null($errorMessage)) { return false; @@ -155,8 +155,8 @@ class LogReader * @param callable $matcher Callback to identify a match * @param string|null $notFoundMessage Error message if matcher does not succeed. * @param bool $checkAllLogs Whether to also check past logs. - * @param int $timeoutSeconds Timeout in seconds for reading of all messages. - * @param int $timeoutMicroseconds Additional timeout in microseconds for reading of all messages. + * @param int|null $timeoutSeconds Timeout in seconds for reading of all messages. + * @param int|null $timeoutMicroseconds Additional timeout in microseconds for reading of all messages. * * @return bool * @throws \Exception @@ -165,9 +165,18 @@ class LogReader callable $matcher, string $notFoundMessage = null, bool $checkAllLogs = false, - int $timeoutSeconds = 3, - int $timeoutMicroseconds = 0 + int $timeoutSeconds = null, + int $timeoutMicroseconds = null ): bool { + if (is_null($timeoutSeconds) && is_null($timeoutMicroseconds)) { + $timeoutSeconds = 3; + $timeoutMicroseconds = 0; + } elseif (is_null($timeoutSeconds)) { + $timeoutSeconds = 0; + } elseif (is_null($timeoutMicroseconds)) { + $timeoutMicroseconds = 0; + } + $startTime = microtime(true); $endTime = $startTime + $timeoutSeconds + ($timeoutMicroseconds / 1_000_000); if ($checkAllLogs) { diff --git a/sapi/fpm/tests/logtool.inc b/sapi/fpm/tests/logtool.inc index fc5d0b55a83a2..fc2043b84efe1 100644 --- a/sapi/fpm/tests/logtool.inc +++ b/sapi/fpm/tests/logtool.inc @@ -127,20 +127,33 @@ class LogTool /** * Match the matcher checking the log lines using the callback. * - * @param callable $matcher Callback checking whether the log line matches the expected message. - * @param string $notFoundMessage Error message to show if the message is not found. - * @param bool $checkAllLogs Whether to also check past logs. + * @param callable $matcher Callback checking whether the log line matches the expected message. + * @param string|null $notFoundMessage Error message to show if the message is not found. + * @param bool $checkAllLogs Whether to also check past logs. + * @param int|null $timeoutSeconds Timeout in seconds for reading of all messages. + * @param int|null $timeoutMicroseconds Additional timeout in microseconds for reading of all messages. * * @return bool * @throws \Exception */ - private function match(callable $matcher, string $notFoundMessage, bool $checkAllLogs = false): bool - { + private function match( + callable $matcher, + string $notFoundMessage = null, + bool $checkAllLogs = false, + int $timeoutSeconds = null, + int $timeoutMicroseconds = null + ): bool { if ($this->getError()) { return false; } - if ($this->logReader->readUntil($matcher, $notFoundMessage, $checkAllLogs)) { + if ($this->logReader->readUntil( + $matcher, + $notFoundMessage, + $checkAllLogs, + $timeoutSeconds, + $timeoutMicroseconds + )) { $this->popError(); return true; @@ -576,11 +589,14 @@ class LogTool /** * Expect log entry. * - * @param string $type Entry type like NOTICE, WARNING, DEBUG and so on. - * @param string $expectedMessage Message to search for - * @param string|null $pool Pool that is used and prefixes the message. - * @param string $ignoreErrorFor Ignore error for supplied string in the message. - * @param bool $checkAllLogs Whether to also check past logs. + * @param string $type Entry type like NOTICE, WARNING, DEBUG and so on. + * @param string $expectedMessage Message to search for + * @param string|null $pool Pool that is used and prefixes the message. + * @param string $ignoreErrorFor Ignore error for supplied string in the message. + * @param bool $checkAllLogs Whether to also check past logs. + * @param bool $invert Whether the log entry is not expected rather than expected. + * @param int|null $timeoutSeconds Timeout in seconds for reading of all messages. + * @param int|null $timeoutMicroseconds Additional timeout in microseconds for reading of all messages. * * @return bool * @throws \Exception @@ -590,17 +606,28 @@ class LogTool string $expectedMessage, string $pool = null, string $ignoreErrorFor = self::DEBUG, - bool $checkAllLogs = false + bool $checkAllLogs = false, + bool $invert = false, + int $timeoutSeconds = null, + int $timeoutMicroseconds = null ): bool { if ($this->getError()) { return false; } - return $this->match( + $matchResult = $this->match( $this->getEntryMatcher($type, $expectedMessage, $pool, $ignoreErrorFor), - "The $type does not match expected message", - $checkAllLogs + $invert ? null : "The $type does not match expected message", + $checkAllLogs, + $timeoutSeconds, + $timeoutMicroseconds ); + + if ($matchResult && $invert) { + return $this->error("The $type matches unexpected message"); + } + + return $matchResult; } /** @@ -676,14 +703,23 @@ class LogTool /** * Expect pattern in the log line. * - * @param string $pattern + * @param string $pattern Pattern to use. + * @param bool $invert Whether to expect pattern not to match. + * @param bool $checkAllLogs Whether to also check past logs. + * @param int|null $timeoutSeconds Timeout in seconds for reading of all messages. + * @param int|null $timeoutMicroseconds Additional timeout in microseconds for reading of all messages. * * @return bool * @throws \Exception */ - public function expectPattern(string $pattern): bool - { - return $this->match( + public function expectPattern( + string $pattern, + bool $invert = false, + bool $checkAllLogs = false, + int $timeoutSeconds = null, + int $timeoutMicroseconds = null, + ): bool { + $matchResult = $this->match( function ($line) use ($pattern) { if (preg_match($pattern, $line) === 1) { $this->traceMatch("Pattern expectation", $pattern, $line); @@ -693,8 +729,17 @@ class LogTool return false; }, - 'The search pattern not found' + $invert ? null : 'The search pattern not found', + $checkAllLogs, + $timeoutSeconds, + $timeoutMicroseconds ); + + if ($invert && $matchResult) { + return $this->logReader->printError('The search pattern found - PATTERN: ' . $pattern); + } + + return $matchResult; } /** diff --git a/sapi/fpm/tests/response.inc b/sapi/fpm/tests/response.inc index 9112da6ed7756..dd74e42990b08 100644 --- a/sapi/fpm/tests/response.inc +++ b/sapi/fpm/tests/response.inc @@ -71,11 +71,11 @@ class Response $body = implode("\n", $body); } - if ( - $this->checkIfValid() && - $this->checkDefaultHeaders($contentType) && - $body !== $this->rawBody - ) { + if (!$this->checkIfValid()) { + $this->error('Response is invalid'); + } elseif (!$this->checkDefaultHeaders($contentType)) { + $this->error('Response default headers not found'); + } elseif ($body !== $this->rawBody) { if ($multiLine) { $this->error( "==> The expected body:\n$body\n" . diff --git a/sapi/fpm/tests/tester.inc b/sapi/fpm/tests/tester.inc index a25d1f0ec3579..50de960aa8dde 100644 --- a/sapi/fpm/tests/tester.inc +++ b/sapi/fpm/tests/tester.inc @@ -304,7 +304,7 @@ class Tester */ static public function skipIfNotRoot() { - if (getmyuid() != 0) { + if (exec('whoami') !== 'root') { die('skip not running as root'); } } @@ -314,7 +314,7 @@ class Tester */ static public function skipIfRoot() { - if (getmyuid() == 0) { + if (exec('whoami') === 'root') { die('skip running as root'); } } @@ -329,6 +329,17 @@ class Tester } } + /** + * Skip if posix extension not loaded. + */ + static public function skipIfUserDoesNotExist($userName) + { + self::skipIfPosixNotLoaded(); + if (posix_getpwnam($userName) === false) { + die("skip user $userName does not exist"); + } + } + /** * Tester constructor. * @@ -389,12 +400,19 @@ class Tester * @param array $extraArgs Command extra arguments. * @param bool $forceStderr Whether to output to stderr so error log is used. * @param bool $daemonize Whether to start FPM daemonized + * @param array $extensions List of extension to add if shared build used. + * @param array $iniEntries List of ini entries to use. * * @return bool * @throws \Exception */ - public function start(array $extraArgs = [], bool $forceStderr = true, bool $daemonize = false) - { + public function start( + array $extraArgs = [], + bool $forceStderr = true, + bool $daemonize = false, + array $extensions = [], + array $iniEntries = [], + ) { $configFile = $this->createConfig(); $desc = $this->outDesc ? [] : [1 => array('pipe', 'w'), 2 => array('redirect', 1)]; @@ -409,6 +427,18 @@ class Tester $cmd[] = '-F'; } + $extensionDir = getenv('TEST_FPM_EXTENSION_DIR'); + if ($extensionDir) { + $cmd[] = '-dextension_dir=' . $extensionDir; + foreach ($extensions as $extension) { + $cmd[] = '-dextension=' . $extension; + } + } + + foreach ($iniEntries as $iniEntryName => $iniEntryValue) { + $cmd[] = '-d' . $iniEntryName . '=' . $iniEntryValue; + } + if (getenv('TEST_FPM_RUN_AS_ROOT')) { $cmd[] = '--allow-to-run-as-root'; } @@ -1383,13 +1413,54 @@ class Tester /** * Expect log pattern in logs. * - * @param string $pattern Log pattern + * @param string $pattern Log pattern + * @param bool $checkAllLogs Whether to also check past logs. + * @param int|null $timeoutSeconds Timeout in seconds for reading of all messages. + * @param int|null $timeoutMicroseconds Additional timeout in microseconds for reading of all messages. * * @throws \Exception */ - public function expectLogPattern(string $pattern) - { - $this->logTool->expectPattern($pattern); + public function expectLogPattern( + string $pattern, + bool $checkAllLogs = false, + int $timeoutSeconds = null, + int $timeoutMicroseconds = null, + ) { + $this->logTool->expectPattern( + $pattern, + false, + $checkAllLogs, + $timeoutSeconds, + $timeoutMicroseconds + ); + } + + /** + * Expect no such log pattern in logs. + * + * @param string $pattern Log pattern + * @param bool $checkAllLogs Whether to also check past logs. + * @param int|null $timeoutSeconds Timeout in seconds for reading of all messages. + * @param int|null $timeoutMicroseconds Additional timeout in microseconds for reading of all messages. + * + * @throws \Exception + */ + public function expectNoLogPattern( + string $pattern, + bool $checkAllLogs = true, + int $timeoutSeconds = null, + int $timeoutMicroseconds = null, + ) { + if (is_null($timeoutSeconds) && is_null($timeoutMicroseconds)) { + $timeoutMicroseconds = 10; + } + $this->logTool->expectPattern( + $pattern, + true, + $checkAllLogs, + $timeoutSeconds, + $timeoutMicroseconds + ); } /** @@ -1443,11 +1514,15 @@ class Tester /** * Expect log entry. * - * @param string $type The log type - * @param string $message The expected message - * @param string|null $pool The pool for pool prefixed log entry - * @param int $count The number of items - * @param bool $checkAllLogs Whether to also check past logs. + * @param string $type The log type. + * @param string $message The expected message. + * @param string|null $pool The pool for pool prefixed log entry. + * @param int $count The number of items. + * @param bool $checkAllLogs Whether to also check past logs. + * @param bool $invert Whether the log entry is not expected rather than expected. + * @param int|null $timeoutSeconds Timeout in seconds for reading of all messages. + * @param int|null $timeoutMicroseconds Additional timeout in microseconds for reading of all messages. + * @param string $ignoreErrorFor Ignore error for supplied string in the message. * * @return bool * @throws \Exception @@ -1457,10 +1532,25 @@ class Tester string $message, string $pool = null, int $count = 1, - bool $checkAllLogs = false + bool $checkAllLogs = false, + bool $invert = false, + int $timeoutSeconds = null, + int $timeoutMicroseconds = null, + string $ignoreErrorFor = LogTool::DEBUG ): bool { for ($i = 0; $i < $count; $i++) { - if ( ! $this->logTool->expectEntry($type, $message, $pool, checkAllLogs: $checkAllLogs)) { + $result = $this->logTool->expectEntry( + $type, + $message, + $pool, + $ignoreErrorFor, + $checkAllLogs, + $invert, + $timeoutSeconds, + $timeoutMicroseconds, + ); + + if ( ! $result) { return false; } } @@ -1471,10 +1561,13 @@ class Tester /** * Expect a log debug message. * - * @param string $message - * @param string|null $pool - * @param int $count - * @param bool $checkAllLogs Whether to also check past logs. + * @param string $message The expected message. + * @param string|null $pool The pool for pool prefixed log entry. + * @param int $count The number of items. + * @param bool $checkAllLogs Whether to also check past logs. + * @param bool $invert Whether the log entry is not expected rather than expected. + * @param int|null $timeoutSeconds Timeout in seconds for reading of all messages. + * @param int|null $timeoutMicroseconds Additional timeout in microseconds for reading of all messages. * * @return bool * @throws \Exception @@ -1483,18 +1576,34 @@ class Tester string $message, string $pool = null, int $count = 1, - bool $checkAllLogs = false + bool $checkAllLogs = false, + bool $invert = false, + int $timeoutSeconds = null, + int $timeoutMicroseconds = null ): bool { - return $this->expectLogEntry(LogTool::DEBUG, $message, $pool, $count, $checkAllLogs); + return $this->expectLogEntry( + LogTool::DEBUG, + $message, + $pool, + $count, + $checkAllLogs, + $invert, + $timeoutSeconds, + $timeoutMicroseconds, + LogTool::ERROR + ); } /** * Expect a log notice. * - * @param string $message - * @param string|null $pool - * @param int $count - * @param bool $checkAllLogs Whether to also check past logs. + * @param string $message The expected message. + * @param string|null $pool The pool for pool prefixed log entry. + * @param int $count The number of items. + * @param bool $checkAllLogs Whether to also check past logs. + * @param bool $invert Whether the log entry is not expected rather than expected. + * @param int|null $timeoutSeconds Timeout in seconds for reading of all messages. + * @param int|null $timeoutMicroseconds Additional timeout in microseconds for reading of all messages. * * @return bool * @throws \Exception @@ -1503,18 +1612,33 @@ class Tester string $message, string $pool = null, int $count = 1, - bool $checkAllLogs = false + bool $checkAllLogs = false, + bool $invert = false, + int $timeoutSeconds = null, + int $timeoutMicroseconds = null ): bool { - return $this->expectLogEntry(LogTool::NOTICE, $message, $pool, $count, $checkAllLogs); + return $this->expectLogEntry( + LogTool::NOTICE, + $message, + $pool, + $count, + $checkAllLogs, + $invert, + $timeoutSeconds, + $timeoutMicroseconds + ); } /** * Expect a log warning. * - * @param string $message - * @param string|null $pool - * @param int $count - * @param bool $checkAllLogs Whether to also check past logs. + * @param string $message The expected message. + * @param string|null $pool The pool for pool prefixed log entry. + * @param int $count The number of items. + * @param bool $checkAllLogs Whether to also check past logs. + * @param bool $invert Whether the log entry is not expected rather than expected. + * @param int|null $timeoutSeconds Timeout in seconds for reading of all messages. + * @param int|null $timeoutMicroseconds Additional timeout in microseconds for reading of all messages. * * @return bool * @throws \Exception @@ -1523,18 +1647,33 @@ class Tester string $message, string $pool = null, int $count = 1, - bool $checkAllLogs = false + bool $checkAllLogs = false, + bool $invert = false, + int $timeoutSeconds = null, + int $timeoutMicroseconds = null ): bool { - return $this->expectLogEntry(LogTool::WARNING, $message, $pool, $count, $checkAllLogs); + return $this->expectLogEntry( + LogTool::WARNING, + $message, + $pool, + $count, + $checkAllLogs, + $invert, + $timeoutSeconds, + $timeoutMicroseconds + ); } /** * Expect a log error. * - * @param string $message - * @param string|null $pool - * @param int $count - * @param bool $checkAllLogs Whether to also check past logs. + * @param string $message The expected message. + * @param string|null $pool The pool for pool prefixed log entry. + * @param int $count The number of items. + * @param bool $checkAllLogs Whether to also check past logs. + * @param bool $invert Whether the log entry is not expected rather than expected. + * @param int|null $timeoutSeconds Timeout in seconds for reading of all messages. + * @param int|null $timeoutMicroseconds Additional timeout in microseconds for reading of all messages. * * @return bool * @throws \Exception @@ -1543,18 +1682,33 @@ class Tester string $message, string $pool = null, int $count = 1, - bool $checkAllLogs = false + bool $checkAllLogs = false, + bool $invert = false, + int $timeoutSeconds = null, + int $timeoutMicroseconds = null ): bool { - return $this->expectLogEntry(LogTool::ERROR, $message, $pool, $count, $checkAllLogs); + return $this->expectLogEntry( + LogTool::ERROR, + $message, + $pool, + $count, + $checkAllLogs, + $invert, + $timeoutSeconds, + $timeoutMicroseconds + ); } /** * Expect a log alert. * - * @param string $message - * @param string|null $pool - * @param int $count - * @param bool $checkAllLogs Whether to also check past logs. + * @param string $message The expected message. + * @param string|null $pool The pool for pool prefixed log entry. + * @param int $count The number of items. + * @param bool $checkAllLogs Whether to also check past logs. + * @param bool $invert Whether the log entry is not expected rather than expected. + * @param int|null $timeoutSeconds Timeout in seconds for reading of all messages. + * @param int|null $timeoutMicroseconds Additional timeout in microseconds for reading of all messages. * * @return bool * @throws \Exception @@ -1563,9 +1717,21 @@ class Tester string $message, string $pool = null, int $count = 1, - bool $checkAllLogs = false + bool $checkAllLogs = false, + bool $invert = false, + int $timeoutSeconds = null, + int $timeoutMicroseconds = null ): bool { - return $this->expectLogEntry(LogTool::ALERT, $message, $pool, $count, $checkAllLogs); + return $this->expectLogEntry( + LogTool::ALERT, + $message, + $pool, + $count, + $checkAllLogs, + $invert, + $timeoutSeconds, + $timeoutMicroseconds + ); } /** diff --git a/sapi/litespeed/lsapi_main.c b/sapi/litespeed/lsapi_main.c index b069f6d355b81..79fae63507c16 100644 --- a/sapi/litespeed/lsapi_main.c +++ b/sapi/litespeed/lsapi_main.c @@ -537,9 +537,9 @@ static void log_message (const char *fmt, ...) #define DEBUG_MESSAGE(fmt, ...) #endif -static int lsapi_activate_user_ini(); +static int lsapi_activate_user_ini(void); -static int sapi_lsapi_activate() +static int sapi_lsapi_activate(void) { char *path, *server_name; size_t path_len, server_name_len; @@ -677,10 +677,9 @@ static int do_clean_shutdown = 1; static int clean_onexit = 1; -static void lsapi_clean_shutdown() +static void lsapi_clean_shutdown(void) { struct sigaction act; - int sa_rc; struct itimerval tmv; #if PHP_MAJOR_VERSION >= 7 zend_string * key; @@ -689,15 +688,14 @@ static void lsapi_clean_shutdown() sigemptyset(&act.sa_mask); act.sa_flags = 0; act.sa_handler = lsapi_sigsegv; - sa_rc = sigaction(SIGINT, &act, NULL); - sa_rc = sigaction(SIGQUIT, &act, NULL); - sa_rc = sigaction(SIGILL, &act, NULL); - sa_rc = sigaction(SIGABRT, &act, NULL); - sa_rc = sigaction(SIGBUS, &act, NULL); - sa_rc = sigaction(SIGSEGV, &act, NULL); - sa_rc = sigaction(SIGTERM, &act, NULL); - - sa_rc = sigaction(SIGPROF, &act, NULL); + (void)sigaction(SIGINT, &act, NULL); + (void)sigaction(SIGQUIT, &act, NULL); + (void)sigaction(SIGILL, &act, NULL); + (void)sigaction(SIGABRT, &act, NULL); + (void)sigaction(SIGBUS, &act, NULL); + (void)sigaction(SIGSEGV, &act, NULL); + (void)sigaction(SIGTERM, &act, NULL); + (void)sigaction(SIGPROF, &act, NULL); memset(&tmv, 0, sizeof(struct itimerval)); tmv.it_value.tv_sec = 0; tmv.it_value.tv_usec = 100000; @@ -738,11 +736,9 @@ static void lsapi_atexit(void) } } - static int lsapi_module_main(int show_source) { struct sigaction act; - int sa_rc; if (php_request_startup() == FAILURE ) { return -1; } @@ -751,13 +747,13 @@ static int lsapi_module_main(int show_source) sigemptyset(&act.sa_mask); act.sa_flags = SA_NODEFER; act.sa_handler = lsapi_sigterm; - sa_rc = sigaction( SIGINT, &act, NULL); - sa_rc = sigaction( SIGQUIT, &act, NULL); - sa_rc = sigaction( SIGILL, &act, NULL); - sa_rc = sigaction( SIGABRT, &act, NULL); - sa_rc = sigaction( SIGBUS, &act, NULL); - sa_rc = sigaction( SIGSEGV, &act, NULL); - sa_rc = sigaction( SIGTERM, &act, NULL); + (void)sigaction( SIGINT, &act, NULL); + (void)sigaction( SIGQUIT, &act, NULL); + (void)sigaction( SIGILL, &act, NULL); + (void)sigaction( SIGABRT, &act, NULL); + (void)sigaction( SIGBUS, &act, NULL); + (void)sigaction( SIGSEGV, &act, NULL); + (void)sigaction( SIGTERM, &act, NULL); clean_onexit = 0; } @@ -834,7 +830,7 @@ static void user_config_cache_entry_dtor(zval *el) free(entry); } -static void user_config_cache_init() +static void user_config_cache_init(void) { zend_hash_init(&user_config_cache, 0, NULL, user_config_cache_entry_dtor, 1); } @@ -1101,7 +1097,7 @@ static int lsapi_activate_user_ini( void ) } -static void override_ini() +static void override_ini(void) { LSAPI_ForeachSpecialEnv( alter_ini, NULL ); diff --git a/sapi/litespeed/lsapilib.c b/sapi/litespeed/lsapilib.c index 2208bbd47b23b..055677c7b857a 100644 --- a/sapi/litespeed/lsapilib.c +++ b/sapi/litespeed/lsapilib.c @@ -441,9 +441,10 @@ static void lsapi_close_connection(LSAPI_Request *pReq) lsapi_close(pReq->m_fd); pReq->m_fd = -1; if (s_busy_workers) - __sync_fetch_and_sub(s_busy_workers, 1); + __atomic_fetch_sub(s_busy_workers, 1, __ATOMIC_SEQ_CST); if (s_worker_status) - __sync_lock_test_and_set(&s_worker_status->m_state, LSAPI_STATE_IDLE); + __atomic_store_n(&s_worker_status->m_state, LSAPI_STATE_IDLE, + __ATOMIC_SEQ_CST); } @@ -920,6 +921,7 @@ static int LSAPI_perror_r( LSAPI_Request * pReq, const char * pErr1, const char } +#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__gnu_linux__) static int lsapi_lve_error( LSAPI_Request * pReq ) { static const char * headers[] = @@ -943,10 +945,8 @@ static int lsapi_lve_error( LSAPI_Request * pReq ) return 0; } - static int lsapi_enterLVE( LSAPI_Request * pReq, uid_t uid ) { -#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__gnu_linux__) if ( s_lve && uid ) //root user should not do that { uint32_t cookie; @@ -960,16 +960,13 @@ static int lsapi_enterLVE( LSAPI_Request * pReq, uid_t uid ) return -1; } } -#endif return 0; } - static int lsapi_jailLVE( LSAPI_Request * pReq, uid_t uid, struct passwd * pw ) { int ret = 0; -#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__gnu_linux__) char error_msg[1024] = ""; ret = (*fp_lve_jail)( pw, error_msg ); if ( ret < 0 ) @@ -979,12 +976,10 @@ static int lsapi_jailLVE( LSAPI_Request * pReq, uid_t uid, struct passwd * pw ) LSAPI_perror_r( pReq, "LSAPI: jail() failure.", NULL ); return -1; } -#endif return ret; } -#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__gnu_linux__) static int lsapi_initLVE(void) { const char * pEnv; @@ -1364,30 +1359,6 @@ static inline int lsapi_notify_pid( int fd ) return 0; } - -static char s_conn_key_packet[16]; -static inline int init_conn_key( int fd ) -{ - struct lsapi_packet_header * pHeader = (struct lsapi_packet_header *)s_conn_key_packet; - struct timeval tv; - int i; - gettimeofday( &tv, NULL ); - srand( (tv.tv_sec % 0x1000 + tv.tv_usec) ^ rand() ); - for( i = 8; i < 16; ++i ) - { - s_conn_key_packet[i]=(int) (256.0*rand()/(RAND_MAX+1.0)); - } - lsapi_buildPacketHeader( pHeader, LSAPI_REQ_RECEIVED, - 8 + LSAPI_PACKET_HEADER_LEN ); - if ( write( fd, s_conn_key_packet, LSAPI_PACKET_HEADER_LEN+8 ) - < LSAPI_PACKET_HEADER_LEN+8 ) - return -1; - return 0; - - -} - - static int readReq( LSAPI_Request * pReq ) { int len; @@ -1587,10 +1558,10 @@ int LSAPI_Accept_r( LSAPI_Request * pReq ) else { if (s_worker_status) - __sync_lock_test_and_set(&s_worker_status->m_state, - LSAPI_STATE_CONNECTED); + __atomic_store_n(&s_worker_status->m_state, + LSAPI_STATE_CONNECTED, __ATOMIC_SEQ_CST); if (s_busy_workers) - __sync_fetch_and_add(s_busy_workers, 1); + __atomic_fetch_add(s_busy_workers, 1, __ATOMIC_SEQ_CST); lsapi_set_nblock( pReq->m_fd , 0 ); if (((struct sockaddr *)&achPeer)->sa_family == AF_INET ) { @@ -2918,9 +2889,9 @@ void LSAPI_reset_server_state( void ) ++pStatus; } if (s_busy_workers) - __sync_lock_release(s_busy_workers); + __atomic_store_n(s_busy_workers, 0, __ATOMIC_SEQ_CST); if (s_accepting_workers) - __sync_lock_release(s_accepting_workers); + __atomic_store_n(s_accepting_workers, 0, __ATOMIC_SEQ_CST); } @@ -2928,6 +2899,8 @@ void LSAPI_reset_server_state( void ) static void lsapi_sigchild( int signal ) { int status, pid; + char expect_connected = LSAPI_STATE_CONNECTED; + char expect_accepting = LSAPI_STATE_ACCEPTING; lsapi_child_status * child_status; if (g_prefork_server == NULL) return; @@ -2964,19 +2937,23 @@ static void lsapi_sigchild( int signal ) child_status = find_child_status( pid ); if ( child_status ) { - if (__sync_bool_compare_and_swap(&child_status->m_state, - LSAPI_STATE_CONNECTED, - LSAPI_STATE_IDLE)) + if (__atomic_compare_exchange_n(&child_status->m_state, + &expect_connected, + LSAPI_STATE_IDLE, 1, + __ATOMIC_SEQ_CST, + __ATOMIC_SEQ_CST)) { if (s_busy_workers) - __sync_fetch_and_sub(s_busy_workers, 1); + __atomic_fetch_sub(s_busy_workers, 1, __ATOMIC_SEQ_CST); } - else if (__sync_bool_compare_and_swap(&child_status->m_state, - LSAPI_STATE_ACCEPTING, - LSAPI_STATE_IDLE)) + else if (__atomic_compare_exchange_n(&child_status->m_state, + &expect_accepting, + LSAPI_STATE_IDLE, 1, + __ATOMIC_SEQ_CST, + __ATOMIC_SEQ_CST)) { if (s_accepting_workers) - __sync_fetch_and_sub(s_accepting_workers, 1); + __atomic_fetch_sub(s_accepting_workers, 1, __ATOMIC_SEQ_CST); } child_status->m_pid = 0; --g_prefork_server->m_iCurChildren; @@ -3152,11 +3129,11 @@ static void lsapi_check_child_status( long tmCur ) //} -void set_skip_write() +void set_skip_write(void) { s_skip_write = 1; } -int is_enough_free_mem() +int is_enough_free_mem(void) { #if defined(linux) || defined(__linux) || defined(__linux__) || defined(__gnu_linux__) //minimum 1GB or 10% available free memory @@ -3249,7 +3226,7 @@ static int lsapi_prefork_server_accept( lsapi_prefork_server * pServer, { int accepting = 0; if (s_accepting_workers) - accepting = __sync_add_and_fetch(s_accepting_workers, 0); + accepting = __atomic_load_n(s_accepting_workers, __ATOMIC_SEQ_CST); if (pServer->m_iCurChildren > 0 && accepting > 0) @@ -3315,10 +3292,10 @@ static int lsapi_prefork_server_accept( lsapi_prefork_server * pServer, if (pthread_atfork_func) (*pthread_atfork_func)(NULL, NULL, set_skip_write); - __sync_lock_test_and_set(&s_worker_status->m_state, - LSAPI_STATE_CONNECTED); + __atomic_store_n(&s_worker_status->m_state, + LSAPI_STATE_CONNECTED, __ATOMIC_SEQ_CST); if (s_busy_workers) - __sync_add_and_fetch(s_busy_workers, 1); + __atomic_add_fetch(s_busy_workers, 1, __ATOMIC_SEQ_CST); lsapi_set_nblock( pReq->m_fd, 0 ); //keep it open if busy_count is used. if (!s_keep_listener && s_busy_workers @@ -3390,7 +3367,7 @@ int LSAPI_Postfork_Child(LSAPI_Request * pReq) { int max_children = g_prefork_server->m_iMaxChildren; s_pid = getpid(); - __sync_lock_test_and_set(&pReq->child_status->m_pid, s_pid); + __atomic_store_n(&pReq->child_status->m_pid, s_pid, __ATOMIC_SEQ_CST); s_worker_status = pReq->child_status; setsid(); @@ -3402,10 +3379,10 @@ int LSAPI_Postfork_Child(LSAPI_Request * pReq) if (pthread_atfork_func) (*pthread_atfork_func)(NULL, NULL, set_skip_write); - __sync_lock_test_and_set(&s_worker_status->m_state, - LSAPI_STATE_CONNECTED); + __atomic_store_n(&s_worker_status->m_state, + LSAPI_STATE_CONNECTED, __ATOMIC_SEQ_CST); if (s_busy_workers) - __sync_add_and_fetch(s_busy_workers, 1); + __atomic_add_fetch(s_busy_workers, 1, __ATOMIC_SEQ_CST); lsapi_set_nblock( pReq->m_fd, 0 ); //keep it open if busy_count is used. if (!s_keep_listener && s_busy_workers @@ -3522,7 +3499,7 @@ int LSAPI_Accept_Before_Fork(LSAPI_Request * pReq) { int accepting = 0; if (s_accepting_workers) - accepting = __sync_add_and_fetch(s_accepting_workers, 0); + accepting = __atomic_load_n(s_accepting_workers, __ATOMIC_SEQ_CST); if (pServer->m_iCurChildren > 0 && accepting > 0) @@ -3607,7 +3584,7 @@ int LSAPI_Prefork_Accept_r( LSAPI_Request * pReq ) } else if (s_req_processed > 0 && s_max_busy_workers > 0 && s_busy_workers) { - ret = __sync_fetch_and_add(s_busy_workers, 0); + ret = __atomic_load_n(s_busy_workers, __ATOMIC_SEQ_CST); if (ret >= s_max_busy_workers) { send_conn_close_notification(pReq->m_fd); @@ -3651,19 +3628,19 @@ int LSAPI_Prefork_Accept_r( LSAPI_Request * pReq ) if (fd == pReq->m_fdListen) { if (s_worker_status) - __sync_lock_test_and_set(&s_worker_status->m_state, - LSAPI_STATE_ACCEPTING); + __atomic_store_n(&s_worker_status->m_state, + LSAPI_STATE_ACCEPTING, __ATOMIC_SEQ_CST); if (s_accepting_workers) - __sync_fetch_and_add(s_accepting_workers, 1); + __atomic_fetch_add(s_accepting_workers, 1, __ATOMIC_SEQ_CST); } ret = (*g_fnSelect)(fd+1, &readfds, NULL, NULL, &timeout); if (fd == pReq->m_fdListen) { if (s_accepting_workers) - __sync_fetch_and_sub(s_accepting_workers, 1); + __atomic_fetch_sub(s_accepting_workers, 1, __ATOMIC_SEQ_CST); if (s_worker_status) - __sync_lock_test_and_set(&s_worker_status->m_state, - LSAPI_STATE_IDLE); + __atomic_store_n(&s_worker_status->m_state, + LSAPI_STATE_IDLE, __ATOMIC_SEQ_CST); } if ( ret == 0 ) @@ -3711,10 +3688,11 @@ int LSAPI_Prefork_Accept_r( LSAPI_Request * pReq ) if ( pReq->m_fd != -1 ) { if (s_worker_status) - __sync_lock_test_and_set(&s_worker_status->m_state, - LSAPI_STATE_CONNECTED); + __atomic_store_n(&s_worker_status->m_state, + LSAPI_STATE_CONNECTED, + __ATOMIC_SEQ_CST); if (s_busy_workers) - __sync_fetch_and_add(s_busy_workers, 1); + __atomic_fetch_add(s_busy_workers, 1, __ATOMIC_SEQ_CST); fd = pReq->m_fd; @@ -3823,7 +3801,7 @@ void LSAPI_No_Check_ppid(void) } -int LSAPI_Get_ppid() +int LSAPI_Get_ppid(void) { return(s_ppid); } @@ -4385,5 +4363,5 @@ int LSAPI_Set_Restored_Parent_Pid(int pid) int LSAPI_Inc_Req_Processed(int cnt) { - return __sync_add_and_fetch(s_global_counter, cnt); + return __atomic_add_fetch(s_global_counter, cnt, __ATOMIC_SEQ_CST); } diff --git a/sapi/litespeed/lscriu.c b/sapi/litespeed/lscriu.c index 94d13e7e26f47..2854fefe596e5 100644 --- a/sapi/litespeed/lscriu.c +++ b/sapi/litespeed/lscriu.c @@ -95,8 +95,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. static int s_initial_start_reqs = 0; static int s_requests_count = 0; static int s_restored = 0; -static int (*s_lscapi_dump_me)() = NULL; -static int (*s_lscapi_prepare_me)() = NULL; +static int (*s_lscapi_dump_me)(void) = NULL; +static int (*s_lscapi_prepare_me)(void) = NULL; static int s_native = 0; static int s_tried_checkpoint = 0; static int s_criu_debug = 0; @@ -118,7 +118,7 @@ typedef void (*sighandler_t)(int); void lsapi_perror( const char * pMessage, int err_no ); void LSAPI_reset_server_state( void ); -int LSAPI_Get_ppid(); +int LSAPI_Get_ppid(void); #ifdef LSAPILIB_DEBUG_CRIU #define lscriu_dbg(...) \ @@ -541,7 +541,7 @@ static void LSCRIU_try_checkpoint(int *forked_pid) } -static int init_native_env() +static int init_native_env(void) { char *pchFd; pchFd = getenv("LSAPI_CRIU_SYNC_FD"); diff --git a/tests/lang/bug44827.phpt b/tests/lang/bug44827.phpt index 9220439c884bd..997a1a633f853 100644 --- a/tests/lang/bug44827.phpt +++ b/tests/lang/bug44827.phpt @@ -21,5 +21,4 @@ try { ?> --EXPECTF-- define(): Argument #1 ($constant_name) cannot be a class constant - -Fatal error: Class "" not found in %s on line %d +Class "" not found diff --git a/win32/build/mkdist.php b/win32/build/mkdist.php index 8ae3926b652b1..58453b062ddd0 100644 --- a/win32/build/mkdist.php +++ b/win32/build/mkdist.php @@ -357,6 +357,22 @@ function extract_file_from_tarball($pkg, $filename, $dest_dir) /* {{{ */ } } +$OPENSSL_DLLS = $php_build_dir . "/lib/ossl-modules/*.dll"; +$fls = glob($OPENSSL_DLLS); +if (!empty($fls)) { + $openssl_dest_dir = "$dist_dir/extras/ssl"; + if (!file_exists($openssl_dest_dir) || !is_dir($openssl_dest_dir)) { + if (!mkdir($openssl_dest_dir, 0777, true)) { + echo "WARNING: couldn't create '$openssl_dest_dir' for OpenSSL providers "; + } + } + foreach ($fls as $fl) { + if (!copy($fl, "$openssl_dest_dir/" . basename($fl))) { + echo "WARNING: couldn't copy $fl into the $openssl_dest_dir"; + } + } +} + $SASL_DLLS = $php_build_dir . "/bin/sasl2/sasl*.dll"; $fls = glob($SASL_DLLS); if (!empty($fls)) { diff --git a/win32/ftok.c b/win32/ftok.c index 3a545375fa0a6..76e47ec48e1aa 100644 --- a/win32/ftok.c +++ b/win32/ftok.c @@ -51,7 +51,7 @@ ftok(const char *pathname, int proj_id) return (key_t)-1; } - ret = (key_t) ((proj_id & 0xff) << 24 | (st.st_dev & 0xff) << 16 | ((bhfi.nFileIndexLow | (__int64)bhfi.nFileIndexHigh << 32) & 0xffff)); + ret = (key_t) ((proj_id & 0xff) << 24 | (st.st_dev & 0xff) << 16 | (bhfi.nFileIndexLow & 0xffff)); CloseHandle(fh); PHP_WIN32_IOUTIL_CLEANUP_W()