python-idna/backport-0001-CVE-2024-3651.patch
zhangpan b26671bde4 fix CVE-2024-3651
(cherry picked from commit 478566c03898357acec9fc3c0f40ee0b7eb74b6a)
2024-05-07 14:43:20 +08:00

2365 lines
57 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

From b22480c50f09b9423cfe20d53ba0fdc0045ce7b4 Mon Sep 17 00:00:00 2001
From: Kim Davies <kim.davies@iana.org>
Date: Tue, 14 Sep 2021 13:17:10 -0700
Subject: [PATCH] Update to Unicode 14
Reference:https://github.com/kjd/idna/commit/b22480c50f09b9423cfe20d53ba0fdc0045ce7b4
Conflict:NA
---
idna/idnadata.py | 137 ++++++--
idna/uts46data.py | 839 +++++++++++++++++++++++++++-------------------
tools/idna-data | 2 +-
3 files changed, 610 insertions(+), 368 deletions(-)
diff --git a/idna/idnadata.py b/idna/idnadata.py
index b86a3e0..1b5805d 100644
--- a/idna/idnadata.py
+++ b/idna/idnadata.py
@@ -1,6 +1,6 @@
# This file is automatically generated by tools/idna-data
-__version__ = '13.0.0'
+__version__ = '14.0.0'
scripts = {
'Greek': (
0x37000000374,
@@ -49,12 +49,13 @@
0x30210000302a,
0x30380000303c,
0x340000004dc0,
- 0x4e0000009ffd,
+ 0x4e000000a000,
0xf9000000fa6e,
0xfa700000fada,
+ 0x16fe200016fe4,
0x16ff000016ff2,
- 0x200000002a6de,
- 0x2a7000002b735,
+ 0x200000002a6e0,
+ 0x2a7000002b739,
0x2b7400002b81e,
0x2b8200002cea2,
0x2ceb00002ebe1,
@@ -75,7 +76,7 @@
'Hiragana': (
0x304100003097,
0x309d000030a0,
- 0x1b0010001b11f,
+ 0x1b0010001b120,
0x1b1500001b153,
0x1f2000001f201,
),
@@ -87,7 +88,11 @@
0x330000003358,
0xff660000ff70,
0xff710000ff9e,
+ 0x1aff00001aff4,
+ 0x1aff50001affc,
+ 0x1affd0001afff,
0x1b0000001b001,
+ 0x1b1200001b123,
0x1b1640001b168,
),
}
@@ -405,6 +410,39 @@
0x868: 68,
0x869: 82,
0x86a: 82,
+ 0x870: 82,
+ 0x871: 82,
+ 0x872: 82,
+ 0x873: 82,
+ 0x874: 82,
+ 0x875: 82,
+ 0x876: 82,
+ 0x877: 82,
+ 0x878: 82,
+ 0x879: 82,
+ 0x87a: 82,
+ 0x87b: 82,
+ 0x87c: 82,
+ 0x87d: 82,
+ 0x87e: 82,
+ 0x87f: 82,
+ 0x880: 82,
+ 0x881: 82,
+ 0x882: 82,
+ 0x883: 67,
+ 0x884: 67,
+ 0x885: 67,
+ 0x886: 68,
+ 0x887: 85,
+ 0x888: 85,
+ 0x889: 68,
+ 0x88a: 68,
+ 0x88b: 68,
+ 0x88c: 68,
+ 0x88d: 68,
+ 0x88e: 82,
+ 0x890: 85,
+ 0x891: 85,
0x8a0: 68,
0x8a1: 68,
0x8a2: 68,
@@ -426,6 +464,7 @@
0x8b2: 82,
0x8b3: 68,
0x8b4: 68,
+ 0x8b5: 68,
0x8b6: 68,
0x8b7: 68,
0x8b8: 68,
@@ -444,6 +483,7 @@
0x8c5: 68,
0x8c6: 68,
0x8c7: 68,
+ 0x8c8: 68,
0x8e2: 85,
0x1806: 85,
0x1807: 68,
@@ -768,6 +808,24 @@
0x10f52: 68,
0x10f53: 68,
0x10f54: 82,
+ 0x10f70: 68,
+ 0x10f71: 68,
+ 0x10f72: 68,
+ 0x10f73: 68,
+ 0x10f74: 82,
+ 0x10f75: 82,
+ 0x10f76: 68,
+ 0x10f77: 68,
+ 0x10f78: 68,
+ 0x10f79: 68,
+ 0x10f7a: 68,
+ 0x10f7b: 68,
+ 0x10f7c: 68,
+ 0x10f7d: 68,
+ 0x10f7e: 68,
+ 0x10f7f: 68,
+ 0x10f80: 68,
+ 0x10f81: 68,
0x10fb0: 68,
0x10fb1: 85,
0x10fb2: 68,
@@ -1168,9 +1226,9 @@
0x8000000082e,
0x8400000085c,
0x8600000086b,
- 0x8a0000008b5,
- 0x8b6000008c8,
- 0x8d3000008e2,
+ 0x87000000888,
+ 0x8890000088f,
+ 0x898000008e2,
0x8e300000958,
0x96000000964,
0x96600000970,
@@ -1252,11 +1310,12 @@
0xc0e00000c11,
0xc1200000c29,
0xc2a00000c3a,
- 0xc3d00000c45,
+ 0xc3c00000c45,
0xc4600000c49,
0xc4a00000c4e,
0xc5500000c57,
0xc5800000c5b,
+ 0xc5d00000c5e,
0xc6000000c64,
0xc6600000c70,
0xc8000000c84,
@@ -1269,7 +1328,7 @@
0xcc600000cc9,
0xcca00000cce,
0xcd500000cd7,
- 0xcde00000cdf,
+ 0xcdd00000cdf,
0xce000000ce4,
0xce600000cf0,
0xcf100000cf3,
@@ -1366,9 +1425,8 @@
0x16810000169b,
0x16a0000016eb,
0x16f1000016f9,
- 0x17000000170d,
- 0x170e00001715,
- 0x172000001735,
+ 0x170000001716,
+ 0x171f00001735,
0x174000001754,
0x17600000176d,
0x176e00001771,
@@ -1397,8 +1455,8 @@
0x1a9000001a9a,
0x1aa700001aa8,
0x1ab000001abe,
- 0x1abf00001ac1,
- 0x1b0000001b4c,
+ 0x1abf00001acf,
+ 0x1b0000001b4d,
0x1b5000001b5a,
0x1b6b00001b74,
0x1b8000001bf4,
@@ -1413,8 +1471,7 @@
0x1d4e00001d4f,
0x1d6b00001d78,
0x1d7900001d9b,
- 0x1dc000001dfa,
- 0x1dfb00001e00,
+ 0x1dc000001e00,
0x1e0100001e02,
0x1e0300001e04,
0x1e0500001e06,
@@ -1563,7 +1620,7 @@
0x1ff600001ff7,
0x214e0000214f,
0x218400002185,
- 0x2c3000002c5f,
+ 0x2c3000002c60,
0x2c6100002c62,
0x2c6500002c67,
0x2c6800002c69,
@@ -1652,8 +1709,7 @@
0x31a0000031c0,
0x31f000003200,
0x340000004dc0,
- 0x4e0000009ffd,
- 0xa0000000a48d,
+ 0x4e000000a48d,
0xa4d00000a4fe,
0xa5000000a60d,
0xa6100000a62c,
@@ -1766,9 +1822,16 @@
0xa7bb0000a7bc,
0xa7bd0000a7be,
0xa7bf0000a7c0,
+ 0xa7c10000a7c2,
0xa7c30000a7c4,
0xa7c80000a7c9,
0xa7ca0000a7cb,
+ 0xa7d10000a7d2,
+ 0xa7d30000a7d4,
+ 0xa7d50000a7d6,
+ 0xa7d70000a7d8,
+ 0xa7d90000a7da,
+ 0xa7f20000a7f5,
0xa7f60000a7f8,
0xa7fa0000a828,
0xa82c0000a82d,
@@ -1834,9 +1897,16 @@
0x104d8000104fc,
0x1050000010528,
0x1053000010564,
+ 0x10597000105a2,
+ 0x105a3000105b2,
+ 0x105b3000105ba,
+ 0x105bb000105bd,
0x1060000010737,
0x1074000010756,
0x1076000010768,
+ 0x1078000010786,
+ 0x10787000107b1,
+ 0x107b2000107bb,
0x1080000010806,
0x1080800010809,
0x1080a00010836,
@@ -1876,11 +1946,13 @@
0x10f0000010f1d,
0x10f2700010f28,
0x10f3000010f51,
+ 0x10f7000010f86,
0x10fb000010fc5,
0x10fe000010ff7,
0x1100000011047,
- 0x1106600011070,
+ 0x1106600011076,
0x1107f000110bb,
+ 0x110c2000110c3,
0x110d0000110e9,
0x110f0000110fa,
0x1110000011135,
@@ -1934,6 +2006,7 @@
0x117000001171b,
0x1171d0001172c,
0x117300001173a,
+ 0x1174000011747,
0x118000001183b,
0x118c0000118ea,
0x118ff00011907,
@@ -1952,7 +2025,7 @@
0x11a4700011a48,
0x11a5000011a9a,
0x11a9d00011a9e,
- 0x11ac000011af9,
+ 0x11ab000011af9,
0x11c0000011c09,
0x11c0a00011c37,
0x11c3800011c41,
@@ -1977,11 +2050,14 @@
0x11fb000011fb1,
0x120000001239a,
0x1248000012544,
+ 0x12f9000012ff1,
0x130000001342f,
0x1440000014647,
0x1680000016a39,
0x16a4000016a5f,
0x16a6000016a6a,
+ 0x16a7000016abf,
+ 0x16ac000016aca,
0x16ad000016aee,
0x16af000016af5,
0x16b0000016b37,
@@ -1999,7 +2075,10 @@
0x17000000187f8,
0x1880000018cd6,
0x18d0000018d09,
- 0x1b0000001b11f,
+ 0x1aff00001aff4,
+ 0x1aff50001affc,
+ 0x1affd0001afff,
+ 0x1b0000001b123,
0x1b1500001b153,
0x1b1640001b168,
0x1b1700001b2fc,
@@ -2008,12 +2087,15 @@
0x1bc800001bc89,
0x1bc900001bc9a,
0x1bc9d0001bc9f,
+ 0x1cf000001cf2e,
+ 0x1cf300001cf47,
0x1da000001da37,
0x1da3b0001da6d,
0x1da750001da76,
0x1da840001da85,
0x1da9b0001daa0,
0x1daa10001dab0,
+ 0x1df000001df1f,
0x1e0000001e007,
0x1e0080001e019,
0x1e01b0001e022,
@@ -2023,14 +2105,19 @@
0x1e1300001e13e,
0x1e1400001e14a,
0x1e14e0001e14f,
+ 0x1e2900001e2af,
0x1e2c00001e2fa,
+ 0x1e7e00001e7e7,
+ 0x1e7e80001e7ec,
+ 0x1e7ed0001e7ef,
+ 0x1e7f00001e7ff,
0x1e8000001e8c5,
0x1e8d00001e8d7,
0x1e9220001e94c,
0x1e9500001e95a,
0x1fbf00001fbfa,
- 0x200000002a6de,
- 0x2a7000002b735,
+ 0x200000002a6e0,
+ 0x2a7000002b739,
0x2b7400002b81e,
0x2b8200002cea2,
0x2ceb00002ebe1,
diff --git a/idna/uts46data.py b/idna/uts46data.py
index f382ce3..c765248 100644
--- a/idna/uts46data.py
+++ b/idna/uts46data.py
@@ -1,11 +1,13 @@
# This file is automatically generated by tools/idna-data
+# vim: set fileencoding=utf-8 :
from typing import List, Tuple, Union
+
"""IDNA Mapping Table from UTS46."""
-__version__ = '13.0.0'
+__version__ = '14.0.0'
def _seg_0():
# type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
return [
@@ -1053,7 +1055,7 @@ def _seg_9():
(0x5F5, 'X'),
(0x606, 'V'),
(0x61C, 'X'),
- (0x61E, 'V'),
+ (0x61D, 'V'),
]
def _seg_10():
@@ -1083,11 +1085,9 @@ def _seg_10():
(0x85F, 'X'),
(0x860, 'V'),
(0x86B, 'X'),
- (0x8A0, 'V'),
- (0x8B5, 'X'),
- (0x8B6, 'V'),
- (0x8C8, 'X'),
- (0x8D3, 'V'),
+ (0x870, 'V'),
+ (0x88F, 'X'),
+ (0x898, 'V'),
(0x8E2, 'X'),
(0x8E3, 'V'),
(0x958, 'M', 'क़'),
@@ -1159,13 +1159,13 @@ def _seg_10():
(0xA59, 'M', 'ਖ਼'),
(0xA5A, 'M', 'ਗ਼'),
(0xA5B, 'M', 'ਜ਼'),
+ (0xA5C, 'V'),
+ (0xA5D, 'X'),
]
def _seg_11():
# type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
return [
- (0xA5C, 'V'),
- (0xA5D, 'X'),
(0xA5E, 'M', 'ਫ਼'),
(0xA5F, 'X'),
(0xA66, 'V'),
@@ -1264,15 +1264,15 @@ def _seg_11():
(0xC0E, 'V'),
(0xC11, 'X'),
(0xC12, 'V'),
+ (0xC29, 'X'),
+ (0xC2A, 'V'),
]
def _seg_12():
# type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
return [
- (0xC29, 'X'),
- (0xC2A, 'V'),
(0xC3A, 'X'),
- (0xC3D, 'V'),
+ (0xC3C, 'V'),
(0xC45, 'X'),
(0xC46, 'V'),
(0xC49, 'X'),
@@ -1282,6 +1282,8 @@ def _seg_12():
(0xC57, 'X'),
(0xC58, 'V'),
(0xC5B, 'X'),
+ (0xC5D, 'V'),
+ (0xC5E, 'X'),
(0xC60, 'V'),
(0xC64, 'X'),
(0xC66, 'V'),
@@ -1304,7 +1306,7 @@ def _seg_12():
(0xCCE, 'X'),
(0xCD5, 'V'),
(0xCD7, 'X'),
- (0xCDE, 'V'),
+ (0xCDD, 'V'),
(0xCDF, 'X'),
(0xCE0, 'V'),
(0xCE4, 'X'),
@@ -1502,10 +1504,8 @@ def _seg_14():
(0x16A0, 'V'),
(0x16F9, 'X'),
(0x1700, 'V'),
- (0x170D, 'X'),
- (0x170E, 'V'),
- (0x1715, 'X'),
- (0x1720, 'V'),
+ (0x1716, 'X'),
+ (0x171F, 'V'),
(0x1737, 'X'),
(0x1740, 'V'),
(0x1754, 'X'),
@@ -1528,6 +1528,7 @@ def _seg_14():
(0x1807, 'V'),
(0x180B, 'I'),
(0x180E, 'X'),
+ (0x180F, 'I'),
(0x1810, 'V'),
(0x181A, 'X'),
(0x1820, 'V'),
@@ -1567,11 +1568,11 @@ def _seg_14():
(0x1AA0, 'V'),
(0x1AAE, 'X'),
(0x1AB0, 'V'),
- (0x1AC1, 'X'),
+ (0x1ACF, 'X'),
(0x1B00, 'V'),
- (0x1B4C, 'X'),
+ (0x1B4D, 'X'),
(0x1B50, 'V'),
- (0x1B7D, 'X'),
+ (0x1B7F, 'X'),
(0x1B80, 'V'),
(0x1BF4, 'X'),
(0x1BFC, 'V'),
@@ -1579,12 +1580,12 @@ def _seg_14():
(0x1C3B, 'V'),
(0x1C4A, 'X'),
(0x1C4D, 'V'),
+ (0x1C80, 'M', 'в'),
]
def _seg_15():
# type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
return [
- (0x1C80, 'M', 'в'),
(0x1C81, 'M', 'д'),
(0x1C82, 'M', 'о'),
(0x1C83, 'M', 'с'),
@@ -1684,12 +1685,12 @@ def _seg_15():
(0x1D50, 'M', 'm'),
(0x1D51, 'M', 'ŋ'),
(0x1D52, 'M', 'o'),
+ (0x1D53, 'M', 'ɔ'),
]
def _seg_16():
# type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
return [
- (0x1D53, 'M', 'ɔ'),
(0x1D54, 'M', 'ᴖ'),
(0x1D55, 'M', 'ᴗ'),
(0x1D56, 'M', 'p'),
@@ -1754,8 +1755,6 @@ def _seg_16():
(0x1DBE, 'M', 'ʒ'),
(0x1DBF, 'M', 'θ'),
(0x1DC0, 'V'),
- (0x1DFA, 'X'),
- (0x1DFB, 'V'),
(0x1E00, 'M', 'ḁ'),
(0x1E01, 'V'),
(0x1E02, 'M', 'ḃ'),
@@ -1789,14 +1788,14 @@ def _seg_16():
(0x1E1E, 'M', 'ḟ'),
(0x1E1F, 'V'),
(0x1E20, 'M', 'ḡ'),
+ (0x1E21, 'V'),
+ (0x1E22, 'M', 'ḣ'),
+ (0x1E23, 'V'),
]
def _seg_17():
# type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
return [
- (0x1E21, 'V'),
- (0x1E22, 'M', 'ḣ'),
- (0x1E23, 'V'),
(0x1E24, 'M', 'ḥ'),
(0x1E25, 'V'),
(0x1E26, 'M', 'ḧ'),
@@ -1894,14 +1893,14 @@ def _seg_17():
(0x1E82, 'M', 'ẃ'),
(0x1E83, 'V'),
(0x1E84, 'M', 'ẅ'),
+ (0x1E85, 'V'),
+ (0x1E86, 'M', 'ẇ'),
+ (0x1E87, 'V'),
]
def _seg_18():
# type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
return [
- (0x1E85, 'V'),
- (0x1E86, 'M', 'ẇ'),
- (0x1E87, 'V'),
(0x1E88, 'M', 'ẉ'),
(0x1E89, 'V'),
(0x1E8A, 'M', 'ẋ'),
@@ -1999,14 +1998,14 @@ def _seg_18():
(0x1EEB, 'V'),
(0x1EEC, 'M', 'ử'),
(0x1EED, 'V'),
+ (0x1EEE, 'M', 'ữ'),
+ (0x1EEF, 'V'),
+ (0x1EF0, 'M', 'ự'),
]
def _seg_19():
# type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
return [
- (0x1EEE, 'M', 'ữ'),
- (0x1EEF, 'V'),
- (0x1EF0, 'M', 'ự'),
(0x1EF1, 'V'),
(0x1EF2, 'M', 'ỳ'),
(0x1EF3, 'V'),
@@ -2104,14 +2103,14 @@ def _seg_19():
(0x1F82, 'M', 'ἂι'),
(0x1F83, 'M', 'ἃι'),
(0x1F84, 'M', 'ἄι'),
+ (0x1F85, 'M', 'ἅι'),
+ (0x1F86, 'M', 'ἆι'),
+ (0x1F87, 'M', 'ἇι'),
]
def _seg_20():
# type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
return [
- (0x1F85, 'M', 'ἅι'),
- (0x1F86, 'M', 'ἆι'),
- (0x1F87, 'M', 'ἇι'),
(0x1F88, 'M', 'ἀι'),
(0x1F89, 'M', 'ἁι'),
(0x1F8A, 'M', 'ἂι'),
@@ -2209,14 +2208,14 @@ def _seg_20():
(0x1FF0, 'X'),
(0x1FF2, 'M', 'ὼι'),
(0x1FF3, 'M', 'ωι'),
+ (0x1FF4, 'M', 'ώι'),
+ (0x1FF5, 'X'),
+ (0x1FF6, 'V'),
]
def _seg_21():
# type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
return [
- (0x1FF4, 'M', 'ώι'),
- (0x1FF5, 'X'),
- (0x1FF6, 'V'),
(0x1FF7, 'M', 'ῶι'),
(0x1FF8, 'M', 'ὸ'),
(0x1FF9, 'M', 'ό'),
@@ -2309,19 +2308,19 @@ def _seg_21():
(0x20A0, 'V'),
(0x20A8, 'M', 'rs'),
(0x20A9, 'V'),
- (0x20C0, 'X'),
+ (0x20C1, 'X'),
(0x20D0, 'V'),
(0x20F1, 'X'),
(0x2100, '3', 'a/c'),
(0x2101, '3', 'a/s'),
+ (0x2102, 'M', 'c'),
+ (0x2103, 'M', '°c'),
+ (0x2104, 'V'),
]
def _seg_22():
# type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
return [
- (0x2102, 'M', 'c'),
- (0x2103, 'M', '°c'),
- (0x2104, 'V'),
(0x2105, '3', 'c/o'),
(0x2106, '3', 'c/u'),
(0x2107, 'M', 'ɛ'),
@@ -2419,14 +2418,14 @@ def _seg_22():
(0x2177, 'M', 'viii'),
(0x2178, 'M', 'ix'),
(0x2179, 'M', 'x'),
+ (0x217A, 'M', 'xi'),
+ (0x217B, 'M', 'xii'),
+ (0x217C, 'M', 'l'),
]
def _seg_23():
# type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
return [
- (0x217A, 'M', 'xi'),
- (0x217B, 'M', 'xii'),
- (0x217C, 'M', 'l'),
(0x217D, 'M', 'c'),
(0x217E, 'M', 'd'),
(0x217F, 'M', 'm'),
@@ -2524,14 +2523,14 @@ def _seg_23():
(0x24B7, 'M', 'b'),
(0x24B8, 'M', 'c'),
(0x24B9, 'M', 'd'),
+ (0x24BA, 'M', 'e'),
+ (0x24BB, 'M', 'f'),
+ (0x24BC, 'M', 'g'),
]
def _seg_24():
# type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
return [
- (0x24BA, 'M', 'e'),
- (0x24BB, 'M', 'f'),
- (0x24BC, 'M', 'g'),
(0x24BD, 'M', 'h'),
(0x24BE, 'M', 'i'),
(0x24BF, 'M', 'j'),
@@ -2629,23 +2628,22 @@ def _seg_24():
(0x2C23, 'M', 'ⱓ'),
(0x2C24, 'M', 'ⱔ'),
(0x2C25, 'M', 'ⱕ'),
+ (0x2C26, 'M', 'ⱖ'),
+ (0x2C27, 'M', 'ⱗ'),
+ (0x2C28, 'M', 'ⱘ'),
]
def _seg_25():
# type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
return [
- (0x2C26, 'M', 'ⱖ'),
- (0x2C27, 'M', 'ⱗ'),
- (0x2C28, 'M', 'ⱘ'),
(0x2C29, 'M', 'ⱙ'),
(0x2C2A, 'M', 'ⱚ'),
(0x2C2B, 'M', 'ⱛ'),
(0x2C2C, 'M', 'ⱜ'),
(0x2C2D, 'M', 'ⱝ'),
(0x2C2E, 'M', 'ⱞ'),
- (0x2C2F, 'X'),
+ (0x2C2F, 'M', 'ⱟ'),
(0x2C30, 'V'),
- (0x2C5F, 'X'),
(0x2C60, 'M', 'ⱡ'),
(0x2C61, 'V'),
(0x2C62, 'M', 'ɫ'),
@@ -2734,15 +2732,15 @@ def _seg_25():
(0x2CBC, 'M', 'ⲽ'),
(0x2CBD, 'V'),
(0x2CBE, 'M', 'ⲿ'),
+ (0x2CBF, 'V'),
+ (0x2CC0, 'M', 'ⳁ'),
+ (0x2CC1, 'V'),
+ (0x2CC2, 'M', 'ⳃ'),
]
def _seg_26():
# type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
return [
- (0x2CBF, 'V'),
- (0x2CC0, 'M', 'ⳁ'),
- (0x2CC1, 'V'),
- (0x2CC2, 'M', 'ⳃ'),
(0x2CC3, 'V'),
(0x2CC4, 'M', 'ⳅ'),
(0x2CC5, 'V'),
@@ -2813,7 +2811,7 @@ def _seg_26():
(0x2DD8, 'V'),
(0x2DDF, 'X'),
(0x2DE0, 'V'),
- (0x2E53, 'X'),
+ (0x2E5E, 'X'),
(0x2E80, 'V'),
(0x2E9A, 'X'),
(0x2E9B, 'V'),
@@ -2839,15 +2837,15 @@ def _seg_26():
(0x2F0F, 'M', '几'),
(0x2F10, 'M', '凵'),
(0x2F11, 'M', '刀'),
+ (0x2F12, 'M', '力'),
+ (0x2F13, 'M', '勹'),
+ (0x2F14, 'M', '匕'),
+ (0x2F15, 'M', '匚'),
]
def _seg_27():
# type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
return [
- (0x2F12, 'M', '力'),
- (0x2F13, 'M', '勹'),
- (0x2F14, 'M', '匕'),
- (0x2F15, 'M', '匚'),
(0x2F16, 'M', '匸'),
(0x2F17, 'M', '十'),
(0x2F18, 'M', '卜'),
@@ -2944,15 +2942,15 @@ def _seg_27():
(0x2F73, 'M', '穴'),
(0x2F74, 'M', '立'),
(0x2F75, 'M', '竹'),
+ (0x2F76, 'M', '米'),
+ (0x2F77, 'M', '糸'),
+ (0x2F78, 'M', '缶'),
+ (0x2F79, 'M', '网'),
]
def _seg_28():
# type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
return [
- (0x2F76, 'M', '米'),
- (0x2F77, 'M', '糸'),
- (0x2F78, 'M', '缶'),
- (0x2F79, 'M', '网'),
(0x2F7A, 'M', '羊'),
(0x2F7B, 'M', '羽'),
(0x2F7C, 'M', '老'),
@@ -3049,15 +3047,15 @@ def _seg_28():
(0x3000, '3', ' '),
(0x3001, 'V'),
(0x3002, 'M', '.'),
+ (0x3003, 'V'),
+ (0x3036, 'M', '〒'),
+ (0x3037, 'V'),
+ (0x3038, 'M', '十'),
]
def _seg_29():
# type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
return [
- (0x3003, 'V'),
- (0x3036, 'M', '〒'),
- (0x3037, 'V'),
- (0x3038, 'M', '十'),
(0x3039, 'M', '卄'),
(0x303A, 'M', '卅'),
(0x303B, 'V'),
@@ -3154,15 +3152,15 @@ def _seg_29():
(0x317E, 'M', 'ᄶ'),
(0x317F, 'M', 'ᅀ'),
(0x3180, 'M', 'ᅇ'),
+ (0x3181, 'M', 'ᅌ'),
+ (0x3182, 'M', 'ᇱ'),
+ (0x3183, 'M', 'ᇲ'),
+ (0x3184, 'M', 'ᅗ'),
]
def _seg_30():
# type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
return [
- (0x3181, 'M', 'ᅌ'),
- (0x3182, 'M', 'ᇱ'),
- (0x3183, 'M', 'ᇲ'),
- (0x3184, 'M', 'ᅗ'),
(0x3185, 'M', 'ᅘ'),
(0x3186, 'M', 'ᅙ'),
(0x3187, 'M', 'ᆄ'),
@@ -3259,15 +3257,15 @@ def _seg_30():
(0x3240, '3', '(祭)'),
(0x3241, '3', '(休)'),
(0x3242, '3', '(自)'),
+ (0x3243, '3', '(至)'),
+ (0x3244, 'M', '問'),
+ (0x3245, 'M', '幼'),
+ (0x3246, 'M', '文'),
]
def _seg_31():
# type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
return [
- (0x3243, '3', '(至)'),
- (0x3244, 'M', '問'),
- (0x3245, 'M', '幼'),
- (0x3246, 'M', '文'),
(0x3247, 'M', '箏'),
(0x3248, 'V'),
(0x3250, 'M', 'pte'),
@@ -3364,15 +3362,15 @@ def _seg_31():
(0x32AB, 'M', '学'),
(0x32AC, 'M', '監'),
(0x32AD, 'M', '企'),
+ (0x32AE, 'M', '資'),
+ (0x32AF, 'M', '協'),
+ (0x32B0, 'M', '夜'),
+ (0x32B1, 'M', '36'),
]
def _seg_32():
# type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
return [
- (0x32AE, 'M', '資'),
- (0x32AF, 'M', '協'),
- (0x32B0, 'M', '夜'),
- (0x32B1, 'M', '36'),
(0x32B2, 'M', '37'),
(0x32B3, 'M', '38'),
(0x32B4, 'M', '39'),
@@ -3469,15 +3467,15 @@ def _seg_32():
(0x330F, 'M', 'ガンマ'),
(0x3310, 'M', 'ギガ'),
(0x3311, 'M', 'ギニー'),
+ (0x3312, 'M', 'キュリー'),
+ (0x3313, 'M', 'ギルダー'),
+ (0x3314, 'M', 'キロ'),
+ (0x3315, 'M', 'キログラム'),
]
def _seg_33():
# type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
return [
- (0x3312, 'M', 'キュリー'),
- (0x3313, 'M', 'ギルダー'),
- (0x3314, 'M', 'キロ'),
- (0x3315, 'M', 'キログラム'),
(0x3316, 'M', 'キロメートル'),
(0x3317, 'M', 'キロワット'),
(0x3318, 'M', 'グラム'),
@@ -3574,15 +3572,15 @@ def _seg_33():
(0x3373, 'M', 'au'),
(0x3374, 'M', 'bar'),
(0x3375, 'M', 'ov'),
+ (0x3376, 'M', 'pc'),
+ (0x3377, 'M', 'dm'),
+ (0x3378, 'M', 'dm2'),
+ (0x3379, 'M', 'dm3'),
]
def _seg_34():
# type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
return [
- (0x3376, 'M', 'pc'),
- (0x3377, 'M', 'dm'),
- (0x3378, 'M', 'dm2'),
- (0x3379, 'M', 'dm3'),
(0x337A, 'M', 'iu'),
(0x337B, 'M', '平成'),
(0x337C, 'M', '昭和'),
@@ -3679,15 +3677,15 @@ def _seg_34():
(0x33D7, 'M', 'ph'),
(0x33D8, 'X'),
(0x33D9, 'M', 'ppm'),
+ (0x33DA, 'M', 'pr'),
+ (0x33DB, 'M', 'sr'),
+ (0x33DC, 'M', 'sv'),
+ (0x33DD, 'M', 'wb'),
]
def _seg_35():
# type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
return [
- (0x33DA, 'M', 'pr'),
- (0x33DB, 'M', 'sr'),
- (0x33DC, 'M', 'sv'),
- (0x33DD, 'M', 'wb'),
(0x33DE, 'M', 'vm'),
(0x33DF, 'M', 'am'),
(0x33E0, 'M', '1日'),
@@ -3723,8 +3721,6 @@ def _seg_35():
(0x33FE, 'M', '31日'),
(0x33FF, 'M', 'gal'),
(0x3400, 'V'),
- (0x9FFD, 'X'),
- (0xA000, 'V'),
(0xA48D, 'X'),
(0xA490, 'V'),
(0xA4C7, 'X'),
@@ -3784,17 +3780,17 @@ def _seg_35():
(0xA685, 'V'),
(0xA686, 'M', 'ꚇ'),
(0xA687, 'V'),
- ]
-
-def _seg_36():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0xA688, 'M', 'ꚉ'),
(0xA689, 'V'),
(0xA68A, 'M', 'ꚋ'),
(0xA68B, 'V'),
(0xA68C, 'M', 'ꚍ'),
(0xA68D, 'V'),
+ ]
+
+def _seg_36():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0xA68E, 'M', 'ꚏ'),
(0xA68F, 'V'),
(0xA690, 'M', 'ꚑ'),
@@ -3889,17 +3885,17 @@ def _seg_36():
(0xA76C, 'M', 'ꝭ'),
(0xA76D, 'V'),
(0xA76E, 'M', 'ꝯ'),
- ]
-
-def _seg_37():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0xA76F, 'V'),
(0xA770, 'M', 'ꝯ'),
(0xA771, 'V'),
(0xA779, 'M', 'ꝺ'),
(0xA77A, 'V'),
(0xA77B, 'M', 'ꝼ'),
+ ]
+
+def _seg_37():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0xA77C, 'V'),
(0xA77D, 'M', 'ᵹ'),
(0xA77E, 'M', 'ꝿ'),
@@ -3962,7 +3958,8 @@ def _seg_37():
(0xA7BD, 'V'),
(0xA7BE, 'M', 'ꞿ'),
(0xA7BF, 'V'),
- (0xA7C0, 'X'),
+ (0xA7C0, 'M', 'ꟁ'),
+ (0xA7C1, 'V'),
(0xA7C2, 'M', 'ꟃ'),
(0xA7C3, 'V'),
(0xA7C4, 'M', 'ꞔ'),
@@ -3973,6 +3970,20 @@ def _seg_37():
(0xA7C9, 'M', 'ꟊ'),
(0xA7CA, 'V'),
(0xA7CB, 'X'),
+ (0xA7D0, 'M', 'ꟑ'),
+ (0xA7D1, 'V'),
+ (0xA7D2, 'X'),
+ (0xA7D3, 'V'),
+ (0xA7D4, 'X'),
+ (0xA7D5, 'V'),
+ (0xA7D6, 'M', 'ꟗ'),
+ (0xA7D7, 'V'),
+ (0xA7D8, 'M', 'ꟙ'),
+ (0xA7D9, 'V'),
+ (0xA7DA, 'X'),
+ (0xA7F2, 'M', 'c'),
+ (0xA7F3, 'M', 'f'),
+ (0xA7F4, 'M', 'q'),
(0xA7F5, 'M', 'ꟶ'),
(0xA7F6, 'V'),
(0xA7F8, 'M', 'ħ'),
@@ -3985,6 +3996,11 @@ def _seg_37():
(0xA878, 'X'),
(0xA880, 'V'),
(0xA8C6, 'X'),
+ ]
+
+def _seg_38():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0xA8CE, 'V'),
(0xA8DA, 'X'),
(0xA8E0, 'V'),
@@ -3994,11 +4010,6 @@ def _seg_37():
(0xA980, 'V'),
(0xA9CE, 'X'),
(0xA9CF, 'V'),
- ]
-
-def _seg_38():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0xA9DA, 'X'),
(0xA9DE, 'V'),
(0xA9FF, 'X'),
@@ -4090,6 +4101,11 @@ def _seg_38():
(0xABA8, 'M', 'Ꮨ'),
(0xABA9, 'M', ''),
(0xABAA, 'M', ''),
+ ]
+
+def _seg_39():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0xABAB, 'M', 'Ꮫ'),
(0xABAC, 'M', 'Ꮬ'),
(0xABAD, 'M', 'Ꮭ'),
@@ -4099,11 +4115,6 @@ def _seg_38():
(0xABB1, 'M', 'Ꮱ'),
(0xABB2, 'M', ''),
(0xABB3, 'M', 'Ꮳ'),
- ]
-
-def _seg_39():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0xABB4, 'M', 'Ꮴ'),
(0xABB5, 'M', 'Ꮵ'),
(0xABB6, 'M', ''),
@@ -4195,6 +4206,11 @@ def _seg_39():
(0xF943, 'M', '弄'),
(0xF944, 'M', '籠'),
(0xF945, 'M', '聾'),
+ ]
+
+def _seg_40():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0xF946, 'M', '牢'),
(0xF947, 'M', '磊'),
(0xF948, 'M', '賂'),
@@ -4204,11 +4220,6 @@ def _seg_39():
(0xF94C, 'M', '樓'),
(0xF94D, 'M', '淚'),
(0xF94E, 'M', '漏'),
- ]
-
-def _seg_40():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0xF94F, 'M', '累'),
(0xF950, 'M', '縷'),
(0xF951, 'M', '陋'),
@@ -4300,6 +4311,11 @@ def _seg_40():
(0xF9A7, 'M', '獵'),
(0xF9A8, 'M', '令'),
(0xF9A9, 'M', '囹'),
+ ]
+
+def _seg_41():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0xF9AA, 'M', '寧'),
(0xF9AB, 'M', '嶺'),
(0xF9AC, 'M', '怜'),
@@ -4309,11 +4325,6 @@ def _seg_40():
(0xF9B0, 'M', '聆'),
(0xF9B1, 'M', '鈴'),
(0xF9B2, 'M', '零'),
- ]
-
-def _seg_41():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0xF9B3, 'M', '靈'),
(0xF9B4, 'M', '領'),
(0xF9B5, 'M', '例'),
@@ -4405,6 +4416,11 @@ def _seg_41():
(0xFA0B, 'M', '廓'),
(0xFA0C, 'M', '兀'),
(0xFA0D, 'M', '嗀'),
+ ]
+
+def _seg_42():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0xFA0E, 'V'),
(0xFA10, 'M', '塚'),
(0xFA11, 'V'),
@@ -4414,11 +4430,6 @@ def _seg_41():
(0xFA16, 'M', '猪'),
(0xFA17, 'M', '益'),
(0xFA18, 'M', '礼'),
- ]
-
-def _seg_42():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0xFA19, 'M', '神'),
(0xFA1A, 'M', '祥'),
(0xFA1B, 'M', '福'),
@@ -4510,6 +4521,11 @@ def _seg_42():
(0xFA76, 'M', '勇'),
(0xFA77, 'M', '勺'),
(0xFA78, 'M', '喝'),
+ ]
+
+def _seg_43():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0xFA79, 'M', '啕'),
(0xFA7A, 'M', '喙'),
(0xFA7B, 'M', '嗢'),
@@ -4519,11 +4535,6 @@ def _seg_42():
(0xFA7F, 'M', '奔'),
(0xFA80, 'M', '婢'),
(0xFA81, 'M', '嬨'),
- ]
-
-def _seg_43():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0xFA82, 'M', '廒'),
(0xFA83, 'M', '廙'),
(0xFA84, 'M', '彩'),
@@ -4615,6 +4626,11 @@ def _seg_43():
(0xFADA, 'X'),
(0xFB00, 'M', 'ff'),
(0xFB01, 'M', 'fi'),
+ ]
+
+def _seg_44():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0xFB02, 'M', 'fl'),
(0xFB03, 'M', 'ffi'),
(0xFB04, 'M', 'ffl'),
@@ -4624,11 +4640,6 @@ def _seg_43():
(0xFB14, 'M', 'մե'),
(0xFB15, 'M', 'մի'),
(0xFB16, 'M', 'վն'),
- ]
-
-def _seg_44():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0xFB17, 'M', 'մխ'),
(0xFB18, 'X'),
(0xFB1D, 'M', 'יִ'),
@@ -4713,13 +4724,18 @@ def _seg_44():
(0xFBAE, 'M', 'ے'),
(0xFBB0, 'M', 'ۓ'),
(0xFBB2, 'V'),
- (0xFBC2, 'X'),
+ (0xFBC3, 'X'),
(0xFBD3, 'M', 'ڭ'),
(0xFBD7, 'M', 'ۇ'),
(0xFBD9, 'M', 'ۆ'),
(0xFBDB, 'M', 'ۈ'),
(0xFBDD, 'M', 'ۇٴ'),
(0xFBDE, 'M', 'ۋ'),
+ ]
+
+def _seg_45():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0xFBE0, 'M', 'ۅ'),
(0xFBE2, 'M', 'ۉ'),
(0xFBE4, 'M', 'ې'),
@@ -4729,11 +4745,6 @@ def _seg_44():
(0xFBEE, 'M', 'ئو'),
(0xFBF0, 'M', 'ئۇ'),
(0xFBF2, 'M', 'ئۆ'),
- ]
-
-def _seg_45():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0xFBF4, 'M', 'ئۈ'),
(0xFBF6, 'M', 'ئې'),
(0xFBF9, 'M', 'ئى'),
@@ -4825,6 +4836,11 @@ def _seg_45():
(0xFC54, 'M', 'هي'),
(0xFC55, 'M', 'يج'),
(0xFC56, 'M', 'يح'),
+ ]
+
+def _seg_46():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0xFC57, 'M', 'يخ'),
(0xFC58, 'M', 'يم'),
(0xFC59, 'M', 'يى'),
@@ -4834,11 +4850,6 @@ def _seg_45():
(0xFC5D, 'M', 'ىٰ'),
(0xFC5E, '3', ' ٌّ'),
(0xFC5F, '3', ' ٍّ'),
- ]
-
-def _seg_46():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0xFC60, '3', ' َّ'),
(0xFC61, '3', ' ُّ'),
(0xFC62, '3', ' ِّ'),
@@ -4930,6 +4941,11 @@ def _seg_46():
(0xFCB8, 'M', 'طح'),
(0xFCB9, 'M', 'ظم'),
(0xFCBA, 'M', 'عج'),
+ ]
+
+def _seg_47():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0xFCBB, 'M', 'عم'),
(0xFCBC, 'M', 'غج'),
(0xFCBD, 'M', 'غم'),
@@ -4939,11 +4955,6 @@ def _seg_46():
(0xFCC1, 'M', 'فم'),
(0xFCC2, 'M', 'قح'),
(0xFCC3, 'M', 'قم'),
- ]
-
-def _seg_47():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0xFCC4, 'M', 'كج'),
(0xFCC5, 'M', 'كح'),
(0xFCC6, 'M', 'كخ'),
@@ -5035,6 +5046,11 @@ def _seg_47():
(0xFD1C, 'M', 'حي'),
(0xFD1D, 'M', 'جى'),
(0xFD1E, 'M', 'جي'),
+ ]
+
+def _seg_48():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0xFD1F, 'M', 'خى'),
(0xFD20, 'M', 'خي'),
(0xFD21, 'M', 'صى'),
@@ -5044,11 +5060,6 @@ def _seg_47():
(0xFD25, 'M', 'شج'),
(0xFD26, 'M', 'شح'),
(0xFD27, 'M', 'شخ'),
- ]
-
-def _seg_48():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0xFD28, 'M', 'شم'),
(0xFD29, 'M', 'شر'),
(0xFD2A, 'M', 'سر'),
@@ -5071,7 +5082,6 @@ def _seg_48():
(0xFD3B, 'M', 'ظم'),
(0xFD3C, 'M', 'اً'),
(0xFD3E, 'V'),
- (0xFD40, 'X'),
(0xFD50, 'M', 'تجم'),
(0xFD51, 'M', 'تحج'),
(0xFD53, 'M', 'تحم'),
@@ -5141,6 +5151,11 @@ def _seg_48():
(0xFDA4, 'M', 'تمى'),
(0xFDA5, 'M', 'جمي'),
(0xFDA6, 'M', 'جحى'),
+ ]
+
+def _seg_49():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0xFDA7, 'M', 'جمى'),
(0xFDA8, 'M', 'سخى'),
(0xFDA9, 'M', 'صحي'),
@@ -5149,11 +5164,6 @@ def _seg_48():
(0xFDAC, 'M', 'لجي'),
(0xFDAD, 'M', 'لمي'),
(0xFDAE, 'M', 'يحي'),
- ]
-
-def _seg_49():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0xFDAF, 'M', 'يجي'),
(0xFDB0, 'M', 'يمي'),
(0xFDB1, 'M', 'ممي'),
@@ -5180,6 +5190,8 @@ def _seg_49():
(0xFDC6, 'M', 'سخي'),
(0xFDC7, 'M', 'نجي'),
(0xFDC8, 'X'),
+ (0xFDCF, 'V'),
+ (0xFDD0, 'X'),
(0xFDF0, 'M', 'صلے'),
(0xFDF1, 'M', 'قلے'),
(0xFDF2, 'M', 'الله'),
@@ -5194,7 +5206,6 @@ def _seg_49():
(0xFDFB, '3', 'جل جلاله'),
(0xFDFC, 'M', 'ریال'),
(0xFDFD, 'V'),
- (0xFDFE, 'X'),
(0xFE00, 'I'),
(0xFE10, '3', ','),
(0xFE11, 'M', '、'),
@@ -5245,6 +5256,11 @@ def _seg_49():
(0xFE5B, '3', '{'),
(0xFE5C, '3', '}'),
(0xFE5D, 'M', ''),
+ ]
+
+def _seg_50():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0xFE5E, 'M', ''),
(0xFE5F, '3', '#'),
(0xFE60, '3', '&'),
@@ -5254,11 +5270,6 @@ def _seg_49():
(0xFE64, '3', '<'),
(0xFE65, '3', '>'),
(0xFE66, '3', '='),
- ]
-
-def _seg_50():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0xFE67, 'X'),
(0xFE68, '3', '\\'),
(0xFE69, '3', '$'),
@@ -5350,6 +5361,11 @@ def _seg_50():
(0xFF18, 'M', '8'),
(0xFF19, 'M', '9'),
(0xFF1A, '3', ':'),
+ ]
+
+def _seg_51():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0xFF1B, '3', ';'),
(0xFF1C, '3', '<'),
(0xFF1D, '3', '='),
@@ -5359,11 +5375,6 @@ def _seg_50():
(0xFF21, 'M', 'a'),
(0xFF22, 'M', 'b'),
(0xFF23, 'M', 'c'),
- ]
-
-def _seg_51():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0xFF24, 'M', 'd'),
(0xFF25, 'M', 'e'),
(0xFF26, 'M', 'f'),
@@ -5455,6 +5466,11 @@ def _seg_51():
(0xFF7C, 'M', 'シ'),
(0xFF7D, 'M', 'ス'),
(0xFF7E, 'M', 'セ'),
+ ]
+
+def _seg_52():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0xFF7F, 'M', 'ソ'),
(0xFF80, 'M', 'タ'),
(0xFF81, 'M', 'チ'),
@@ -5464,11 +5480,6 @@ def _seg_51():
(0xFF85, 'M', 'ナ'),
(0xFF86, 'M', 'ニ'),
(0xFF87, 'M', 'ヌ'),
- ]
-
-def _seg_52():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0xFF88, 'M', 'ネ'),
(0xFF89, 'M', ''),
(0xFF8A, 'M', 'ハ'),
@@ -5560,6 +5571,11 @@ def _seg_52():
(0xFFE7, 'X'),
(0xFFE8, 'M', '│'),
(0xFFE9, 'M', '←'),
+ ]
+
+def _seg_53():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0xFFEA, 'M', '↑'),
(0xFFEB, 'M', '→'),
(0xFFEC, 'M', '↓'),
@@ -5569,11 +5585,6 @@ def _seg_52():
(0x10000, 'V'),
(0x1000C, 'X'),
(0x1000D, 'V'),
- ]
-
-def _seg_53():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0x10027, 'X'),
(0x10028, 'V'),
(0x1003B, 'X'),
@@ -5665,6 +5676,11 @@ def _seg_53():
(0x104B3, 'M', '𐓛'),
(0x104B4, 'M', '𐓜'),
(0x104B5, 'M', '𐓝'),
+ ]
+
+def _seg_54():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0x104B6, 'M', '𐓞'),
(0x104B7, 'M', '𐓟'),
(0x104B8, 'M', '𐓠'),
@@ -5674,11 +5690,6 @@ def _seg_53():
(0x104BC, 'M', '𐓤'),
(0x104BD, 'M', '𐓥'),
(0x104BE, 'M', '𐓦'),
- ]
-
-def _seg_54():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0x104BF, 'M', '𐓧'),
(0x104C0, 'M', '𐓨'),
(0x104C1, 'M', '𐓩'),
@@ -5708,13 +5719,124 @@ def _seg_54():
(0x10530, 'V'),
(0x10564, 'X'),
(0x1056F, 'V'),
- (0x10570, 'X'),
+ (0x10570, 'M', '𐖗'),
+ (0x10571, 'M', '𐖘'),
+ (0x10572, 'M', '𐖙'),
+ (0x10573, 'M', '𐖚'),
+ (0x10574, 'M', '𐖛'),
+ (0x10575, 'M', '𐖜'),
+ (0x10576, 'M', '𐖝'),
+ (0x10577, 'M', '𐖞'),
+ (0x10578, 'M', '𐖟'),
+ (0x10579, 'M', '𐖠'),
+ (0x1057A, 'M', '𐖡'),
+ (0x1057B, 'X'),
+ (0x1057C, 'M', '𐖣'),
+ (0x1057D, 'M', '𐖤'),
+ (0x1057E, 'M', '𐖥'),
+ (0x1057F, 'M', '𐖦'),
+ (0x10580, 'M', '𐖧'),
+ (0x10581, 'M', '𐖨'),
+ (0x10582, 'M', '𐖩'),
+ (0x10583, 'M', '𐖪'),
+ (0x10584, 'M', '𐖫'),
+ (0x10585, 'M', '𐖬'),
+ (0x10586, 'M', '𐖭'),
+ (0x10587, 'M', '𐖮'),
+ (0x10588, 'M', '𐖯'),
+ (0x10589, 'M', '𐖰'),
+ (0x1058A, 'M', '𐖱'),
+ (0x1058B, 'X'),
+ (0x1058C, 'M', '𐖳'),
+ (0x1058D, 'M', '𐖴'),
+ (0x1058E, 'M', '𐖵'),
+ (0x1058F, 'M', '𐖶'),
+ (0x10590, 'M', '𐖷'),
+ (0x10591, 'M', '𐖸'),
+ (0x10592, 'M', '𐖹'),
+ (0x10593, 'X'),
+ (0x10594, 'M', '𐖻'),
+ (0x10595, 'M', '𐖼'),
+ (0x10596, 'X'),
+ (0x10597, 'V'),
+ (0x105A2, 'X'),
+ (0x105A3, 'V'),
+ (0x105B2, 'X'),
+ (0x105B3, 'V'),
+ (0x105BA, 'X'),
+ (0x105BB, 'V'),
+ (0x105BD, 'X'),
(0x10600, 'V'),
(0x10737, 'X'),
(0x10740, 'V'),
(0x10756, 'X'),
(0x10760, 'V'),
(0x10768, 'X'),
+ (0x10780, 'V'),
+ (0x10781, 'M', 'ː'),
+ (0x10782, 'M', 'ˑ'),
+ (0x10783, 'M', 'æ'),
+ (0x10784, 'M', 'ʙ'),
+ (0x10785, 'M', 'ɓ'),
+ (0x10786, 'X'),
+ (0x10787, 'M', 'ʣ'),
+ (0x10788, 'M', 'ꭦ'),
+ ]
+
+def _seg_55():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
+ (0x10789, 'M', 'ʥ'),
+ (0x1078A, 'M', 'ʤ'),
+ (0x1078B, 'M', 'ɖ'),
+ (0x1078C, 'M', 'ɗ'),
+ (0x1078D, 'M', 'ᶑ'),
+ (0x1078E, 'M', 'ɘ'),
+ (0x1078F, 'M', 'ɞ'),
+ (0x10790, 'M', 'ʩ'),
+ (0x10791, 'M', 'ɤ'),
+ (0x10792, 'M', 'ɢ'),
+ (0x10793, 'M', 'ɠ'),
+ (0x10794, 'M', 'ʛ'),
+ (0x10795, 'M', 'ħ'),
+ (0x10796, 'M', 'ʜ'),
+ (0x10797, 'M', 'ɧ'),
+ (0x10798, 'M', 'ʄ'),
+ (0x10799, 'M', 'ʪ'),
+ (0x1079A, 'M', 'ʫ'),
+ (0x1079B, 'M', 'ɬ'),
+ (0x1079C, 'M', '𝼄'),
+ (0x1079D, 'M', 'ꞎ'),
+ (0x1079E, 'M', 'ɮ'),
+ (0x1079F, 'M', '𝼅'),
+ (0x107A0, 'M', 'ʎ'),
+ (0x107A1, 'M', '𝼆'),
+ (0x107A2, 'M', 'ø'),
+ (0x107A3, 'M', 'ɶ'),
+ (0x107A4, 'M', 'ɷ'),
+ (0x107A5, 'M', 'q'),
+ (0x107A6, 'M', 'ɺ'),
+ (0x107A7, 'M', '𝼈'),
+ (0x107A8, 'M', 'ɽ'),
+ (0x107A9, 'M', 'ɾ'),
+ (0x107AA, 'M', 'ʀ'),
+ (0x107AB, 'M', 'ʨ'),
+ (0x107AC, 'M', 'ʦ'),
+ (0x107AD, 'M', 'ꭧ'),
+ (0x107AE, 'M', 'ʧ'),
+ (0x107AF, 'M', 'ʈ'),
+ (0x107B0, 'M', 'ⱱ'),
+ (0x107B1, 'X'),
+ (0x107B2, 'M', 'ʏ'),
+ (0x107B3, 'M', 'ʡ'),
+ (0x107B4, 'M', 'ʢ'),
+ (0x107B5, 'M', 'ʘ'),
+ (0x107B6, 'M', 'ǀ'),
+ (0x107B7, 'M', 'ǁ'),
+ (0x107B8, 'M', 'ǂ'),
+ (0x107B9, 'M', '𝼊'),
+ (0x107BA, 'M', '𝼞'),
+ (0x107BB, 'X'),
(0x10800, 'V'),
(0x10806, 'X'),
(0x10808, 'V'),
@@ -5764,6 +5886,11 @@ def _seg_54():
(0x10A60, 'V'),
(0x10AA0, 'X'),
(0x10AC0, 'V'),
+ ]
+
+def _seg_56():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0x10AE7, 'X'),
(0x10AEB, 'V'),
(0x10AF7, 'X'),
@@ -5779,11 +5906,6 @@ def _seg_54():
(0x10B9D, 'X'),
(0x10BA9, 'V'),
(0x10BB0, 'X'),
- ]
-
-def _seg_55():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0x10C00, 'V'),
(0x10C49, 'X'),
(0x10C80, 'M', '𐳀'),
@@ -5856,6 +5978,8 @@ def _seg_55():
(0x10F28, 'X'),
(0x10F30, 'V'),
(0x10F5A, 'X'),
+ (0x10F70, 'V'),
+ (0x10F8A, 'X'),
(0x10FB0, 'V'),
(0x10FCC, 'X'),
(0x10FE0, 'V'),
@@ -5863,11 +5987,16 @@ def _seg_55():
(0x11000, 'V'),
(0x1104E, 'X'),
(0x11052, 'V'),
- (0x11070, 'X'),
+ (0x11076, 'X'),
(0x1107F, 'V'),
(0x110BD, 'X'),
(0x110BE, 'V'),
- (0x110C2, 'X'),
+ ]
+
+def _seg_57():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
+ (0x110C3, 'X'),
(0x110D0, 'V'),
(0x110E9, 'X'),
(0x110F0, 'V'),
@@ -5884,11 +6013,6 @@ def _seg_55():
(0x111F5, 'X'),
(0x11200, 'V'),
(0x11212, 'X'),
- ]
-
-def _seg_56():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0x11213, 'V'),
(0x1123F, 'X'),
(0x11280, 'V'),
@@ -5954,7 +6078,7 @@ def _seg_56():
(0x11660, 'V'),
(0x1166D, 'X'),
(0x11680, 'V'),
- (0x116B9, 'X'),
+ (0x116BA, 'X'),
(0x116C0, 'V'),
(0x116CA, 'X'),
(0x11700, 'V'),
@@ -5962,7 +6086,7 @@ def _seg_56():
(0x1171D, 'V'),
(0x1172C, 'X'),
(0x11730, 'V'),
- (0x11740, 'X'),
+ (0x11747, 'X'),
(0x11800, 'V'),
(0x1183C, 'X'),
(0x118A0, 'M', '𑣀'),
@@ -5972,6 +6096,11 @@ def _seg_56():
(0x118A4, 'M', '𑣄'),
(0x118A5, 'M', '𑣅'),
(0x118A6, 'M', '𑣆'),
+ ]
+
+def _seg_58():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0x118A7, 'M', '𑣇'),
(0x118A8, 'M', '𑣈'),
(0x118A9, 'M', '𑣉'),
@@ -5989,11 +6118,6 @@ def _seg_56():
(0x118B5, 'M', '𑣕'),
(0x118B6, 'M', '𑣖'),
(0x118B7, 'M', '𑣗'),
- ]
-
-def _seg_57():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0x118B8, 'M', '𑣘'),
(0x118B9, 'M', '𑣙'),
(0x118BA, 'M', '𑣚'),
@@ -6030,7 +6154,7 @@ def _seg_57():
(0x11A48, 'X'),
(0x11A50, 'V'),
(0x11AA3, 'X'),
- (0x11AC0, 'V'),
+ (0x11AB0, 'V'),
(0x11AF9, 'X'),
(0x11C00, 'V'),
(0x11C09, 'X'),
@@ -6077,6 +6201,11 @@ def _seg_57():
(0x11FB0, 'V'),
(0x11FB1, 'X'),
(0x11FC0, 'V'),
+ ]
+
+def _seg_59():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0x11FF2, 'X'),
(0x11FFF, 'V'),
(0x1239A, 'X'),
@@ -6086,6 +6215,8 @@ def _seg_57():
(0x12475, 'X'),
(0x12480, 'V'),
(0x12544, 'X'),
+ (0x12F90, 'V'),
+ (0x12FF3, 'X'),
(0x13000, 'V'),
(0x1342F, 'X'),
(0x14400, 'V'),
@@ -6094,15 +6225,12 @@ def _seg_57():
(0x16A39, 'X'),
(0x16A40, 'V'),
(0x16A5F, 'X'),
- ]
-
-def _seg_58():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0x16A60, 'V'),
(0x16A6A, 'X'),
(0x16A6E, 'V'),
- (0x16A70, 'X'),
+ (0x16ABF, 'X'),
+ (0x16AC0, 'V'),
+ (0x16ACA, 'X'),
(0x16AD0, 'V'),
(0x16AEE, 'X'),
(0x16AF0, 'V'),
@@ -6167,11 +6295,22 @@ def _seg_58():
(0x18CD6, 'X'),
(0x18D00, 'V'),
(0x18D09, 'X'),
+ (0x1AFF0, 'V'),
+ (0x1AFF4, 'X'),
+ (0x1AFF5, 'V'),
+ (0x1AFFC, 'X'),
+ (0x1AFFD, 'V'),
+ (0x1AFFF, 'X'),
(0x1B000, 'V'),
- (0x1B11F, 'X'),
+ (0x1B123, 'X'),
(0x1B150, 'V'),
(0x1B153, 'X'),
(0x1B164, 'V'),
+ ]
+
+def _seg_60():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0x1B168, 'X'),
(0x1B170, 'V'),
(0x1B2FC, 'X'),
@@ -6186,6 +6325,12 @@ def _seg_58():
(0x1BC9C, 'V'),
(0x1BCA0, 'I'),
(0x1BCA4, 'X'),
+ (0x1CF00, 'V'),
+ (0x1CF2E, 'X'),
+ (0x1CF30, 'V'),
+ (0x1CF47, 'X'),
+ (0x1CF50, 'V'),
+ (0x1CFC4, 'X'),
(0x1D000, 'V'),
(0x1D0F6, 'X'),
(0x1D100, 'V'),
@@ -6199,11 +6344,6 @@ def _seg_58():
(0x1D163, 'M', '𝅘𝅥𝅱'),
(0x1D164, 'M', '𝅘𝅥𝅲'),
(0x1D165, 'V'),
- ]
-
-def _seg_59():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0x1D173, 'X'),
(0x1D17B, 'V'),
(0x1D1BB, 'M', '𝆹𝅥'),
@@ -6213,7 +6353,7 @@ def _seg_59():
(0x1D1BF, 'M', '𝆹𝅥𝅯'),
(0x1D1C0, 'M', '𝆺𝅥𝅯'),
(0x1D1C1, 'V'),
- (0x1D1E9, 'X'),
+ (0x1D1EB, 'X'),
(0x1D200, 'V'),
(0x1D246, 'X'),
(0x1D2E0, 'V'),
@@ -6271,6 +6411,11 @@ def _seg_59():
(0x1D42E, 'M', 'u'),
(0x1D42F, 'M', 'v'),
(0x1D430, 'M', 'w'),
+ ]
+
+def _seg_61():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0x1D431, 'M', 'x'),
(0x1D432, 'M', 'y'),
(0x1D433, 'M', 'z'),
@@ -6304,11 +6449,6 @@ def _seg_59():
(0x1D44F, 'M', 'b'),
(0x1D450, 'M', 'c'),
(0x1D451, 'M', 'd'),
- ]
-
-def _seg_60():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0x1D452, 'M', 'e'),
(0x1D453, 'M', 'f'),
(0x1D454, 'M', 'g'),
@@ -6376,6 +6516,11 @@ def _seg_60():
(0x1D492, 'M', 'q'),
(0x1D493, 'M', 'r'),
(0x1D494, 'M', 's'),
+ ]
+
+def _seg_62():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0x1D495, 'M', 't'),
(0x1D496, 'M', 'u'),
(0x1D497, 'M', 'v'),
@@ -6409,11 +6554,6 @@ def _seg_60():
(0x1D4B6, 'M', 'a'),
(0x1D4B7, 'M', 'b'),
(0x1D4B8, 'M', 'c'),
- ]
-
-def _seg_61():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0x1D4B9, 'M', 'd'),
(0x1D4BA, 'X'),
(0x1D4BB, 'M', 'f'),
@@ -6481,6 +6621,11 @@ def _seg_61():
(0x1D4F9, 'M', 'p'),
(0x1D4FA, 'M', 'q'),
(0x1D4FB, 'M', 'r'),
+ ]
+
+def _seg_63():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0x1D4FC, 'M', 's'),
(0x1D4FD, 'M', 't'),
(0x1D4FE, 'M', 'u'),
@@ -6514,11 +6659,6 @@ def _seg_61():
(0x1D51B, 'M', 'x'),
(0x1D51C, 'M', 'y'),
(0x1D51D, 'X'),
- ]
-
-def _seg_62():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0x1D51E, 'M', 'a'),
(0x1D51F, 'M', 'b'),
(0x1D520, 'M', 'c'),
@@ -6586,6 +6726,11 @@ def _seg_62():
(0x1D560, 'M', 'o'),
(0x1D561, 'M', 'p'),
(0x1D562, 'M', 'q'),
+ ]
+
+def _seg_64():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0x1D563, 'M', 'r'),
(0x1D564, 'M', 's'),
(0x1D565, 'M', 't'),
@@ -6619,11 +6764,6 @@ def _seg_62():
(0x1D581, 'M', 'v'),
(0x1D582, 'M', 'w'),
(0x1D583, 'M', 'x'),
- ]
-
-def _seg_63():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0x1D584, 'M', 'y'),
(0x1D585, 'M', 'z'),
(0x1D586, 'M', 'a'),
@@ -6691,6 +6831,11 @@ def _seg_63():
(0x1D5C4, 'M', 'k'),
(0x1D5C5, 'M', 'l'),
(0x1D5C6, 'M', 'm'),
+ ]
+
+def _seg_65():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0x1D5C7, 'M', 'n'),
(0x1D5C8, 'M', 'o'),
(0x1D5C9, 'M', 'p'),
@@ -6724,11 +6869,6 @@ def _seg_63():
(0x1D5E5, 'M', 'r'),
(0x1D5E6, 'M', 's'),
(0x1D5E7, 'M', 't'),
- ]
-
-def _seg_64():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0x1D5E8, 'M', 'u'),
(0x1D5E9, 'M', 'v'),
(0x1D5EA, 'M', 'w'),
@@ -6796,6 +6936,11 @@ def _seg_64():
(0x1D628, 'M', 'g'),
(0x1D629, 'M', 'h'),
(0x1D62A, 'M', 'i'),
+ ]
+
+def _seg_66():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0x1D62B, 'M', 'j'),
(0x1D62C, 'M', 'k'),
(0x1D62D, 'M', 'l'),
@@ -6829,11 +6974,6 @@ def _seg_64():
(0x1D649, 'M', 'n'),
(0x1D64A, 'M', 'o'),
(0x1D64B, 'M', 'p'),
- ]
-
-def _seg_65():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0x1D64C, 'M', 'q'),
(0x1D64D, 'M', 'r'),
(0x1D64E, 'M', 's'),
@@ -6901,6 +7041,11 @@ def _seg_65():
(0x1D68C, 'M', 'c'),
(0x1D68D, 'M', 'd'),
(0x1D68E, 'M', 'e'),
+ ]
+
+def _seg_67():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0x1D68F, 'M', 'f'),
(0x1D690, 'M', 'g'),
(0x1D691, 'M', 'h'),
@@ -6934,11 +7079,6 @@ def _seg_65():
(0x1D6AE, 'M', 'η'),
(0x1D6AF, 'M', 'θ'),
(0x1D6B0, 'M', 'ι'),
- ]
-
-def _seg_66():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0x1D6B1, 'M', 'κ'),
(0x1D6B2, 'M', 'λ'),
(0x1D6B3, 'M', 'μ'),
@@ -7006,6 +7146,11 @@ def _seg_66():
(0x1D6F2, 'M', 'ρ'),
(0x1D6F3, 'M', 'θ'),
(0x1D6F4, 'M', 'σ'),
+ ]
+
+def _seg_68():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0x1D6F5, 'M', 'τ'),
(0x1D6F6, 'M', 'υ'),
(0x1D6F7, 'M', 'φ'),
@@ -7039,11 +7184,6 @@ def _seg_66():
(0x1D714, 'M', 'ω'),
(0x1D715, 'M', '∂'),
(0x1D716, 'M', 'ε'),
- ]
-
-def _seg_67():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0x1D717, 'M', 'θ'),
(0x1D718, 'M', 'κ'),
(0x1D719, 'M', 'φ'),
@@ -7111,6 +7251,11 @@ def _seg_67():
(0x1D758, 'M', 'γ'),
(0x1D759, 'M', 'δ'),
(0x1D75A, 'M', 'ε'),
+ ]
+
+def _seg_69():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0x1D75B, 'M', 'ζ'),
(0x1D75C, 'M', 'η'),
(0x1D75D, 'M', 'θ'),
@@ -7144,11 +7289,6 @@ def _seg_67():
(0x1D779, 'M', 'κ'),
(0x1D77A, 'M', 'λ'),
(0x1D77B, 'M', 'μ'),
- ]
-
-def _seg_68():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0x1D77C, 'M', 'ν'),
(0x1D77D, 'M', 'ξ'),
(0x1D77E, 'M', 'ο'),
@@ -7216,6 +7356,11 @@ def _seg_68():
(0x1D7BE, 'M', 'υ'),
(0x1D7BF, 'M', 'φ'),
(0x1D7C0, 'M', 'χ'),
+ ]
+
+def _seg_70():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0x1D7C1, 'M', 'ψ'),
(0x1D7C2, 'M', 'ω'),
(0x1D7C3, 'M', '∂'),
@@ -7249,11 +7394,6 @@ def _seg_68():
(0x1D7E1, 'M', '9'),
(0x1D7E2, 'M', '0'),
(0x1D7E3, 'M', '1'),
- ]
-
-def _seg_69():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0x1D7E4, 'M', '2'),
(0x1D7E5, 'M', '3'),
(0x1D7E6, 'M', '4'),
@@ -7288,6 +7428,8 @@ def _seg_69():
(0x1DAA0, 'X'),
(0x1DAA1, 'V'),
(0x1DAB0, 'X'),
+ (0x1DF00, 'V'),
+ (0x1DF1F, 'X'),
(0x1E000, 'V'),
(0x1E007, 'X'),
(0x1E008, 'V'),
@@ -7306,10 +7448,25 @@ def _seg_69():
(0x1E14A, 'X'),
(0x1E14E, 'V'),
(0x1E150, 'X'),
+ (0x1E290, 'V'),
+ (0x1E2AF, 'X'),
(0x1E2C0, 'V'),
(0x1E2FA, 'X'),
(0x1E2FF, 'V'),
(0x1E300, 'X'),
+ (0x1E7E0, 'V'),
+ (0x1E7E7, 'X'),
+ (0x1E7E8, 'V'),
+ (0x1E7EC, 'X'),
+ (0x1E7ED, 'V'),
+ (0x1E7EF, 'X'),
+ (0x1E7F0, 'V'),
+ ]
+
+def _seg_71():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
+ (0x1E7FF, 'X'),
(0x1E800, 'V'),
(0x1E8C5, 'X'),
(0x1E8C7, 'V'),
@@ -7354,11 +7511,6 @@ def _seg_69():
(0x1E95A, 'X'),
(0x1E95E, 'V'),
(0x1E960, 'X'),
- ]
-
-def _seg_70():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0x1EC71, 'V'),
(0x1ECB5, 'X'),
(0x1ED01, 'V'),
@@ -7414,6 +7566,11 @@ def _seg_70():
(0x1EE31, 'M', 'ص'),
(0x1EE32, 'M', 'ق'),
(0x1EE33, 'X'),
+ ]
+
+def _seg_72():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0x1EE34, 'M', 'ش'),
(0x1EE35, 'M', 'ت'),
(0x1EE36, 'M', 'ث'),
@@ -7459,11 +7616,6 @@ def _seg_70():
(0x1EE68, 'M', 'ط'),
(0x1EE69, 'M', 'ي'),
(0x1EE6A, 'M', 'ك'),
- ]
-
-def _seg_71():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0x1EE6B, 'X'),
(0x1EE6C, 'M', 'م'),
(0x1EE6D, 'M', 'ن'),
@@ -7519,6 +7671,11 @@ def _seg_71():
(0x1EEA3, 'M', 'د'),
(0x1EEA4, 'X'),
(0x1EEA5, 'M', 'و'),
+ ]
+
+def _seg_73():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0x1EEA6, 'M', 'ز'),
(0x1EEA7, 'M', 'ح'),
(0x1EEA8, 'M', 'ط'),
@@ -7564,11 +7721,6 @@ def _seg_71():
(0x1F106, '3', '5,'),
(0x1F107, '3', '6,'),
(0x1F108, '3', '7,'),
- ]
-
-def _seg_72():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0x1F109, '3', '8,'),
(0x1F10A, '3', '9,'),
(0x1F10B, 'V'),
@@ -7624,6 +7776,11 @@ def _seg_72():
(0x1F141, 'M', 'r'),
(0x1F142, 'M', 's'),
(0x1F143, 'M', 't'),
+ ]
+
+def _seg_74():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0x1F144, 'M', 'u'),
(0x1F145, 'M', 'v'),
(0x1F146, 'M', 'w'),
@@ -7669,11 +7826,6 @@ def _seg_72():
(0x1F221, 'M', '終'),
(0x1F222, 'M', '生'),
(0x1F223, 'M', '販'),
- ]
-
-def _seg_73():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0x1F224, 'M', '声'),
(0x1F225, 'M', '吹'),
(0x1F226, 'M', '演'),
@@ -7716,7 +7868,7 @@ def _seg_73():
(0x1F266, 'X'),
(0x1F300, 'V'),
(0x1F6D8, 'X'),
- (0x1F6E0, 'V'),
+ (0x1F6DD, 'V'),
(0x1F6ED, 'X'),
(0x1F6F0, 'V'),
(0x1F6FD, 'X'),
@@ -7726,7 +7878,14 @@ def _seg_73():
(0x1F7D9, 'X'),
(0x1F7E0, 'V'),
(0x1F7EC, 'X'),
+ (0x1F7F0, 'V'),
+ (0x1F7F1, 'X'),
(0x1F800, 'V'),
+ ]
+
+def _seg_75():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0x1F80C, 'X'),
(0x1F810, 'V'),
(0x1F848, 'X'),
@@ -7739,27 +7898,27 @@ def _seg_73():
(0x1F8B0, 'V'),
(0x1F8B2, 'X'),
(0x1F900, 'V'),
- (0x1F979, 'X'),
- (0x1F97A, 'V'),
- (0x1F9CC, 'X'),
- (0x1F9CD, 'V'),
(0x1FA54, 'X'),
(0x1FA60, 'V'),
(0x1FA6E, 'X'),
(0x1FA70, 'V'),
(0x1FA75, 'X'),
(0x1FA78, 'V'),
- (0x1FA7B, 'X'),
+ (0x1FA7D, 'X'),
(0x1FA80, 'V'),
(0x1FA87, 'X'),
(0x1FA90, 'V'),
- (0x1FAA9, 'X'),
+ (0x1FAAD, 'X'),
(0x1FAB0, 'V'),
- (0x1FAB7, 'X'),
+ (0x1FABB, 'X'),
(0x1FAC0, 'V'),
- (0x1FAC3, 'X'),
+ (0x1FAC6, 'X'),
(0x1FAD0, 'V'),
- (0x1FAD7, 'X'),
+ (0x1FADA, 'X'),
+ (0x1FAE0, 'V'),
+ (0x1FAE8, 'X'),
+ (0x1FAF0, 'V'),
+ (0x1FAF7, 'X'),
(0x1FB00, 'V'),
(0x1FB93, 'X'),
(0x1FB94, 'V'),
@@ -7774,16 +7933,11 @@ def _seg_73():
(0x1FBF7, 'M', '7'),
(0x1FBF8, 'M', '8'),
(0x1FBF9, 'M', '9'),
- ]
-
-def _seg_74():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0x1FBFA, 'X'),
(0x20000, 'V'),
- (0x2A6DE, 'X'),
+ (0x2A6E0, 'X'),
(0x2A700, 'V'),
- (0x2B735, 'X'),
+ (0x2B739, 'X'),
(0x2B740, 'V'),
(0x2B81E, 'X'),
(0x2B820, 'V'),
@@ -7832,6 +7986,11 @@ def _seg_74():
(0x2F827, 'M', '勤'),
(0x2F828, 'M', '勺'),
(0x2F829, 'M', '包'),
+ ]
+
+def _seg_76():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0x2F82A, 'M', '匆'),
(0x2F82B, 'M', '北'),
(0x2F82C, 'M', '卉'),
@@ -7879,11 +8038,6 @@ def _seg_74():
(0x2F859, 'M', '𡓤'),
(0x2F85A, 'M', '売'),
(0x2F85B, 'M', '壷'),
- ]
-
-def _seg_75():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0x2F85C, 'M', '夆'),
(0x2F85D, 'M', '多'),
(0x2F85E, 'M', '夢'),
@@ -7937,6 +8091,11 @@ def _seg_75():
(0x2F88F, 'M', '𪎒'),
(0x2F890, 'M', '廾'),
(0x2F891, 'M', '𢌱'),
+ ]
+
+def _seg_77():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0x2F893, 'M', '舁'),
(0x2F894, 'M', '弢'),
(0x2F896, 'M', '㣇'),
@@ -7984,11 +8143,6 @@ def _seg_75():
(0x2F8C0, 'M', '揅'),
(0x2F8C1, 'M', '掩'),
(0x2F8C2, 'M', '㨮'),
- ]
-
-def _seg_76():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0x2F8C3, 'M', '摩'),
(0x2F8C4, 'M', '摾'),
(0x2F8C5, 'M', '撝'),
@@ -8042,6 +8196,11 @@ def _seg_76():
(0x2F8F5, 'M', '殺'),
(0x2F8F6, 'M', '殻'),
(0x2F8F7, 'M', '𣪍'),
+ ]
+
+def _seg_78():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0x2F8F8, 'M', '𡴋'),
(0x2F8F9, 'M', '𣫺'),
(0x2F8FA, 'M', '汎'),
@@ -8089,11 +8248,6 @@ def _seg_76():
(0x2F924, 'M', '犀'),
(0x2F925, 'M', '犕'),
(0x2F926, 'M', '𤜵'),
- ]
-
-def _seg_77():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0x2F927, 'M', '𤠔'),
(0x2F928, 'M', '獺'),
(0x2F929, 'M', '王'),
@@ -8147,6 +8301,11 @@ def _seg_77():
(0x2F95B, 'M', '穏'),
(0x2F95C, 'M', '𥥼'),
(0x2F95D, 'M', '𥪧'),
+ ]
+
+def _seg_79():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0x2F95F, 'X'),
(0x2F960, 'M', '䈂'),
(0x2F961, 'M', '𥮫'),
@@ -8194,11 +8353,6 @@ def _seg_77():
(0x2F98B, 'M', '舁'),
(0x2F98C, 'M', '舄'),
(0x2F98D, 'M', '辞'),
- ]
-
-def _seg_78():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0x2F98E, 'M', '䑫'),
(0x2F98F, 'M', '芑'),
(0x2F990, 'M', '芋'),
@@ -8252,6 +8406,11 @@ def _seg_78():
(0x2F9C0, 'M', '蟡'),
(0x2F9C1, 'M', '蠁'),
(0x2F9C2, 'M', '䗹'),
+ ]
+
+def _seg_80():
+ # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
+ return [
(0x2F9C3, 'M', '衠'),
(0x2F9C4, 'M', '衣'),
(0x2F9C5, 'M', '𧙧'),
@@ -8299,11 +8458,6 @@ def _seg_78():
(0x2F9EF, 'M', '䦕'),
(0x2F9F0, 'M', '閷'),
(0x2F9F1, 'M', '𨵷'),
- ]
-
-def _seg_79():
- # type: () -> List[Union[Tuple[int, str], Tuple[int, str, str]]]
- return [
(0x2F9F2, 'M', '䧦'),
(0x2F9F3, 'M', '雃'),
(0x2F9F4, 'M', '嶲'),
@@ -8435,4 +8589,5 @@ def _seg_79():
+ _seg_77()
+ _seg_78()
+ _seg_79()
+ + _seg_80()
) # type: Tuple[Union[Tuple[int, str], Tuple[int, str, str]], ...]
diff --git a/tools/idna-data b/tools/idna-data
index dae8901..c38a81d 100755
--- a/tools/idna-data
+++ b/tools/idna-data
@@ -8,7 +8,7 @@ if sys.version_info[0] < 3:
print("Only Python 3 supported.")
sys.exit(2)
-PREFERRED_VERSION = '12.1.0'
+PREFERRED_VERSION = '14.0.0'
UCD_URL = 'http://www.unicode.org/Public/{version}/ucd/{filename}'
UTS46_URL = 'http://www.unicode.org/Public/idna/{version}/{filename}'