]> Cypherpunks repositories - gostls13.git/commitdiff
unicode: strconv: regexp: Upgrade to Unicode 7.0.0.
authorMarcel van Lohuizen <mpvl@golang.org>
Mon, 18 Aug 2014 18:26:10 +0000 (20:26 +0200)
committerMarcel van Lohuizen <mpvl@golang.org>
Mon, 18 Aug 2014 18:26:10 +0000 (20:26 +0200)
LGTM=r, bradfitz
R=r, bradfitz
CC=golang-codereviews
https://golang.org/cl/127470043

api/except.txt
api/next.txt
src/pkg/regexp/syntax/parse.go
src/pkg/strconv/isprint.go
src/pkg/unicode/maketables.go
src/pkg/unicode/script_test.go
src/pkg/unicode/tables.go

index 1a8296635d7a2094bb9e93da5726e7bc73b9e8e0..6e40e1844ee5d71eee0353def0d948f54f6f4c5c 100644 (file)
@@ -327,3 +327,4 @@ pkg syscall (netbsd-arm), const SizeofIfData = 132
 pkg syscall (netbsd-arm), type IfMsghdr struct, Pad_cgo_1 [4]uint8
 pkg syscall (netbsd-arm-cgo), const SizeofIfData = 132
 pkg syscall (netbsd-arm-cgo), type IfMsghdr struct, Pad_cgo_1 [4]uint8
+pkg unicode, const Version = "6.3.0"
index 5e49b3f94fdc4a2ee01b04e3ff7c6c0203a8ebce..e8570a6f2b59e950630b694cc686b33525d4a5d7 100644 (file)
@@ -115,3 +115,27 @@ pkg debug/goobj, type Var struct, Kind int
 pkg debug/goobj, type Var struct, Name string
 pkg debug/goobj, type Var struct, Offset int
 pkg debug/goobj, type Var struct, Type SymID
+pkg unicode, const Version = "7.0.0"
+pkg unicode, var Bassa_Vah *RangeTable
+pkg unicode, var Caucasian_Albanian *RangeTable
+pkg unicode, var Duployan *RangeTable
+pkg unicode, var Elbasan *RangeTable
+pkg unicode, var Grantha *RangeTable
+pkg unicode, var Khojki *RangeTable
+pkg unicode, var Khudawadi *RangeTable
+pkg unicode, var Linear_A *RangeTable
+pkg unicode, var Mahajani *RangeTable
+pkg unicode, var Manichaean *RangeTable
+pkg unicode, var Mende_Kikakui *RangeTable
+pkg unicode, var Modi *RangeTable
+pkg unicode, var Mro *RangeTable
+pkg unicode, var Nabataean *RangeTable
+pkg unicode, var Old_North_Arabian *RangeTable
+pkg unicode, var Old_Permic *RangeTable
+pkg unicode, var Pahawh_Hmong *RangeTable
+pkg unicode, var Palmyrene *RangeTable
+pkg unicode, var Pau_Cin_Hau *RangeTable
+pkg unicode, var Psalter_Pahlavi *RangeTable
+pkg unicode, var Siddham *RangeTable
+pkg unicode, var Tirhuta *RangeTable
+pkg unicode, var Warang_Citi *RangeTable
index cb25dca39563a9abf5b19c20fa84ba45aa180ee9..08f8d307ae7853bac1b0953a6959bac9210cf133 100644 (file)
@@ -1639,7 +1639,7 @@ const (
        // minimum and maximum runes involved in folding.
        // checked during test.
        minFold = 0x0041
-       maxFold = 0x1044f
+       maxFold = 0x118df
 )
 
 // appendFoldedRange returns the result of appending the range lo-hi
index 91f1795356bec9cd77e29e09165091ae01209048..ba0adbdbb58ce4422e8d50dd63f3cde9d2c15ca3 100644 (file)
@@ -7,16 +7,15 @@
 
 package strconv
 
-// (470+136+60)*2 + (218)*4 = 2204 bytes
+// (468+138+67)*2 + (326)*4 = 2650 bytes
 
 var isPrint16 = []uint16{
        0x0020, 0x007e,
        0x00a1, 0x0377,
-       0x037a, 0x037e,
-       0x0384, 0x0527,
-       0x0531, 0x0556,
+       0x037a, 0x037f,
+       0x0384, 0x0556,
        0x0559, 0x058a,
-       0x058f, 0x05c7,
+       0x058d, 0x05c7,
        0x05d0, 0x05ea,
        0x05f0, 0x05f4,
        0x0606, 0x061b,
@@ -27,7 +26,7 @@ var isPrint16 = []uint16{
        0x0800, 0x082d,
        0x0830, 0x085b,
        0x085e, 0x085e,
-       0x08a0, 0x08ac,
+       0x08a0, 0x08b2,
        0x08e4, 0x098c,
        0x098f, 0x0990,
        0x0993, 0x09b2,
@@ -72,18 +71,17 @@ var isPrint16 = []uint16{
        0x0bd0, 0x0bd0,
        0x0bd7, 0x0bd7,
        0x0be6, 0x0bfa,
-       0x0c01, 0x0c39,
+       0x0c00, 0x0c39,
        0x0c3d, 0x0c4d,
        0x0c55, 0x0c59,
        0x0c60, 0x0c63,
        0x0c66, 0x0c6f,
-       0x0c78, 0x0c7f,
-       0x0c82, 0x0cb9,
+       0x0c78, 0x0cb9,
        0x0cbc, 0x0ccd,
        0x0cd5, 0x0cd6,
        0x0cde, 0x0ce3,
        0x0ce6, 0x0cf2,
-       0x0d02, 0x0d3a,
+       0x0d01, 0x0d3a,
        0x0d3d, 0x0d4e,
        0x0d57, 0x0d57,
        0x0d60, 0x0d63,
@@ -94,6 +92,7 @@ var isPrint16 = []uint16{
        0x0dc0, 0x0dc6,
        0x0dca, 0x0dca,
        0x0dcf, 0x0ddf,
+       0x0de6, 0x0def,
        0x0df2, 0x0df4,
        0x0e01, 0x0e3a,
        0x0e3f, 0x0e5b,
@@ -120,7 +119,7 @@ var isPrint16 = []uint16{
        0x1380, 0x1399,
        0x13a0, 0x13f4,
        0x1400, 0x169c,
-       0x16a0, 0x16f0,
+       0x16a0, 0x16f8,
        0x1700, 0x1714,
        0x1720, 0x1736,
        0x1740, 0x1753,
@@ -133,8 +132,7 @@ var isPrint16 = []uint16{
        0x1820, 0x1877,
        0x1880, 0x18aa,
        0x18b0, 0x18f5,
-       0x1900, 0x191c,
-       0x1920, 0x192b,
+       0x1900, 0x192b,
        0x1930, 0x193b,
        0x1940, 0x1940,
        0x1944, 0x196d,
@@ -147,6 +145,7 @@ var isPrint16 = []uint16{
        0x1a7f, 0x1a89,
        0x1a90, 0x1a99,
        0x1aa0, 0x1aad,
+       0x1ab0, 0x1abe,
        0x1b00, 0x1b4b,
        0x1b50, 0x1b7c,
        0x1b80, 0x1bf3,
@@ -154,8 +153,8 @@ var isPrint16 = []uint16{
        0x1c3b, 0x1c49,
        0x1c4d, 0x1c7f,
        0x1cc0, 0x1cc7,
-       0x1cd0, 0x1cf6,
-       0x1d00, 0x1de6,
+       0x1cd0, 0x1cf9,
+       0x1d00, 0x1df5,
        0x1dfc, 0x1f15,
        0x1f18, 0x1f1d,
        0x1f20, 0x1f45,
@@ -168,21 +167,23 @@ var isPrint16 = []uint16{
        0x2030, 0x205e,
        0x2070, 0x2071,
        0x2074, 0x209c,
-       0x20a0, 0x20ba,
+       0x20a0, 0x20bd,
        0x20d0, 0x20f0,
        0x2100, 0x2189,
-       0x2190, 0x23f3,
+       0x2190, 0x23fa,
        0x2400, 0x2426,
        0x2440, 0x244a,
-       0x2460, 0x2b4c,
-       0x2b50, 0x2b59,
+       0x2460, 0x2b73,
+       0x2b76, 0x2b95,
+       0x2b98, 0x2bb9,
+       0x2bbd, 0x2bd1,
        0x2c00, 0x2cf3,
        0x2cf9, 0x2d27,
        0x2d2d, 0x2d2d,
        0x2d30, 0x2d67,
        0x2d6f, 0x2d70,
        0x2d7f, 0x2d96,
-       0x2da0, 0x2e3b,
+       0x2da0, 0x2e42,
        0x2e80, 0x2ef3,
        0x2f00, 0x2fd5,
        0x2ff0, 0x2ffb,
@@ -196,11 +197,10 @@ var isPrint16 = []uint16{
        0xa000, 0xa48c,
        0xa490, 0xa4c6,
        0xa4d0, 0xa62b,
-       0xa640, 0xa697,
-       0xa69f, 0xa6f7,
-       0xa700, 0xa793,
-       0xa7a0, 0xa7aa,
-       0xa7f8, 0xa82b,
+       0xa640, 0xa6f7,
+       0xa700, 0xa7ad,
+       0xa7b0, 0xa7b1,
+       0xa7f7, 0xa82b,
        0xa830, 0xa839,
        0xa840, 0xa877,
        0xa880, 0xa8c4,
@@ -209,17 +209,16 @@ var isPrint16 = []uint16{
        0xa900, 0xa953,
        0xa95f, 0xa97c,
        0xa980, 0xa9d9,
-       0xa9de, 0xa9df,
-       0xaa00, 0xaa36,
+       0xa9de, 0xaa36,
        0xaa40, 0xaa4d,
        0xaa50, 0xaa59,
-       0xaa5c, 0xaa7b,
-       0xaa80, 0xaac2,
+       0xaa5c, 0xaac2,
        0xaadb, 0xaaf6,
        0xab01, 0xab06,
        0xab09, 0xab0e,
        0xab11, 0xab16,
-       0xab20, 0xab2e,
+       0xab20, 0xab5f,
+       0xab64, 0xab65,
        0xabc0, 0xabed,
        0xabf0, 0xabf9,
        0xac00, 0xd7a3,
@@ -235,7 +234,7 @@ var isPrint16 = []uint16{
        0xfd92, 0xfdc7,
        0xfdf0, 0xfdfd,
        0xfe00, 0xfe19,
-       0xfe20, 0xfe26,
+       0xfe20, 0xfe2d,
        0xfe30, 0xfe6b,
        0xfe70, 0xfefc,
        0xff01, 0xffbe,
@@ -252,15 +251,12 @@ var isNotPrint16 = []uint16{
        0x038b,
        0x038d,
        0x03a2,
+       0x0530,
        0x0560,
        0x0588,
        0x0590,
        0x06dd,
        0x083f,
-       0x08a1,
-       0x08ff,
-       0x0978,
-       0x0980,
        0x0984,
        0x09a9,
        0x09b1,
@@ -294,10 +290,10 @@ var isNotPrint16 = []uint16{
        0x0c0d,
        0x0c11,
        0x0c29,
-       0x0c34,
        0x0c45,
        0x0c49,
        0x0c57,
+       0x0c80,
        0x0c84,
        0x0c8d,
        0x0c91,
@@ -345,7 +341,9 @@ var isNotPrint16 = []uint16{
        0x170d,
        0x176d,
        0x1771,
+       0x191f,
        0x1a5f,
+       0x1cf7,
        0x1f58,
        0x1f5a,
        0x1f5c,
@@ -355,7 +353,7 @@ var isNotPrint16 = []uint16{
        0x1fdc,
        0x1ff5,
        0x208f,
-       0x2700,
+       0x2bc9,
        0x2c2f,
        0x2c5f,
        0x2d26,
@@ -372,9 +370,12 @@ var isNotPrint16 = []uint16{
        0x318f,
        0x321f,
        0x32ff,
+       0xa69e,
        0xa78f,
        0xa9ce,
+       0xa9ff,
        0xab27,
+       0xab2f,
        0xfb37,
        0xfb3d,
        0xfb3f,
@@ -392,21 +393,31 @@ var isPrint32 = []uint32{
        0x010080, 0x0100fa,
        0x010100, 0x010102,
        0x010107, 0x010133,
-       0x010137, 0x01018a,
+       0x010137, 0x01018c,
        0x010190, 0x01019b,
+       0x0101a0, 0x0101a0,
        0x0101d0, 0x0101fd,
        0x010280, 0x01029c,
        0x0102a0, 0x0102d0,
+       0x0102e0, 0x0102fb,
        0x010300, 0x010323,
        0x010330, 0x01034a,
+       0x010350, 0x01037a,
        0x010380, 0x0103c3,
        0x0103c8, 0x0103d5,
        0x010400, 0x01049d,
        0x0104a0, 0x0104a9,
+       0x010500, 0x010527,
+       0x010530, 0x010563,
+       0x01056f, 0x01056f,
+       0x010600, 0x010736,
+       0x010740, 0x010755,
+       0x010760, 0x010767,
        0x010800, 0x010805,
        0x010808, 0x010838,
        0x01083c, 0x01083c,
-       0x01083f, 0x01085f,
+       0x01083f, 0x01089e,
+       0x0108a7, 0x0108af,
        0x010900, 0x01091b,
        0x01091f, 0x010939,
        0x01093f, 0x01093f,
@@ -417,32 +428,72 @@ var isPrint32 = []uint32{
        0x010a38, 0x010a3a,
        0x010a3f, 0x010a47,
        0x010a50, 0x010a58,
-       0x010a60, 0x010a7f,
+       0x010a60, 0x010a9f,
+       0x010ac0, 0x010ae6,
+       0x010aeb, 0x010af6,
        0x010b00, 0x010b35,
        0x010b39, 0x010b55,
        0x010b58, 0x010b72,
-       0x010b78, 0x010b7f,
+       0x010b78, 0x010b91,
+       0x010b99, 0x010b9c,
+       0x010ba9, 0x010baf,
        0x010c00, 0x010c48,
        0x010e60, 0x010e7e,
        0x011000, 0x01104d,
        0x011052, 0x01106f,
-       0x011080, 0x0110c1,
+       0x01107f, 0x0110c1,
        0x0110d0, 0x0110e8,
        0x0110f0, 0x0110f9,
        0x011100, 0x011143,
+       0x011150, 0x011176,
        0x011180, 0x0111c8,
-       0x0111d0, 0x0111d9,
+       0x0111cd, 0x0111cd,
+       0x0111d0, 0x0111da,
+       0x0111e1, 0x0111f4,
+       0x011200, 0x01123d,
+       0x0112b0, 0x0112ea,
+       0x0112f0, 0x0112f9,
+       0x011301, 0x01130c,
+       0x01130f, 0x011310,
+       0x011313, 0x011339,
+       0x01133c, 0x011344,
+       0x011347, 0x011348,
+       0x01134b, 0x01134d,
+       0x011357, 0x011357,
+       0x01135d, 0x011363,
+       0x011366, 0x01136c,
+       0x011370, 0x011374,
+       0x011480, 0x0114c7,
+       0x0114d0, 0x0114d9,
+       0x011580, 0x0115b5,
+       0x0115b8, 0x0115c9,
+       0x011600, 0x011644,
+       0x011650, 0x011659,
        0x011680, 0x0116b7,
        0x0116c0, 0x0116c9,
-       0x012000, 0x01236e,
-       0x012400, 0x012462,
-       0x012470, 0x012473,
+       0x0118a0, 0x0118f2,
+       0x0118ff, 0x0118ff,
+       0x011ac0, 0x011af8,
+       0x012000, 0x012398,
+       0x012400, 0x012474,
        0x013000, 0x01342e,
        0x016800, 0x016a38,
+       0x016a40, 0x016a69,
+       0x016a6e, 0x016a6f,
+       0x016ad0, 0x016aed,
+       0x016af0, 0x016af5,
+       0x016b00, 0x016b45,
+       0x016b50, 0x016b77,
+       0x016b7d, 0x016b8f,
        0x016f00, 0x016f44,
        0x016f50, 0x016f7e,
        0x016f8f, 0x016f9f,
        0x01b000, 0x01b001,
+       0x01bc00, 0x01bc6a,
+       0x01bc70, 0x01bc7c,
+       0x01bc80, 0x01bc88,
+       0x01bc90, 0x01bc99,
+       0x01bc9c, 0x01bc9f,
        0x01d000, 0x01d0f5,
        0x01d100, 0x01d126,
        0x01d129, 0x01d172,
@@ -458,6 +509,8 @@ var isPrint32 = []uint32{
        0x01d54a, 0x01d6a5,
        0x01d6a8, 0x01d7cb,
        0x01d7ce, 0x01d7ff,
+       0x01e800, 0x01e8c4,
+       0x01e8c7, 0x01e8d6,
        0x01ee00, 0x01ee24,
        0x01ee27, 0x01ee3b,
        0x01ee42, 0x01ee42,
@@ -469,28 +522,30 @@ var isPrint32 = []uint32{
        0x01f000, 0x01f02b,
        0x01f030, 0x01f093,
        0x01f0a0, 0x01f0ae,
-       0x01f0b1, 0x01f0be,
-       0x01f0c1, 0x01f0df,
-       0x01f100, 0x01f10a,
+       0x01f0b1, 0x01f0f5,
+       0x01f100, 0x01f10c,
        0x01f110, 0x01f16b,
        0x01f170, 0x01f19a,
        0x01f1e6, 0x01f202,
        0x01f210, 0x01f23a,
        0x01f240, 0x01f248,
        0x01f250, 0x01f251,
-       0x01f300, 0x01f320,
-       0x01f330, 0x01f37c,
-       0x01f380, 0x01f393,
-       0x01f3a0, 0x01f3ca,
-       0x01f3e0, 0x01f3f0,
-       0x01f400, 0x01f4fc,
-       0x01f500, 0x01f53d,
-       0x01f540, 0x01f543,
-       0x01f550, 0x01f567,
-       0x01f5fb, 0x01f640,
-       0x01f645, 0x01f64f,
-       0x01f680, 0x01f6c5,
+       0x01f300, 0x01f32c,
+       0x01f330, 0x01f37d,
+       0x01f380, 0x01f3ce,
+       0x01f3d4, 0x01f3f7,
+       0x01f400, 0x01f54a,
+       0x01f550, 0x01f642,
+       0x01f645, 0x01f6cf,
+       0x01f6e0, 0x01f6ec,
+       0x01f6f0, 0x01f6f3,
        0x01f700, 0x01f773,
+       0x01f780, 0x01f7d4,
+       0x01f800, 0x01f80b,
+       0x01f810, 0x01f847,
+       0x01f850, 0x01f859,
+       0x01f860, 0x01f887,
+       0x01f890, 0x01f8ad,
        0x020000, 0x02a6d6,
        0x02a700, 0x02b734,
        0x02b740, 0x02b81d,
@@ -503,7 +558,6 @@ var isNotPrint32 = []uint16{ // add 0x10000 to each entry
        0x0027,
        0x003b,
        0x003e,
-       0x031f,
        0x039e,
        0x0809,
        0x0836,
@@ -513,6 +567,15 @@ var isNotPrint32 = []uint16{ // add 0x10000 to each entry
        0x0a18,
        0x10bd,
        0x1135,
+       0x1212,
+       0x1304,
+       0x1329,
+       0x1331,
+       0x1334,
+       0x246f,
+       0x6a5f,
+       0x6b5a,
+       0x6b62,
        0xd455,
        0xd49d,
        0xd4ad,
@@ -552,11 +615,10 @@ var isNotPrint32 = []uint16{ // add 0x10000 to each entry
        0xee8a,
        0xeea4,
        0xeeaa,
+       0xf0c0,
        0xf0d0,
        0xf12f,
-       0xf336,
-       0xf3c5,
-       0xf43f,
-       0xf441,
-       0xf4f8,
+       0xf4ff,
+       0xf57a,
+       0xf5a4,
 }
index 8116ab8a414b4ffc9f645c31d5e071a955751123..5de98c3b47afc665b28e1de7c093162699ba453c 100644 (file)
@@ -40,7 +40,7 @@ func main() {
 var dataURL = flag.String("data", "", "full URL for UnicodeData.txt; defaults to --url/UnicodeData.txt")
 var casefoldingURL = flag.String("casefolding", "", "full URL for CaseFolding.txt; defaults to --url/CaseFolding.txt")
 var url = flag.String("url",
-       "http://www.unicode.org/Public/6.3.0/ucd/",
+       "http://www.unicode.org/Public/7.0.0/ucd/",
        "URL of Unicode database directory")
 var tablelist = flag.String("tables",
        "all",
index e2ba0011aca312088a56ef4699d1458455317522..795cb4e171b85a6eb35aca2a9489d234bbd77e5b 100644 (file)
@@ -14,14 +14,15 @@ type T struct {
        script string
 }
 
-// Hand-chosen tests from Unicode 5.1.0, 6.0.0 and 6.2.0 mostly to discover when new
-// scripts and categories arise.
+// Hand-chosen tests from Unicode 5.1.0, 6.0.0, 6.2.0, 6.3.0 and 7.0.0 mostly to
+// discover when new scripts and categories arise.
 var inTest = []T{
        {0x06e2, "Arabic"},
        {0x0567, "Armenian"},
        {0x10b20, "Avestan"},
        {0x1b37, "Balinese"},
        {0xa6af, "Bamum"},
+       {0x16ada, "Bassa_Vah"},
        {0x1be1, "Batak"},
        {0x09c2, "Bengali"},
        {0x3115, "Bopomofo"},
@@ -31,6 +32,7 @@ var inTest = []T{
        {0x11011, "Brahmi"},
        {0x156d, "Canadian_Aboriginal"},
        {0x102a9, "Carian"},
+       {0x10563, "Caucasian_Albanian"},
        {0x11111, "Chakma"},
        {0xaa4d, "Cham"},
        {0x13c2, "Cherokee"},
@@ -42,11 +44,14 @@ var inTest = []T{
        {0xa663, "Cyrillic"},
        {0x10430, "Deseret"},
        {0x094a, "Devanagari"},
+       {0x1BC00, "Duployan"},
        {0x13001, "Egyptian_Hieroglyphs"},
+       {0x10500, "Elbasan"},
        {0x1271, "Ethiopic"},
        {0x10fc, "Georgian"},
        {0x2c40, "Glagolitic"},
        {0x10347, "Gothic"},
+       {0x11303, "Grantha"},
        {0x03ae, "Greek"},
        {0x0abf, "Gujarati"},
        {0x0a24, "Gurmukhi"},
@@ -66,40 +71,56 @@ var inTest = []T{
        {0xa928, "Kayah_Li"},
        {0x10a11, "Kharoshthi"},
        {0x17c6, "Khmer"},
+       {0x11211, "Khojki"},
+       {0x112df, "Khudawadi"},
        {0x0eaa, "Lao"},
        {0x1d79, "Latin"},
        {0x1c10, "Lepcha"},
        {0x1930, "Limbu"},
+       {0x10755, "Linear_A"},
        {0x1003c, "Linear_B"},
        {0xa4e1, "Lisu"},
        {0x10290, "Lycian"},
        {0x10930, "Lydian"},
+       {0x11173, "Mahajani"},
        {0x0d42, "Malayalam"},
        {0x0843, "Mandaic"},
+       {0x10ac8, "Manichaean"},
        {0xabd0, "Meetei_Mayek"},
+       {0x1e800, "Mende_Kikakui"},
        {0x1099f, "Meroitic_Hieroglyphs"},
        {0x109a0, "Meroitic_Cursive"},
        {0x16f00, "Miao"},
+       {0x11611, "Modi"},
        {0x1822, "Mongolian"},
+       {0x16a60, "Mro"},
        {0x104c, "Myanmar"},
+       {0x10880, "Nabataean"},
        {0x19c3, "New_Tai_Lue"},
        {0x07f8, "Nko"},
        {0x169b, "Ogham"},
        {0x1c6a, "Ol_Chiki"},
        {0x10310, "Old_Italic"},
+       {0x10a80, "Old_North_Arabian"},
+       {0x10350, "Old_Permic"},
        {0x103c9, "Old_Persian"},
        {0x10a6f, "Old_South_Arabian"},
        {0x10c20, "Old_Turkic"},
        {0x0b3e, "Oriya"},
        {0x10491, "Osmanya"},
+       {0x16b2b, "Pahawh_Hmong"},
+       {0x10876, "Palmyrene"},
+       {0x11ACE, "Pau_Cin_Hau"},
        {0xa860, "Phags_Pa"},
        {0x10918, "Phoenician"},
+       {0x10baf, "Psalter_Pahlavi"},
        {0xa949, "Rejang"},
        {0x16c0, "Runic"},
        {0x081d, "Samaritan"},
        {0xa892, "Saurashtra"},
        {0x111a0, "Sharada"},
        {0x10463, "Shavian"},
+       {0x115c1, "Siddham"},
        {0x0dbd, "Sinhala"},
        {0x110d0, "Sora_Sompeng"},
        {0x1ba3, "Sundanese"},
@@ -117,8 +138,10 @@ var inTest = []T{
        {0x0e46, "Thai"},
        {0x0f36, "Tibetan"},
        {0x2d55, "Tifinagh"},
+       {0x114d9, "Tirhuta"},
        {0x10388, "Ugaritic"},
        {0xa60e, "Vai"},
+       {0x118ff, "Warang_Citi"},
        {0xa216, "Yi"},
 }
 
index 5670d1c5b171b653584fe0ad445b2cd3e442e4b0..8b77dd6036bd8246e48768b6bcca69b6486c9abf 100644 (file)
@@ -3,13 +3,13 @@
 // license that can be found in the LICENSE file.
 
 // Generated by running
-//     maketables --tables=all --data=http://www.unicode.org/Public/6.3.0/ucd/UnicodeData.txt --casefolding=http://www.unicode.org/Public/6.3.0/ucd/CaseFolding.txt
+//     maketables --tables=all --data=http://www.unicode.org/Public/7.0.0/ucd/UnicodeData.txt --casefolding=http://www.unicode.org/Public/7.0.0/ucd/CaseFolding.txt
 // DO NOT EDIT
 
 package unicode
 
 // Version is the Unicode edition from which the tables are derived.
-const Version = "6.3.0"
+const Version = "7.0.0"
 
 // Categories is the set of Unicode category tables.
 var Categories = map[string]*RangeTable{
@@ -56,7 +56,7 @@ var _C = &RangeTable{
                {0x0001, 0x001f, 1},
                {0x007f, 0x009f, 1},
                {0x00ad, 0x0600, 1363},
-               {0x0601, 0x0604, 1},
+               {0x0601, 0x0605, 1},
                {0x061c, 0x06dd, 193},
                {0x070f, 0x180e, 4351},
                {0x200b, 0x200f, 1},
@@ -68,8 +68,9 @@ var _C = &RangeTable{
                {0xfffa, 0xfffb, 1},
        },
        R32: []Range32{
-               {0x110bd, 0x1d173, 49334},
-               {0x1d174, 0x1d17a, 1},
+               {0x110bd, 0x1bca0, 44003},
+               {0x1bca1, 0x1bca3, 1},
+               {0x1d173, 0x1d17a, 1},
                {0xe0001, 0xe0020, 31},
                {0xe0021, 0xe007f, 1},
                {0xf0000, 0xffffd, 1},
@@ -89,7 +90,7 @@ var _Cc = &RangeTable{
 var _Cf = &RangeTable{
        R16: []Range16{
                {0x00ad, 0x0600, 1363},
-               {0x0601, 0x0604, 1},
+               {0x0601, 0x0605, 1},
                {0x061c, 0x06dd, 193},
                {0x070f, 0x180e, 4351},
                {0x200b, 0x200f, 1},
@@ -100,8 +101,9 @@ var _Cf = &RangeTable{
                {0xfffa, 0xfffb, 1},
        },
        R32: []Range32{
-               {0x110bd, 0x1d173, 49334},
-               {0x1d174, 0x1d17a, 1},
+               {0x110bd, 0x1bca0, 44003},
+               {0x1bca1, 0x1bca3, 1},
+               {0x1d173, 0x1d17a, 1},
                {0xe0001, 0xe0020, 31},
                {0xe0021, 0xe007f, 1},
        },
@@ -138,13 +140,13 @@ var _L = &RangeTable{
                {0x0370, 0x0374, 1},
                {0x0376, 0x0377, 1},
                {0x037a, 0x037d, 1},
-               {0x0386, 0x0388, 2},
-               {0x0389, 0x038a, 1},
+               {0x037f, 0x0386, 7},
+               {0x0388, 0x038a, 1},
                {0x038c, 0x038e, 2},
                {0x038f, 0x03a1, 1},
                {0x03a3, 0x03f5, 1},
                {0x03f7, 0x0481, 1},
-               {0x048a, 0x0527, 1},
+               {0x048a, 0x052f, 1},
                {0x0531, 0x0556, 1},
                {0x0559, 0x0561, 8},
                {0x0562, 0x0587, 1},
@@ -168,13 +170,11 @@ var _L = &RangeTable{
                {0x081a, 0x0824, 10},
                {0x0828, 0x0840, 24},
                {0x0841, 0x0858, 1},
-               {0x08a0, 0x08a2, 2},
-               {0x08a3, 0x08ac, 1},
+               {0x08a0, 0x08b2, 1},
                {0x0904, 0x0939, 1},
                {0x093d, 0x0950, 19},
                {0x0958, 0x0961, 1},
-               {0x0971, 0x0977, 1},
-               {0x0979, 0x097f, 1},
+               {0x0971, 0x0980, 1},
                {0x0985, 0x098c, 1},
                {0x098f, 0x0990, 1},
                {0x0993, 0x09a8, 1},
@@ -226,8 +226,7 @@ var _L = &RangeTable{
                {0x0c06, 0x0c0c, 1},
                {0x0c0e, 0x0c10, 1},
                {0x0c12, 0x0c28, 1},
-               {0x0c2a, 0x0c33, 1},
-               {0x0c35, 0x0c39, 1},
+               {0x0c2a, 0x0c39, 1},
                {0x0c3d, 0x0c58, 27},
                {0x0c59, 0x0c60, 7},
                {0x0c61, 0x0c85, 36},
@@ -306,6 +305,7 @@ var _L = &RangeTable{
                {0x166f, 0x167f, 1},
                {0x1681, 0x169a, 1},
                {0x16a0, 0x16ea, 1},
+               {0x16f1, 0x16f8, 1},
                {0x1700, 0x170c, 1},
                {0x170e, 0x1711, 1},
                {0x1720, 0x1731, 1},
@@ -318,7 +318,7 @@ var _L = &RangeTable{
                {0x1880, 0x18a8, 1},
                {0x18aa, 0x18b0, 6},
                {0x18b1, 0x18f5, 1},
-               {0x1900, 0x191c, 1},
+               {0x1900, 0x191e, 1},
                {0x1950, 0x196d, 1},
                {0x1970, 0x1974, 1},
                {0x1980, 0x19ab, 1},
@@ -406,14 +406,14 @@ var _L = &RangeTable{
                {0xa610, 0xa61f, 1},
                {0xa62a, 0xa62b, 1},
                {0xa640, 0xa66e, 1},
-               {0xa67f, 0xa697, 1},
+               {0xa67f, 0xa69d, 1},
                {0xa6a0, 0xa6e5, 1},
                {0xa717, 0xa71f, 1},
                {0xa722, 0xa788, 1},
                {0xa78b, 0xa78e, 1},
-               {0xa790, 0xa793, 1},
-               {0xa7a0, 0xa7aa, 1},
-               {0xa7f8, 0xa801, 1},
+               {0xa790, 0xa7ad, 1},
+               {0xa7b0, 0xa7b1, 1},
+               {0xa7f7, 0xa801, 1},
                {0xa803, 0xa805, 1},
                {0xa807, 0xa80a, 1},
                {0xa80c, 0xa822, 1},
@@ -425,13 +425,16 @@ var _L = &RangeTable{
                {0xa930, 0xa946, 1},
                {0xa960, 0xa97c, 1},
                {0xa984, 0xa9b2, 1},
-               {0xa9cf, 0xaa00, 49},
-               {0xaa01, 0xaa28, 1},
+               {0xa9cf, 0xa9e0, 17},
+               {0xa9e1, 0xa9e4, 1},
+               {0xa9e6, 0xa9ef, 1},
+               {0xa9fa, 0xa9fe, 1},
+               {0xaa00, 0xaa28, 1},
                {0xaa40, 0xaa42, 1},
                {0xaa44, 0xaa4b, 1},
                {0xaa60, 0xaa76, 1},
-               {0xaa7a, 0xaa80, 6},
-               {0xaa81, 0xaaaf, 1},
+               {0xaa7a, 0xaa7e, 4},
+               {0xaa7f, 0xaaaf, 1},
                {0xaab1, 0xaab5, 4},
                {0xaab6, 0xaab9, 3},
                {0xaaba, 0xaabd, 1},
@@ -444,6 +447,9 @@ var _L = &RangeTable{
                {0xab11, 0xab16, 1},
                {0xab20, 0xab26, 1},
                {0xab28, 0xab2e, 1},
+               {0xab30, 0xab5a, 1},
+               {0xab5c, 0xab5f, 1},
+               {0xab64, 0xab65, 1},
                {0xabc0, 0xabe2, 1},
                {0xac00, 0xd7a3, 1},
                {0xd7b0, 0xd7c6, 1},
@@ -484,19 +490,27 @@ var _L = &RangeTable{
                {0x10080, 0x100fa, 1},
                {0x10280, 0x1029c, 1},
                {0x102a0, 0x102d0, 1},
-               {0x10300, 0x1031e, 1},
+               {0x10300, 0x1031f, 1},
                {0x10330, 0x10340, 1},
                {0x10342, 0x10349, 1},
+               {0x10350, 0x10375, 1},
                {0x10380, 0x1039d, 1},
                {0x103a0, 0x103c3, 1},
                {0x103c8, 0x103cf, 1},
                {0x10400, 0x1049d, 1},
+               {0x10500, 0x10527, 1},
+               {0x10530, 0x10563, 1},
+               {0x10600, 0x10736, 1},
+               {0x10740, 0x10755, 1},
+               {0x10760, 0x10767, 1},
                {0x10800, 0x10805, 1},
                {0x10808, 0x1080a, 2},
                {0x1080b, 0x10835, 1},
                {0x10837, 0x10838, 1},
                {0x1083c, 0x1083f, 3},
                {0x10840, 0x10855, 1},
+               {0x10860, 0x10876, 1},
+               {0x10880, 0x1089e, 1},
                {0x10900, 0x10915, 1},
                {0x10920, 0x10939, 1},
                {0x10980, 0x109b7, 1},
@@ -506,24 +520,61 @@ var _L = &RangeTable{
                {0x10a15, 0x10a17, 1},
                {0x10a19, 0x10a33, 1},
                {0x10a60, 0x10a7c, 1},
+               {0x10a80, 0x10a9c, 1},
+               {0x10ac0, 0x10ac7, 1},
+               {0x10ac9, 0x10ae4, 1},
                {0x10b00, 0x10b35, 1},
                {0x10b40, 0x10b55, 1},
                {0x10b60, 0x10b72, 1},
+               {0x10b80, 0x10b91, 1},
                {0x10c00, 0x10c48, 1},
                {0x11003, 0x11037, 1},
                {0x11083, 0x110af, 1},
                {0x110d0, 0x110e8, 1},
                {0x11103, 0x11126, 1},
-               {0x11183, 0x111b2, 1},
+               {0x11150, 0x11172, 1},
+               {0x11176, 0x11183, 13},
+               {0x11184, 0x111b2, 1},
                {0x111c1, 0x111c4, 1},
-               {0x11680, 0x116aa, 1},
-               {0x12000, 0x1236e, 1},
+               {0x111da, 0x11200, 38},
+               {0x11201, 0x11211, 1},
+               {0x11213, 0x1122b, 1},
+               {0x112b0, 0x112de, 1},
+               {0x11305, 0x1130c, 1},
+               {0x1130f, 0x11310, 1},
+               {0x11313, 0x11328, 1},
+               {0x1132a, 0x11330, 1},
+               {0x11332, 0x11333, 1},
+               {0x11335, 0x11339, 1},
+               {0x1133d, 0x1135d, 32},
+               {0x1135e, 0x11361, 1},
+               {0x11480, 0x114af, 1},
+               {0x114c4, 0x114c5, 1},
+               {0x114c7, 0x11580, 185},
+               {0x11581, 0x115ae, 1},
+               {0x11600, 0x1162f, 1},
+               {0x11644, 0x11680, 60},
+               {0x11681, 0x116aa, 1},
+               {0x118a0, 0x118df, 1},
+               {0x118ff, 0x11ac0, 449},
+               {0x11ac1, 0x11af8, 1},
+               {0x12000, 0x12398, 1},
                {0x13000, 0x1342e, 1},
                {0x16800, 0x16a38, 1},
+               {0x16a40, 0x16a5e, 1},
+               {0x16ad0, 0x16aed, 1},
+               {0x16b00, 0x16b2f, 1},
+               {0x16b40, 0x16b43, 1},
+               {0x16b63, 0x16b77, 1},
+               {0x16b7d, 0x16b8f, 1},
                {0x16f00, 0x16f44, 1},
                {0x16f50, 0x16f93, 67},
                {0x16f94, 0x16f9f, 1},
                {0x1b000, 0x1b001, 1},
+               {0x1bc00, 0x1bc6a, 1},
+               {0x1bc70, 0x1bc7c, 1},
+               {0x1bc80, 0x1bc88, 1},
+               {0x1bc90, 0x1bc99, 1},
                {0x1d400, 0x1d454, 1},
                {0x1d456, 0x1d49c, 1},
                {0x1d49e, 0x1d49f, 1},
@@ -554,6 +605,7 @@ var _L = &RangeTable{
                {0x1d78a, 0x1d7a8, 1},
                {0x1d7aa, 0x1d7c2, 1},
                {0x1d7c4, 0x1d7cb, 1},
+               {0x1e800, 0x1e8c4, 1},
                {0x1ee00, 0x1ee03, 1},
                {0x1ee05, 0x1ee1f, 1},
                {0x1ee21, 0x1ee22, 1},
@@ -637,7 +689,7 @@ var _Ll = &RangeTable{
                {0x0461, 0x0481, 2},
                {0x048b, 0x04bf, 2},
                {0x04c2, 0x04ce, 2},
-               {0x04cf, 0x0527, 2},
+               {0x04cf, 0x052f, 2},
                {0x0561, 0x0587, 1},
                {0x1d00, 0x1d2b, 1},
                {0x1d6b, 0x1d77, 1},
@@ -684,7 +736,7 @@ var _Ll = &RangeTable{
                {0x2d00, 0x2d25, 1},
                {0x2d27, 0x2d2d, 6},
                {0xa641, 0xa66d, 2},
-               {0xa681, 0xa697, 2},
+               {0xa681, 0xa69b, 2},
                {0xa723, 0xa72f, 2},
                {0xa730, 0xa731, 1},
                {0xa733, 0xa771, 2},
@@ -693,14 +745,18 @@ var _Ll = &RangeTable{
                {0xa77f, 0xa787, 2},
                {0xa78c, 0xa78e, 2},
                {0xa791, 0xa793, 2},
-               {0xa7a1, 0xa7a9, 2},
-               {0xa7fa, 0xfb00, 21254},
-               {0xfb01, 0xfb06, 1},
+               {0xa794, 0xa795, 1},
+               {0xa797, 0xa7a9, 2},
+               {0xa7fa, 0xab30, 822},
+               {0xab31, 0xab5a, 1},
+               {0xab64, 0xab65, 1},
+               {0xfb00, 0xfb06, 1},
                {0xfb13, 0xfb17, 1},
                {0xff41, 0xff5a, 1},
        },
        R32: []Range32{
                {0x10428, 0x1044f, 1},
+               {0x118c0, 0x118df, 1},
                {0x1d41a, 0x1d433, 1},
                {0x1d44e, 0x1d454, 1},
                {0x1d456, 0x1d467, 1},
@@ -765,15 +821,20 @@ var _Lm = &RangeTable{
                {0xa015, 0xa4f8, 1251},
                {0xa4f9, 0xa4fd, 1},
                {0xa60c, 0xa67f, 115},
+               {0xa69c, 0xa69d, 1},
                {0xa717, 0xa71f, 1},
                {0xa770, 0xa788, 24},
                {0xa7f8, 0xa7f9, 1},
-               {0xa9cf, 0xaa70, 161},
-               {0xaadd, 0xaaf3, 22},
-               {0xaaf4, 0xff70, 21628},
-               {0xff9e, 0xff9f, 1},
+               {0xa9cf, 0xa9e6, 23},
+               {0xaa70, 0xaadd, 109},
+               {0xaaf3, 0xaaf4, 1},
+               {0xab5c, 0xab5f, 1},
+               {0xff70, 0xff9e, 46},
+               {0xff9f, 0xff9f, 1},
        },
        R32: []Range32{
+               {0x16b40, 0x16b40, 1},
+               {0x16b41, 0x16b43, 1},
                {0x16f93, 0x16f9f, 1},
        },
 }
@@ -800,13 +861,11 @@ var _Lo = &RangeTable{
                {0x07cb, 0x07ea, 1},
                {0x0800, 0x0815, 1},
                {0x0840, 0x0858, 1},
-               {0x08a0, 0x08a2, 2},
-               {0x08a3, 0x08ac, 1},
+               {0x08a0, 0x08b2, 1},
                {0x0904, 0x0939, 1},
                {0x093d, 0x0950, 19},
                {0x0958, 0x0961, 1},
-               {0x0972, 0x0977, 1},
-               {0x0979, 0x097f, 1},
+               {0x0972, 0x0980, 1},
                {0x0985, 0x098c, 1},
                {0x098f, 0x0990, 1},
                {0x0993, 0x09a8, 1},
@@ -858,8 +917,7 @@ var _Lo = &RangeTable{
                {0x0c06, 0x0c0c, 1},
                {0x0c0e, 0x0c10, 1},
                {0x0c12, 0x0c28, 1},
-               {0x0c2a, 0x0c33, 1},
-               {0x0c35, 0x0c39, 1},
+               {0x0c2a, 0x0c39, 1},
                {0x0c3d, 0x0c58, 27},
                {0x0c59, 0x0c60, 7},
                {0x0c61, 0x0c85, 36},
@@ -935,6 +993,7 @@ var _Lo = &RangeTable{
                {0x166f, 0x167f, 1},
                {0x1681, 0x169a, 1},
                {0x16a0, 0x16ea, 1},
+               {0x16f1, 0x16f8, 1},
                {0x1700, 0x170c, 1},
                {0x170e, 0x1711, 1},
                {0x1720, 0x1731, 1},
@@ -948,7 +1007,7 @@ var _Lo = &RangeTable{
                {0x1880, 0x18a8, 1},
                {0x18aa, 0x18b0, 6},
                {0x18b1, 0x18f5, 1},
-               {0x1900, 0x191c, 1},
+               {0x1900, 0x191e, 1},
                {0x1950, 0x196d, 1},
                {0x1970, 0x1974, 1},
                {0x1980, 0x19ab, 1},
@@ -996,7 +1055,8 @@ var _Lo = &RangeTable{
                {0xa62a, 0xa62b, 1},
                {0xa66e, 0xa6a0, 50},
                {0xa6a1, 0xa6e5, 1},
-               {0xa7fb, 0xa801, 1},
+               {0xa7f7, 0xa7fb, 4},
+               {0xa7fc, 0xa801, 1},
                {0xa803, 0xa805, 1},
                {0xa807, 0xa80a, 1},
                {0xa80c, 0xa822, 1},
@@ -1008,13 +1068,16 @@ var _Lo = &RangeTable{
                {0xa930, 0xa946, 1},
                {0xa960, 0xa97c, 1},
                {0xa984, 0xa9b2, 1},
+               {0xa9e0, 0xa9e4, 1},
+               {0xa9e7, 0xa9ef, 1},
+               {0xa9fa, 0xa9fe, 1},
                {0xaa00, 0xaa28, 1},
                {0xaa40, 0xaa42, 1},
                {0xaa44, 0xaa4b, 1},
                {0xaa60, 0xaa6f, 1},
                {0xaa71, 0xaa76, 1},
-               {0xaa7a, 0xaa80, 6},
-               {0xaa81, 0xaaaf, 1},
+               {0xaa7a, 0xaa7e, 4},
+               {0xaa7f, 0xaaaf, 1},
                {0xaab1, 0xaab5, 4},
                {0xaab6, 0xaab9, 3},
                {0xaaba, 0xaabd, 1},
@@ -1065,19 +1128,27 @@ var _Lo = &RangeTable{
                {0x10080, 0x100fa, 1},
                {0x10280, 0x1029c, 1},
                {0x102a0, 0x102d0, 1},
-               {0x10300, 0x1031e, 1},
+               {0x10300, 0x1031f, 1},
                {0x10330, 0x10340, 1},
                {0x10342, 0x10349, 1},
+               {0x10350, 0x10375, 1},
                {0x10380, 0x1039d, 1},
                {0x103a0, 0x103c3, 1},
                {0x103c8, 0x103cf, 1},
                {0x10450, 0x1049d, 1},
+               {0x10500, 0x10527, 1},
+               {0x10530, 0x10563, 1},
+               {0x10600, 0x10736, 1},
+               {0x10740, 0x10755, 1},
+               {0x10760, 0x10767, 1},
                {0x10800, 0x10805, 1},
                {0x10808, 0x1080a, 2},
                {0x1080b, 0x10835, 1},
                {0x10837, 0x10838, 1},
                {0x1083c, 0x1083f, 3},
                {0x10840, 0x10855, 1},
+               {0x10860, 0x10876, 1},
+               {0x10880, 0x1089e, 1},
                {0x10900, 0x10915, 1},
                {0x10920, 0x10939, 1},
                {0x10980, 0x109b7, 1},
@@ -1087,24 +1158,60 @@ var _Lo = &RangeTable{
                {0x10a15, 0x10a17, 1},
                {0x10a19, 0x10a33, 1},
                {0x10a60, 0x10a7c, 1},
+               {0x10a80, 0x10a9c, 1},
+               {0x10ac0, 0x10ac7, 1},
+               {0x10ac9, 0x10ae4, 1},
                {0x10b00, 0x10b35, 1},
                {0x10b40, 0x10b55, 1},
                {0x10b60, 0x10b72, 1},
+               {0x10b80, 0x10b91, 1},
                {0x10c00, 0x10c48, 1},
                {0x11003, 0x11037, 1},
                {0x11083, 0x110af, 1},
                {0x110d0, 0x110e8, 1},
                {0x11103, 0x11126, 1},
-               {0x11183, 0x111b2, 1},
+               {0x11150, 0x11172, 1},
+               {0x11176, 0x11183, 13},
+               {0x11184, 0x111b2, 1},
                {0x111c1, 0x111c4, 1},
-               {0x11680, 0x116aa, 1},
-               {0x12000, 0x1236e, 1},
+               {0x111da, 0x11200, 38},
+               {0x11201, 0x11211, 1},
+               {0x11213, 0x1122b, 1},
+               {0x112b0, 0x112de, 1},
+               {0x11305, 0x1130c, 1},
+               {0x1130f, 0x11310, 1},
+               {0x11313, 0x11328, 1},
+               {0x1132a, 0x11330, 1},
+               {0x11332, 0x11333, 1},
+               {0x11335, 0x11339, 1},
+               {0x1133d, 0x1135d, 32},
+               {0x1135e, 0x11361, 1},
+               {0x11480, 0x114af, 1},
+               {0x114c4, 0x114c5, 1},
+               {0x114c7, 0x11580, 185},
+               {0x11581, 0x115ae, 1},
+               {0x11600, 0x1162f, 1},
+               {0x11644, 0x11680, 60},
+               {0x11681, 0x116aa, 1},
+               {0x118ff, 0x11ac0, 449},
+               {0x11ac1, 0x11af8, 1},
+               {0x12000, 0x12398, 1},
                {0x13000, 0x1342e, 1},
                {0x16800, 0x16a38, 1},
+               {0x16a40, 0x16a5e, 1},
+               {0x16ad0, 0x16aed, 1},
+               {0x16b00, 0x16b2f, 1},
+               {0x16b63, 0x16b77, 1},
+               {0x16b7d, 0x16b8f, 1},
                {0x16f00, 0x16f44, 1},
                {0x16f50, 0x1b000, 16560},
-               {0x1b001, 0x1ee00, 15871},
-               {0x1ee01, 0x1ee03, 1},
+               {0x1b001, 0x1bc00, 3071},
+               {0x1bc01, 0x1bc6a, 1},
+               {0x1bc70, 0x1bc7c, 1},
+               {0x1bc80, 0x1bc88, 1},
+               {0x1bc90, 0x1bc99, 1},
+               {0x1e800, 0x1e8c4, 1},
+               {0x1ee00, 0x1ee03, 1},
                {0x1ee05, 0x1ee1f, 1},
                {0x1ee21, 0x1ee22, 1},
                {0x1ee24, 0x1ee27, 3},
@@ -1185,8 +1292,9 @@ var _Lu = &RangeTable{
                {0x0244, 0x0246, 1},
                {0x0248, 0x024e, 2},
                {0x0370, 0x0372, 2},
-               {0x0376, 0x0386, 16},
-               {0x0388, 0x038a, 1},
+               {0x0376, 0x037f, 9},
+               {0x0386, 0x0388, 2},
+               {0x0389, 0x038a, 1},
                {0x038c, 0x038e, 2},
                {0x038f, 0x0391, 2},
                {0x0392, 0x03a1, 1},
@@ -1200,7 +1308,7 @@ var _Lu = &RangeTable{
                {0x0460, 0x0480, 2},
                {0x048a, 0x04c0, 2},
                {0x04c1, 0x04cd, 2},
-               {0x04d0, 0x0526, 2},
+               {0x04d0, 0x052e, 2},
                {0x0531, 0x0556, 1},
                {0x10a0, 0x10c5, 1},
                {0x10c7, 0x10cd, 6},
@@ -1239,18 +1347,21 @@ var _Lu = &RangeTable{
                {0x2ceb, 0x2ced, 2},
                {0x2cf2, 0xa640, 31054},
                {0xa642, 0xa66c, 2},
-               {0xa680, 0xa696, 2},
+               {0xa680, 0xa69a, 2},
                {0xa722, 0xa72e, 2},
                {0xa732, 0xa76e, 2},
                {0xa779, 0xa77d, 2},
                {0xa77e, 0xa786, 2},
                {0xa78b, 0xa78d, 2},
                {0xa790, 0xa792, 2},
-               {0xa7a0, 0xa7aa, 2},
+               {0xa796, 0xa7aa, 2},
+               {0xa7ab, 0xa7ad, 1},
+               {0xa7b0, 0xa7b1, 1},
                {0xff21, 0xff3a, 1},
        },
        R32: []Range32{
                {0x10400, 0x10427, 1},
+               {0x118a0, 0x118bf, 1},
                {0x1d400, 0x1d419, 1},
                {0x1d434, 0x1d44d, 1},
                {0x1d468, 0x1d481, 1},
@@ -1309,8 +1420,7 @@ var _M = &RangeTable{
                {0x0825, 0x0827, 1},
                {0x0829, 0x082d, 1},
                {0x0859, 0x085b, 1},
-               {0x08e4, 0x08fe, 1},
-               {0x0900, 0x0903, 1},
+               {0x08e4, 0x0903, 1},
                {0x093a, 0x093c, 1},
                {0x093e, 0x094f, 1},
                {0x0951, 0x0957, 1},
@@ -1346,21 +1456,21 @@ var _M = &RangeTable{
                {0x0bbf, 0x0bc2, 1},
                {0x0bc6, 0x0bc8, 1},
                {0x0bca, 0x0bcd, 1},
-               {0x0bd7, 0x0c01, 42},
-               {0x0c02, 0x0c03, 1},
+               {0x0bd7, 0x0c00, 41},
+               {0x0c01, 0x0c03, 1},
                {0x0c3e, 0x0c44, 1},
                {0x0c46, 0x0c48, 1},
                {0x0c4a, 0x0c4d, 1},
                {0x0c55, 0x0c56, 1},
                {0x0c62, 0x0c63, 1},
-               {0x0c82, 0x0c83, 1},
+               {0x0c81, 0x0c83, 1},
                {0x0cbc, 0x0cbe, 2},
                {0x0cbf, 0x0cc4, 1},
                {0x0cc6, 0x0cc8, 1},
                {0x0cca, 0x0ccd, 1},
                {0x0cd5, 0x0cd6, 1},
                {0x0ce2, 0x0ce3, 1},
-               {0x0d02, 0x0d03, 1},
+               {0x0d01, 0x0d03, 1},
                {0x0d3e, 0x0d44, 1},
                {0x0d46, 0x0d48, 1},
                {0x0d4a, 0x0d4d, 1},
@@ -1411,8 +1521,9 @@ var _M = &RangeTable{
                {0x1a17, 0x1a1b, 1},
                {0x1a55, 0x1a5e, 1},
                {0x1a60, 0x1a7c, 1},
-               {0x1a7f, 0x1b00, 129},
-               {0x1b01, 0x1b04, 1},
+               {0x1a7f, 0x1ab0, 49},
+               {0x1ab1, 0x1abe, 1},
+               {0x1b00, 0x1b04, 1},
                {0x1b34, 0x1b44, 1},
                {0x1b6b, 0x1b73, 1},
                {0x1b80, 0x1b82, 1},
@@ -1423,7 +1534,8 @@ var _M = &RangeTable{
                {0x1cd4, 0x1ce8, 1},
                {0x1ced, 0x1cf2, 5},
                {0x1cf3, 0x1cf4, 1},
-               {0x1dc0, 0x1de6, 1},
+               {0x1cf8, 0x1cf9, 1},
+               {0x1dc0, 0x1df5, 1},
                {0x1dfc, 0x1dff, 1},
                {0x20d0, 0x20f0, 1},
                {0x2cef, 0x2cf1, 1},
@@ -1444,9 +1556,11 @@ var _M = &RangeTable{
                {0xa947, 0xa953, 1},
                {0xa980, 0xa983, 1},
                {0xa9b3, 0xa9c0, 1},
-               {0xaa29, 0xaa36, 1},
+               {0xa9e5, 0xaa29, 68},
+               {0xaa2a, 0xaa36, 1},
                {0xaa43, 0xaa4c, 9},
                {0xaa4d, 0xaa7b, 46},
+               {0xaa7c, 0xaa7d, 1},
                {0xaab0, 0xaab2, 2},
                {0xaab3, 0xaab4, 1},
                {0xaab7, 0xaab8, 1},
@@ -1458,32 +1572,54 @@ var _M = &RangeTable{
                {0xabec, 0xabed, 1},
                {0xfb1e, 0xfe00, 738},
                {0xfe01, 0xfe0f, 1},
-               {0xfe20, 0xfe26, 1},
+               {0xfe20, 0xfe2d, 1},
        },
        R32: []Range32{
-               {0x101fd, 0x10a01, 2052},
-               {0x10a02, 0x10a03, 1},
+               {0x101fd, 0x102e0, 227},
+               {0x10376, 0x1037a, 1},
+               {0x10a01, 0x10a03, 1},
                {0x10a05, 0x10a06, 1},
                {0x10a0c, 0x10a0f, 1},
                {0x10a38, 0x10a3a, 1},
-               {0x10a3f, 0x11000, 1473},
+               {0x10a3f, 0x10ae5, 166},
+               {0x10ae6, 0x11000, 1306},
                {0x11001, 0x11002, 1},
                {0x11038, 0x11046, 1},
-               {0x11080, 0x11082, 1},
+               {0x1107f, 0x11082, 1},
                {0x110b0, 0x110ba, 1},
                {0x11100, 0x11102, 1},
                {0x11127, 0x11134, 1},
-               {0x11180, 0x11182, 1},
+               {0x11173, 0x11180, 13},
+               {0x11181, 0x11182, 1},
                {0x111b3, 0x111c0, 1},
+               {0x1122c, 0x11237, 1},
+               {0x112df, 0x112ea, 1},
+               {0x11301, 0x11303, 1},
+               {0x1133c, 0x1133e, 2},
+               {0x1133f, 0x11344, 1},
+               {0x11347, 0x11348, 1},
+               {0x1134b, 0x1134d, 1},
+               {0x11357, 0x11362, 11},
+               {0x11363, 0x11366, 3},
+               {0x11367, 0x1136c, 1},
+               {0x11370, 0x11374, 1},
+               {0x114b0, 0x114c3, 1},
+               {0x115af, 0x115b5, 1},
+               {0x115b8, 0x115c0, 1},
+               {0x11630, 0x11640, 1},
                {0x116ab, 0x116b7, 1},
+               {0x16af0, 0x16af4, 1},
+               {0x16b30, 0x16b36, 1},
                {0x16f51, 0x16f7e, 1},
                {0x16f8f, 0x16f92, 1},
+               {0x1bc9d, 0x1bc9e, 1},
                {0x1d165, 0x1d169, 1},
                {0x1d16d, 0x1d172, 1},
                {0x1d17b, 0x1d182, 1},
                {0x1d185, 0x1d18b, 1},
                {0x1d1aa, 0x1d1ad, 1},
                {0x1d242, 0x1d244, 1},
+               {0x1e8d0, 0x1e8d6, 1},
                {0xe0100, 0xe01ef, 1},
        },
 }
@@ -1562,8 +1698,7 @@ var _Mc = &RangeTable{
                {0x1b43, 0x1b44, 1},
                {0x1b82, 0x1ba1, 31},
                {0x1ba6, 0x1ba7, 1},
-               {0x1baa, 0x1bac, 2},
-               {0x1bad, 0x1be7, 58},
+               {0x1baa, 0x1be7, 61},
                {0x1bea, 0x1bec, 1},
                {0x1bee, 0x1bf2, 4},
                {0x1bf3, 0x1c24, 49},
@@ -1583,24 +1718,45 @@ var _Mc = &RangeTable{
                {0xaa2f, 0xaa30, 1},
                {0xaa33, 0xaa34, 1},
                {0xaa4d, 0xaa7b, 46},
-               {0xaaeb, 0xaaee, 3},
-               {0xaaef, 0xaaf5, 6},
-               {0xabe3, 0xabe4, 1},
-               {0xabe6, 0xabe7, 1},
-               {0xabe9, 0xabea, 1},
-               {0xabec, 0xabec, 1},
+               {0xaa7d, 0xaaeb, 110},
+               {0xaaee, 0xaaef, 1},
+               {0xaaf5, 0xabe3, 238},
+               {0xabe4, 0xabe6, 2},
+               {0xabe7, 0xabe9, 2},
+               {0xabea, 0xabec, 2},
        },
        R32: []Range32{
-               {0x11000, 0x11000, 1},
-               {0x11002, 0x11082, 128},
-               {0x110b0, 0x110b2, 1},
+               {0x11000, 0x11002, 2},
+               {0x11082, 0x110b0, 46},
+               {0x110b1, 0x110b2, 1},
                {0x110b7, 0x110b8, 1},
                {0x1112c, 0x11182, 86},
                {0x111b3, 0x111b5, 1},
                {0x111bf, 0x111c0, 1},
-               {0x116ac, 0x116ae, 2},
-               {0x116af, 0x116b6, 7},
-               {0x16f51, 0x16f7e, 1},
+               {0x1122c, 0x1122e, 1},
+               {0x11232, 0x11233, 1},
+               {0x11235, 0x112e0, 171},
+               {0x112e1, 0x112e2, 1},
+               {0x11302, 0x11303, 1},
+               {0x1133e, 0x1133f, 1},
+               {0x11341, 0x11344, 1},
+               {0x11347, 0x11348, 1},
+               {0x1134b, 0x1134d, 1},
+               {0x11357, 0x11362, 11},
+               {0x11363, 0x114b0, 333},
+               {0x114b1, 0x114b2, 1},
+               {0x114b9, 0x114bb, 2},
+               {0x114bc, 0x114be, 1},
+               {0x114c1, 0x115af, 238},
+               {0x115b0, 0x115b1, 1},
+               {0x115b8, 0x115bb, 1},
+               {0x115be, 0x11630, 114},
+               {0x11631, 0x11632, 1},
+               {0x1163b, 0x1163c, 1},
+               {0x1163e, 0x116ac, 110},
+               {0x116ae, 0x116af, 1},
+               {0x116b6, 0x16f51, 22683},
+               {0x16f52, 0x16f7e, 1},
                {0x1d165, 0x1d166, 1},
                {0x1d16d, 0x1d172, 1},
        },
@@ -1609,7 +1765,8 @@ var _Mc = &RangeTable{
 var _Me = &RangeTable{
        R16: []Range16{
                {0x0488, 0x0489, 1},
-               {0x20dd, 0x20e0, 1},
+               {0x1abe, 0x20dd, 1567},
+               {0x20de, 0x20e0, 1},
                {0x20e2, 0x20e4, 1},
                {0xa670, 0xa672, 1},
        },
@@ -1639,8 +1796,7 @@ var _Mn = &RangeTable{
                {0x0825, 0x0827, 1},
                {0x0829, 0x082d, 1},
                {0x0859, 0x085b, 1},
-               {0x08e4, 0x08fe, 1},
-               {0x0900, 0x0902, 1},
+               {0x08e4, 0x0902, 1},
                {0x093a, 0x093c, 2},
                {0x0941, 0x0948, 1},
                {0x094d, 0x0951, 4},
@@ -1667,16 +1823,17 @@ var _Mn = &RangeTable{
                {0x0b4d, 0x0b56, 9},
                {0x0b62, 0x0b63, 1},
                {0x0b82, 0x0bc0, 62},
-               {0x0bcd, 0x0c3e, 113},
-               {0x0c3f, 0x0c40, 1},
+               {0x0bcd, 0x0c00, 51},
+               {0x0c3e, 0x0c40, 1},
                {0x0c46, 0x0c48, 1},
                {0x0c4a, 0x0c4d, 1},
                {0x0c55, 0x0c56, 1},
                {0x0c62, 0x0c63, 1},
-               {0x0cbc, 0x0cbf, 3},
-               {0x0cc6, 0x0ccc, 6},
-               {0x0ccd, 0x0ce2, 21},
-               {0x0ce3, 0x0d41, 94},
+               {0x0c81, 0x0cbc, 59},
+               {0x0cbf, 0x0cc6, 7},
+               {0x0ccc, 0x0ccd, 1},
+               {0x0ce2, 0x0ce3, 1},
+               {0x0d01, 0x0d41, 64},
                {0x0d42, 0x0d44, 1},
                {0x0d4d, 0x0d62, 21},
                {0x0d63, 0x0dca, 103},
@@ -1728,8 +1885,9 @@ var _Mn = &RangeTable{
                {0x1a60, 0x1a62, 2},
                {0x1a65, 0x1a6c, 1},
                {0x1a73, 0x1a7c, 1},
-               {0x1a7f, 0x1b00, 129},
-               {0x1b01, 0x1b03, 1},
+               {0x1a7f, 0x1ab0, 49},
+               {0x1ab1, 0x1abd, 1},
+               {0x1b00, 0x1b03, 1},
                {0x1b34, 0x1b36, 2},
                {0x1b37, 0x1b3a, 1},
                {0x1b3c, 0x1b42, 6},
@@ -1737,17 +1895,18 @@ var _Mn = &RangeTable{
                {0x1b80, 0x1b81, 1},
                {0x1ba2, 0x1ba5, 1},
                {0x1ba8, 0x1ba9, 1},
-               {0x1bab, 0x1be6, 59},
-               {0x1be8, 0x1be9, 1},
-               {0x1bed, 0x1bef, 2},
-               {0x1bf0, 0x1bf1, 1},
+               {0x1bab, 0x1bad, 1},
+               {0x1be6, 0x1be8, 2},
+               {0x1be9, 0x1bed, 4},
+               {0x1bef, 0x1bf1, 1},
                {0x1c2c, 0x1c33, 1},
                {0x1c36, 0x1c37, 1},
                {0x1cd0, 0x1cd2, 1},
                {0x1cd4, 0x1ce0, 1},
                {0x1ce2, 0x1ce8, 1},
                {0x1ced, 0x1cf4, 7},
-               {0x1dc0, 0x1de6, 1},
+               {0x1cf8, 0x1cf9, 1},
+               {0x1dc0, 0x1df5, 1},
                {0x1dfc, 0x1dff, 1},
                {0x20d0, 0x20dc, 1},
                {0x20e1, 0x20e5, 4},
@@ -1770,13 +1929,13 @@ var _Mn = &RangeTable{
                {0xa980, 0xa982, 1},
                {0xa9b3, 0xa9b6, 3},
                {0xa9b7, 0xa9b9, 1},
-               {0xa9bc, 0xaa29, 109},
-               {0xaa2a, 0xaa2e, 1},
+               {0xa9bc, 0xa9e5, 41},
+               {0xaa29, 0xaa2e, 1},
                {0xaa31, 0xaa32, 1},
                {0xaa35, 0xaa36, 1},
                {0xaa43, 0xaa4c, 9},
-               {0xaab0, 0xaab2, 2},
-               {0xaab3, 0xaab4, 1},
+               {0xaa7c, 0xaab0, 52},
+               {0xaab2, 0xaab4, 1},
                {0xaab7, 0xaab8, 1},
                {0xaabe, 0xaabf, 1},
                {0xaac1, 0xaaec, 43},
@@ -1784,33 +1943,58 @@ var _Mn = &RangeTable{
                {0xabe5, 0xabe8, 3},
                {0xabed, 0xfb1e, 20273},
                {0xfe00, 0xfe0f, 1},
-               {0xfe20, 0xfe26, 1},
+               {0xfe20, 0xfe2d, 1},
        },
        R32: []Range32{
-               {0x101fd, 0x10a01, 2052},
-               {0x10a02, 0x10a03, 1},
+               {0x101fd, 0x102e0, 227},
+               {0x10376, 0x1037a, 1},
+               {0x10a01, 0x10a03, 1},
                {0x10a05, 0x10a06, 1},
                {0x10a0c, 0x10a0f, 1},
                {0x10a38, 0x10a3a, 1},
-               {0x10a3f, 0x11001, 1474},
+               {0x10a3f, 0x10ae5, 166},
+               {0x10ae6, 0x11001, 1307},
                {0x11038, 0x11046, 1},
-               {0x11080, 0x11081, 1},
+               {0x1107f, 0x11081, 1},
                {0x110b3, 0x110b6, 1},
                {0x110b9, 0x110ba, 1},
                {0x11100, 0x11102, 1},
                {0x11127, 0x1112b, 1},
                {0x1112d, 0x11134, 1},
-               {0x11180, 0x11181, 1},
-               {0x111b6, 0x111be, 1},
-               {0x116ab, 0x116ad, 2},
-               {0x116b0, 0x116b5, 1},
-               {0x116b7, 0x16f8f, 22744},
-               {0x16f90, 0x16f92, 1},
+               {0x11173, 0x11180, 13},
+               {0x11181, 0x111b6, 53},
+               {0x111b7, 0x111be, 1},
+               {0x1122f, 0x11231, 1},
+               {0x11234, 0x11236, 2},
+               {0x11237, 0x112df, 168},
+               {0x112e3, 0x112ea, 1},
+               {0x11301, 0x1133c, 59},
+               {0x11340, 0x11366, 38},
+               {0x11367, 0x1136c, 1},
+               {0x11370, 0x11374, 1},
+               {0x114b3, 0x114b8, 1},
+               {0x114ba, 0x114bf, 5},
+               {0x114c0, 0x114c2, 2},
+               {0x114c3, 0x115b2, 239},
+               {0x115b3, 0x115b5, 1},
+               {0x115bc, 0x115bd, 1},
+               {0x115bf, 0x115c0, 1},
+               {0x11633, 0x1163a, 1},
+               {0x1163d, 0x1163f, 2},
+               {0x11640, 0x116ab, 107},
+               {0x116ad, 0x116b0, 3},
+               {0x116b1, 0x116b5, 1},
+               {0x116b7, 0x16af0, 21561},
+               {0x16af1, 0x16af4, 1},
+               {0x16b30, 0x16b36, 1},
+               {0x16f8f, 0x16f92, 1},
+               {0x1bc9d, 0x1bc9e, 1},
                {0x1d167, 0x1d169, 1},
                {0x1d17b, 0x1d182, 1},
                {0x1d185, 0x1d18b, 1},
                {0x1d1aa, 0x1d1ad, 1},
                {0x1d242, 0x1d244, 1},
+               {0x1e8d0, 0x1e8d6, 1},
                {0xe0100, 0xe01ef, 1},
        },
 }
@@ -1836,6 +2020,7 @@ var _N = &RangeTable{
                {0x0c78, 0x0c7e, 1},
                {0x0ce6, 0x0cef, 1},
                {0x0d66, 0x0d75, 1},
+               {0x0de6, 0x0def, 1},
                {0x0e50, 0x0e59, 1},
                {0x0ed0, 0x0ed9, 1},
                {0x0f20, 0x0f33, 1},
@@ -1877,6 +2062,7 @@ var _N = &RangeTable{
                {0xa8d0, 0xa8d9, 1},
                {0xa900, 0xa909, 1},
                {0xa9d0, 0xa9d9, 1},
+               {0xa9f0, 0xa9f9, 1},
                {0xaa50, 0xaa59, 1},
                {0xabf0, 0xabf9, 1},
                {0xff10, 0xff19, 1},
@@ -1884,27 +2070,42 @@ var _N = &RangeTable{
        R32: []Range32{
                {0x10107, 0x10133, 1},
                {0x10140, 0x10178, 1},
-               {0x1018a, 0x10320, 406},
-               {0x10321, 0x10323, 1},
+               {0x1018a, 0x1018b, 1},
+               {0x102e1, 0x102fb, 1},
+               {0x10320, 0x10323, 1},
                {0x10341, 0x1034a, 9},
                {0x103d1, 0x103d5, 1},
                {0x104a0, 0x104a9, 1},
                {0x10858, 0x1085f, 1},
+               {0x10879, 0x1087f, 1},
+               {0x108a7, 0x108af, 1},
                {0x10916, 0x1091b, 1},
                {0x10a40, 0x10a47, 1},
                {0x10a7d, 0x10a7e, 1},
+               {0x10a9d, 0x10a9f, 1},
+               {0x10aeb, 0x10aef, 1},
                {0x10b58, 0x10b5f, 1},
                {0x10b78, 0x10b7f, 1},
+               {0x10ba9, 0x10baf, 1},
                {0x10e60, 0x10e7e, 1},
                {0x11052, 0x1106f, 1},
                {0x110f0, 0x110f9, 1},
                {0x11136, 0x1113f, 1},
                {0x111d0, 0x111d9, 1},
+               {0x111e1, 0x111f4, 1},
+               {0x112f0, 0x112f9, 1},
+               {0x114d0, 0x114d9, 1},
+               {0x11650, 0x11659, 1},
                {0x116c0, 0x116c9, 1},
-               {0x12400, 0x12462, 1},
+               {0x118e0, 0x118f2, 1},
+               {0x12400, 0x1246e, 1},
+               {0x16a60, 0x16a69, 1},
+               {0x16b50, 0x16b59, 1},
+               {0x16b5b, 0x16b61, 1},
                {0x1d360, 0x1d371, 1},
                {0x1d7ce, 0x1d7ff, 1},
-               {0x1f100, 0x1f10a, 1},
+               {0x1e8c7, 0x1e8cf, 1},
+               {0x1f100, 0x1f10c, 1},
        },
        LatinOffset: 4,
 }
@@ -1924,6 +2125,7 @@ var _Nd = &RangeTable{
                {0x0c66, 0x0c6f, 1},
                {0x0ce6, 0x0cef, 1},
                {0x0d66, 0x0d6f, 1},
+               {0x0de6, 0x0def, 1},
                {0x0e50, 0x0e59, 1},
                {0x0ed0, 0x0ed9, 1},
                {0x0f20, 0x0f29, 1},
@@ -1943,6 +2145,7 @@ var _Nd = &RangeTable{
                {0xa8d0, 0xa8d9, 1},
                {0xa900, 0xa909, 1},
                {0xa9d0, 0xa9d9, 1},
+               {0xa9f0, 0xa9f9, 1},
                {0xaa50, 0xaa59, 1},
                {0xabf0, 0xabf9, 1},
                {0xff10, 0xff19, 1},
@@ -1953,7 +2156,13 @@ var _Nd = &RangeTable{
                {0x110f0, 0x110f9, 1},
                {0x11136, 0x1113f, 1},
                {0x111d0, 0x111d9, 1},
+               {0x112f0, 0x112f9, 1},
+               {0x114d0, 0x114d9, 1},
+               {0x11650, 0x11659, 1},
                {0x116c0, 0x116c9, 1},
+               {0x118e0, 0x118e9, 1},
+               {0x16a60, 0x16a69, 1},
+               {0x16b50, 0x16b59, 1},
                {0x1d7ce, 0x1d7ff, 1},
        },
        LatinOffset: 1,
@@ -1973,7 +2182,7 @@ var _Nl = &RangeTable{
                {0x10140, 0x10174, 1},
                {0x10341, 0x1034a, 9},
                {0x103d1, 0x103d5, 1},
-               {0x12400, 0x12462, 1},
+               {0x12400, 0x1246e, 1},
        },
 }
 
@@ -2010,18 +2219,28 @@ var _No = &RangeTable{
        R32: []Range32{
                {0x10107, 0x10133, 1},
                {0x10175, 0x10178, 1},
-               {0x1018a, 0x10320, 406},
-               {0x10321, 0x10323, 1},
+               {0x1018a, 0x1018b, 1},
+               {0x102e1, 0x102fb, 1},
+               {0x10320, 0x10323, 1},
                {0x10858, 0x1085f, 1},
+               {0x10879, 0x1087f, 1},
+               {0x108a7, 0x108af, 1},
                {0x10916, 0x1091b, 1},
                {0x10a40, 0x10a47, 1},
                {0x10a7d, 0x10a7e, 1},
+               {0x10a9d, 0x10a9f, 1},
+               {0x10aeb, 0x10aef, 1},
                {0x10b58, 0x10b5f, 1},
                {0x10b78, 0x10b7f, 1},
+               {0x10ba9, 0x10baf, 1},
                {0x10e60, 0x10e7e, 1},
                {0x11052, 0x11065, 1},
+               {0x111e1, 0x111f4, 1},
+               {0x118ea, 0x118f2, 1},
+               {0x16b5b, 0x16b61, 1},
                {0x1d360, 0x1d371, 1},
-               {0x1f100, 0x1f10a, 1},
+               {0x1e8c7, 0x1e8cf, 1},
+               {0x1f100, 0x1f10c, 1},
        },
        LatinOffset: 3,
 }
@@ -2104,7 +2323,7 @@ var _P = &RangeTable{
                {0x2cfe, 0x2cff, 1},
                {0x2d70, 0x2e00, 144},
                {0x2e01, 0x2e2e, 1},
-               {0x2e30, 0x2e3b, 1},
+               {0x2e30, 0x2e42, 1},
                {0x3001, 0x3003, 1},
                {0x3008, 0x3011, 1},
                {0x3014, 0x301f, 1},
@@ -2144,17 +2363,29 @@ var _P = &RangeTable{
        R32: []Range32{
                {0x10100, 0x10102, 1},
                {0x1039f, 0x103d0, 49},
-               {0x10857, 0x1091f, 200},
-               {0x1093f, 0x10a50, 273},
-               {0x10a51, 0x10a58, 1},
-               {0x10a7f, 0x10b39, 186},
-               {0x10b3a, 0x10b3f, 1},
+               {0x1056f, 0x10857, 744},
+               {0x1091f, 0x1093f, 32},
+               {0x10a50, 0x10a58, 1},
+               {0x10a7f, 0x10af0, 113},
+               {0x10af1, 0x10af6, 1},
+               {0x10b39, 0x10b3f, 1},
+               {0x10b99, 0x10b9c, 1},
                {0x11047, 0x1104d, 1},
                {0x110bb, 0x110bc, 1},
                {0x110be, 0x110c1, 1},
                {0x11140, 0x11143, 1},
+               {0x11174, 0x11175, 1},
                {0x111c5, 0x111c8, 1},
-               {0x12470, 0x12473, 1},
+               {0x111cd, 0x11238, 107},
+               {0x11239, 0x1123d, 1},
+               {0x114c6, 0x115c1, 251},
+               {0x115c2, 0x115c9, 1},
+               {0x11641, 0x11643, 1},
+               {0x12470, 0x12474, 1},
+               {0x16a6e, 0x16a6f, 1},
+               {0x16af5, 0x16b37, 66},
+               {0x16b38, 0x16b3b, 1},
+               {0x16b44, 0x1bc9f, 20827},
        },
        LatinOffset: 11,
 }
@@ -2177,10 +2408,11 @@ var _Pd = &RangeTable{
                {0x2011, 0x2015, 1},
                {0x2e17, 0x2e1a, 3},
                {0x2e3a, 0x2e3b, 1},
-               {0x301c, 0x3030, 20},
-               {0x30a0, 0xfe31, 52625},
-               {0xfe32, 0xfe58, 38},
-               {0xfe63, 0xff0d, 170},
+               {0x2e40, 0x301c, 476},
+               {0x3030, 0x30a0, 112},
+               {0xfe31, 0xfe32, 1},
+               {0xfe58, 0xfe63, 11},
+               {0xff0d, 0xff0d, 1},
        },
 }
 
@@ -2202,7 +2434,7 @@ var _Pe = &RangeTable{
                {0x3009, 0x3011, 2},
                {0x3015, 0x301b, 2},
                {0x301e, 0x301f, 1},
-               {0xfd3f, 0xfe18, 217},
+               {0xfd3e, 0xfe18, 218},
                {0xfe36, 0xfe44, 2},
                {0xfe48, 0xfe5a, 18},
                {0xfe5c, 0xfe5e, 2},
@@ -2307,7 +2539,9 @@ var _Po = &RangeTable{
                {0x2e1f, 0x2e2a, 11},
                {0x2e2b, 0x2e2e, 1},
                {0x2e30, 0x2e39, 1},
-               {0x3001, 0x3003, 1},
+               {0x2e3c, 0x2e3f, 1},
+               {0x2e41, 0x3001, 448},
+               {0x3002, 0x3003, 1},
                {0x303d, 0x30fb, 190},
                {0xa4fe, 0xa4ff, 1},
                {0xa60d, 0xa60f, 1},
@@ -2346,17 +2580,29 @@ var _Po = &RangeTable{
                {0x10100, 0x10100, 1},
                {0x10101, 0x10102, 1},
                {0x1039f, 0x103d0, 49},
-               {0x10857, 0x1091f, 200},
-               {0x1093f, 0x10a50, 273},
-               {0x10a51, 0x10a58, 1},
-               {0x10a7f, 0x10b39, 186},
-               {0x10b3a, 0x10b3f, 1},
+               {0x1056f, 0x10857, 744},
+               {0x1091f, 0x1093f, 32},
+               {0x10a50, 0x10a58, 1},
+               {0x10a7f, 0x10af0, 113},
+               {0x10af1, 0x10af6, 1},
+               {0x10b39, 0x10b3f, 1},
+               {0x10b99, 0x10b9c, 1},
                {0x11047, 0x1104d, 1},
                {0x110bb, 0x110bc, 1},
                {0x110be, 0x110c1, 1},
                {0x11140, 0x11143, 1},
+               {0x11174, 0x11175, 1},
                {0x111c5, 0x111c8, 1},
-               {0x12470, 0x12473, 1},
+               {0x111cd, 0x11238, 107},
+               {0x11239, 0x1123d, 1},
+               {0x114c6, 0x115c1, 251},
+               {0x115c2, 0x115c9, 1},
+               {0x11641, 0x11643, 1},
+               {0x12470, 0x12474, 1},
+               {0x16a6e, 0x16a6f, 1},
+               {0x16af5, 0x16b37, 66},
+               {0x16b38, 0x16b3b, 1},
+               {0x16b44, 0x1bc9f, 20827},
        },
        LatinOffset: 8,
 }
@@ -2377,9 +2623,10 @@ var _Ps = &RangeTable{
                {0x29d8, 0x29da, 2},
                {0x29fc, 0x2e22, 1062},
                {0x2e24, 0x2e28, 2},
-               {0x3008, 0x3010, 2},
+               {0x2e42, 0x3008, 454},
+               {0x300a, 0x3010, 2},
                {0x3014, 0x301a, 2},
-               {0x301d, 0xfd3e, 52513},
+               {0x301d, 0xfd3f, 52514},
                {0xfe17, 0xfe35, 30},
                {0xfe37, 0xfe43, 2},
                {0xfe47, 0xfe59, 18},
@@ -2410,7 +2657,8 @@ var _S = &RangeTable{
                {0x02f0, 0x02ff, 1},
                {0x0375, 0x0384, 15},
                {0x0385, 0x03f6, 113},
-               {0x0482, 0x058f, 269},
+               {0x0482, 0x058d, 267},
+               {0x058e, 0x058f, 1},
                {0x0606, 0x0608, 1},
                {0x060b, 0x060e, 3},
                {0x060f, 0x06de, 207},
@@ -2446,7 +2694,7 @@ var _S = &RangeTable{
                {0x2044, 0x2052, 14},
                {0x207a, 0x207c, 1},
                {0x208a, 0x208c, 1},
-               {0x20a0, 0x20ba, 1},
+               {0x20a0, 0x20bd, 1},
                {0x2100, 0x2101, 1},
                {0x2103, 0x2106, 1},
                {0x2108, 0x2109, 1},
@@ -2461,19 +2709,21 @@ var _S = &RangeTable{
                {0x214f, 0x2190, 65},
                {0x2191, 0x2307, 1},
                {0x230c, 0x2328, 1},
-               {0x232b, 0x23f3, 1},
+               {0x232b, 0x23fa, 1},
                {0x2400, 0x2426, 1},
                {0x2440, 0x244a, 1},
                {0x249c, 0x24e9, 1},
-               {0x2500, 0x26ff, 1},
-               {0x2701, 0x2767, 1},
+               {0x2500, 0x2767, 1},
                {0x2794, 0x27c4, 1},
                {0x27c7, 0x27e5, 1},
                {0x27f0, 0x2982, 1},
                {0x2999, 0x29d7, 1},
                {0x29dc, 0x29fb, 1},
-               {0x29fe, 0x2b4c, 1},
-               {0x2b50, 0x2b59, 1},
+               {0x29fe, 0x2b73, 1},
+               {0x2b76, 0x2b95, 1},
+               {0x2b98, 0x2bb9, 1},
+               {0x2bbd, 0x2bc8, 1},
+               {0x2bca, 0x2bd1, 1},
                {0x2ce5, 0x2cea, 1},
                {0x2e80, 0x2e99, 1},
                {0x2e9b, 0x2ef3, 1},
@@ -2502,8 +2752,8 @@ var _S = &RangeTable{
                {0xa828, 0xa82b, 1},
                {0xa836, 0xa839, 1},
                {0xaa77, 0xaa79, 1},
-               {0xfb29, 0xfbb2, 137},
-               {0xfbb3, 0xfbc1, 1},
+               {0xab5b, 0xfb29, 20430},
+               {0xfbb2, 0xfbc1, 1},
                {0xfdfc, 0xfdfd, 1},
                {0xfe62, 0xfe64, 2},
                {0xfe65, 0xfe66, 1},
@@ -2519,8 +2769,14 @@ var _S = &RangeTable{
        R32: []Range32{
                {0x10137, 0x1013f, 1},
                {0x10179, 0x10189, 1},
-               {0x10190, 0x1019b, 1},
-               {0x101d0, 0x101fc, 1},
+               {0x1018c, 0x10190, 4},
+               {0x10191, 0x1019b, 1},
+               {0x101a0, 0x101d0, 48},
+               {0x101d1, 0x101fc, 1},
+               {0x10877, 0x10878, 1},
+               {0x10ac8, 0x16b3c, 24692},
+               {0x16b3d, 0x16b3f, 1},
+               {0x16b45, 0x1bc9c, 20823},
                {0x1d000, 0x1d0f5, 1},
                {0x1d100, 0x1d126, 1},
                {0x1d129, 0x1d164, 1},
@@ -2540,9 +2796,9 @@ var _S = &RangeTable{
                {0x1f000, 0x1f02b, 1},
                {0x1f030, 0x1f093, 1},
                {0x1f0a0, 0x1f0ae, 1},
-               {0x1f0b1, 0x1f0be, 1},
+               {0x1f0b1, 0x1f0bf, 1},
                {0x1f0c1, 0x1f0cf, 1},
-               {0x1f0d1, 0x1f0df, 1},
+               {0x1f0d1, 0x1f0f5, 1},
                {0x1f110, 0x1f12e, 1},
                {0x1f130, 0x1f16b, 1},
                {0x1f170, 0x1f19a, 1},
@@ -2550,24 +2806,25 @@ var _S = &RangeTable{
                {0x1f210, 0x1f23a, 1},
                {0x1f240, 0x1f248, 1},
                {0x1f250, 0x1f251, 1},
-               {0x1f300, 0x1f320, 1},
-               {0x1f330, 0x1f335, 1},
-               {0x1f337, 0x1f37c, 1},
-               {0x1f380, 0x1f393, 1},
-               {0x1f3a0, 0x1f3c4, 1},
-               {0x1f3c6, 0x1f3ca, 1},
-               {0x1f3e0, 0x1f3f0, 1},
-               {0x1f400, 0x1f43e, 1},
-               {0x1f440, 0x1f442, 2},
-               {0x1f443, 0x1f4f7, 1},
-               {0x1f4f9, 0x1f4fc, 1},
-               {0x1f500, 0x1f53d, 1},
-               {0x1f540, 0x1f543, 1},
-               {0x1f550, 0x1f567, 1},
-               {0x1f5fb, 0x1f640, 1},
-               {0x1f645, 0x1f64f, 1},
-               {0x1f680, 0x1f6c5, 1},
+               {0x1f300, 0x1f32c, 1},
+               {0x1f330, 0x1f37d, 1},
+               {0x1f380, 0x1f3ce, 1},
+               {0x1f3d4, 0x1f3f7, 1},
+               {0x1f400, 0x1f4fe, 1},
+               {0x1f500, 0x1f54a, 1},
+               {0x1f550, 0x1f579, 1},
+               {0x1f57b, 0x1f5a3, 1},
+               {0x1f5a5, 0x1f642, 1},
+               {0x1f645, 0x1f6cf, 1},
+               {0x1f6e0, 0x1f6ec, 1},
+               {0x1f6f0, 0x1f6f3, 1},
                {0x1f700, 0x1f773, 1},
+               {0x1f780, 0x1f7d4, 1},
+               {0x1f800, 0x1f80b, 1},
+               {0x1f810, 0x1f847, 1},
+               {0x1f850, 0x1f859, 1},
+               {0x1f860, 0x1f887, 1},
+               {0x1f890, 0x1f8ad, 1},
        },
        LatinOffset: 10,
 }
@@ -2581,7 +2838,7 @@ var _Sc = &RangeTable{
                {0x09fb, 0x0af1, 246},
                {0x0bf9, 0x0e3f, 582},
                {0x17db, 0x20a0, 2245},
-               {0x20a1, 0x20ba, 1},
+               {0x20a1, 0x20bd, 1},
                {0xa838, 0xfdfc, 21956},
                {0xfe69, 0xff04, 155},
                {0xffe0, 0xffe1, 1},
@@ -2611,7 +2868,8 @@ var _Sk = &RangeTable{
                {0xa700, 0xa716, 1},
                {0xa720, 0xa721, 1},
                {0xa789, 0xa78a, 1},
-               {0xfbb2, 0xfbc1, 1},
+               {0xab5b, 0xfbb2, 20567},
+               {0xfbb3, 0xfbc1, 1},
                {0xff3e, 0xff40, 2},
                {0xffe3, 0xffe3, 1},
        },
@@ -2679,7 +2937,8 @@ var _So = &RangeTable{
        R16: []Range16{
                {0x00a6, 0x00a9, 3},
                {0x00ae, 0x00b0, 2},
-               {0x0482, 0x060e, 396},
+               {0x0482, 0x058d, 267},
+               {0x058e, 0x060e, 128},
                {0x060f, 0x06de, 207},
                {0x06e9, 0x06fd, 20},
                {0x06fe, 0x07f6, 248},
@@ -2728,7 +2987,7 @@ var _So = &RangeTable{
                {0x232b, 0x237b, 1},
                {0x237d, 0x239a, 1},
                {0x23b4, 0x23db, 1},
-               {0x23e2, 0x23f3, 1},
+               {0x23e2, 0x23fa, 1},
                {0x2400, 0x2426, 1},
                {0x2440, 0x244a, 1},
                {0x249c, 0x24e9, 1},
@@ -2736,13 +2995,16 @@ var _So = &RangeTable{
                {0x25b8, 0x25c0, 1},
                {0x25c2, 0x25f7, 1},
                {0x2600, 0x266e, 1},
-               {0x2670, 0x26ff, 1},
-               {0x2701, 0x2767, 1},
+               {0x2670, 0x2767, 1},
                {0x2794, 0x27bf, 1},
                {0x2800, 0x28ff, 1},
                {0x2b00, 0x2b2f, 1},
                {0x2b45, 0x2b46, 1},
-               {0x2b50, 0x2b59, 1},
+               {0x2b4d, 0x2b73, 1},
+               {0x2b76, 0x2b95, 1},
+               {0x2b98, 0x2bb9, 1},
+               {0x2bbd, 0x2bc8, 1},
+               {0x2bca, 0x2bd1, 1},
                {0x2ce5, 0x2cea, 1},
                {0x2e80, 0x2e99, 1},
                {0x2e9b, 0x2ef3, 1},
@@ -2777,8 +3039,14 @@ var _So = &RangeTable{
                {0x10137, 0x10137, 1},
                {0x10138, 0x1013f, 1},
                {0x10179, 0x10189, 1},
-               {0x10190, 0x1019b, 1},
-               {0x101d0, 0x101fc, 1},
+               {0x1018c, 0x10190, 4},
+               {0x10191, 0x1019b, 1},
+               {0x101a0, 0x101d0, 48},
+               {0x101d1, 0x101fc, 1},
+               {0x10877, 0x10878, 1},
+               {0x10ac8, 0x16b3c, 24692},
+               {0x16b3d, 0x16b3f, 1},
+               {0x16b45, 0x1bc9c, 20823},
                {0x1d000, 0x1d0f5, 1},
                {0x1d100, 0x1d126, 1},
                {0x1d129, 0x1d164, 1},
@@ -2792,9 +3060,9 @@ var _So = &RangeTable{
                {0x1f000, 0x1f02b, 1},
                {0x1f030, 0x1f093, 1},
                {0x1f0a0, 0x1f0ae, 1},
-               {0x1f0b1, 0x1f0be, 1},
+               {0x1f0b1, 0x1f0bf, 1},
                {0x1f0c1, 0x1f0cf, 1},
-               {0x1f0d1, 0x1f0df, 1},
+               {0x1f0d1, 0x1f0f5, 1},
                {0x1f110, 0x1f12e, 1},
                {0x1f130, 0x1f16b, 1},
                {0x1f170, 0x1f19a, 1},
@@ -2802,24 +3070,25 @@ var _So = &RangeTable{
                {0x1f210, 0x1f23a, 1},
                {0x1f240, 0x1f248, 1},
                {0x1f250, 0x1f251, 1},
-               {0x1f300, 0x1f320, 1},
-               {0x1f330, 0x1f335, 1},
-               {0x1f337, 0x1f37c, 1},
-               {0x1f380, 0x1f393, 1},
-               {0x1f3a0, 0x1f3c4, 1},
-               {0x1f3c6, 0x1f3ca, 1},
-               {0x1f3e0, 0x1f3f0, 1},
-               {0x1f400, 0x1f43e, 1},
-               {0x1f440, 0x1f442, 2},
-               {0x1f443, 0x1f4f7, 1},
-               {0x1f4f9, 0x1f4fc, 1},
-               {0x1f500, 0x1f53d, 1},
-               {0x1f540, 0x1f543, 1},
-               {0x1f550, 0x1f567, 1},
-               {0x1f5fb, 0x1f640, 1},
-               {0x1f645, 0x1f64f, 1},
-               {0x1f680, 0x1f6c5, 1},
+               {0x1f300, 0x1f32c, 1},
+               {0x1f330, 0x1f37d, 1},
+               {0x1f380, 0x1f3ce, 1},
+               {0x1f3d4, 0x1f3f7, 1},
+               {0x1f400, 0x1f4fe, 1},
+               {0x1f500, 0x1f54a, 1},
+               {0x1f550, 0x1f579, 1},
+               {0x1f57b, 0x1f5a3, 1},
+               {0x1f5a5, 0x1f642, 1},
+               {0x1f645, 0x1f6cf, 1},
+               {0x1f6e0, 0x1f6ec, 1},
+               {0x1f6f0, 0x1f6f3, 1},
                {0x1f700, 0x1f773, 1},
+               {0x1f780, 0x1f7d4, 1},
+               {0x1f800, 0x1f80b, 1},
+               {0x1f810, 0x1f847, 1},
+               {0x1f850, 0x1f859, 1},
+               {0x1f860, 0x1f887, 1},
+               {0x1f890, 0x1f8ad, 1},
        },
        LatinOffset: 2,
 }
@@ -2911,7 +3180,7 @@ var (
 )
 
 // Generated by running
-//     maketables --scripts=all --url=http://www.unicode.org/Public/6.3.0/ucd/
+//     maketables --scripts=all --url=http://www.unicode.org/Public/7.0.0/ucd/
 // DO NOT EDIT
 
 // Scripts is the set of Unicode script tables.
@@ -2921,6 +3190,7 @@ var Scripts = map[string]*RangeTable{
        "Avestan":                Avestan,
        "Balinese":               Balinese,
        "Bamum":                  Bamum,
+       "Bassa_Vah":              Bassa_Vah,
        "Batak":                  Batak,
        "Bengali":                Bengali,
        "Bopomofo":               Bopomofo,
@@ -2930,6 +3200,7 @@ var Scripts = map[string]*RangeTable{
        "Buhid":                  Buhid,
        "Canadian_Aboriginal":    Canadian_Aboriginal,
        "Carian":                 Carian,
+       "Caucasian_Albanian":     Caucasian_Albanian,
        "Chakma":                 Chakma,
        "Cham":                   Cham,
        "Cherokee":               Cherokee,
@@ -2940,11 +3211,14 @@ var Scripts = map[string]*RangeTable{
        "Cyrillic":               Cyrillic,
        "Deseret":                Deseret,
        "Devanagari":             Devanagari,
+       "Duployan":               Duployan,
        "Egyptian_Hieroglyphs":   Egyptian_Hieroglyphs,
+       "Elbasan":                Elbasan,
        "Ethiopic":               Ethiopic,
        "Georgian":               Georgian,
        "Glagolitic":             Glagolitic,
        "Gothic":                 Gothic,
+       "Grantha":                Grantha,
        "Greek":                  Greek,
        "Gujarati":               Gujarati,
        "Gurmukhi":               Gurmukhi,
@@ -2964,40 +3238,56 @@ var Scripts = map[string]*RangeTable{
        "Kayah_Li":               Kayah_Li,
        "Kharoshthi":             Kharoshthi,
        "Khmer":                  Khmer,
+       "Khojki":                 Khojki,
+       "Khudawadi":              Khudawadi,
        "Lao":                    Lao,
        "Latin":                  Latin,
        "Lepcha":                 Lepcha,
        "Limbu":                  Limbu,
+       "Linear_A":               Linear_A,
        "Linear_B":               Linear_B,
        "Lisu":                   Lisu,
        "Lycian":                 Lycian,
        "Lydian":                 Lydian,
+       "Mahajani":               Mahajani,
        "Malayalam":              Malayalam,
        "Mandaic":                Mandaic,
+       "Manichaean":             Manichaean,
        "Meetei_Mayek":           Meetei_Mayek,
+       "Mende_Kikakui":          Mende_Kikakui,
        "Meroitic_Cursive":       Meroitic_Cursive,
        "Meroitic_Hieroglyphs":   Meroitic_Hieroglyphs,
        "Miao":                   Miao,
+       "Modi":                   Modi,
        "Mongolian":              Mongolian,
+       "Mro":                    Mro,
        "Myanmar":                Myanmar,
+       "Nabataean":              Nabataean,
        "New_Tai_Lue":            New_Tai_Lue,
        "Nko":                    Nko,
        "Ogham":                  Ogham,
        "Ol_Chiki":               Ol_Chiki,
        "Old_Italic":             Old_Italic,
+       "Old_North_Arabian":      Old_North_Arabian,
+       "Old_Permic":             Old_Permic,
        "Old_Persian":            Old_Persian,
        "Old_South_Arabian":      Old_South_Arabian,
        "Old_Turkic":             Old_Turkic,
        "Oriya":                  Oriya,
        "Osmanya":                Osmanya,
+       "Pahawh_Hmong":           Pahawh_Hmong,
+       "Palmyrene":              Palmyrene,
+       "Pau_Cin_Hau":            Pau_Cin_Hau,
        "Phags_Pa":               Phags_Pa,
        "Phoenician":             Phoenician,
+       "Psalter_Pahlavi":        Psalter_Pahlavi,
        "Rejang":                 Rejang,
        "Runic":                  Runic,
        "Samaritan":              Samaritan,
        "Saurashtra":             Saurashtra,
        "Sharada":                Sharada,
        "Shavian":                Shavian,
+       "Siddham":                Siddham,
        "Sinhala":                Sinhala,
        "Sora_Sompeng":           Sora_Sompeng,
        "Sundanese":              Sundanese,
@@ -3015,8 +3305,10 @@ var Scripts = map[string]*RangeTable{
        "Thai":                   Thai,
        "Tibetan":                Tibetan,
        "Tifinagh":               Tifinagh,
+       "Tirhuta":                Tirhuta,
        "Ugaritic":               Ugaritic,
        "Vai":                    Vai,
+       "Warang_Citi":            Warang_Citi,
        "Yi":                     Yi,
 }
 
@@ -3025,7 +3317,6 @@ var _Arabic = &RangeTable{
                {0x0600, 0x0604, 1},
                {0x0606, 0x060b, 1},
                {0x060d, 0x061a, 1},
-               {0x061c, 0x061c, 1},
                {0x061e, 0x061e, 1},
                {0x0620, 0x063f, 1},
                {0x0641, 0x064a, 1},
@@ -3034,14 +3325,13 @@ var _Arabic = &RangeTable{
                {0x0671, 0x06dc, 1},
                {0x06de, 0x06ff, 1},
                {0x0750, 0x077f, 1},
-               {0x08a0, 0x08a0, 1},
-               {0x08a2, 0x08ac, 1},
-               {0x08e4, 0x08fe, 1},
+               {0x08a0, 0x08b2, 1},
+               {0x08e4, 0x08ff, 1},
                {0xfb50, 0xfbc1, 1},
                {0xfbd3, 0xfd3d, 1},
                {0xfd50, 0xfd8f, 1},
                {0xfd92, 0xfdc7, 1},
-               {0xfdf0, 0xfdfc, 1},
+               {0xfdf0, 0xfdfd, 1},
                {0xfe70, 0xfe74, 1},
                {0xfe76, 0xfefc, 1},
        },
@@ -3090,7 +3380,7 @@ var _Armenian = &RangeTable{
                {0x0559, 0x055f, 1},
                {0x0561, 0x0587, 1},
                {0x058a, 0x058a, 1},
-               {0x058f, 0x058f, 1},
+               {0x058d, 0x058f, 1},
                {0xfb13, 0xfb17, 1},
        },
 }
@@ -3119,6 +3409,14 @@ var _Bamum = &RangeTable{
        },
 }
 
+var _Bassa_Vah = &RangeTable{
+       R16: []Range16{},
+       R32: []Range32{
+               {0x16ad0, 0x16aed, 1},
+               {0x16af0, 0x16af5, 1},
+       },
+}
+
 var _Batak = &RangeTable{
        R16: []Range16{
                {0x1bc0, 0x1bf3, 1},
@@ -3128,7 +3426,7 @@ var _Batak = &RangeTable{
 
 var _Bengali = &RangeTable{
        R16: []Range16{
-               {0x0981, 0x0983, 1},
+               {0x0980, 0x0983, 1},
                {0x0985, 0x098c, 1},
                {0x098f, 0x0990, 1},
                {0x0993, 0x09a8, 1},
@@ -3158,6 +3456,7 @@ var _Brahmi = &RangeTable{
        R32: []Range32{
                {0x11000, 0x1104d, 1},
                {0x11052, 0x1106f, 1},
+               {0x1107f, 0x1107f, 1},
        },
 }
 
@@ -3194,6 +3493,14 @@ var _Carian = &RangeTable{
        },
 }
 
+var _Caucasian_Albanian = &RangeTable{
+       R16: []Range16{},
+       R32: []Range32{
+               {0x10530, 0x10563, 1},
+               {0x1056f, 0x1056f, 1},
+       },
+}
+
 var _Chakma = &RangeTable{
        R16: []Range16{},
        R32: []Range32{
@@ -3234,8 +3541,9 @@ var _Common = &RangeTable{
                {0x0385, 0x0385, 1},
                {0x0387, 0x0387, 1},
                {0x0589, 0x0589, 1},
+               {0x0605, 0x0605, 1},
                {0x060c, 0x060c, 1},
-               {0x061b, 0x061b, 1},
+               {0x061b, 0x061c, 1},
                {0x061f, 0x061f, 1},
                {0x0640, 0x0640, 1},
                {0x0660, 0x0669, 1},
@@ -3258,21 +3566,23 @@ var _Common = &RangeTable{
                {0x2066, 0x2070, 1},
                {0x2074, 0x207e, 1},
                {0x2080, 0x208e, 1},
-               {0x20a0, 0x20ba, 1},
+               {0x20a0, 0x20bd, 1},
                {0x2100, 0x2125, 1},
                {0x2127, 0x2129, 1},
                {0x212c, 0x2131, 1},
                {0x2133, 0x214d, 1},
                {0x214f, 0x215f, 1},
                {0x2189, 0x2189, 1},
-               {0x2190, 0x23f3, 1},
+               {0x2190, 0x23fa, 1},
                {0x2400, 0x2426, 1},
                {0x2440, 0x244a, 1},
-               {0x2460, 0x26ff, 1},
-               {0x2701, 0x27ff, 1},
-               {0x2900, 0x2b4c, 1},
-               {0x2b50, 0x2b59, 1},
-               {0x2e00, 0x2e3b, 1},
+               {0x2460, 0x27ff, 1},
+               {0x2900, 0x2b73, 1},
+               {0x2b76, 0x2b95, 1},
+               {0x2b98, 0x2bb9, 1},
+               {0x2bbd, 0x2bc8, 1},
+               {0x2bca, 0x2bd1, 1},
+               {0x2e00, 0x2e42, 1},
                {0x2ff0, 0x2ffb, 1},
                {0x3000, 0x3004, 1},
                {0x3006, 0x3006, 1},
@@ -3291,9 +3601,10 @@ var _Common = &RangeTable{
                {0xa700, 0xa721, 1},
                {0xa788, 0xa78a, 1},
                {0xa830, 0xa839, 1},
+               {0xa92e, 0xa92e, 1},
                {0xa9cf, 0xa9cf, 1},
+               {0xab5b, 0xab5b, 1},
                {0xfd3e, 0xfd3f, 1},
-               {0xfdfd, 0xfdfd, 1},
                {0xfe10, 0xfe19, 1},
                {0xfe30, 0xfe52, 1},
                {0xfe54, 0xfe66, 1},
@@ -3314,6 +3625,8 @@ var _Common = &RangeTable{
                {0x10137, 0x1013f, 1},
                {0x10190, 0x1019b, 1},
                {0x101d0, 0x101fc, 1},
+               {0x102e1, 0x102fb, 1},
+               {0x1bca0, 0x1bca3, 1},
                {0x1d000, 0x1d0f5, 1},
                {0x1d100, 0x1d126, 1},
                {0x1d129, 0x1d166, 1},
@@ -3347,10 +3660,10 @@ var _Common = &RangeTable{
                {0x1f000, 0x1f02b, 1},
                {0x1f030, 0x1f093, 1},
                {0x1f0a0, 0x1f0ae, 1},
-               {0x1f0b1, 0x1f0be, 1},
+               {0x1f0b1, 0x1f0bf, 1},
                {0x1f0c1, 0x1f0cf, 1},
-               {0x1f0d1, 0x1f0df, 1},
-               {0x1f100, 0x1f10a, 1},
+               {0x1f0d1, 0x1f0f5, 1},
+               {0x1f100, 0x1f10c, 1},
                {0x1f110, 0x1f12e, 1},
                {0x1f130, 0x1f16b, 1},
                {0x1f170, 0x1f19a, 1},
@@ -3359,24 +3672,25 @@ var _Common = &RangeTable{
                {0x1f210, 0x1f23a, 1},
                {0x1f240, 0x1f248, 1},
                {0x1f250, 0x1f251, 1},
-               {0x1f300, 0x1f320, 1},
-               {0x1f330, 0x1f335, 1},
-               {0x1f337, 0x1f37c, 1},
-               {0x1f380, 0x1f393, 1},
-               {0x1f3a0, 0x1f3c4, 1},
-               {0x1f3c6, 0x1f3ca, 1},
-               {0x1f3e0, 0x1f3f0, 1},
-               {0x1f400, 0x1f43e, 1},
-               {0x1f440, 0x1f440, 1},
-               {0x1f442, 0x1f4f7, 1},
-               {0x1f4f9, 0x1f4fc, 1},
-               {0x1f500, 0x1f53d, 1},
-               {0x1f540, 0x1f543, 1},
-               {0x1f550, 0x1f567, 1},
-               {0x1f5fb, 0x1f640, 1},
-               {0x1f645, 0x1f64f, 1},
-               {0x1f680, 0x1f6c5, 1},
+               {0x1f300, 0x1f32c, 1},
+               {0x1f330, 0x1f37d, 1},
+               {0x1f380, 0x1f3ce, 1},
+               {0x1f3d4, 0x1f3f7, 1},
+               {0x1f400, 0x1f4fe, 1},
+               {0x1f500, 0x1f54a, 1},
+               {0x1f550, 0x1f579, 1},
+               {0x1f57b, 0x1f5a3, 1},
+               {0x1f5a5, 0x1f642, 1},
+               {0x1f645, 0x1f6cf, 1},
+               {0x1f6e0, 0x1f6ec, 1},
+               {0x1f6f0, 0x1f6f3, 1},
                {0x1f700, 0x1f773, 1},
+               {0x1f780, 0x1f7d4, 1},
+               {0x1f800, 0x1f80b, 1},
+               {0x1f810, 0x1f847, 1},
+               {0x1f850, 0x1f859, 1},
+               {0x1f860, 0x1f887, 1},
+               {0x1f890, 0x1f8ad, 1},
                {0xe0001, 0xe0001, 1},
                {0xe0020, 0xe007f, 1},
        },
@@ -3394,9 +3708,9 @@ var _Coptic = &RangeTable{
 var _Cuneiform = &RangeTable{
        R16: []Range16{},
        R32: []Range32{
-               {0x12000, 0x1236e, 1},
-               {0x12400, 0x12462, 1},
-               {0x12470, 0x12473, 1},
+               {0x12000, 0x12398, 1},
+               {0x12400, 0x1246e, 1},
+               {0x12470, 0x12474, 1},
        },
 }
 
@@ -3415,11 +3729,11 @@ var _Cypriot = &RangeTable{
 var _Cyrillic = &RangeTable{
        R16: []Range16{
                {0x0400, 0x0484, 1},
-               {0x0487, 0x0527, 1},
+               {0x0487, 0x052f, 1},
                {0x1d2b, 0x1d2b, 1},
                {0x1d78, 0x1d78, 1},
                {0x2de0, 0x2dff, 1},
-               {0xa640, 0xa697, 1},
+               {0xa640, 0xa69d, 1},
                {0xa69f, 0xa69f, 1},
        },
 }
@@ -3435,12 +3749,22 @@ var _Devanagari = &RangeTable{
        R16: []Range16{
                {0x0900, 0x0950, 1},
                {0x0953, 0x0963, 1},
-               {0x0966, 0x0977, 1},
-               {0x0979, 0x097f, 1},
+               {0x0966, 0x097f, 1},
                {0xa8e0, 0xa8fb, 1},
        },
 }
 
+var _Duployan = &RangeTable{
+       R16: []Range16{},
+       R32: []Range32{
+               {0x1bc00, 0x1bc6a, 1},
+               {0x1bc70, 0x1bc7c, 1},
+               {0x1bc80, 0x1bc88, 1},
+               {0x1bc90, 0x1bc99, 1},
+               {0x1bc9c, 0x1bc9f, 1},
+       },
+}
+
 var _Egyptian_Hieroglyphs = &RangeTable{
        R16: []Range16{},
        R32: []Range32{
@@ -3448,6 +3772,13 @@ var _Egyptian_Hieroglyphs = &RangeTable{
        },
 }
 
+var _Elbasan = &RangeTable{
+       R16: []Range16{},
+       R32: []Range32{
+               {0x10500, 0x10527, 1},
+       },
+}
+
 var _Ethiopic = &RangeTable{
        R16: []Range16{
                {0x1200, 0x1248, 1},
@@ -3512,11 +3843,32 @@ var _Gothic = &RangeTable{
        },
 }
 
+var _Grantha = &RangeTable{
+       R16: []Range16{},
+       R32: []Range32{
+               {0x11301, 0x11303, 1},
+               {0x11305, 0x1130c, 1},
+               {0x1130f, 0x11310, 1},
+               {0x11313, 0x11328, 1},
+               {0x1132a, 0x11330, 1},
+               {0x11332, 0x11333, 1},
+               {0x11335, 0x11339, 1},
+               {0x1133c, 0x11344, 1},
+               {0x11347, 0x11348, 1},
+               {0x1134b, 0x1134d, 1},
+               {0x11357, 0x11357, 1},
+               {0x1135d, 0x11363, 1},
+               {0x11366, 0x1136c, 1},
+               {0x11370, 0x11374, 1},
+       },
+}
+
 var _Greek = &RangeTable{
        R16: []Range16{
                {0x0370, 0x0373, 1},
                {0x0375, 0x0377, 1},
                {0x037a, 0x037d, 1},
+               {0x037f, 0x037f, 1},
                {0x0384, 0x0384, 1},
                {0x0386, 0x0386, 1},
                {0x0388, 0x038a, 1},
@@ -3545,9 +3897,11 @@ var _Greek = &RangeTable{
                {0x1ff2, 0x1ff4, 1},
                {0x1ff6, 0x1ffe, 1},
                {0x2126, 0x2126, 1},
+               {0xab65, 0xab65, 1},
        },
        R32: []Range32{
-               {0x10140, 0x1018a, 1},
+               {0x10140, 0x1018c, 1},
+               {0x101a0, 0x101a0, 1},
                {0x1d200, 0x1d245, 1},
        },
 }
@@ -3678,22 +4032,25 @@ var _Inherited = &RangeTable{
                {0x064b, 0x0655, 1},
                {0x0670, 0x0670, 1},
                {0x0951, 0x0952, 1},
+               {0x1ab0, 0x1abe, 1},
                {0x1cd0, 0x1cd2, 1},
                {0x1cd4, 0x1ce0, 1},
                {0x1ce2, 0x1ce8, 1},
                {0x1ced, 0x1ced, 1},
                {0x1cf4, 0x1cf4, 1},
-               {0x1dc0, 0x1de6, 1},
+               {0x1cf8, 0x1cf9, 1},
+               {0x1dc0, 0x1df5, 1},
                {0x1dfc, 0x1dff, 1},
                {0x200c, 0x200d, 1},
                {0x20d0, 0x20f0, 1},
                {0x302a, 0x302d, 1},
                {0x3099, 0x309a, 1},
                {0xfe00, 0xfe0f, 1},
-               {0xfe20, 0xfe26, 1},
+               {0xfe20, 0xfe2d, 1},
        },
        R32: []Range32{
                {0x101fd, 0x101fd, 1},
+               {0x102e0, 0x102e0, 1},
                {0x1d167, 0x1d169, 1},
                {0x1d17b, 0x1d182, 1},
                {0x1d185, 0x1d18b, 1},
@@ -3735,7 +4092,7 @@ var _Kaithi = &RangeTable{
 
 var _Kannada = &RangeTable{
        R16: []Range16{
-               {0x0c82, 0x0c83, 1},
+               {0x0c81, 0x0c83, 1},
                {0x0c85, 0x0c8c, 1},
                {0x0c8e, 0x0c90, 1},
                {0x0c92, 0x0ca8, 1},
@@ -3769,7 +4126,8 @@ var _Katakana = &RangeTable{
 
 var _Kayah_Li = &RangeTable{
        R16: []Range16{
-               {0xa900, 0xa92f, 1},
+               {0xa900, 0xa92d, 1},
+               {0xa92f, 0xa92f, 1},
        },
 }
 
@@ -3796,6 +4154,22 @@ var _Khmer = &RangeTable{
        },
 }
 
+var _Khojki = &RangeTable{
+       R16: []Range16{},
+       R32: []Range32{
+               {0x11200, 0x11211, 1},
+               {0x11213, 0x1123d, 1},
+       },
+}
+
+var _Khudawadi = &RangeTable{
+       R16: []Range16{},
+       R32: []Range32{
+               {0x112b0, 0x112ea, 1},
+               {0x112f0, 0x112f9, 1},
+       },
+}
+
 var _Lao = &RangeTable{
        R16: []Range16{
                {0x0e81, 0x0e82, 1},
@@ -3845,9 +4219,12 @@ var _Latin = &RangeTable{
                {0x2c60, 0x2c7f, 1},
                {0xa722, 0xa787, 1},
                {0xa78b, 0xa78e, 1},
-               {0xa790, 0xa793, 1},
-               {0xa7a0, 0xa7aa, 1},
-               {0xa7f8, 0xa7ff, 1},
+               {0xa790, 0xa7ad, 1},
+               {0xa7b0, 0xa7b1, 1},
+               {0xa7f7, 0xa7ff, 1},
+               {0xab30, 0xab5a, 1},
+               {0xab5c, 0xab5f, 1},
+               {0xab64, 0xab64, 1},
                {0xfb00, 0xfb06, 1},
                {0xff21, 0xff3a, 1},
                {0xff41, 0xff5a, 1},
@@ -3865,7 +4242,7 @@ var _Lepcha = &RangeTable{
 
 var _Limbu = &RangeTable{
        R16: []Range16{
-               {0x1900, 0x191c, 1},
+               {0x1900, 0x191e, 1},
                {0x1920, 0x192b, 1},
                {0x1930, 0x193b, 1},
                {0x1940, 0x1940, 1},
@@ -3873,6 +4250,15 @@ var _Limbu = &RangeTable{
        },
 }
 
+var _Linear_A = &RangeTable{
+       R16: []Range16{},
+       R32: []Range32{
+               {0x10600, 0x10736, 1},
+               {0x10740, 0x10755, 1},
+               {0x10760, 0x10767, 1},
+       },
+}
+
 var _Linear_B = &RangeTable{
        R16: []Range16{},
        R32: []Range32{
@@ -3907,9 +4293,16 @@ var _Lydian = &RangeTable{
        },
 }
 
+var _Mahajani = &RangeTable{
+       R16: []Range16{},
+       R32: []Range32{
+               {0x11150, 0x11176, 1},
+       },
+}
+
 var _Malayalam = &RangeTable{
        R16: []Range16{
-               {0x0d02, 0x0d03, 1},
+               {0x0d01, 0x0d03, 1},
                {0x0d05, 0x0d0c, 1},
                {0x0d0e, 0x0d10, 1},
                {0x0d12, 0x0d3a, 1},
@@ -3930,6 +4323,14 @@ var _Mandaic = &RangeTable{
        },
 }
 
+var _Manichaean = &RangeTable{
+       R16: []Range16{},
+       R32: []Range32{
+               {0x10ac0, 0x10ae6, 1},
+               {0x10aeb, 0x10af6, 1},
+       },
+}
+
 var _Meetei_Mayek = &RangeTable{
        R16: []Range16{
                {0xaae0, 0xaaf6, 1},
@@ -3938,6 +4339,14 @@ var _Meetei_Mayek = &RangeTable{
        },
 }
 
+var _Mende_Kikakui = &RangeTable{
+       R16: []Range16{},
+       R32: []Range32{
+               {0x1e800, 0x1e8c4, 1},
+               {0x1e8c7, 0x1e8d6, 1},
+       },
+}
+
 var _Meroitic_Cursive = &RangeTable{
        R16: []Range16{},
        R32: []Range32{
@@ -3962,6 +4371,14 @@ var _Miao = &RangeTable{
        },
 }
 
+var _Modi = &RangeTable{
+       R16: []Range16{},
+       R32: []Range32{
+               {0x11600, 0x11644, 1},
+               {0x11650, 0x11659, 1},
+       },
+}
+
 var _Mongolian = &RangeTable{
        R16: []Range16{
                {0x1800, 0x1801, 1},
@@ -3973,10 +4390,28 @@ var _Mongolian = &RangeTable{
        },
 }
 
+var _Mro = &RangeTable{
+       R16: []Range16{},
+       R32: []Range32{
+               {0x16a40, 0x16a5e, 1},
+               {0x16a60, 0x16a69, 1},
+               {0x16a6e, 0x16a6f, 1},
+       },
+}
+
 var _Myanmar = &RangeTable{
        R16: []Range16{
                {0x1000, 0x109f, 1},
-               {0xaa60, 0xaa7b, 1},
+               {0xa9e0, 0xa9fe, 1},
+               {0xaa60, 0xaa7f, 1},
+       },
+}
+
+var _Nabataean = &RangeTable{
+       R16: []Range16{},
+       R32: []Range32{
+               {0x10880, 0x1089e, 1},
+               {0x108a7, 0x108af, 1},
        },
 }
 
@@ -4010,8 +4445,21 @@ var _Ol_Chiki = &RangeTable{
 var _Old_Italic = &RangeTable{
        R16: []Range16{},
        R32: []Range32{
-               {0x10300, 0x1031e, 1},
-               {0x10320, 0x10323, 1},
+               {0x10300, 0x10323, 1},
+       },
+}
+
+var _Old_North_Arabian = &RangeTable{
+       R16: []Range16{},
+       R32: []Range32{
+               {0x10a80, 0x10a9f, 1},
+       },
+}
+
+var _Old_Permic = &RangeTable{
+       R16: []Range16{},
+       R32: []Range32{
+               {0x10350, 0x1037a, 1},
        },
 }
 
@@ -4064,6 +4512,31 @@ var _Osmanya = &RangeTable{
        },
 }
 
+var _Pahawh_Hmong = &RangeTable{
+       R16: []Range16{},
+       R32: []Range32{
+               {0x16b00, 0x16b45, 1},
+               {0x16b50, 0x16b59, 1},
+               {0x16b5b, 0x16b61, 1},
+               {0x16b63, 0x16b77, 1},
+               {0x16b7d, 0x16b8f, 1},
+       },
+}
+
+var _Palmyrene = &RangeTable{
+       R16: []Range16{},
+       R32: []Range32{
+               {0x10860, 0x1087f, 1},
+       },
+}
+
+var _Pau_Cin_Hau = &RangeTable{
+       R16: []Range16{},
+       R32: []Range32{
+               {0x11ac0, 0x11af8, 1},
+       },
+}
+
 var _Phags_Pa = &RangeTable{
        R16: []Range16{
                {0xa840, 0xa877, 1},
@@ -4078,6 +4551,15 @@ var _Phoenician = &RangeTable{
        },
 }
 
+var _Psalter_Pahlavi = &RangeTable{
+       R16: []Range16{},
+       R32: []Range32{
+               {0x10b80, 0x10b91, 1},
+               {0x10b99, 0x10b9c, 1},
+               {0x10ba9, 0x10baf, 1},
+       },
+}
+
 var _Rejang = &RangeTable{
        R16: []Range16{
                {0xa930, 0xa953, 1},
@@ -4088,7 +4570,7 @@ var _Rejang = &RangeTable{
 var _Runic = &RangeTable{
        R16: []Range16{
                {0x16a0, 0x16ea, 1},
-               {0x16ee, 0x16f0, 1},
+               {0x16ee, 0x16f8, 1},
        },
 }
 
@@ -4110,7 +4592,8 @@ var _Sharada = &RangeTable{
        R16: []Range16{},
        R32: []Range32{
                {0x11180, 0x111c8, 1},
-               {0x111d0, 0x111d9, 1},
+               {0x111cd, 0x111cd, 1},
+               {0x111d0, 0x111da, 1},
        },
 }
 
@@ -4121,6 +4604,14 @@ var _Shavian = &RangeTable{
        },
 }
 
+var _Siddham = &RangeTable{
+       R16: []Range16{},
+       R32: []Range32{
+               {0x11580, 0x115b5, 1},
+               {0x115b8, 0x115c9, 1},
+       },
+}
+
 var _Sinhala = &RangeTable{
        R16: []Range16{
                {0x0d82, 0x0d83, 1},
@@ -4133,8 +4624,12 @@ var _Sinhala = &RangeTable{
                {0x0dcf, 0x0dd4, 1},
                {0x0dd6, 0x0dd6, 1},
                {0x0dd8, 0x0ddf, 1},
+               {0x0de6, 0x0def, 1},
                {0x0df2, 0x0df4, 1},
        },
+       R32: []Range32{
+               {0x111e1, 0x111f4, 1},
+       },
 }
 
 var _Sora_Sompeng = &RangeTable{
@@ -4236,12 +4731,11 @@ var _Tamil = &RangeTable{
 
 var _Telugu = &RangeTable{
        R16: []Range16{
-               {0x0c01, 0x0c03, 1},
+               {0x0c00, 0x0c03, 1},
                {0x0c05, 0x0c0c, 1},
                {0x0c0e, 0x0c10, 1},
                {0x0c12, 0x0c28, 1},
-               {0x0c2a, 0x0c33, 1},
-               {0x0c35, 0x0c39, 1},
+               {0x0c2a, 0x0c39, 1},
                {0x0c3d, 0x0c44, 1},
                {0x0c46, 0x0c48, 1},
                {0x0c4a, 0x0c4d, 1},
@@ -4286,6 +4780,14 @@ var _Tifinagh = &RangeTable{
        },
 }
 
+var _Tirhuta = &RangeTable{
+       R16: []Range16{},
+       R32: []Range32{
+               {0x11480, 0x114c7, 1},
+               {0x114d0, 0x114d9, 1},
+       },
+}
+
 var _Ugaritic = &RangeTable{
        R16: []Range16{},
        R32: []Range32{
@@ -4300,6 +4802,14 @@ var _Vai = &RangeTable{
        },
 }
 
+var _Warang_Citi = &RangeTable{
+       R16: []Range16{},
+       R32: []Range32{
+               {0x118a0, 0x118f2, 1},
+               {0x118ff, 0x118ff, 1},
+       },
+}
+
 var _Yi = &RangeTable{
        R16: []Range16{
                {0xa000, 0xa48c, 1},
@@ -4314,6 +4824,7 @@ var (
        Avestan                = _Avestan                // Avestan is the set of Unicode characters in script Avestan.
        Balinese               = _Balinese               // Balinese is the set of Unicode characters in script Balinese.
        Bamum                  = _Bamum                  // Bamum is the set of Unicode characters in script Bamum.
+       Bassa_Vah              = _Bassa_Vah              // Bassa_Vah is the set of Unicode characters in script Bassa_Vah.
        Batak                  = _Batak                  // Batak is the set of Unicode characters in script Batak.
        Bengali                = _Bengali                // Bengali is the set of Unicode characters in script Bengali.
        Bopomofo               = _Bopomofo               // Bopomofo is the set of Unicode characters in script Bopomofo.
@@ -4323,6 +4834,7 @@ var (
        Buhid                  = _Buhid                  // Buhid is the set of Unicode characters in script Buhid.
        Canadian_Aboriginal    = _Canadian_Aboriginal    // Canadian_Aboriginal is the set of Unicode characters in script Canadian_Aboriginal.
        Carian                 = _Carian                 // Carian is the set of Unicode characters in script Carian.
+       Caucasian_Albanian     = _Caucasian_Albanian     // Caucasian_Albanian is the set of Unicode characters in script Caucasian_Albanian.
        Chakma                 = _Chakma                 // Chakma is the set of Unicode characters in script Chakma.
        Cham                   = _Cham                   // Cham is the set of Unicode characters in script Cham.
        Cherokee               = _Cherokee               // Cherokee is the set of Unicode characters in script Cherokee.
@@ -4333,11 +4845,14 @@ var (
        Cyrillic               = _Cyrillic               // Cyrillic is the set of Unicode characters in script Cyrillic.
        Deseret                = _Deseret                // Deseret is the set of Unicode characters in script Deseret.
        Devanagari             = _Devanagari             // Devanagari is the set of Unicode characters in script Devanagari.
+       Duployan               = _Duployan               // Duployan is the set of Unicode characters in script Duployan.
        Egyptian_Hieroglyphs   = _Egyptian_Hieroglyphs   // Egyptian_Hieroglyphs is the set of Unicode characters in script Egyptian_Hieroglyphs.
+       Elbasan                = _Elbasan                // Elbasan is the set of Unicode characters in script Elbasan.
        Ethiopic               = _Ethiopic               // Ethiopic is the set of Unicode characters in script Ethiopic.
        Georgian               = _Georgian               // Georgian is the set of Unicode characters in script Georgian.
        Glagolitic             = _Glagolitic             // Glagolitic is the set of Unicode characters in script Glagolitic.
        Gothic                 = _Gothic                 // Gothic is the set of Unicode characters in script Gothic.
+       Grantha                = _Grantha                // Grantha is the set of Unicode characters in script Grantha.
        Greek                  = _Greek                  // Greek is the set of Unicode characters in script Greek.
        Gujarati               = _Gujarati               // Gujarati is the set of Unicode characters in script Gujarati.
        Gurmukhi               = _Gurmukhi               // Gurmukhi is the set of Unicode characters in script Gurmukhi.
@@ -4357,40 +4872,56 @@ var (
        Kayah_Li               = _Kayah_Li               // Kayah_Li is the set of Unicode characters in script Kayah_Li.
        Kharoshthi             = _Kharoshthi             // Kharoshthi is the set of Unicode characters in script Kharoshthi.
        Khmer                  = _Khmer                  // Khmer is the set of Unicode characters in script Khmer.
+       Khojki                 = _Khojki                 // Khojki is the set of Unicode characters in script Khojki.
+       Khudawadi              = _Khudawadi              // Khudawadi is the set of Unicode characters in script Khudawadi.
        Lao                    = _Lao                    // Lao is the set of Unicode characters in script Lao.
        Latin                  = _Latin                  // Latin is the set of Unicode characters in script Latin.
        Lepcha                 = _Lepcha                 // Lepcha is the set of Unicode characters in script Lepcha.
        Limbu                  = _Limbu                  // Limbu is the set of Unicode characters in script Limbu.
+       Linear_A               = _Linear_A               // Linear_A is the set of Unicode characters in script Linear_A.
        Linear_B               = _Linear_B               // Linear_B is the set of Unicode characters in script Linear_B.
        Lisu                   = _Lisu                   // Lisu is the set of Unicode characters in script Lisu.
        Lycian                 = _Lycian                 // Lycian is the set of Unicode characters in script Lycian.
        Lydian                 = _Lydian                 // Lydian is the set of Unicode characters in script Lydian.
+       Mahajani               = _Mahajani               // Mahajani is the set of Unicode characters in script Mahajani.
        Malayalam              = _Malayalam              // Malayalam is the set of Unicode characters in script Malayalam.
        Mandaic                = _Mandaic                // Mandaic is the set of Unicode characters in script Mandaic.
+       Manichaean             = _Manichaean             // Manichaean is the set of Unicode characters in script Manichaean.
        Meetei_Mayek           = _Meetei_Mayek           // Meetei_Mayek is the set of Unicode characters in script Meetei_Mayek.
+       Mende_Kikakui          = _Mende_Kikakui          // Mende_Kikakui is the set of Unicode characters in script Mende_Kikakui.
        Meroitic_Cursive       = _Meroitic_Cursive       // Meroitic_Cursive is the set of Unicode characters in script Meroitic_Cursive.
        Meroitic_Hieroglyphs   = _Meroitic_Hieroglyphs   // Meroitic_Hieroglyphs is the set of Unicode characters in script Meroitic_Hieroglyphs.
        Miao                   = _Miao                   // Miao is the set of Unicode characters in script Miao.
+       Modi                   = _Modi                   // Modi is the set of Unicode characters in script Modi.
        Mongolian              = _Mongolian              // Mongolian is the set of Unicode characters in script Mongolian.
+       Mro                    = _Mro                    // Mro is the set of Unicode characters in script Mro.
        Myanmar                = _Myanmar                // Myanmar is the set of Unicode characters in script Myanmar.
+       Nabataean              = _Nabataean              // Nabataean is the set of Unicode characters in script Nabataean.
        New_Tai_Lue            = _New_Tai_Lue            // New_Tai_Lue is the set of Unicode characters in script New_Tai_Lue.
        Nko                    = _Nko                    // Nko is the set of Unicode characters in script Nko.
        Ogham                  = _Ogham                  // Ogham is the set of Unicode characters in script Ogham.
        Ol_Chiki               = _Ol_Chiki               // Ol_Chiki is the set of Unicode characters in script Ol_Chiki.
        Old_Italic             = _Old_Italic             // Old_Italic is the set of Unicode characters in script Old_Italic.
+       Old_North_Arabian      = _Old_North_Arabian      // Old_North_Arabian is the set of Unicode characters in script Old_North_Arabian.
+       Old_Permic             = _Old_Permic             // Old_Permic is the set of Unicode characters in script Old_Permic.
        Old_Persian            = _Old_Persian            // Old_Persian is the set of Unicode characters in script Old_Persian.
        Old_South_Arabian      = _Old_South_Arabian      // Old_South_Arabian is the set of Unicode characters in script Old_South_Arabian.
        Old_Turkic             = _Old_Turkic             // Old_Turkic is the set of Unicode characters in script Old_Turkic.
        Oriya                  = _Oriya                  // Oriya is the set of Unicode characters in script Oriya.
        Osmanya                = _Osmanya                // Osmanya is the set of Unicode characters in script Osmanya.
+       Pahawh_Hmong           = _Pahawh_Hmong           // Pahawh_Hmong is the set of Unicode characters in script Pahawh_Hmong.
+       Palmyrene              = _Palmyrene              // Palmyrene is the set of Unicode characters in script Palmyrene.
+       Pau_Cin_Hau            = _Pau_Cin_Hau            // Pau_Cin_Hau is the set of Unicode characters in script Pau_Cin_Hau.
        Phags_Pa               = _Phags_Pa               // Phags_Pa is the set of Unicode characters in script Phags_Pa.
        Phoenician             = _Phoenician             // Phoenician is the set of Unicode characters in script Phoenician.
+       Psalter_Pahlavi        = _Psalter_Pahlavi        // Psalter_Pahlavi is the set of Unicode characters in script Psalter_Pahlavi.
        Rejang                 = _Rejang                 // Rejang is the set of Unicode characters in script Rejang.
        Runic                  = _Runic                  // Runic is the set of Unicode characters in script Runic.
        Samaritan              = _Samaritan              // Samaritan is the set of Unicode characters in script Samaritan.
        Saurashtra             = _Saurashtra             // Saurashtra is the set of Unicode characters in script Saurashtra.
        Sharada                = _Sharada                // Sharada is the set of Unicode characters in script Sharada.
        Shavian                = _Shavian                // Shavian is the set of Unicode characters in script Shavian.
+       Siddham                = _Siddham                // Siddham is the set of Unicode characters in script Siddham.
        Sinhala                = _Sinhala                // Sinhala is the set of Unicode characters in script Sinhala.
        Sora_Sompeng           = _Sora_Sompeng           // Sora_Sompeng is the set of Unicode characters in script Sora_Sompeng.
        Sundanese              = _Sundanese              // Sundanese is the set of Unicode characters in script Sundanese.
@@ -4408,13 +4939,15 @@ var (
        Thai                   = _Thai                   // Thai is the set of Unicode characters in script Thai.
        Tibetan                = _Tibetan                // Tibetan is the set of Unicode characters in script Tibetan.
        Tifinagh               = _Tifinagh               // Tifinagh is the set of Unicode characters in script Tifinagh.
+       Tirhuta                = _Tirhuta                // Tirhuta is the set of Unicode characters in script Tirhuta.
        Ugaritic               = _Ugaritic               // Ugaritic is the set of Unicode characters in script Ugaritic.
        Vai                    = _Vai                    // Vai is the set of Unicode characters in script Vai.
+       Warang_Citi            = _Warang_Citi            // Warang_Citi is the set of Unicode characters in script Warang_Citi.
        Yi                     = _Yi                     // Yi is the set of Unicode characters in script Yi.
 )
 
 // Generated by running
-//     maketables --props=all --url=http://www.unicode.org/Public/6.3.0/ucd/
+//     maketables --props=all --url=http://www.unicode.org/Public/7.0.0/ucd/
 // DO NOT EDIT
 
 // Properties is the set of Unicode property tables.
@@ -4486,6 +5019,7 @@ var _Dash = &RangeTable{
                {0x2e17, 0x2e17, 1},
                {0x2e1a, 0x2e1a, 1},
                {0x2e3a, 0x2e3b, 1},
+               {0x2e40, 0x2e40, 1},
                {0x301c, 0x301c, 1},
                {0x3030, 0x3030, 1},
                {0x30a0, 0x30a0, 1},
@@ -4583,6 +5117,7 @@ var _Diacritic = &RangeTable{
                {0x1939, 0x193b, 1},
                {0x1a75, 0x1a7c, 1},
                {0x1a7f, 0x1a7f, 1},
+               {0x1ab0, 0x1abd, 1},
                {0x1b34, 0x1b34, 1},
                {0x1b44, 0x1b44, 1},
                {0x1b6b, 0x1b73, 1},
@@ -4592,8 +5127,10 @@ var _Diacritic = &RangeTable{
                {0x1cd0, 0x1ce8, 1},
                {0x1ced, 0x1ced, 1},
                {0x1cf4, 0x1cf4, 1},
+               {0x1cf8, 0x1cf9, 1},
                {0x1d2c, 0x1d6a, 1},
                {0x1dc4, 0x1dcf, 1},
+               {0x1df5, 0x1df5, 1},
                {0x1dfd, 0x1dff, 1},
                {0x1fbd, 0x1fbd, 1},
                {0x1fbf, 0x1fc1, 1},
@@ -4609,6 +5146,7 @@ var _Diacritic = &RangeTable{
                {0xa66f, 0xa66f, 1},
                {0xa67c, 0xa67d, 1},
                {0xa67f, 0xa67f, 1},
+               {0xa69c, 0xa69d, 1},
                {0xa6f0, 0xa6f1, 1},
                {0xa717, 0xa721, 1},
                {0xa788, 0xa788, 1},
@@ -4619,12 +5157,14 @@ var _Diacritic = &RangeTable{
                {0xa953, 0xa953, 1},
                {0xa9b3, 0xa9b3, 1},
                {0xa9c0, 0xa9c0, 1},
-               {0xaa7b, 0xaa7b, 1},
+               {0xa9e5, 0xa9e5, 1},
+               {0xaa7b, 0xaa7d, 1},
                {0xaabf, 0xaac2, 1},
                {0xaaf6, 0xaaf6, 1},
+               {0xab5b, 0xab5f, 1},
                {0xabec, 0xabed, 1},
                {0xfb1e, 0xfb1e, 1},
-               {0xfe20, 0xfe26, 1},
+               {0xfe20, 0xfe2d, 1},
                {0xff3e, 0xff3e, 1},
                {0xff40, 0xff40, 1},
                {0xff70, 0xff70, 1},
@@ -4632,16 +5172,30 @@ var _Diacritic = &RangeTable{
                {0xffe3, 0xffe3, 1},
        },
        R32: []Range32{
+               {0x102e0, 0x102e0, 1},
+               {0x10ae5, 0x10ae6, 1},
                {0x110b9, 0x110ba, 1},
                {0x11133, 0x11134, 1},
+               {0x11173, 0x11173, 1},
                {0x111c0, 0x111c0, 1},
+               {0x11235, 0x11236, 1},
+               {0x112e9, 0x112ea, 1},
+               {0x1133c, 0x1133c, 1},
+               {0x1134d, 0x1134d, 1},
+               {0x11366, 0x1136c, 1},
+               {0x11370, 0x11374, 1},
+               {0x114c2, 0x114c3, 1},
+               {0x115bf, 0x115c0, 1},
+               {0x1163f, 0x1163f, 1},
                {0x116b6, 0x116b7, 1},
+               {0x16af0, 0x16af4, 1},
                {0x16f8f, 0x16f9f, 1},
                {0x1d167, 0x1d169, 1},
                {0x1d16d, 0x1d172, 1},
                {0x1d17b, 0x1d182, 1},
                {0x1d185, 0x1d18b, 1},
                {0x1d1aa, 0x1d1ad, 1},
+               {0x1e8d0, 0x1e8d6, 1},
        },
        LatinOffset: 6,
 }
@@ -4666,11 +5220,17 @@ var _Extender = &RangeTable{
                {0xa015, 0xa015, 1},
                {0xa60c, 0xa60c, 1},
                {0xa9cf, 0xa9cf, 1},
+               {0xa9e6, 0xa9e6, 1},
                {0xaa70, 0xaa70, 1},
                {0xaadd, 0xaadd, 1},
                {0xaaf3, 0xaaf4, 1},
                {0xff70, 0xff70, 1},
        },
+       R32: []Range32{
+               {0x1135d, 0x1135d, 1},
+               {0x115c6, 0x115c8, 1},
+               {0x16b42, 0x16b43, 1},
+       },
        LatinOffset: 1,
 }
 
@@ -4798,8 +5358,7 @@ var _Other_Alphabetic = &RangeTable{
                {0x0825, 0x0827, 1},
                {0x0829, 0x082c, 1},
                {0x08e4, 0x08e9, 1},
-               {0x08f0, 0x08fe, 1},
-               {0x0900, 0x0903, 1},
+               {0x08f0, 0x0903, 1},
                {0x093a, 0x093b, 1},
                {0x093e, 0x094c, 1},
                {0x094e, 0x094f, 1},
@@ -4834,19 +5393,19 @@ var _Other_Alphabetic = &RangeTable{
                {0x0bc6, 0x0bc8, 1},
                {0x0bca, 0x0bcc, 1},
                {0x0bd7, 0x0bd7, 1},
-               {0x0c01, 0x0c03, 1},
+               {0x0c00, 0x0c03, 1},
                {0x0c3e, 0x0c44, 1},
                {0x0c46, 0x0c48, 1},
                {0x0c4a, 0x0c4c, 1},
                {0x0c55, 0x0c56, 1},
                {0x0c62, 0x0c63, 1},
-               {0x0c82, 0x0c83, 1},
+               {0x0c81, 0x0c83, 1},
                {0x0cbe, 0x0cc4, 1},
                {0x0cc6, 0x0cc8, 1},
                {0x0cca, 0x0ccc, 1},
                {0x0cd5, 0x0cd6, 1},
                {0x0ce2, 0x0ce3, 1},
-               {0x0d02, 0x0d03, 1},
+               {0x0d01, 0x0d03, 1},
                {0x0d3e, 0x0d44, 1},
                {0x0d46, 0x0d48, 1},
                {0x0d4a, 0x0d4c, 1},
@@ -4899,6 +5458,7 @@ var _Other_Alphabetic = &RangeTable{
                {0x1be7, 0x1bf1, 1},
                {0x1c24, 0x1c35, 1},
                {0x1cf2, 0x1cf3, 1},
+               {0x1de7, 0x1df4, 1},
                {0x24b6, 0x24e9, 1},
                {0x2de0, 0x2dff, 1},
                {0xa674, 0xa67b, 1},
@@ -4923,6 +5483,7 @@ var _Other_Alphabetic = &RangeTable{
                {0xfb1e, 0xfb1e, 1},
        },
        R32: []Range32{
+               {0x10376, 0x1037a, 1},
                {0x10a01, 0x10a03, 1},
                {0x10a05, 0x10a06, 1},
                {0x10a0c, 0x10a0f, 1},
@@ -4934,8 +5495,27 @@ var _Other_Alphabetic = &RangeTable{
                {0x11127, 0x11132, 1},
                {0x11180, 0x11182, 1},
                {0x111b3, 0x111bf, 1},
+               {0x1122c, 0x11234, 1},
+               {0x11237, 0x11237, 1},
+               {0x112df, 0x112e8, 1},
+               {0x11301, 0x11303, 1},
+               {0x1133e, 0x11344, 1},
+               {0x11347, 0x11348, 1},
+               {0x1134b, 0x1134c, 1},
+               {0x11357, 0x11357, 1},
+               {0x11362, 0x11363, 1},
+               {0x114b0, 0x114c1, 1},
+               {0x115af, 0x115b5, 1},
+               {0x115b8, 0x115be, 1},
+               {0x11630, 0x1163e, 1},
+               {0x11640, 0x11640, 1},
                {0x116ab, 0x116b5, 1},
+               {0x16b30, 0x16b36, 1},
                {0x16f51, 0x16f7e, 1},
+               {0x1bc9e, 0x1bc9e, 1},
+               {0x1f130, 0x1f149, 1},
+               {0x1f150, 0x1f169, 1},
+               {0x1f170, 0x1f189, 1},
        },
 }
 
@@ -4976,6 +5556,11 @@ var _Other_Grapheme_Extend = &RangeTable{
                {0xff9e, 0xff9f, 1},
        },
        R32: []Range32{
+               {0x1133e, 0x1133e, 1},
+               {0x11357, 0x11357, 1},
+               {0x114b0, 0x114b0, 1},
+               {0x114bd, 0x114bd, 1},
+               {0x115af, 0x115af, 1},
                {0x1d165, 0x1d165, 1},
                {0x1d16e, 0x1d172, 1},
        },
@@ -5017,8 +5602,10 @@ var _Other_Lowercase = &RangeTable{
                {0x2170, 0x217f, 1},
                {0x24d0, 0x24e9, 1},
                {0x2c7c, 0x2c7d, 1},
+               {0xa69c, 0xa69d, 1},
                {0xa770, 0xa770, 1},
                {0xa7f8, 0xa7f9, 1},
+               {0xab5c, 0xab5f, 1},
        },
        LatinOffset: 2,
 }
@@ -5170,6 +5757,11 @@ var _Other_Uppercase = &RangeTable{
                {0x2160, 0x216f, 1},
                {0x24b6, 0x24cf, 1},
        },
+       R32: []Range32{
+               {0x1f130, 0x1f149, 1},
+               {0x1f150, 0x1f169, 1},
+               {0x1f170, 0x1f189, 1},
+       },
 }
 
 var _Pattern_Syntax = &RangeTable{
@@ -5225,6 +5817,7 @@ var _Quotation_Mark = &RangeTable{
                {0x00bb, 0x00bb, 1},
                {0x2018, 0x201f, 1},
                {0x2039, 0x203a, 1},
+               {0x2e42, 0x2e42, 1},
                {0x300c, 0x300f, 1},
                {0x301d, 0x301f, 1},
                {0xfe41, 0xfe44, 1},
@@ -5248,8 +5841,6 @@ var _STerm = &RangeTable{
                {0x0021, 0x0021, 1},
                {0x002e, 0x002e, 1},
                {0x003f, 0x003f, 1},
-               {0x055c, 0x055c, 1},
-               {0x055e, 0x055e, 1},
                {0x0589, 0x0589, 1},
                {0x061f, 0x061f, 1},
                {0x06d4, 0x06d4, 1},
@@ -5272,6 +5863,7 @@ var _STerm = &RangeTable{
                {0x203c, 0x203d, 1},
                {0x2047, 0x2049, 1},
                {0x2e2e, 0x2e2e, 1},
+               {0x2e3c, 0x2e3c, 1},
                {0x3002, 0x3002, 1},
                {0xa4ff, 0xa4ff, 1},
                {0xa60e, 0xa60f, 1},
@@ -5297,6 +5889,17 @@ var _STerm = &RangeTable{
                {0x110be, 0x110c1, 1},
                {0x11141, 0x11143, 1},
                {0x111c5, 0x111c6, 1},
+               {0x111cd, 0x111cd, 1},
+               {0x11238, 0x11239, 1},
+               {0x1123b, 0x1123c, 1},
+               {0x115c2, 0x115c3, 1},
+               {0x115c9, 0x115c9, 1},
+               {0x11641, 0x11642, 1},
+               {0x16a6e, 0x16a6f, 1},
+               {0x16af5, 0x16af5, 1},
+               {0x16b37, 0x16b38, 1},
+               {0x16b44, 0x16b44, 1},
+               {0x1bc9f, 0x1bc9f, 1},
        },
        LatinOffset: 3,
 }
@@ -5368,6 +5971,7 @@ var _Terminal_Punctuation = &RangeTable{
                {0x1361, 0x1368, 1},
                {0x166d, 0x166e, 1},
                {0x16eb, 0x16ed, 1},
+               {0x1735, 0x1736, 1},
                {0x17d4, 0x17d6, 1},
                {0x17da, 0x17da, 1},
                {0x1802, 0x1805, 1},
@@ -5381,6 +5985,8 @@ var _Terminal_Punctuation = &RangeTable{
                {0x203c, 0x203d, 1},
                {0x2047, 0x2049, 1},
                {0x2e2e, 0x2e2e, 1},
+               {0x2e3c, 0x2e3c, 1},
+               {0x2e41, 0x2e41, 1},
                {0x3001, 0x3002, 1},
                {0xa4fe, 0xa4ff, 1},
                {0xa60d, 0xa60f, 1},
@@ -5408,12 +6014,25 @@ var _Terminal_Punctuation = &RangeTable{
                {0x103d0, 0x103d0, 1},
                {0x10857, 0x10857, 1},
                {0x1091f, 0x1091f, 1},
+               {0x10a56, 0x10a57, 1},
+               {0x10af0, 0x10af5, 1},
                {0x10b3a, 0x10b3f, 1},
+               {0x10b99, 0x10b9c, 1},
                {0x11047, 0x1104d, 1},
                {0x110be, 0x110c1, 1},
                {0x11141, 0x11143, 1},
                {0x111c5, 0x111c6, 1},
-               {0x12470, 0x12473, 1},
+               {0x111cd, 0x111cd, 1},
+               {0x11238, 0x1123c, 1},
+               {0x115c2, 0x115c5, 1},
+               {0x115c9, 0x115c9, 1},
+               {0x11641, 0x11642, 1},
+               {0x12470, 0x12474, 1},
+               {0x16a6e, 0x16a6f, 1},
+               {0x16af5, 0x16af5, 1},
+               {0x16b37, 0x16b39, 1},
+               {0x16b44, 0x16b44, 1},
+               {0x1bc9f, 0x1bc9f, 1},
        },
        LatinOffset: 5,
 }
@@ -5500,7 +6119,7 @@ var (
 )
 
 // Generated by running
-//     maketables --data=http://www.unicode.org/Public/6.3.0/ucd/UnicodeData.txt --casefolding=http://www.unicode.org/Public/6.3.0/ucd/CaseFolding.txt
+//     maketables --data=http://www.unicode.org/Public/7.0.0/ucd/UnicodeData.txt --casefolding=http://www.unicode.org/Public/7.0.0/ucd/CaseFolding.txt
 // DO NOT EDIT
 
 // CaseRanges is the table describing case mappings for all letters with
@@ -5598,13 +6217,16 @@ var _CaseRanges = []CaseRange{
        {0x0256, 0x0257, d{-205, 0, -205}},
        {0x0259, 0x0259, d{-202, 0, -202}},
        {0x025B, 0x025B, d{-203, 0, -203}},
+       {0x025C, 0x025C, d{42319, 0, 42319}},
        {0x0260, 0x0260, d{-205, 0, -205}},
+       {0x0261, 0x0261, d{42315, 0, 42315}},
        {0x0263, 0x0263, d{-207, 0, -207}},
        {0x0265, 0x0265, d{42280, 0, 42280}},
        {0x0266, 0x0266, d{42308, 0, 42308}},
        {0x0268, 0x0268, d{-209, 0, -209}},
        {0x0269, 0x0269, d{-211, 0, -211}},
        {0x026B, 0x026B, d{10743, 0, 10743}},
+       {0x026C, 0x026C, d{42305, 0, 42305}},
        {0x026F, 0x026F, d{-211, 0, -211}},
        {0x0271, 0x0271, d{10749, 0, 10749}},
        {0x0272, 0x0272, d{-213, 0, -213}},
@@ -5612,15 +6234,18 @@ var _CaseRanges = []CaseRange{
        {0x027D, 0x027D, d{10727, 0, 10727}},
        {0x0280, 0x0280, d{-218, 0, -218}},
        {0x0283, 0x0283, d{-218, 0, -218}},
+       {0x0287, 0x0287, d{42282, 0, 42282}},
        {0x0288, 0x0288, d{-218, 0, -218}},
        {0x0289, 0x0289, d{-69, 0, -69}},
        {0x028A, 0x028B, d{-217, 0, -217}},
        {0x028C, 0x028C, d{-71, 0, -71}},
        {0x0292, 0x0292, d{-219, 0, -219}},
+       {0x029E, 0x029E, d{42258, 0, 42258}},
        {0x0345, 0x0345, d{84, 0, 84}},
        {0x0370, 0x0373, d{UpperLower, UpperLower, UpperLower}},
        {0x0376, 0x0377, d{UpperLower, UpperLower, UpperLower}},
        {0x037B, 0x037D, d{130, 0, 130}},
+       {0x037F, 0x037F, d{0, 116, 0}},
        {0x0386, 0x0386, d{0, 38, 0}},
        {0x0388, 0x038A, d{0, 37, 0}},
        {0x038C, 0x038C, d{0, 64, 0}},
@@ -5644,6 +6269,7 @@ var _CaseRanges = []CaseRange{
        {0x03F0, 0x03F0, d{-86, 0, -86}},
        {0x03F1, 0x03F1, d{-80, 0, -80}},
        {0x03F2, 0x03F2, d{7, 0, 7}},
+       {0x03F3, 0x03F3, d{-116, 0, -116}},
        {0x03F4, 0x03F4, d{0, -60, 0}},
        {0x03F5, 0x03F5, d{-96, 0, -96}},
        {0x03F7, 0x03F8, d{UpperLower, UpperLower, UpperLower}},
@@ -5659,7 +6285,7 @@ var _CaseRanges = []CaseRange{
        {0x04C0, 0x04C0, d{0, 15, 0}},
        {0x04C1, 0x04CE, d{UpperLower, UpperLower, UpperLower}},
        {0x04CF, 0x04CF, d{-15, 0, -15}},
-       {0x04D0, 0x0527, d{UpperLower, UpperLower, UpperLower}},
+       {0x04D0, 0x052F, d{UpperLower, UpperLower, UpperLower}},
        {0x0531, 0x0556, d{0, 48, 0}},
        {0x0561, 0x0586, d{-48, 0, -48}},
        {0x10A0, 0x10C5, d{0, 7264, 0}},
@@ -5757,7 +6383,7 @@ var _CaseRanges = []CaseRange{
        {0x2D27, 0x2D27, d{-7264, 0, -7264}},
        {0x2D2D, 0x2D2D, d{-7264, 0, -7264}},
        {0xA640, 0xA66D, d{UpperLower, UpperLower, UpperLower}},
-       {0xA680, 0xA697, d{UpperLower, UpperLower, UpperLower}},
+       {0xA680, 0xA69B, d{UpperLower, UpperLower, UpperLower}},
        {0xA722, 0xA72F, d{UpperLower, UpperLower, UpperLower}},
        {0xA732, 0xA76F, d{UpperLower, UpperLower, UpperLower}},
        {0xA779, 0xA77C, d{UpperLower, UpperLower, UpperLower}},
@@ -5766,12 +6392,19 @@ var _CaseRanges = []CaseRange{
        {0xA78B, 0xA78C, d{UpperLower, UpperLower, UpperLower}},
        {0xA78D, 0xA78D, d{0, -42280, 0}},
        {0xA790, 0xA793, d{UpperLower, UpperLower, UpperLower}},
-       {0xA7A0, 0xA7A9, d{UpperLower, UpperLower, UpperLower}},
+       {0xA796, 0xA7A9, d{UpperLower, UpperLower, UpperLower}},
        {0xA7AA, 0xA7AA, d{0, -42308, 0}},
+       {0xA7AB, 0xA7AB, d{0, -42319, 0}},
+       {0xA7AC, 0xA7AC, d{0, -42315, 0}},
+       {0xA7AD, 0xA7AD, d{0, -42305, 0}},
+       {0xA7B0, 0xA7B0, d{0, -42258, 0}},
+       {0xA7B1, 0xA7B1, d{0, -42282, 0}},
        {0xFF21, 0xFF3A, d{0, 32, 0}},
        {0xFF41, 0xFF5A, d{-32, 0, -32}},
        {0x10400, 0x10427, d{0, 40, 0}},
        {0x10428, 0x1044F, d{-40, 0, -40}},
+       {0x118A0, 0x118BF, d{0, 32, 0}},
+       {0x118C0, 0x118DF, d{-32, 0, -32}},
 }
 var properties = [MaxLatin1 + 1]uint8{
        0x00: pC,       // '\x00'
@@ -6181,8 +6814,8 @@ var foldLl = &RangeTable{
                {0x0248, 0x024e, 2},
                {0x0345, 0x0370, 43},
                {0x0372, 0x0376, 4},
-               {0x0386, 0x0388, 2},
-               {0x0389, 0x038a, 1},
+               {0x037f, 0x0386, 7},
+               {0x0388, 0x038a, 1},
                {0x038c, 0x038e, 2},
                {0x038f, 0x0391, 2},
                {0x0392, 0x03a1, 1},
@@ -6195,7 +6828,7 @@ var foldLl = &RangeTable{
                {0x0460, 0x0480, 2},
                {0x048a, 0x04c0, 2},
                {0x04c1, 0x04cd, 2},
-               {0x04d0, 0x0526, 2},
+               {0x04d0, 0x052e, 2},
                {0x0531, 0x0556, 1},
                {0x10a0, 0x10c5, 1},
                {0x10c7, 0x10cd, 6},
@@ -6230,18 +6863,21 @@ var foldLl = &RangeTable{
                {0x2ceb, 0x2ced, 2},
                {0x2cf2, 0xa640, 31054},
                {0xa642, 0xa66c, 2},
-               {0xa680, 0xa696, 2},
+               {0xa680, 0xa69a, 2},
                {0xa722, 0xa72e, 2},
                {0xa732, 0xa76e, 2},
                {0xa779, 0xa77d, 2},
                {0xa77e, 0xa786, 2},
                {0xa78b, 0xa78d, 2},
                {0xa790, 0xa792, 2},
-               {0xa7a0, 0xa7aa, 2},
+               {0xa796, 0xa7aa, 2},
+               {0xa7ab, 0xa7ad, 1},
+               {0xa7b0, 0xa7b1, 1},
                {0xff21, 0xff3a, 1},
        },
        R32: []Range32{
                {0x10400, 0x10427, 1},
+               {0x118a0, 0x118bf, 1},
        },
        LatinOffset: 3,
 }
@@ -6297,30 +6933,31 @@ var foldLu = &RangeTable{
                {0x0250, 0x0254, 1},
                {0x0256, 0x0257, 1},
                {0x0259, 0x025b, 2},
-               {0x0260, 0x0263, 3},
-               {0x0265, 0x0266, 1},
-               {0x0268, 0x0269, 1},
-               {0x026b, 0x026f, 4},
+               {0x025c, 0x0260, 4},
+               {0x0261, 0x0265, 2},
+               {0x0266, 0x0268, 2},
+               {0x0269, 0x026b, 2},
+               {0x026c, 0x026f, 3},
                {0x0271, 0x0272, 1},
                {0x0275, 0x027d, 8},
                {0x0280, 0x0283, 3},
-               {0x0288, 0x028c, 1},
-               {0x0292, 0x0345, 179},
-               {0x0371, 0x0373, 2},
-               {0x0377, 0x037b, 4},
+               {0x0287, 0x028c, 1},
+               {0x0292, 0x029e, 12},
+               {0x0345, 0x0371, 44},
+               {0x0373, 0x037b, 4},
                {0x037c, 0x037d, 1},
                {0x03ac, 0x03af, 1},
                {0x03b1, 0x03ce, 1},
                {0x03d0, 0x03d1, 1},
                {0x03d5, 0x03d7, 1},
                {0x03d9, 0x03ef, 2},
-               {0x03f0, 0x03f2, 1},
+               {0x03f0, 0x03f3, 1},
                {0x03f5, 0x03fb, 3},
                {0x0430, 0x045f, 1},
                {0x0461, 0x0481, 2},
                {0x048b, 0x04bf, 2},
                {0x04c2, 0x04ce, 2},
-               {0x04cf, 0x0527, 2},
+               {0x04cf, 0x052f, 2},
                {0x0561, 0x0586, 1},
                {0x1d79, 0x1d7d, 4},
                {0x1e01, 0x1e95, 2},
@@ -6349,18 +6986,19 @@ var foldLu = &RangeTable{
                {0x2d01, 0x2d25, 1},
                {0x2d27, 0x2d2d, 6},
                {0xa641, 0xa66d, 2},
-               {0xa681, 0xa697, 2},
+               {0xa681, 0xa69b, 2},
                {0xa723, 0xa72f, 2},
                {0xa733, 0xa76f, 2},
                {0xa77a, 0xa77c, 2},
                {0xa77f, 0xa787, 2},
                {0xa78c, 0xa791, 5},
-               {0xa793, 0xa7a1, 14},
-               {0xa7a3, 0xa7a9, 2},
+               {0xa793, 0xa797, 4},
+               {0xa799, 0xa7a9, 2},
                {0xff41, 0xff5a, 1},
        },
        R32: []Range32{
                {0x10428, 0x1044f, 1},
+               {0x118c0, 0x118df, 1},
        },
        LatinOffset: 4,
 }
@@ -6385,7 +7023,7 @@ var foldMn = &RangeTable{
 // If there is no entry for a script name, there are no such points.
 var FoldScript = map[string]*RangeTable{}
 
-// Range entries: 3471 16-bit, 832 32-bit, 4303 total.
-// Range bytes: 20826 16-bit, 9984 32-bit, 30810 total.
+// Range entries: 3532 16-bit, 1204 32-bit, 4736 total.
+// Range bytes: 21192 16-bit, 14448 32-bit, 35640 total.
 
 // Fold orbit bytes: 63 pairs, 252 bytes