Fix ordering of Windows timezones
The list is meant to be sorted in increasing order, requiring "<anything> (Mexico)" to appear after "<anything>" but in two out of four cases such pairs were in the wrong order. China sorts after Chatham Island and lexical sorting of numbers doesn't match sorting by numeric value. Assert the expected ordering. (The more important check needs a QBAV::compare(), which isn't constexpr, so we can't static_assert.) Later commits shall use binary chop exploiting this ordering. The assertion failed without the rest of this change. Also improve the comments describing the data tables these searches check and the types of their entries. Some were inaccurate, others merely unclear. Likewise, comment the sorting expectations in the python code that generates the tables. Change-Id: I640a3cca8f820c5fd5939a2fe5feb96b04407335 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
007d207ed9
commit
4b2eb26bf9
@ -20,6 +20,23 @@ QT_BEGIN_NAMESPACE
|
||||
|
||||
using namespace QtMiscUtils;
|
||||
|
||||
// For use with std::is_sorted() in assertions:
|
||||
[[maybe_unused]]
|
||||
constexpr bool earlierZoneData(const QZoneData &less, const QZoneData &more) noexcept
|
||||
{
|
||||
return less.windowsIdKey < more.windowsIdKey
|
||||
|| (less.windowsIdKey == more.windowsIdKey && less.territory < more.territory);
|
||||
}
|
||||
|
||||
[[maybe_unused]]
|
||||
static bool earlierWinData(const QWindowsData &less, const QWindowsData &more) noexcept
|
||||
{
|
||||
// Actually only tested in the negative, to check more < less never happens,
|
||||
// so should be true if more < less in either part; hence || not && combines.
|
||||
return less.windowsIdKey < more.windowsIdKey
|
||||
|| less.windowsId().compare(more.windowsId(), Qt::CaseInsensitive) < 0;
|
||||
}
|
||||
|
||||
/*
|
||||
Static utilities for looking up Windows ID tables
|
||||
*/
|
||||
@ -54,6 +71,12 @@ static bool atLowerUtcOffset(const QUtcData &entry, qint32 offsetSeconds)
|
||||
|
||||
QTimeZonePrivate::QTimeZonePrivate()
|
||||
{
|
||||
// If std::is_sorted() were constexpr, the first could be a static_assert().
|
||||
// From C++20, we should be able to rework it in terms of std::all_of().
|
||||
Q_ASSERT(std::is_sorted(std::begin(zoneDataTable), std::end(zoneDataTable),
|
||||
earlierZoneData));
|
||||
Q_ASSERT(std::is_sorted(std::begin(windowsDataTable), std::end(windowsDataTable),
|
||||
earlierWinData));
|
||||
}
|
||||
|
||||
QTimeZonePrivate::QTimeZonePrivate(const QTimeZonePrivate &other)
|
||||
|
@ -24,35 +24,43 @@
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
/*
|
||||
Windows Zone ID support, included in default base class build so can be used on all platforms,
|
||||
e.g. an app running on Linux may need to communicate with a Windows Outlook server. These
|
||||
tables can also be used to look-up Region Codes and UTC Offsets on platforms that don't directly
|
||||
support them., e.g. Mac does not support availableTimeZones() filtering by region or offset.
|
||||
Recognized UTC-offset zones and CLDR-derived data on Windows IDs.
|
||||
|
||||
Another data table is provided for generic UTC+00:00 format time zones to be used as a
|
||||
fall-back if no system time zones are available (QT_NO_SYSTEMLOCALE is set) or for QDateTimes
|
||||
with a QT:Spec of OffsetFromUTC
|
||||
The UTC-offset zone table is provided for generic UTC±HH:mm format time
|
||||
zones. The UTC backend can support arbitrary offsets in seconds, but only
|
||||
advertises a limited repertoire of offsets as "available" in the normal
|
||||
sense.
|
||||
|
||||
These tables are automatically adapted from the CLDR supplemental/windowsZones.xml data file
|
||||
using a script in qtbase/util/locale_database. Please do not edit this data directly. In the
|
||||
future if ICU is made a hard dependency then the ICU resource can be used directly and this
|
||||
table removed
|
||||
Windows Zone ID support is included in the default base class, QTZP, so can
|
||||
be used on all platforms, since an app running on Linux may need to
|
||||
communicate with a Windows Outlook server. These tables can also be used to
|
||||
look up Region Codes and UTC Offsets on platforms whose backends don't
|
||||
directly support them. For example, Darwin does not support
|
||||
availableTimeZones() filtering by region or offset. This table is
|
||||
auto-generated from the CLDR supplemental/windowsZones.xml data file.
|
||||
|
||||
Please do not edit this data directly. See the generated section for details
|
||||
of its last update and how to update it.
|
||||
*/
|
||||
|
||||
struct QZoneData
|
||||
{
|
||||
quint16 windowsIdKey; // Windows ID Key
|
||||
quint16 territory; // Territory of IANA ID's, AnyTerritory means No Territory
|
||||
quint16 ianaIdIndex; // All IANA ID's for the Windows ID and Country, space separated
|
||||
// Keys (table is sorted in Windows ID, then on territory enum value):
|
||||
quint16 windowsIdKey; // Windows ID sequence number
|
||||
quint16 territory; // QLocale::Territory, AnyTerritory means No Territory
|
||||
// Values for this Windows zone and territory:
|
||||
quint16 ianaIdIndex; // Index in ianaIdData of space-joined IANA IDs
|
||||
constexpr QLatin1StringView id() const; // Space-joined list of IANA IDs
|
||||
constexpr auto ids() const { return id().tokenize(u' '); }
|
||||
constexpr auto ids() const { return id().tokenize(u' '); } // Iterate IANA IDs
|
||||
};
|
||||
|
||||
struct QWindowsData
|
||||
{
|
||||
quint16 windowsIdKey; // Windows ID Key
|
||||
quint16 windowsIdIndex; // Windows ID Literal
|
||||
quint16 ianaIdIndex; // IANA IDs for the Windows ID
|
||||
// Table is sorted on key and this puts the windowsId()s in ascending order.
|
||||
quint16 windowsIdKey; // Windows ID sequence number
|
||||
quint16 windowsIdIndex; // Index of Windows ID in windowsIdData
|
||||
// Values for this Windows zone:
|
||||
quint16 ianaIdIndex; // Index in ianaIdData of space-joined IANA IDs
|
||||
qint32 offsetFromUtc; // Standard Time Offset from UTC, used for quick look-ups
|
||||
constexpr QByteArrayView windowsId() const;
|
||||
constexpr QByteArrayView ianaId() const; // Space-joined list of IANA IDs
|
||||
@ -60,8 +68,8 @@ struct QWindowsData
|
||||
|
||||
struct QUtcData
|
||||
{
|
||||
quint16 ianaIdIndex; // IANA IDs
|
||||
qint32 offsetFromUtc; // Offset form UTC is seconds
|
||||
quint16 ianaIdIndex; // Index in ianaIdData of space-joined IANA IDs
|
||||
qint32 offsetFromUtc; // Offset form UTC in seconds
|
||||
constexpr QByteArrayView id() const; // Space-joined list of IANA IDs
|
||||
};
|
||||
|
||||
@ -89,7 +97,7 @@ struct QUtcData
|
||||
// GENERATED PART STARTS HERE
|
||||
|
||||
/*
|
||||
This part of the file was generated on 2023-10-30 from the
|
||||
This part of the file was generated on 2024-01-29 from the
|
||||
Common Locale Data Repository v43 file supplemental/windowsZones.xml
|
||||
|
||||
http://www.unicode.org/cldr/
|
||||
@ -166,15 +174,15 @@ static constexpr QZoneData zoneDataTable[] = {
|
||||
{ 29, 166, 1445 }, // Central Pacific Standard Time / New Caledonia
|
||||
{ 29, 214, 1460 }, // Central Pacific Standard Time / Solomon Islands
|
||||
{ 29, 252, 1480 }, // Central Pacific Standard Time / Vanuatu
|
||||
{ 30, 152, 1494 }, // Central Standard Time (Mexico) / Mexico
|
||||
{ 31, 0, 1588 }, // Central Standard Time / AnyTerritory
|
||||
{ 31, 41, 1596 }, // Central Standard Time / Canada
|
||||
{ 31, 152, 1671 }, // Central Standard Time / Mexico
|
||||
{ 31, 248, 1705 }, // Central Standard Time / United States
|
||||
{ 32, 50, 1873 }, // China Standard Time / China
|
||||
{ 32, 107, 1887 }, // China Standard Time / Hong Kong
|
||||
{ 32, 139, 1902 }, // China Standard Time / Macao
|
||||
{ 33, 167, 1913 }, // Chatham Islands Standard Time / New Zealand
|
||||
{ 30, 0, 1494 }, // Central Standard Time / AnyTerritory
|
||||
{ 30, 41, 1502 }, // Central Standard Time / Canada
|
||||
{ 30, 152, 1577 }, // Central Standard Time / Mexico
|
||||
{ 30, 248, 1611 }, // Central Standard Time / United States
|
||||
{ 31, 152, 1779 }, // Central Standard Time (Mexico) / Mexico
|
||||
{ 32, 167, 1873 }, // Chatham Islands Standard Time / New Zealand
|
||||
{ 33, 50, 1889 }, // China Standard Time / China
|
||||
{ 33, 107, 1903 }, // China Standard Time / Hong Kong
|
||||
{ 33, 139, 1918 }, // China Standard Time / Macao
|
||||
{ 34, 61, 1929 }, // Cuba Standard Time / Cuba
|
||||
{ 35, 0, 1944 }, // Dateline Standard Time / AnyTerritory
|
||||
{ 36, 0, 1955 }, // E. Africa Standard Time / AnyTerritory
|
||||
@ -262,11 +270,11 @@ static constexpr QZoneData zoneDataTable[] = {
|
||||
{ 68, 250, 3536 }, // Montevideo Standard Time / Uruguay
|
||||
{ 69, 159, 3555 }, // Morocco Standard Time / Morocco
|
||||
{ 69, 257, 3573 }, // Morocco Standard Time / Western Sahara
|
||||
{ 70, 152, 3589 }, // Mountain Standard Time (Mexico) / Mexico
|
||||
{ 71, 0, 3606 }, // Mountain Standard Time / AnyTerritory
|
||||
{ 71, 41, 3614 }, // Mountain Standard Time / Canada
|
||||
{ 71, 152, 3688 }, // Mountain Standard Time / Mexico
|
||||
{ 71, 248, 3710 }, // Mountain Standard Time / United States
|
||||
{ 70, 0, 3589 }, // Mountain Standard Time / AnyTerritory
|
||||
{ 70, 41, 3597 }, // Mountain Standard Time / Canada
|
||||
{ 70, 152, 3671 }, // Mountain Standard Time / Mexico
|
||||
{ 70, 248, 3693 }, // Mountain Standard Time / United States
|
||||
{ 71, 152, 3722 }, // Mountain Standard Time (Mexico) / Mexico
|
||||
{ 72, 53, 3739 }, // Myanmar Standard Time / Cocos Islands
|
||||
{ 72, 161, 3752 }, // Myanmar Standard Time / Myanmar
|
||||
{ 73, 193, 3765 }, // N. Central Asia Standard Time / Russia
|
||||
@ -292,9 +300,9 @@ static constexpr QZoneData zoneDataTable[] = {
|
||||
{ 89, 65, 4115 }, // Romance Standard Time / Denmark
|
||||
{ 89, 84, 4133 }, // Romance Standard Time / France
|
||||
{ 89, 220, 4146 }, // Romance Standard Time / Spain
|
||||
{ 90, 193, 4173 }, // Russia Time Zone 3 / Russia
|
||||
{ 91, 193, 4187 }, // Russia Time Zone 10 / Russia
|
||||
{ 92, 193, 4206 }, // Russia Time Zone 11 / Russia
|
||||
{ 90, 193, 4173 }, // Russia Time Zone 10 / Russia
|
||||
{ 91, 193, 4192 }, // Russia Time Zone 11 / Russia
|
||||
{ 92, 193, 4219 }, // Russia Time Zone 3 / Russia
|
||||
{ 93, 193, 4233 }, // Russian Standard Time / Russia
|
||||
{ 93, 244, 4260 }, // Russian Standard Time / Ukraine
|
||||
{ 94, 0, 4278 }, // SA Eastern Standard Time / AnyTerritory
|
||||
@ -393,28 +401,28 @@ static constexpr QZoneData zoneDataTable[] = {
|
||||
{ 120, 41, 5993 }, // US Mountain Standard Time / Canada
|
||||
{ 120, 152, 6050 }, // US Mountain Standard Time / Mexico
|
||||
{ 120, 248, 6069 }, // US Mountain Standard Time / United States
|
||||
{ 121, 0, 6085 }, // UTC-11 / AnyTerritory
|
||||
{ 121, 5, 6096 }, // UTC-11 / American Samoa
|
||||
{ 121, 171, 6114 }, // UTC-11 / Niue
|
||||
{ 121, 247, 6127 }, // UTC-11 / United States Outlying Islands
|
||||
{ 122, 0, 6142 }, // UTC-09 / AnyTerritory
|
||||
{ 122, 86, 6152 }, // UTC-09 / French Polynesia
|
||||
{ 123, 0, 6168 }, // UTC-08 / AnyTerritory
|
||||
{ 123, 186, 6178 }, // UTC-08 / Pitcairn
|
||||
{ 124, 0, 6195 }, // UTC-02 / AnyTerritory
|
||||
{ 124, 32, 6205 }, // UTC-02 / Brazil
|
||||
{ 124, 217, 6221 }, // UTC-02 / South Georgia and South Sandwich Islands
|
||||
{ 125, 0, 6244 }, // UTC / AnyTerritory
|
||||
{ 126, 0, 6260 }, // UTC+12 / AnyTerritory
|
||||
{ 126, 125, 6271 }, // UTC+12 / Kiribati
|
||||
{ 126, 147, 6286 }, // UTC+12 / Marshall Islands
|
||||
{ 126, 163, 6319 }, // UTC+12 / Nauru
|
||||
{ 126, 242, 6333 }, // UTC+12 / Tuvalu
|
||||
{ 126, 247, 6350 }, // UTC+12 / United States Outlying Islands
|
||||
{ 126, 256, 6363 }, // UTC+12 / Wallis and Futuna
|
||||
{ 127, 0, 6378 }, // UTC+13 / AnyTerritory
|
||||
{ 127, 125, 6389 }, // UTC+13 / Kiribati
|
||||
{ 127, 234, 6407 }, // UTC+13 / Tokelau
|
||||
{ 121, 0, 6085 }, // UTC / AnyTerritory
|
||||
{ 122, 0, 6101 }, // UTC+12 / AnyTerritory
|
||||
{ 122, 125, 6112 }, // UTC+12 / Kiribati
|
||||
{ 122, 147, 6127 }, // UTC+12 / Marshall Islands
|
||||
{ 122, 163, 6160 }, // UTC+12 / Nauru
|
||||
{ 122, 242, 6174 }, // UTC+12 / Tuvalu
|
||||
{ 122, 247, 6191 }, // UTC+12 / United States Outlying Islands
|
||||
{ 122, 256, 6204 }, // UTC+12 / Wallis and Futuna
|
||||
{ 123, 0, 6219 }, // UTC+13 / AnyTerritory
|
||||
{ 123, 125, 6230 }, // UTC+13 / Kiribati
|
||||
{ 123, 234, 6248 }, // UTC+13 / Tokelau
|
||||
{ 124, 0, 6264 }, // UTC-02 / AnyTerritory
|
||||
{ 124, 32, 6274 }, // UTC-02 / Brazil
|
||||
{ 124, 217, 6290 }, // UTC-02 / South Georgia and South Sandwich Islands
|
||||
{ 125, 0, 6313 }, // UTC-08 / AnyTerritory
|
||||
{ 125, 186, 6323 }, // UTC-08 / Pitcairn
|
||||
{ 126, 0, 6340 }, // UTC-09 / AnyTerritory
|
||||
{ 126, 86, 6350 }, // UTC-09 / French Polynesia
|
||||
{ 127, 0, 6366 }, // UTC-11 / AnyTerritory
|
||||
{ 127, 5, 6377 }, // UTC-11 / American Samoa
|
||||
{ 127, 171, 6395 }, // UTC-11 / Niue
|
||||
{ 127, 247, 6408 }, // UTC-11 / United States Outlying Islands
|
||||
{ 128, 254, 6423 }, // Venezuela Standard Time / Venezuela
|
||||
{ 129, 193, 6439 }, // Vladivostok Standard Time / Russia
|
||||
{ 130, 193, 6470 }, // Volgograd Standard Time / Russia
|
||||
@ -500,10 +508,10 @@ static constexpr QWindowsData windowsDataTable[] = {
|
||||
{ 27, 640, 1245, 3600 }, // Central Europe Standard Time
|
||||
{ 28, 669, 1373, 3600 }, // Central European Standard Time
|
||||
{ 29, 700, 1460, 39600 }, // Central Pacific Standard Time
|
||||
{ 30, 730, 7475,-21600 }, // Central Standard Time (Mexico)
|
||||
{ 31, 761, 7495,-21600 }, // Central Standard Time
|
||||
{ 32, 783, 1873, 28800 }, // China Standard Time
|
||||
{ 33, 803, 1913, 45900 }, // Chatham Islands Standard Time
|
||||
{ 30, 730, 7475,-21600 }, // Central Standard Time
|
||||
{ 31, 752, 7491,-21600 }, // Central Standard Time (Mexico)
|
||||
{ 32, 783, 1873, 45900 }, // Chatham Islands Standard Time
|
||||
{ 33, 813, 1889, 28800 }, // China Standard Time
|
||||
{ 34, 833, 1929,-18000 }, // Cuba Standard Time
|
||||
{ 35, 852, 1944,-43200 }, // Dateline Standard Time
|
||||
{ 36, 875, 2045, 10800 }, // E. Africa Standard Time
|
||||
@ -540,8 +548,8 @@ static constexpr QWindowsData windowsDataTable[] = {
|
||||
{ 67, 1589, 3524, 7200 }, // Middle East Standard Time
|
||||
{ 68, 1615, 3536,-10800 }, // Montevideo Standard Time
|
||||
{ 69, 1640, 3555, 0 }, // Morocco Standard Time
|
||||
{ 70, 1662, 3589,-25200 }, // Mountain Standard Time (Mexico)
|
||||
{ 71, 1694, 7559,-25200 }, // Mountain Standard Time
|
||||
{ 70, 1662, 7559,-25200 }, // Mountain Standard Time
|
||||
{ 71, 1685, 3722,-25200 }, // Mountain Standard Time (Mexico)
|
||||
{ 72, 1717, 3752, 23400 }, // Myanmar Standard Time
|
||||
{ 73, 1739, 3765, 21600 }, // N. Central Asia Standard Time
|
||||
{ 74, 1769, 3782, 3600 }, // Namibia Standard Time
|
||||
@ -560,9 +568,9 @@ static constexpr QWindowsData windowsDataTable[] = {
|
||||
{ 87, 2087, 4067,-14400 }, // Paraguay Standard Time
|
||||
{ 88, 2110, 4084, 18000 }, // Qyzylorda Standard Time
|
||||
{ 89, 2134, 4133, 3600 }, // Romance Standard Time
|
||||
{ 90, 2156, 4173, 14400 }, // Russia Time Zone 3
|
||||
{ 91, 2175, 4187, 39600 }, // Russia Time Zone 10
|
||||
{ 92, 2195, 7607, 43200 }, // Russia Time Zone 11
|
||||
{ 90, 2156, 4173, 39600 }, // Russia Time Zone 10
|
||||
{ 91, 2176, 7607, 43200 }, // Russia Time Zone 11
|
||||
{ 92, 2196, 4219, 14400 }, // Russia Time Zone 3
|
||||
{ 93, 2215, 7622, 10800 }, // Russian Standard Time
|
||||
{ 94, 2237, 4421,-10800 }, // SA Eastern Standard Time
|
||||
{ 95, 2262, 4539,-18000 }, // SA Pacific Standard Time
|
||||
@ -591,13 +599,13 @@ static constexpr QWindowsData windowsDataTable[] = {
|
||||
{ 118, 2796, 7653, 28800 }, // Ulaanbaatar Standard Time
|
||||
{ 119, 2822, 7670,-18000 }, // US Eastern Standard Time
|
||||
{ 120, 2847, 6069,-25200 }, // US Mountain Standard Time
|
||||
{ 121, 2873, 6085,-39600 }, // UTC-11
|
||||
{ 122, 2880, 6142,-32400 }, // UTC-09
|
||||
{ 123, 2887, 6168,-28800 }, // UTC-08
|
||||
{ 124, 2894, 6195, -7200 }, // UTC-02
|
||||
{ 125, 2901, 7691, 0 }, // UTC
|
||||
{ 126, 2905, 6260, 43200 }, // UTC+12
|
||||
{ 127, 2912, 6378, 46800 }, // UTC+13
|
||||
{ 121, 2873, 7691, 0 }, // UTC
|
||||
{ 122, 2877, 6101, 43200 }, // UTC+12
|
||||
{ 123, 2884, 6219, 46800 }, // UTC+13
|
||||
{ 124, 2891, 6264, -7200 }, // UTC-02
|
||||
{ 125, 2898, 6313,-28800 }, // UTC-08
|
||||
{ 126, 2905, 6340,-32400 }, // UTC-09
|
||||
{ 127, 2912, 6366,-39600 }, // UTC-11
|
||||
{ 128, 2919, 6423,-16200 }, // Venezuela Standard Time
|
||||
{ 129, 2943, 7699, 36000 }, // Vladivostok Standard Time
|
||||
{ 130, 2969, 6470, 14400 }, // Volgograd Standard Time
|
||||
@ -701,12 +709,12 @@ static constexpr char windowsIdData[] = {
|
||||
0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x43, 0x65, 0x6e, 0x74,
|
||||
0x72, 0x61, 0x6c, 0x20, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x53, 0x74, 0x61, 0x6e,
|
||||
0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61,
|
||||
0x6c, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x20,
|
||||
0x28, 0x4d, 0x65, 0x78, 0x69, 0x63, 0x6f, 0x29, 0x0, 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c,
|
||||
0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x43,
|
||||
0x68, 0x69, 0x6e, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69,
|
||||
0x6d, 0x65, 0x0, 0x43, 0x68, 0x61, 0x74, 0x68, 0x61, 0x6d, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e,
|
||||
0x64, 0x73, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65,
|
||||
0x6c, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0,
|
||||
0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64,
|
||||
0x20, 0x54, 0x69, 0x6d, 0x65, 0x20, 0x28, 0x4d, 0x65, 0x78, 0x69, 0x63, 0x6f, 0x29, 0x0, 0x43,
|
||||
0x68, 0x61, 0x74, 0x68, 0x61, 0x6d, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x53,
|
||||
0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x43, 0x68, 0x69,
|
||||
0x6e, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65,
|
||||
0x0, 0x43, 0x75, 0x62, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54,
|
||||
0x69, 0x6d, 0x65, 0x0, 0x44, 0x61, 0x74, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x53, 0x74, 0x61,
|
||||
0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x45, 0x2e, 0x20, 0x41, 0x66,
|
||||
@ -760,9 +768,9 @@ static constexpr char windowsIdData[] = {
|
||||
0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x4d, 0x6f, 0x72, 0x6f, 0x63, 0x63, 0x6f, 0x20,
|
||||
0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x4d, 0x6f,
|
||||
0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20,
|
||||
0x54, 0x69, 0x6d, 0x65, 0x20, 0x28, 0x4d, 0x65, 0x78, 0x69, 0x63, 0x6f, 0x29, 0x0, 0x4d, 0x6f,
|
||||
0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20,
|
||||
0x54, 0x69, 0x6d, 0x65, 0x0, 0x4d, 0x79, 0x61, 0x6e, 0x6d, 0x61, 0x72, 0x20, 0x53, 0x74, 0x61,
|
||||
0x54, 0x69, 0x6d, 0x65, 0x0, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x74,
|
||||
0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x20, 0x28, 0x4d, 0x65, 0x78,
|
||||
0x69, 0x63, 0x6f, 0x29, 0x0, 0x4d, 0x79, 0x61, 0x6e, 0x6d, 0x61, 0x72, 0x20, 0x53, 0x74, 0x61,
|
||||
0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x4e, 0x2e, 0x20, 0x43, 0x65,
|
||||
0x6e, 0x74, 0x72, 0x61, 0x6c, 0x20, 0x41, 0x73, 0x69, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64,
|
||||
0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x4e, 0x61, 0x6d, 0x69, 0x62, 0x69, 0x61,
|
||||
@ -790,10 +798,10 @@ static constexpr char windowsIdData[] = {
|
||||
0x7a, 0x79, 0x6c, 0x6f, 0x72, 0x64, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64,
|
||||
0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x52, 0x6f, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x53, 0x74,
|
||||
0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x52, 0x75, 0x73, 0x73,
|
||||
0x69, 0x61, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x20, 0x5a, 0x6f, 0x6e, 0x65, 0x20, 0x33, 0x0, 0x52,
|
||||
0x75, 0x73, 0x73, 0x69, 0x61, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x20, 0x5a, 0x6f, 0x6e, 0x65, 0x20,
|
||||
0x31, 0x30, 0x0, 0x52, 0x75, 0x73, 0x73, 0x69, 0x61, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x20, 0x5a,
|
||||
0x6f, 0x6e, 0x65, 0x20, 0x31, 0x31, 0x0, 0x52, 0x75, 0x73, 0x73, 0x69, 0x61, 0x6e, 0x20, 0x53,
|
||||
0x69, 0x61, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x20, 0x5a, 0x6f, 0x6e, 0x65, 0x20, 0x31, 0x30, 0x0,
|
||||
0x52, 0x75, 0x73, 0x73, 0x69, 0x61, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x20, 0x5a, 0x6f, 0x6e, 0x65,
|
||||
0x20, 0x31, 0x31, 0x0, 0x52, 0x75, 0x73, 0x73, 0x69, 0x61, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x20,
|
||||
0x5a, 0x6f, 0x6e, 0x65, 0x20, 0x33, 0x0, 0x52, 0x75, 0x73, 0x73, 0x69, 0x61, 0x6e, 0x20, 0x53,
|
||||
0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x53, 0x41, 0x20,
|
||||
0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6e, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64,
|
||||
0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x53, 0x41, 0x20, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63,
|
||||
@ -834,10 +842,10 @@ static constexpr char windowsIdData[] = {
|
||||
0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x55, 0x53, 0x20, 0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6e,
|
||||
0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x55,
|
||||
0x53, 0x20, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64,
|
||||
0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x31, 0x31, 0x0,
|
||||
0x55, 0x54, 0x43, 0x2d, 0x30, 0x39, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x30, 0x38, 0x0, 0x55, 0x54,
|
||||
0x43, 0x2d, 0x30, 0x32, 0x0, 0x55, 0x54, 0x43, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x31, 0x32, 0x0,
|
||||
0x55, 0x54, 0x43, 0x2b, 0x31, 0x33, 0x0, 0x56, 0x65, 0x6e, 0x65, 0x7a, 0x75, 0x65, 0x6c, 0x61,
|
||||
0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x55, 0x54, 0x43, 0x0, 0x55, 0x54, 0x43,
|
||||
0x2b, 0x31, 0x32, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x31, 0x33, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x30,
|
||||
0x32, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x30, 0x38, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x30, 0x39, 0x0,
|
||||
0x55, 0x54, 0x43, 0x2d, 0x31, 0x31, 0x0, 0x56, 0x65, 0x6e, 0x65, 0x7a, 0x75, 0x65, 0x6c, 0x61,
|
||||
0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x56,
|
||||
0x6c, 0x61, 0x64, 0x69, 0x76, 0x6f, 0x73, 0x74, 0x6f, 0x6b, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64,
|
||||
0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x56, 0x6f, 0x6c, 0x67, 0x6f, 0x67, 0x72,
|
||||
@ -953,34 +961,34 @@ static constexpr char ianaIdData[] = {
|
||||
0x73, 0x72, 0x61, 0x65, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x4e, 0x6f, 0x75,
|
||||
0x6d, 0x65, 0x61, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x47, 0x75, 0x61, 0x64,
|
||||
0x61, 0x6c, 0x63, 0x61, 0x6e, 0x61, 0x6c, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f,
|
||||
0x45, 0x66, 0x61, 0x74, 0x65, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x65,
|
||||
0x78, 0x69, 0x63, 0x6f, 0x5f, 0x43, 0x69, 0x74, 0x79, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63,
|
||||
0x61, 0x2f, 0x42, 0x61, 0x68, 0x69, 0x61, 0x5f, 0x42, 0x61, 0x6e, 0x64, 0x65, 0x72, 0x61, 0x73,
|
||||
0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x65, 0x72, 0x69, 0x64, 0x61, 0x20,
|
||||
0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x6f, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x65,
|
||||
0x79, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x68, 0x69, 0x68, 0x75, 0x61,
|
||||
0x68, 0x75, 0x61, 0x0, 0x43, 0x53, 0x54, 0x36, 0x43, 0x44, 0x54, 0x0, 0x41, 0x6d, 0x65, 0x72,
|
||||
0x69, 0x63, 0x61, 0x2f, 0x57, 0x69, 0x6e, 0x6e, 0x69, 0x70, 0x65, 0x67, 0x20, 0x41, 0x6d, 0x65,
|
||||
0x72, 0x69, 0x63, 0x61, 0x2f, 0x52, 0x61, 0x69, 0x6e, 0x79, 0x5f, 0x52, 0x69, 0x76, 0x65, 0x72,
|
||||
0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x52, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x5f,
|
||||
0x49, 0x6e, 0x6c, 0x65, 0x74, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x52, 0x65,
|
||||
0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d,
|
||||
0x61, 0x74, 0x61, 0x6d, 0x6f, 0x72, 0x6f, 0x73, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61,
|
||||
0x2f, 0x4f, 0x6a, 0x69, 0x6e, 0x61, 0x67, 0x61, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61,
|
||||
0x2f, 0x43, 0x68, 0x69, 0x63, 0x61, 0x67, 0x6f, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61,
|
||||
0x2f, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x61, 0x2f, 0x4b, 0x6e, 0x6f, 0x78, 0x20, 0x41, 0x6d,
|
||||
0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x61, 0x2f, 0x54, 0x65,
|
||||
0x6c, 0x6c, 0x5f, 0x43, 0x69, 0x74, 0x79, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f,
|
||||
0x4d, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x6e, 0x65, 0x65, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63,
|
||||
0x61, 0x2f, 0x4e, 0x6f, 0x72, 0x74, 0x68, 0x5f, 0x44, 0x61, 0x6b, 0x6f, 0x74, 0x61, 0x2f, 0x42,
|
||||
0x65, 0x75, 0x6c, 0x61, 0x68, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4e, 0x6f,
|
||||
0x72, 0x74, 0x68, 0x5f, 0x44, 0x61, 0x6b, 0x6f, 0x74, 0x61, 0x2f, 0x43, 0x65, 0x6e, 0x74, 0x65,
|
||||
0x72, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4e, 0x6f, 0x72, 0x74, 0x68, 0x5f,
|
||||
0x44, 0x61, 0x6b, 0x6f, 0x74, 0x61, 0x2f, 0x4e, 0x65, 0x77, 0x5f, 0x53, 0x61, 0x6c, 0x65, 0x6d,
|
||||
0x45, 0x66, 0x61, 0x74, 0x65, 0x0, 0x43, 0x53, 0x54, 0x36, 0x43, 0x44, 0x54, 0x0, 0x41, 0x6d,
|
||||
0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x57, 0x69, 0x6e, 0x6e, 0x69, 0x70, 0x65, 0x67, 0x20, 0x41,
|
||||
0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x52, 0x61, 0x69, 0x6e, 0x79, 0x5f, 0x52, 0x69, 0x76,
|
||||
0x65, 0x72, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x52, 0x61, 0x6e, 0x6b, 0x69,
|
||||
0x6e, 0x5f, 0x49, 0x6e, 0x6c, 0x65, 0x74, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f,
|
||||
0x52, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61,
|
||||
0x2f, 0x4d, 0x61, 0x74, 0x61, 0x6d, 0x6f, 0x72, 0x6f, 0x73, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69,
|
||||
0x63, 0x61, 0x2f, 0x4f, 0x6a, 0x69, 0x6e, 0x61, 0x67, 0x61, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69,
|
||||
0x63, 0x61, 0x2f, 0x43, 0x68, 0x69, 0x63, 0x61, 0x67, 0x6f, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69,
|
||||
0x63, 0x61, 0x2f, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x61, 0x2f, 0x4b, 0x6e, 0x6f, 0x78, 0x20,
|
||||
0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x61, 0x2f,
|
||||
0x54, 0x65, 0x6c, 0x6c, 0x5f, 0x43, 0x69, 0x74, 0x79, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63,
|
||||
0x61, 0x2f, 0x4d, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x6e, 0x65, 0x65, 0x20, 0x41, 0x6d, 0x65, 0x72,
|
||||
0x69, 0x63, 0x61, 0x2f, 0x4e, 0x6f, 0x72, 0x74, 0x68, 0x5f, 0x44, 0x61, 0x6b, 0x6f, 0x74, 0x61,
|
||||
0x2f, 0x42, 0x65, 0x75, 0x6c, 0x61, 0x68, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f,
|
||||
0x4e, 0x6f, 0x72, 0x74, 0x68, 0x5f, 0x44, 0x61, 0x6b, 0x6f, 0x74, 0x61, 0x2f, 0x43, 0x65, 0x6e,
|
||||
0x74, 0x65, 0x72, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4e, 0x6f, 0x72, 0x74,
|
||||
0x68, 0x5f, 0x44, 0x61, 0x6b, 0x6f, 0x74, 0x61, 0x2f, 0x4e, 0x65, 0x77, 0x5f, 0x53, 0x61, 0x6c,
|
||||
0x65, 0x6d, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x65, 0x78, 0x69, 0x63,
|
||||
0x6f, 0x5f, 0x43, 0x69, 0x74, 0x79, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x42,
|
||||
0x61, 0x68, 0x69, 0x61, 0x5f, 0x42, 0x61, 0x6e, 0x64, 0x65, 0x72, 0x61, 0x73, 0x20, 0x41, 0x6d,
|
||||
0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x65, 0x72, 0x69, 0x64, 0x61, 0x20, 0x41, 0x6d, 0x65,
|
||||
0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x6f, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x65, 0x79, 0x20, 0x41,
|
||||
0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x68, 0x69, 0x68, 0x75, 0x61, 0x68, 0x75, 0x61,
|
||||
0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x43, 0x68, 0x61, 0x74, 0x68, 0x61, 0x6d,
|
||||
0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x53, 0x68, 0x61, 0x6e, 0x67, 0x68, 0x61, 0x69, 0x0, 0x41,
|
||||
0x73, 0x69, 0x61, 0x2f, 0x48, 0x6f, 0x6e, 0x67, 0x5f, 0x4b, 0x6f, 0x6e, 0x67, 0x0, 0x41, 0x73,
|
||||
0x69, 0x61, 0x2f, 0x4d, 0x61, 0x63, 0x61, 0x75, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63,
|
||||
0x2f, 0x43, 0x68, 0x61, 0x74, 0x68, 0x61, 0x6d, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61,
|
||||
0x69, 0x61, 0x2f, 0x4d, 0x61, 0x63, 0x61, 0x75, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61,
|
||||
0x2f, 0x48, 0x61, 0x76, 0x61, 0x6e, 0x61, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2b,
|
||||
0x31, 0x32, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2d, 0x33, 0x0, 0x41, 0x6e, 0x74,
|
||||
0x61, 0x72, 0x63, 0x74, 0x69, 0x63, 0x61, 0x2f, 0x53, 0x79, 0x6f, 0x77, 0x61, 0x0, 0x49, 0x6e,
|
||||
@ -1084,16 +1092,16 @@ static constexpr char ianaIdData[] = {
|
||||
0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x6f, 0x6e, 0x74, 0x65, 0x76, 0x69, 0x64,
|
||||
0x65, 0x6f, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x61, 0x73, 0x61, 0x62, 0x6c,
|
||||
0x61, 0x6e, 0x63, 0x61, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x45, 0x6c, 0x5f, 0x41,
|
||||
0x61, 0x69, 0x75, 0x6e, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x61, 0x7a,
|
||||
0x61, 0x74, 0x6c, 0x61, 0x6e, 0x0, 0x4d, 0x53, 0x54, 0x37, 0x4d, 0x44, 0x54, 0x0, 0x41, 0x6d,
|
||||
0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x45, 0x64, 0x6d, 0x6f, 0x6e, 0x74, 0x6f, 0x6e, 0x20, 0x41,
|
||||
0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65,
|
||||
0x5f, 0x42, 0x61, 0x79, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x49, 0x6e, 0x75,
|
||||
0x76, 0x69, 0x6b, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x59, 0x65, 0x6c, 0x6c,
|
||||
0x6f, 0x77, 0x6b, 0x6e, 0x69, 0x66, 0x65, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f,
|
||||
0x43, 0x69, 0x75, 0x64, 0x61, 0x64, 0x5f, 0x4a, 0x75, 0x61, 0x72, 0x65, 0x7a, 0x0, 0x41, 0x6d,
|
||||
0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x44, 0x65, 0x6e, 0x76, 0x65, 0x72, 0x20, 0x41, 0x6d, 0x65,
|
||||
0x72, 0x69, 0x63, 0x61, 0x2f, 0x42, 0x6f, 0x69, 0x73, 0x65, 0x0, 0x49, 0x6e, 0x64, 0x69, 0x61,
|
||||
0x61, 0x69, 0x75, 0x6e, 0x0, 0x4d, 0x53, 0x54, 0x37, 0x4d, 0x44, 0x54, 0x0, 0x41, 0x6d, 0x65,
|
||||
0x72, 0x69, 0x63, 0x61, 0x2f, 0x45, 0x64, 0x6d, 0x6f, 0x6e, 0x74, 0x6f, 0x6e, 0x20, 0x41, 0x6d,
|
||||
0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f,
|
||||
0x42, 0x61, 0x79, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x49, 0x6e, 0x75, 0x76,
|
||||
0x69, 0x6b, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x59, 0x65, 0x6c, 0x6c, 0x6f,
|
||||
0x77, 0x6b, 0x6e, 0x69, 0x66, 0x65, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43,
|
||||
0x69, 0x75, 0x64, 0x61, 0x64, 0x5f, 0x4a, 0x75, 0x61, 0x72, 0x65, 0x7a, 0x0, 0x41, 0x6d, 0x65,
|
||||
0x72, 0x69, 0x63, 0x61, 0x2f, 0x44, 0x65, 0x6e, 0x76, 0x65, 0x72, 0x20, 0x41, 0x6d, 0x65, 0x72,
|
||||
0x69, 0x63, 0x61, 0x2f, 0x42, 0x6f, 0x69, 0x73, 0x65, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63,
|
||||
0x61, 0x2f, 0x4d, 0x61, 0x7a, 0x61, 0x74, 0x6c, 0x61, 0x6e, 0x0, 0x49, 0x6e, 0x64, 0x69, 0x61,
|
||||
0x6e, 0x2f, 0x43, 0x6f, 0x63, 0x6f, 0x73, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x52, 0x61, 0x6e,
|
||||
0x67, 0x6f, 0x6f, 0x6e, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4e, 0x6f, 0x76, 0x6f, 0x73, 0x69,
|
||||
0x62, 0x69, 0x72, 0x73, 0x6b, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x57, 0x69, 0x6e,
|
||||
@ -1120,11 +1128,11 @@ static constexpr char ianaIdData[] = {
|
||||
0x6c, 0x73, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x43, 0x6f, 0x70, 0x65, 0x6e, 0x68,
|
||||
0x61, 0x67, 0x65, 0x6e, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x50, 0x61, 0x72, 0x69,
|
||||
0x73, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x4d, 0x61, 0x64, 0x72, 0x69, 0x64, 0x20,
|
||||
0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x65, 0x75, 0x74, 0x61, 0x0, 0x45, 0x75, 0x72,
|
||||
0x6f, 0x70, 0x65, 0x2f, 0x53, 0x61, 0x6d, 0x61, 0x72, 0x61, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f,
|
||||
0x53, 0x72, 0x65, 0x64, 0x6e, 0x65, 0x6b, 0x6f, 0x6c, 0x79, 0x6d, 0x73, 0x6b, 0x0, 0x41, 0x73,
|
||||
0x69, 0x61, 0x2f, 0x4b, 0x61, 0x6d, 0x63, 0x68, 0x61, 0x74, 0x6b, 0x61, 0x20, 0x41, 0x73, 0x69,
|
||||
0x61, 0x2f, 0x41, 0x6e, 0x61, 0x64, 0x79, 0x72, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f,
|
||||
0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x65, 0x75, 0x74, 0x61, 0x0, 0x41, 0x73, 0x69,
|
||||
0x61, 0x2f, 0x53, 0x72, 0x65, 0x64, 0x6e, 0x65, 0x6b, 0x6f, 0x6c, 0x79, 0x6d, 0x73, 0x6b, 0x0,
|
||||
0x41, 0x73, 0x69, 0x61, 0x2f, 0x4b, 0x61, 0x6d, 0x63, 0x68, 0x61, 0x74, 0x6b, 0x61, 0x20, 0x41,
|
||||
0x73, 0x69, 0x61, 0x2f, 0x41, 0x6e, 0x61, 0x64, 0x79, 0x72, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70,
|
||||
0x65, 0x2f, 0x53, 0x61, 0x6d, 0x61, 0x72, 0x61, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f,
|
||||
0x4d, 0x6f, 0x73, 0x63, 0x6f, 0x77, 0x20, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x4b, 0x69,
|
||||
0x72, 0x6f, 0x76, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x53, 0x69, 0x6d, 0x66, 0x65,
|
||||
0x72, 0x6f, 0x70, 0x6f, 0x6c, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2b, 0x33, 0x0,
|
||||
@ -1240,28 +1248,28 @@ static constexpr char ianaIdData[] = {
|
||||
0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x46, 0x6f, 0x72, 0x74, 0x5f, 0x4e, 0x65, 0x6c, 0x73, 0x6f,
|
||||
0x6e, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x48, 0x65, 0x72, 0x6d, 0x6f, 0x73,
|
||||
0x69, 0x6c, 0x6c, 0x6f, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x50, 0x68, 0x6f,
|
||||
0x65, 0x6e, 0x69, 0x78, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2b, 0x31, 0x31, 0x0,
|
||||
0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x50, 0x61, 0x67, 0x6f, 0x5f, 0x50, 0x61, 0x67,
|
||||
0x6f, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x4e, 0x69, 0x75, 0x65, 0x0, 0x50,
|
||||
0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x4d, 0x69, 0x64, 0x77, 0x61, 0x79, 0x0, 0x45, 0x74,
|
||||
0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2b, 0x39, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f,
|
||||
0x47, 0x61, 0x6d, 0x62, 0x69, 0x65, 0x72, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2b,
|
||||
0x38, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x50, 0x69, 0x74, 0x63, 0x61, 0x69,
|
||||
0x72, 0x6e, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2b, 0x32, 0x0, 0x41, 0x6d, 0x65,
|
||||
0x72, 0x69, 0x63, 0x61, 0x2f, 0x4e, 0x6f, 0x72, 0x6f, 0x6e, 0x68, 0x61, 0x0, 0x41, 0x74, 0x6c,
|
||||
0x61, 0x6e, 0x74, 0x69, 0x63, 0x2f, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x5f, 0x47, 0x65, 0x6f, 0x72,
|
||||
0x67, 0x69, 0x61, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x55, 0x54, 0x43, 0x20, 0x45, 0x74, 0x63, 0x2f,
|
||||
0x47, 0x4d, 0x54, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2d, 0x31, 0x32, 0x0, 0x50,
|
||||
0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x54, 0x61, 0x72, 0x61, 0x77, 0x61, 0x0, 0x50, 0x61,
|
||||
0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x4d, 0x61, 0x6a, 0x75, 0x72, 0x6f, 0x20, 0x50, 0x61, 0x63,
|
||||
0x69, 0x66, 0x69, 0x63, 0x2f, 0x4b, 0x77, 0x61, 0x6a, 0x61, 0x6c, 0x65, 0x69, 0x6e, 0x0, 0x50,
|
||||
0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x4e, 0x61, 0x75, 0x72, 0x75, 0x0, 0x50, 0x61, 0x63,
|
||||
0x69, 0x66, 0x69, 0x63, 0x2f, 0x46, 0x75, 0x6e, 0x61, 0x66, 0x75, 0x74, 0x69, 0x0, 0x50, 0x61,
|
||||
0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x57, 0x61, 0x6b, 0x65, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66,
|
||||
0x69, 0x63, 0x2f, 0x57, 0x61, 0x6c, 0x6c, 0x69, 0x73, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d,
|
||||
0x54, 0x2d, 0x31, 0x33, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x45, 0x6e, 0x64,
|
||||
0x65, 0x72, 0x62, 0x75, 0x72, 0x79, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x46,
|
||||
0x61, 0x6b, 0x61, 0x6f, 0x66, 0x6f, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43,
|
||||
0x65, 0x6e, 0x69, 0x78, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x55, 0x54, 0x43, 0x20, 0x45, 0x74, 0x63,
|
||||
0x2f, 0x47, 0x4d, 0x54, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2d, 0x31, 0x32, 0x0,
|
||||
0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x54, 0x61, 0x72, 0x61, 0x77, 0x61, 0x0, 0x50,
|
||||
0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x4d, 0x61, 0x6a, 0x75, 0x72, 0x6f, 0x20, 0x50, 0x61,
|
||||
0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x4b, 0x77, 0x61, 0x6a, 0x61, 0x6c, 0x65, 0x69, 0x6e, 0x0,
|
||||
0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x4e, 0x61, 0x75, 0x72, 0x75, 0x0, 0x50, 0x61,
|
||||
0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x46, 0x75, 0x6e, 0x61, 0x66, 0x75, 0x74, 0x69, 0x0, 0x50,
|
||||
0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x57, 0x61, 0x6b, 0x65, 0x0, 0x50, 0x61, 0x63, 0x69,
|
||||
0x66, 0x69, 0x63, 0x2f, 0x57, 0x61, 0x6c, 0x6c, 0x69, 0x73, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47,
|
||||
0x4d, 0x54, 0x2d, 0x31, 0x33, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x45, 0x6e,
|
||||
0x64, 0x65, 0x72, 0x62, 0x75, 0x72, 0x79, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f,
|
||||
0x46, 0x61, 0x6b, 0x61, 0x6f, 0x66, 0x6f, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2b,
|
||||
0x32, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4e, 0x6f, 0x72, 0x6f, 0x6e, 0x68,
|
||||
0x61, 0x0, 0x41, 0x74, 0x6c, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x2f, 0x53, 0x6f, 0x75, 0x74, 0x68,
|
||||
0x5f, 0x47, 0x65, 0x6f, 0x72, 0x67, 0x69, 0x61, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54,
|
||||
0x2b, 0x38, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x50, 0x69, 0x74, 0x63, 0x61,
|
||||
0x69, 0x72, 0x6e, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2b, 0x39, 0x0, 0x50, 0x61,
|
||||
0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x47, 0x61, 0x6d, 0x62, 0x69, 0x65, 0x72, 0x0, 0x45, 0x74,
|
||||
0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2b, 0x31, 0x31, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63,
|
||||
0x2f, 0x50, 0x61, 0x67, 0x6f, 0x5f, 0x50, 0x61, 0x67, 0x6f, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66,
|
||||
0x69, 0x63, 0x2f, 0x4e, 0x69, 0x75, 0x65, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f,
|
||||
0x4d, 0x69, 0x64, 0x77, 0x61, 0x79, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43,
|
||||
0x61, 0x72, 0x61, 0x63, 0x61, 0x73, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x56, 0x6c, 0x61, 0x64,
|
||||
0x69, 0x76, 0x6f, 0x73, 0x74, 0x6f, 0x6b, 0x20, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x55, 0x73, 0x74,
|
||||
0x2d, 0x4e, 0x65, 0x72, 0x61, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x56, 0x6f, 0x6c,
|
||||
@ -1327,9 +1335,9 @@ static constexpr char ianaIdData[] = {
|
||||
0x67, 0x69, 0x6e, 0x61, 0x0, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x2f, 0x41,
|
||||
0x64, 0x65, 0x6c, 0x61, 0x69, 0x64, 0x65, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x41, 0x6c, 0x6d,
|
||||
0x61, 0x74, 0x79, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x75, 0x69, 0x61,
|
||||
0x62, 0x61, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x65, 0x78, 0x69, 0x63,
|
||||
0x6f, 0x5f, 0x43, 0x69, 0x74, 0x79, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43,
|
||||
0x68, 0x69, 0x63, 0x61, 0x67, 0x6f, 0x0, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61,
|
||||
0x62, 0x61, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x68, 0x69, 0x63, 0x61,
|
||||
0x67, 0x6f, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x65, 0x78, 0x69, 0x63,
|
||||
0x6f, 0x5f, 0x43, 0x69, 0x74, 0x79, 0x0, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61,
|
||||
0x2f, 0x42, 0x72, 0x69, 0x73, 0x62, 0x61, 0x6e, 0x65, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63,
|
||||
0x61, 0x2f, 0x4e, 0x65, 0x77, 0x5f, 0x59, 0x6f, 0x72, 0x6b, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70,
|
||||
0x65, 0x2f, 0x4b, 0x69, 0x65, 0x76, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x44,
|
||||
|
@ -60,10 +60,10 @@ windowsIdList = (
|
||||
('Central Europe Standard Time', 3600),
|
||||
('Central European Standard Time', 3600),
|
||||
('Central Pacific Standard Time', 39600),
|
||||
('Central Standard Time (Mexico)', -21600),
|
||||
('Central Standard Time', -21600),
|
||||
('China Standard Time', 28800),
|
||||
('Central Standard Time (Mexico)', -21600),
|
||||
('Chatham Islands Standard Time', 45900),
|
||||
('China Standard Time', 28800),
|
||||
('Cuba Standard Time', -18000),
|
||||
('Dateline Standard Time', -43200),
|
||||
('E. Africa Standard Time', 10800),
|
||||
@ -100,8 +100,8 @@ windowsIdList = (
|
||||
('Middle East Standard Time', 7200),
|
||||
('Montevideo Standard Time', -10800),
|
||||
('Morocco Standard Time', 0),
|
||||
('Mountain Standard Time (Mexico)', -25200),
|
||||
('Mountain Standard Time', -25200),
|
||||
('Mountain Standard Time (Mexico)', -25200),
|
||||
('Myanmar Standard Time', 23400),
|
||||
('N. Central Asia Standard Time', 21600),
|
||||
('Namibia Standard Time', 3600),
|
||||
@ -120,9 +120,9 @@ windowsIdList = (
|
||||
('Paraguay Standard Time', -14400),
|
||||
('Qyzylorda Standard Time', 18000), # a.k.a. Kyzylorda, in Kazakhstan
|
||||
('Romance Standard Time', 3600),
|
||||
('Russia Time Zone 3', 14400),
|
||||
('Russia Time Zone 10', 39600),
|
||||
('Russia Time Zone 11', 43200),
|
||||
('Russia Time Zone 3', 14400),
|
||||
('Russian Standard Time', 10800),
|
||||
('SA Eastern Standard Time', -10800),
|
||||
('SA Pacific Standard Time', -18000),
|
||||
@ -151,13 +151,14 @@ windowsIdList = (
|
||||
('Ulaanbaatar Standard Time', 28800),
|
||||
('US Eastern Standard Time', -18000),
|
||||
('US Mountain Standard Time', -25200),
|
||||
('UTC-11', -39600),
|
||||
('UTC-09', -32400),
|
||||
('UTC-08', -28800),
|
||||
('UTC-02', -7200),
|
||||
('UTC', 0),
|
||||
# Lexical order: '+' < '-'
|
||||
('UTC+12', 43200),
|
||||
('UTC+13', 46800),
|
||||
('UTC-02', -7200),
|
||||
('UTC-08', -28800),
|
||||
('UTC-09', -32400),
|
||||
('UTC-11', -39600),
|
||||
('Venezuela Standard Time', -16200),
|
||||
('Vladivostok Standard Time', 36000),
|
||||
('Volgograd Standard Time', 14400),
|
||||
@ -284,6 +285,7 @@ class ZoneIdWriter (SourceFileEditor):
|
||||
# Write Windows/IANA table
|
||||
out('// Windows ID Key, Territory Enum, IANA ID Index\n')
|
||||
out('static constexpr QZoneData zoneDataTable[] = {\n')
|
||||
# Sorted by (Windows ID Key, territory enum)
|
||||
for index, data in sorted(windowsIds.items()):
|
||||
out(' {{ {:6d},{:6d},{:6d} }}, // {} / {}\n'.format(
|
||||
data['windowsKey'], data['territoryId'],
|
||||
@ -294,6 +296,11 @@ class ZoneIdWriter (SourceFileEditor):
|
||||
# Write Windows ID key table
|
||||
out('// Windows ID Key, Windows ID Index, IANA ID Index, UTC Offset\n')
|
||||
out('static constexpr QWindowsData windowsDataTable[] = {\n')
|
||||
# Sorted by Windows ID key; sorting case-insensitively by
|
||||
# Windows ID must give the same order.
|
||||
winIdNames = [x.lower() for x, y in windowsIdList]
|
||||
assert all(x == y for x, y in zip(winIdNames, sorted(winIdNames))), \
|
||||
[(x, y) for x, y in zip(winIdNames, sorted(winIdNames)) if x != y]
|
||||
for index, pair in enumerate(windowsIdList, 1):
|
||||
out(' {{ {:6d},{:6d},{:6d},{:6d} }}, // {}\n'.format(
|
||||
index,
|
||||
|
Loading…
x
Reference in New Issue
Block a user