From 2d2fd9322ed83babf699d548166e43ffa10f3413 Mon Sep 17 00:00:00 2001
From: Hans Hagen <pragma@wxs.nl>
Date: Thu, 17 Nov 2016 15:04:15 +0100
Subject: 2016-11-17 14:26:00

---
 doc/context/documents/general/qrcs/setup-cs.pdf    |   Bin 831150 -> 831068 bytes
 doc/context/documents/general/qrcs/setup-de.pdf    |   Bin 830506 -> 830428 bytes
 doc/context/documents/general/qrcs/setup-en.pdf    |   Bin 836040 -> 835952 bytes
 doc/context/documents/general/qrcs/setup-fr.pdf    |   Bin 828566 -> 828483 bytes
 doc/context/documents/general/qrcs/setup-it.pdf    |   Bin 830444 -> 830381 bytes
 doc/context/documents/general/qrcs/setup-nl.pdf    |   Bin 827502 -> 827405 bytes
 doc/context/documents/general/qrcs/setup-ro.pdf    |   Bin 827007 -> 826925 bytes
 .../presentations/examples/present-balls-001.pdf   |   Bin 0 -> 31968 bytes
 .../presentations/examples/present-balls-001.tex   |    19 +
 .../presentations/examples/present-organic-001.pdf |   Bin 0 -> 29745 bytes
 .../presentations/examples/present-organic-001.tex |    17 +
 .../presentations/examples/present-split-001.pdf   |   Bin 0 -> 23404 bytes
 .../presentations/examples/present-split-001.tex   |    15 +
 scripts/context/lua/mtx-unicode.lua                |    17 +-
 tex/context/base/mkii/cont-new.mkii                |     2 +-
 tex/context/base/mkii/context.mkii                 |     2 +-
 tex/context/base/mkiv/char-def.lua                 | 12593 ++++++++++++++++++-
 tex/context/base/mkiv/char-ini.lua                 |    34 +-
 tex/context/base/mkiv/cont-fil.mkiv                |     6 +-
 tex/context/base/mkiv/cont-new.mkiv                |     2 +-
 tex/context/base/mkiv/context.mkiv                 |     2 +-
 tex/context/base/mkiv/font-ini.mkvi                |    82 +-
 tex/context/base/mkiv/lxml-tex.lua                 |     6 +-
 tex/context/base/mkiv/math-del.mkiv                |     5 +-
 tex/context/base/mkiv/math-ini.mkiv                |     4 +
 tex/context/base/mkiv/scrn-but.mkvi                |     3 +-
 tex/context/base/mkiv/status-files.pdf             |   Bin 25665 -> 25644 bytes
 tex/context/base/mkiv/status-lua.pdf               |   Bin 368442 -> 368477 bytes
 tex/context/base/mkiv/strc-con.mkvi                |     3 +-
 tex/context/base/mkiv/tabl-tab.mkiv                |     6 +-
 tex/context/interface/mkiv/i-context.pdf           |   Bin 836040 -> 835952 bytes
 tex/context/interface/mkiv/i-readme.pdf            |   Bin 60766 -> 60767 bytes
 tex/context/interface/mkiv/i-table.xml             |     3 +
 tex/context/modules/common/s-pre-14.tex            |   263 -
 tex/context/modules/common/s-pre-15.tex            |   186 -
 tex/context/modules/common/s-pre-19.tex            |   347 -
 tex/context/modules/mkii/s-pre-14.mkii             |   263 +
 tex/context/modules/mkii/s-pre-15.mkii             |   186 +
 tex/context/modules/mkii/s-pre-19.mkii             |   347 +
 tex/context/modules/mkiv/s-present-balls.mkiv      |   194 +
 tex/context/modules/mkiv/s-present-organic.mkiv    |   335 +
 tex/context/modules/mkiv/s-present-split.mkiv      |   191 +
 tex/generic/context/luatex/luatex-fonts-merged.lua |     2 +-
 43 files changed, 13631 insertions(+), 1504 deletions(-)
 create mode 100644 doc/context/presentations/examples/present-balls-001.pdf
 create mode 100644 doc/context/presentations/examples/present-balls-001.tex
 create mode 100644 doc/context/presentations/examples/present-organic-001.pdf
 create mode 100644 doc/context/presentations/examples/present-organic-001.tex
 create mode 100644 doc/context/presentations/examples/present-split-001.pdf
 create mode 100644 doc/context/presentations/examples/present-split-001.tex
 delete mode 100644 tex/context/modules/common/s-pre-14.tex
 delete mode 100644 tex/context/modules/common/s-pre-15.tex
 delete mode 100644 tex/context/modules/common/s-pre-19.tex
 create mode 100644 tex/context/modules/mkii/s-pre-14.mkii
 create mode 100644 tex/context/modules/mkii/s-pre-15.mkii
 create mode 100644 tex/context/modules/mkii/s-pre-19.mkii
 create mode 100644 tex/context/modules/mkiv/s-present-balls.mkiv
 create mode 100644 tex/context/modules/mkiv/s-present-organic.mkiv
 create mode 100644 tex/context/modules/mkiv/s-present-split.mkiv

diff --git a/doc/context/documents/general/qrcs/setup-cs.pdf b/doc/context/documents/general/qrcs/setup-cs.pdf
index c35c5edc4..3aa1c50e5 100644
Binary files a/doc/context/documents/general/qrcs/setup-cs.pdf and b/doc/context/documents/general/qrcs/setup-cs.pdf differ
diff --git a/doc/context/documents/general/qrcs/setup-de.pdf b/doc/context/documents/general/qrcs/setup-de.pdf
index 37092a33a..fe7792c63 100644
Binary files a/doc/context/documents/general/qrcs/setup-de.pdf and b/doc/context/documents/general/qrcs/setup-de.pdf differ
diff --git a/doc/context/documents/general/qrcs/setup-en.pdf b/doc/context/documents/general/qrcs/setup-en.pdf
index 0c266d81b..4d982bbe8 100644
Binary files a/doc/context/documents/general/qrcs/setup-en.pdf and b/doc/context/documents/general/qrcs/setup-en.pdf differ
diff --git a/doc/context/documents/general/qrcs/setup-fr.pdf b/doc/context/documents/general/qrcs/setup-fr.pdf
index ba0216791..0a15af9ea 100644
Binary files a/doc/context/documents/general/qrcs/setup-fr.pdf and b/doc/context/documents/general/qrcs/setup-fr.pdf differ
diff --git a/doc/context/documents/general/qrcs/setup-it.pdf b/doc/context/documents/general/qrcs/setup-it.pdf
index f2aacc366..e2cbfea14 100644
Binary files a/doc/context/documents/general/qrcs/setup-it.pdf and b/doc/context/documents/general/qrcs/setup-it.pdf differ
diff --git a/doc/context/documents/general/qrcs/setup-nl.pdf b/doc/context/documents/general/qrcs/setup-nl.pdf
index d656d661d..19055aac0 100644
Binary files a/doc/context/documents/general/qrcs/setup-nl.pdf and b/doc/context/documents/general/qrcs/setup-nl.pdf differ
diff --git a/doc/context/documents/general/qrcs/setup-ro.pdf b/doc/context/documents/general/qrcs/setup-ro.pdf
index fcf595eb9..5e178b6cc 100644
Binary files a/doc/context/documents/general/qrcs/setup-ro.pdf and b/doc/context/documents/general/qrcs/setup-ro.pdf differ
diff --git a/doc/context/presentations/examples/present-balls-001.pdf b/doc/context/presentations/examples/present-balls-001.pdf
new file mode 100644
index 000000000..7960df97c
Binary files /dev/null and b/doc/context/presentations/examples/present-balls-001.pdf differ
diff --git a/doc/context/presentations/examples/present-balls-001.tex b/doc/context/presentations/examples/present-balls-001.tex
new file mode 100644
index 000000000..e806fc9e8
--- /dev/null
+++ b/doc/context/presentations/examples/present-balls-001.tex
@@ -0,0 +1,19 @@
+\usemodule[present-balls]
+
+\starttext
+
+\TitlePage{Do you know \TEX ?}
+
+\startbuffer
+\StartIdea
+    \StartItem We use \TEX\ for typesetting       \unknown \StopItem
+    \StartItem mathematical text                  \unknown \StopItem
+    \StartItem but also for text that has no math \unknown \StopItem
+    \StartItem or presentations like this         \unknown \StopItem
+    \StartItem and whatever you can come up with!          \StopItem
+\StopIdea
+\stopbuffer
+
+\dorecurse{6}{\getbuffer}
+
+\stoptext
diff --git a/doc/context/presentations/examples/present-organic-001.pdf b/doc/context/presentations/examples/present-organic-001.pdf
new file mode 100644
index 000000000..b49a4437a
Binary files /dev/null and b/doc/context/presentations/examples/present-organic-001.pdf differ
diff --git a/doc/context/presentations/examples/present-organic-001.tex b/doc/context/presentations/examples/present-organic-001.tex
new file mode 100644
index 000000000..bdd56c5c6
--- /dev/null
+++ b/doc/context/presentations/examples/present-organic-001.tex
@@ -0,0 +1,17 @@
+\usemodule[present-organic]
+
+\setupMPvariables[page][alternative=3]
+
+\startdocument
+  [title={A Few Nice Quotes},
+   subtitle={A Simple Style Demo},
+   location={Hans Hagen, August 2000}]
+
+    \Topic {Douglas R. Hofstadter} \input douglas \page
+    \Topic {Donald  E. Knuth}      \input knuth   \page
+    \Topic {Edward  R. Tufte}      \input tufte   \page
+    \Topic {Hermann    Zapf}       \input zapf    \page
+    %Topic {David   F. Stork}      \input stork   \page
+
+\stoptext
+
diff --git a/doc/context/presentations/examples/present-split-001.pdf b/doc/context/presentations/examples/present-split-001.pdf
new file mode 100644
index 000000000..04d99c848
Binary files /dev/null and b/doc/context/presentations/examples/present-split-001.pdf differ
diff --git a/doc/context/presentations/examples/present-split-001.tex b/doc/context/presentations/examples/present-split-001.tex
new file mode 100644
index 000000000..6d6cc7f99
--- /dev/null
+++ b/doc/context/presentations/examples/present-split-001.tex
@@ -0,0 +1,15 @@
+\usemodule[present-split]
+
+\startdocument
+  [title=Some Quotes,
+   subtitle=that you probably know by now]
+
+    \Topic{Tufte}   \input tufte
+    \Topic{Knuth}   \input knuth
+    \Topic{Reich}   \input reich
+    \Topic{Zapf}    \input zapf
+    \Topic{Materie} \input materie
+    %Topic{Stork}   \input stork
+
+\stopdocument
+
diff --git a/scripts/context/lua/mtx-unicode.lua b/scripts/context/lua/mtx-unicode.lua
index 673febc65..5bf12a871 100644
--- a/scripts/context/lua/mtx-unicode.lua
+++ b/scripts/context/lua/mtx-unicode.lua
@@ -48,9 +48,9 @@ local application = logs.application {
 
 local gmatch, match, gsub, find, lower, format = string.gmatch, string.match, string.gsub, string.find, string.lower, string.format
 local concat = table.concat
-local split = string.split
+local split, splitlines, strip = string.split, string.splitlines, string.strip
 local are_equal = table.are_equal
-local tonumber = tonumber
+local tonumber, tostring, rawget = tonumber, tostring, rawget
 local lpegmatch = lpeg.match
 local formatters = string.formatters
 
@@ -75,7 +75,6 @@ local split_space_two   = lpeg.splitat (" ")
 local split_range_two   = lpeg.splitat ("..")
 local split_colon_table = lpeg.tsplitat(lpeg.P(" ")^0 * lpeg.P(";") * lpeg.P(" ")^0)
 
-
 local skipped = {
     [0x002C6] = true, -- MODIFIER LETTER CIRCUMFLEX ACCENT
     [0x002C7] = true, -- CARON
@@ -331,7 +330,7 @@ function scripts.unicode.update()
     end
     for i=1,#standardizedvariants do
         local si = standardizedvariants[i]
-        local pair, addendum = si[1], string.strip(si[2])
+        local pair, addendum = si[1], strip(si[2])
         local first, second = lpegmatch(split_space_two,pair) -- string.splitup(pair," ")
         first = tonumber(first,16)
         second = tonumber(second,16)
@@ -362,7 +361,7 @@ end
 local preamble
 
 local function splitdefinition(str,index)
-    local l = string.splitlines(str)
+    local l = splitlines(str)
     local t = { }
     if index then
         for i=1,#l do
@@ -420,7 +419,7 @@ function scripts.unicode.load()
         report("using: %s",fullname)
         dofile(fullname)
         --
-        preamble = data:gsub("characters%.data%s*=%s*%{.*","")
+        preamble = gsub(data,"characters%.data%s*=%s*%{.*","")
         --
         textfiles = {
             unicodedata          = resolvers.findfile("unicodedata.txt")          or "",
@@ -456,7 +455,9 @@ end
 
 function scripts.unicode.save(filename)
     if preamble then
-        io.savedata(filename,preamble .. table.serialize(characters.data,"characters.data", { hexify = true, noquotes = true } ))
+        local data = table.serialize(characters.data,"characters.data", { hexify = true, noquotes = true })
+        data = gsub(data,"%{%s+%[0xFE0E%]=\"text style\",%s+%[0xFE0F%]=\"emoji style\",%s+%}","variants_emoji")
+        io.savedata(filename,preamble .. data)
     end
 end
 
@@ -469,7 +470,7 @@ function scripts.unicode.extras() -- old code
     local fullname = resolvers.findfile("blocks.txt") or ""
     if fullname ~= "" then
         local data   = io.loaddata(fullname)
-        local lines  = string.splitlines(data)
+        local lines  = splitlines(data)
         local map    = { }
         local blocks = characters.blocks
         local result = { }
diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii
index eb871979a..c72cea29a 100644
--- a/tex/context/base/mkii/cont-new.mkii
+++ b/tex/context/base/mkii/cont-new.mkii
@@ -11,7 +11,7 @@
 %C therefore copyrighted by \PRAGMA. See mreadme.pdf for
 %C details.
 
-\newcontextversion{2016.11.04 20:50}
+\newcontextversion{2016.11.17 14:19}
 
 %D This file is loaded at runtime, thereby providing an
 %D excellent place for hacks, patches, extensions and new
diff --git a/tex/context/base/mkii/context.mkii b/tex/context/base/mkii/context.mkii
index f3d3d6bbd..08a53e31f 100644
--- a/tex/context/base/mkii/context.mkii
+++ b/tex/context/base/mkii/context.mkii
@@ -20,7 +20,7 @@
 %D your styles an modules.
 
 \edef\contextformat {\jobname}
-\edef\contextversion{2016.11.04 20:50}
+\edef\contextversion{2016.11.17 14:19}
 
 %D For those who want to use this:
 
diff --git a/tex/context/base/mkiv/char-def.lua b/tex/context/base/mkiv/char-def.lua
index 74748a642..72c868105 100644
--- a/tex/context/base/mkiv/char-def.lua
+++ b/tex/context/base/mkiv/char-def.lua
@@ -18,6 +18,11 @@ differences. We could save some bytes by sharing variant tables but it's not wor
 the trouble. Some additional data is kept in other files.
 ]]--
 
+local variants_emoji={
+  [0xFE0E]="text style",
+  [0xFE0F]="emoji style",
+}
+
 characters = characters or { }
 
 characters.data={
@@ -406,6 +411,7 @@ characters.data={
   mathname="ast",
   mathsymbol=0x2217,
   unicodeslot=0x2A,
+  variants=variants_emoji,
  },
  {
   adobename="plus",
@@ -436,9 +442,9 @@ characters.data={
   description="HYPHEN-MINUS",
   direction="es",
   linebreak="hy",
+  mathclass="nothing",
   mathextensible="h",
   mathfiller="relfill",
-  mathclass="nothing",
   mathname="mathhyphen",
   mathsymbol=0x2212,
   unicodeslot=0x2D,
@@ -489,6 +495,7 @@ characters.data={
   mathclass="number",
   unicodeslot=0x30,
   variants={
+   [0xFE00]="short diagonal stroke form",
    [0xFE0E]="text style",
    [0xFE0F]="emoji style",
   },
@@ -502,10 +509,7 @@ characters.data={
   linebreak="nu",
   mathclass="number",
   unicodeslot=0x31,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  {
   adobename="two",
@@ -516,10 +520,7 @@ characters.data={
   linebreak="nu",
   mathclass="number",
   unicodeslot=0x32,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  {
   adobename="three",
@@ -530,10 +531,7 @@ characters.data={
   linebreak="nu",
   mathclass="number",
   unicodeslot=0x33,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  {
   adobename="four",
@@ -544,10 +542,7 @@ characters.data={
   linebreak="nu",
   mathclass="number",
   unicodeslot=0x34,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  {
   adobename="five",
@@ -558,10 +553,7 @@ characters.data={
   linebreak="nu",
   mathclass="number",
   unicodeslot=0x35,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  {
   adobename="six",
@@ -572,10 +564,7 @@ characters.data={
   linebreak="nu",
   mathclass="number",
   unicodeslot=0x36,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  {
   adobename="seven",
@@ -586,10 +575,7 @@ characters.data={
   linebreak="nu",
   mathclass="number",
   unicodeslot=0x37,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  {
   adobename="eight",
@@ -600,10 +586,7 @@ characters.data={
   linebreak="nu",
   mathclass="number",
   unicodeslot=0x38,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  {
   adobename="nine",
@@ -614,10 +597,7 @@ characters.data={
   linebreak="nu",
   mathclass="number",
   unicodeslot=0x39,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  {
   adobename="colon",
@@ -1767,10 +1747,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0xA9,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  {
   adobename="ordfeminine",
@@ -1833,10 +1810,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0xAE,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  {
   adobename="macron",
@@ -20063,6 +20037,190 @@ characters.data={
   linebreak="al",
   unicodeslot=0x8B4,
  },
+ [0x8B6]={
+  arabic="d",
+  category="lo",
+  description="ARABIC LETTER BEH WITH SMALL MEEM ABOVE",
+  direction="al",
+  linebreak="al",
+  unicodeslot=0x8B6,
+ },
+ [0x8B7]={
+  arabic="d",
+  category="lo",
+  description="ARABIC LETTER PEH WITH SMALL MEEM ABOVE",
+  direction="al",
+  linebreak="al",
+  unicodeslot=0x8B7,
+ },
+ [0x8B8]={
+  arabic="d",
+  category="lo",
+  description="ARABIC LETTER TEH WITH SMALL TEH ABOVE",
+  direction="al",
+  linebreak="al",
+  unicodeslot=0x8B8,
+ },
+ [0x8B9]={
+  arabic="r",
+  category="lo",
+  description="ARABIC LETTER REH WITH SMALL NOON ABOVE",
+  direction="al",
+  linebreak="al",
+  unicodeslot=0x8B9,
+ },
+ [0x8BA]={
+  arabic="d",
+  category="lo",
+  description="ARABIC LETTER YEH WITH TWO DOTS BELOW AND SMALL NOON ABOVE",
+  direction="al",
+  linebreak="al",
+  unicodeslot=0x8BA,
+ },
+ [0x8BB]={
+  arabic="d",
+  category="lo",
+  description="ARABIC LETTER AFRICAN FEH",
+  direction="al",
+  linebreak="al",
+  unicodeslot=0x8BB,
+ },
+ [0x8BC]={
+  arabic="d",
+  category="lo",
+  description="ARABIC LETTER AFRICAN QAF",
+  direction="al",
+  linebreak="al",
+  unicodeslot=0x8BC,
+ },
+ [0x8BD]={
+  arabic="d",
+  category="lo",
+  description="ARABIC LETTER AFRICAN NOON",
+  direction="al",
+  linebreak="al",
+  unicodeslot=0x8BD,
+ },
+ [0x8D4]={
+  category="mn",
+  combining=0xE6,
+  description="ARABIC SMALL HIGH WORD AR-RUB",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x8D4,
+ },
+ [0x8D5]={
+  category="mn",
+  combining=0xE6,
+  description="ARABIC SMALL HIGH SAD",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x8D5,
+ },
+ [0x8D6]={
+  category="mn",
+  combining=0xE6,
+  description="ARABIC SMALL HIGH AIN",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x8D6,
+ },
+ [0x8D7]={
+  category="mn",
+  combining=0xE6,
+  description="ARABIC SMALL HIGH QAF",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x8D7,
+ },
+ [0x8D8]={
+  category="mn",
+  combining=0xE6,
+  description="ARABIC SMALL HIGH NOON WITH KASRA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x8D8,
+ },
+ [0x8D9]={
+  category="mn",
+  combining=0xE6,
+  description="ARABIC SMALL LOW NOON WITH KASRA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x8D9,
+ },
+ [0x8DA]={
+  category="mn",
+  combining=0xE6,
+  description="ARABIC SMALL HIGH WORD ATH-THALATHA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x8DA,
+ },
+ [0x8DB]={
+  category="mn",
+  combining=0xE6,
+  description="ARABIC SMALL HIGH WORD AS-SAJDA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x8DB,
+ },
+ [0x8DC]={
+  category="mn",
+  combining=0xE6,
+  description="ARABIC SMALL HIGH WORD AN-NISF",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x8DC,
+ },
+ [0x8DD]={
+  category="mn",
+  combining=0xE6,
+  description="ARABIC SMALL HIGH WORD SAKTA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x8DD,
+ },
+ [0x8DE]={
+  category="mn",
+  combining=0xE6,
+  description="ARABIC SMALL HIGH WORD QIF",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x8DE,
+ },
+ [0x8DF]={
+  category="mn",
+  combining=0xE6,
+  description="ARABIC SMALL HIGH WORD WAQFA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x8DF,
+ },
+ [0x8E0]={
+  category="mn",
+  combining=0xE6,
+  description="ARABIC SMALL HIGH FOOTNOTE MARKER",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x8E0,
+ },
+ [0x8E1]={
+  category="mn",
+  combining=0xE6,
+  description="ARABIC SMALL HIGH SIGN SAFHA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x8E1,
+ },
+ [0x8E2]={
+  arabic="u",
+  category="cf",
+  description="ARABIC DISPUTED END OF AYAH",
+  direction="an",
+  linebreak="al",
+  unicodeslot=0x8E2,
+ },
  [0x8E3]={
   category="mn",
   combining=0xDC,
@@ -25192,6 +25350,13 @@ characters.data={
   linebreak="al",
   unicodeslot=0xC7F,
  },
+ [0xC80]={
+  category="lo",
+  description="KANNADA SIGN SPACING CANDRABINDU",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0xC80,
+ },
  [0xC81]={
   category="mn",
   description="KANNADA SIGN CANDRABINDU",
@@ -26309,6 +26474,34 @@ characters.data={
   linebreak="al",
   unicodeslot=0xD4E,
  },
+ [0xD4F]={
+  category="so",
+  description="MALAYALAM SIGN PARA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0xD4F,
+ },
+ [0xD54]={
+  category="lo",
+  description="MALAYALAM LETTER CHILLU M",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0xD54,
+ },
+ [0xD55]={
+  category="lo",
+  description="MALAYALAM LETTER CHILLU Y",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0xD55,
+ },
+ [0xD56]={
+  category="lo",
+  description="MALAYALAM LETTER CHILLU LLL",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0xD56,
+ },
  [0xD57]={
   category="mc",
   description="MALAYALAM AU LENGTH MARK",
@@ -26316,6 +26509,55 @@ characters.data={
   linebreak="cm",
   unicodeslot=0xD57,
  },
+ [0xD58]={
+  category="no",
+  description="MALAYALAM FRACTION ONE ONE-HUNDRED-AND-SIXTIETH",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0xD58,
+ },
+ [0xD59]={
+  category="no",
+  description="MALAYALAM FRACTION ONE FORTIETH",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0xD59,
+ },
+ [0xD5A]={
+  category="no",
+  description="MALAYALAM FRACTION THREE EIGHTIETHS",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0xD5A,
+ },
+ [0xD5B]={
+  category="no",
+  description="MALAYALAM FRACTION ONE TWENTIETH",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0xD5B,
+ },
+ [0xD5C]={
+  category="no",
+  description="MALAYALAM FRACTION ONE TENTH",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0xD5C,
+ },
+ [0xD5D]={
+  category="no",
+  description="MALAYALAM FRACTION THREE TWENTIETHS",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0xD5D,
+ },
+ [0xD5E]={
+  category="no",
+  description="MALAYALAM FRACTION ONE FIFTH",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0xD5E,
+ },
  [0xD5F]={
   category="lo",
   description="MALAYALAM LETTER ARCHAIC II",
@@ -26463,6 +26705,27 @@ characters.data={
   linebreak="al",
   unicodeslot=0xD75,
  },
+ [0xD76]={
+  category="no",
+  description="MALAYALAM FRACTION ONE SIXTEENTH",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0xD76,
+ },
+ [0xD77]={
+  category="no",
+  description="MALAYALAM FRACTION ONE EIGHTH",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0xD77,
+ },
+ [0xD78]={
+  category="no",
+  description="MALAYALAM FRACTION THREE SIXTEENTHS",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0xD78,
+ },
  [0xD79]={
   category="so",
   description="MALAYALAM DATE MARK",
@@ -29855,6 +30118,9 @@ characters.data={
   direction="l",
   linebreak="sa",
   unicodeslot=0x1000,
+  variants={
+   [0xFE00]="dotted form",
+  },
  },
  [0x1001]={
   category="lo",
@@ -29869,6 +30135,9 @@ characters.data={
   direction="l",
   linebreak="sa",
   unicodeslot=0x1002,
+  variants={
+   [0xFE00]="dotted form",
+  },
  },
  [0x1003]={
   category="lo",
@@ -29883,6 +30152,9 @@ characters.data={
   direction="l",
   linebreak="sa",
   unicodeslot=0x1004,
+  variants={
+   [0xFE00]="dotted form",
+  },
  },
  [0x1005]={
   category="lo",
@@ -29967,6 +30239,9 @@ characters.data={
   direction="l",
   linebreak="sa",
   unicodeslot=0x1010,
+  variants={
+   [0xFE00]="dotted form",
+  },
  },
  [0x1011]={
   category="lo",
@@ -29974,6 +30249,9 @@ characters.data={
   direction="l",
   linebreak="sa",
   unicodeslot=0x1011,
+  variants={
+   [0xFE00]="dotted form",
+  },
  },
  [0x1012]={
   category="lo",
@@ -30002,6 +30280,9 @@ characters.data={
   direction="l",
   linebreak="sa",
   unicodeslot=0x1015,
+  variants={
+   [0xFE00]="dotted form",
+  },
  },
  [0x1016]={
   category="lo",
@@ -30030,6 +30311,9 @@ characters.data={
   direction="l",
   linebreak="sa",
   unicodeslot=0x1019,
+  variants={
+   [0xFE00]="dotted form",
+  },
  },
  [0x101A]={
   category="lo",
@@ -30037,6 +30321,9 @@ characters.data={
   direction="l",
   linebreak="sa",
   unicodeslot=0x101A,
+  variants={
+   [0xFE00]="dotted form",
+  },
  },
  [0x101B]={
   category="lo",
@@ -30051,6 +30338,9 @@ characters.data={
   direction="l",
   linebreak="sa",
   unicodeslot=0x101C,
+  variants={
+   [0xFE00]="dotted form",
+  },
  },
  [0x101D]={
   category="lo",
@@ -30058,6 +30348,9 @@ characters.data={
   direction="l",
   linebreak="sa",
   unicodeslot=0x101D,
+  variants={
+   [0xFE00]="dotted form",
+  },
  },
  [0x101E]={
   category="lo",
@@ -30093,6 +30386,9 @@ characters.data={
   direction="l",
   linebreak="sa",
   unicodeslot=0x1022,
+  variants={
+   [0xFE00]="dotted form",
+  },
  },
  [0x1023]={
   category="lo",
@@ -30199,6 +30495,9 @@ characters.data={
   direction="l",
   linebreak="sa",
   unicodeslot=0x1031,
+  variants={
+   [0xFE00]="dotted form",
+  },
  },
  [0x1032]={
   category="mn",
@@ -30678,6 +30977,9 @@ characters.data={
   direction="l",
   linebreak="sa",
   unicodeslot=0x1075,
+  variants={
+   [0xFE00]="dotted form",
+  },
  },
  [0x1076]={
   category="lo",
@@ -30699,6 +31001,9 @@ characters.data={
   direction="l",
   linebreak="sa",
   unicodeslot=0x1078,
+  variants={
+   [0xFE00]="dotted form",
+  },
  },
  [0x1079]={
   category="lo",
@@ -30713,6 +31018,9 @@ characters.data={
   direction="l",
   linebreak="sa",
   unicodeslot=0x107A,
+  variants={
+   [0xFE00]="dotted form",
+  },
  },
  [0x107B]={
   category="lo",
@@ -30755,6 +31063,9 @@ characters.data={
   direction="l",
   linebreak="sa",
   unicodeslot=0x1080,
+  variants={
+   [0xFE00]="dotted form",
+  },
  },
  [0x1081]={
   category="lo",
@@ -44582,19 +44893,19 @@ characters.data={
   unicodeslot=0x1884,
  },
  [0x1885]={
-  arabic="u",
+  arabic="t",
   category="lo",
   description="MONGOLIAN LETTER ALI GALI BALUDA",
-  direction="l",
-  linebreak="al",
+  direction="nsm",
+  linebreak="cm",
   unicodeslot=0x1885,
  },
  [0x1886]={
-  arabic="u",
+  arabic="t",
   category="lo",
   description="MONGOLIAN LETTER ALI GALI THREE BALUDA",
-  direction="l",
-  linebreak="al",
+  direction="nsm",
+  linebreak="cm",
   unicodeslot=0x1886,
  },
  [0x1887]={
@@ -50714,6 +51025,69 @@ characters.data={
   linebreak="ba",
   unicodeslot=0x1C7F,
  },
+ [0x1C80]={
+  category="ll",
+  description="CYRILLIC SMALL LETTER ROUNDED VE",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1C80,
+ },
+ [0x1C81]={
+  category="ll",
+  description="CYRILLIC SMALL LETTER LONG-LEGGED DE",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1C81,
+ },
+ [0x1C82]={
+  category="ll",
+  description="CYRILLIC SMALL LETTER NARROW O",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1C82,
+ },
+ [0x1C83]={
+  category="ll",
+  description="CYRILLIC SMALL LETTER WIDE ES",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1C83,
+ },
+ [0x1C84]={
+  category="ll",
+  description="CYRILLIC SMALL LETTER TALL TE",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1C84,
+ },
+ [0x1C85]={
+  category="ll",
+  description="CYRILLIC SMALL LETTER THREE-LEGGED TE",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1C85,
+ },
+ [0x1C86]={
+  category="ll",
+  description="CYRILLIC SMALL LETTER TALL HARD SIGN",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1C86,
+ },
+ [0x1C87]={
+  category="ll",
+  description="CYRILLIC SMALL LETTER TALL YAT",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1C87,
+ },
+ [0x1C88]={
+  category="ll",
+  description="CYRILLIC SMALL LETTER UNBLENDED UK",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1C88,
+ },
  [0x1CC0]={
   category="po",
   description="SUNDANESE PUNCTUATION BINDU SURYA",
@@ -52997,6 +53371,14 @@ characters.data={
   linebreak="cm",
   unicodeslot=0x1DF5,
  },
+ [0x1DFB]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING DELETION MARK",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1DFB,
+ },
  [0x1DFC]={
   category="mn",
   combining=0xE9,
@@ -58522,7 +58904,7 @@ characters.data={
   contextname="zwj",
   description="ZERO WIDTH JOINER",
   direction="bn",
-  linebreak="cm",
+  linebreak="zwj",
   unicodeslot=0x200D,
  },
  [0x200E]={
@@ -58871,6 +59253,7 @@ characters.data={
   unicodeslot=0x202E,
  },
  [0x202F]={
+  arabic="u",
   category="zs",
   contextname="narrownobreakspace",
   description="NARROW NO-BREAK SPACE",
@@ -59006,10 +59389,7 @@ characters.data={
   linebreak="ns",
   specials={ "compat", 0x21, 0x21 },
   unicodeslot=0x203C,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x203D]={
   category="po",
@@ -59136,10 +59516,7 @@ characters.data={
   linebreak="ns",
   specials={ "compat", 0x21, 0x3F },
   unicodeslot=0x2049,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x204A]={
   category="po",
@@ -60625,10 +61002,7 @@ characters.data={
   linebreak="ai",
   specials={ "super", 0x54, 0x4D },
   unicodeslot=0x2122,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2123]={
   category="so",
@@ -60842,10 +61216,7 @@ characters.data={
   linebreak="al",
   specials={ "font", 0x69 },
   unicodeslot=0x2139,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x213A]={
   category="so",
@@ -61736,10 +62107,7 @@ characters.data={
   mathextensible="h",
   mathname="leftrightarrow",
   unicodeslot=0x2194,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2195]={
   adobename="arrowupdn",
@@ -61752,10 +62120,7 @@ characters.data={
   mathextensible="v",
   mathname="updownarrow",
   unicodeslot=0x2195,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2196]={
   adobename="arrowupleft",
@@ -61767,10 +62132,7 @@ characters.data={
   mathclass="relation",
   mathname="nwarrow",
   unicodeslot=0x2196,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2197]={
   adobename="arrowupright",
@@ -61782,10 +62144,7 @@ characters.data={
   mathclass="relation",
   mathname="nearrow",
   unicodeslot=0x2197,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2198]={
   adobename="arrowdownright",
@@ -61797,10 +62156,7 @@ characters.data={
   mathclass="relation",
   mathname="searrow",
   unicodeslot=0x2198,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2199]={
   adobename="arrowdownleft",
@@ -61812,10 +62168,7 @@ characters.data={
   mathclass="relation",
   mathname="swarrow",
   unicodeslot=0x2199,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x219A]={
   category="sm",
@@ -61983,10 +62336,7 @@ characters.data={
   mathfiller="hookleftarrowfill",
   mathname="hookleftarrow",
   unicodeslot=0x21A9,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x21AA]={
   category="so",
@@ -61998,10 +62348,7 @@ characters.data={
   mathfiller="hookrightarrowfill",
   mathname="hookrightarrow",
   unicodeslot=0x21AA,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x21AB]={
   category="so",
@@ -62964,6 +63311,9 @@ characters.data={
   mathclass="default",
   mathname="emptyset",
   unicodeslot=0x2205,
+  variants={
+   [0xFE00]="zero with long diagonal stroke overlay form",
+  },
  },
  [0x2206]={
   adobename="increment",
@@ -65890,25 +66240,21 @@ characters.data={
  },
  [0x231A]={
   category="so",
+  cjkwd="w",
   description="WATCH",
   direction="on",
   linebreak="id",
   unicodeslot=0x231A,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x231B]={
   category="so",
+  cjkwd="w",
   description="HOURGLASS",
   direction="on",
   linebreak="id",
   unicodeslot=0x231B,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x231C]={
   category="so",
@@ -66017,6 +66363,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x2328,
+  variants=variants_emoji,
  },
  [0x2329]={
   adobename="angleleft",
@@ -67207,6 +67554,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x23CF,
+  variants=variants_emoji,
  },
  [0x23D0]={
   category="so",
@@ -67403,6 +67751,7 @@ characters.data={
  },
  [0x23E9]={
   category="so",
+  cjkwd="w",
   description="BLACK RIGHT-POINTING DOUBLE TRIANGLE",
   direction="on",
   linebreak="al",
@@ -67410,6 +67759,7 @@ characters.data={
  },
  [0x23EA]={
   category="so",
+  cjkwd="w",
   description="BLACK LEFT-POINTING DOUBLE TRIANGLE",
   direction="on",
   linebreak="al",
@@ -67417,6 +67767,7 @@ characters.data={
  },
  [0x23EB]={
   category="so",
+  cjkwd="w",
   description="BLACK UP-POINTING DOUBLE TRIANGLE",
   direction="on",
   linebreak="al",
@@ -67424,6 +67775,7 @@ characters.data={
  },
  [0x23EC]={
   category="so",
+  cjkwd="w",
   description="BLACK DOWN-POINTING DOUBLE TRIANGLE",
   direction="on",
   linebreak="al",
@@ -67435,6 +67787,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x23ED,
+  variants=variants_emoji,
  },
  [0x23EE]={
   category="so",
@@ -67442,6 +67795,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x23EE,
+  variants=variants_emoji,
  },
  [0x23EF]={
   category="so",
@@ -67449,9 +67803,11 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x23EF,
+  variants=variants_emoji,
  },
  [0x23F0]={
   category="so",
+  cjkwd="w",
   description="ALARM CLOCK",
   direction="on",
   linebreak="id",
@@ -67463,6 +67819,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x23F1,
+  variants=variants_emoji,
  },
  [0x23F2]={
   category="so",
@@ -67470,9 +67827,11 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x23F2,
+  variants=variants_emoji,
  },
  [0x23F3]={
   category="so",
+  cjkwd="w",
   description="HOURGLASS WITH FLOWING SAND",
   direction="on",
   linebreak="id",
@@ -67512,6 +67871,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x23F8,
+  variants=variants_emoji,
  },
  [0x23F9]={
   category="so",
@@ -67519,6 +67879,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x23F9,
+  variants=variants_emoji,
  },
  [0x23FA]={
   category="so",
@@ -67526,6 +67887,35 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x23FA,
+  variants=variants_emoji,
+ },
+ [0x23FB]={
+  category="so",
+  description="POWER SYMBOL",
+  direction="on",
+  linebreak="al",
+  unicodeslot=0x23FB,
+ },
+ [0x23FC]={
+  category="so",
+  description="POWER ON-OFF SYMBOL",
+  direction="on",
+  linebreak="al",
+  unicodeslot=0x23FC,
+ },
+ [0x23FD]={
+  category="so",
+  description="POWER ON SYMBOL",
+  direction="on",
+  linebreak="al",
+  unicodeslot=0x23FD,
+ },
+ [0x23FE]={
+  category="so",
+  description="POWER SLEEP SYMBOL",
+  direction="on",
+  linebreak="al",
+  unicodeslot=0x23FE,
  },
  [0x2400]={
   category="so",
@@ -68880,10 +69270,7 @@ characters.data={
   linebreak="ai",
   specials={ "circle", 0x4D },
   unicodeslot=0x24C2,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x24C3]={
   adobename="Ncircle",
@@ -70902,10 +71289,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x25AA,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x25AB]={
   adobename="whitesmallsquare",
@@ -70914,10 +71298,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x25AB,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x25AC]={
   adobename="filledrect",
@@ -71018,10 +71399,7 @@ characters.data={
   mathclass="binary",
   mathname="blacktriangleright",
   unicodeslot=0x25B6,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x25B7]={
   adobename="whiterightpointingtriangle",
@@ -71119,10 +71497,7 @@ characters.data={
   mathclass="binary",
   mathname="blacktriangleleft",
   unicodeslot=0x25C0,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x25C1]={
   adobename="whiteleftpointingtriangle",
@@ -71578,10 +71953,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x25FB,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x25FC]={
   category="sm",
@@ -71589,32 +71961,25 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x25FC,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x25FD]={
   category="sm",
+  cjkwd="w",
   description="WHITE MEDIUM SMALL SQUARE",
   direction="on",
   linebreak="al",
   unicodeslot=0x25FD,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x25FE]={
   category="sm",
+  cjkwd="w",
   description="BLACK MEDIUM SMALL SQUARE",
   direction="on",
   linebreak="al",
   unicodeslot=0x25FE,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x25FF]={
   category="sm",
@@ -71629,10 +71994,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x2600,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2601]={
   category="so",
@@ -71640,10 +72002,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x2601,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2602]={
   category="so",
@@ -71651,6 +72010,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x2602,
+  variants=variants_emoji,
  },
  [0x2603]={
   category="so",
@@ -71658,6 +72018,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x2603,
+  variants=variants_emoji,
  },
  [0x2604]={
   category="so",
@@ -71665,6 +72026,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x2604,
+  variants=variants_emoji,
  },
  [0x2605]={
   adobename="blackstar",
@@ -71744,10 +72106,7 @@ characters.data={
   direction="on",
   linebreak="ai",
   unicodeslot=0x260E,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x260F]={
   adobename="whitetelephone",
@@ -71771,10 +72130,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x2611,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2612]={
   category="so",
@@ -71792,27 +72148,21 @@ characters.data={
  },
  [0x2614]={
   category="so",
-  cjkwd="a",
+  cjkwd="w",
   description="UMBRELLA WITH RAIN DROPS",
   direction="on",
   linebreak="id",
   unicodeslot=0x2614,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2615]={
   category="so",
-  cjkwd="a",
+  cjkwd="w",
   description="HOT BEVERAGE",
   direction="on",
   linebreak="id",
   unicodeslot=0x2615,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2616]={
   category="so",
@@ -71834,6 +72184,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x2618,
+  variants=variants_emoji,
  },
  [0x2619]={
   category="so",
@@ -71870,12 +72221,9 @@ characters.data={
   category="so",
   description="WHITE UP POINTING INDEX",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x261D,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x261E]={
   adobename="pointingindexrightwhite",
@@ -71900,6 +72248,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x2620,
+  variants=variants_emoji,
  },
  [0x2621]={
   category="so",
@@ -71914,6 +72263,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x2622,
+  variants=variants_emoji,
  },
  [0x2623]={
   category="so",
@@ -71921,6 +72271,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x2623,
+  variants=variants_emoji,
  },
  [0x2624]={
   category="so",
@@ -71942,6 +72293,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x2626,
+  variants=variants_emoji,
  },
  [0x2627]={
   category="so",
@@ -71970,6 +72322,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x262A,
+  variants=variants_emoji,
  },
  [0x262B]={
   category="so",
@@ -71998,6 +72351,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x262E,
+  variants=variants_emoji,
  },
  [0x262F]={
   adobename="yinyang",
@@ -72006,6 +72360,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x262F,
+  variants=variants_emoji,
  },
  [0x2630]={
   category="so",
@@ -72069,6 +72424,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x2638,
+  variants=variants_emoji,
  },
  [0x2639]={
   category="so",
@@ -72076,6 +72432,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x2639,
+  variants=variants_emoji,
  },
  [0x263A]={
   adobename="whitesmilingface",
@@ -72084,10 +72441,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x263A,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x263B]={
   adobename="invsmileface",
@@ -72189,135 +72543,111 @@ characters.data={
  },
  [0x2648]={
   category="so",
+  cjkwd="w",
   description="ARIES",
   direction="on",
   linebreak="al",
   unicodeslot=0x2648,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2649]={
   category="so",
+  cjkwd="w",
   description="TAURUS",
   direction="on",
   linebreak="al",
   unicodeslot=0x2649,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x264A]={
   category="so",
+  cjkwd="w",
   description="GEMINI",
   direction="on",
   linebreak="al",
   unicodeslot=0x264A,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x264B]={
   category="so",
+  cjkwd="w",
   description="CANCER",
   direction="on",
   linebreak="al",
   unicodeslot=0x264B,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x264C]={
   category="so",
+  cjkwd="w",
   description="LEO",
   direction="on",
   linebreak="al",
   unicodeslot=0x264C,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x264D]={
   category="so",
+  cjkwd="w",
   description="VIRGO",
   direction="on",
   linebreak="al",
   unicodeslot=0x264D,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x264E]={
   category="so",
+  cjkwd="w",
   description="LIBRA",
   direction="on",
   linebreak="al",
   unicodeslot=0x264E,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x264F]={
   category="so",
+  cjkwd="w",
   description="SCORPIUS",
   direction="on",
   linebreak="al",
   unicodeslot=0x264F,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2650]={
   category="so",
+  cjkwd="w",
   description="SAGITTARIUS",
   direction="on",
   linebreak="al",
   unicodeslot=0x2650,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2651]={
   category="so",
+  cjkwd="w",
   description="CAPRICORN",
   direction="on",
   linebreak="al",
   unicodeslot=0x2651,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2652]={
   category="so",
+  cjkwd="w",
   description="AQUARIUS",
   direction="on",
   linebreak="al",
   unicodeslot=0x2652,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2653]={
   category="so",
+  cjkwd="w",
   description="PISCES",
   direction="on",
   linebreak="al",
   unicodeslot=0x2653,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2654]={
   category="so",
@@ -72413,10 +72743,7 @@ characters.data={
   mathclass="default",
   mathname="spadesuit",
   unicodeslot=0x2660,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2661]={
   adobename="heartsuitwhite",
@@ -72449,10 +72776,7 @@ characters.data={
   mathclass="default",
   mathname="clubsuit",
   unicodeslot=0x2663,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2664]={
   adobename="spadesuitwhite",
@@ -72471,10 +72795,7 @@ characters.data={
   direction="on",
   linebreak="ai",
   unicodeslot=0x2665,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2666]={
   adobename="diamond",
@@ -72485,10 +72806,7 @@ characters.data={
   mathclass="ordinary",
   mathname="blacklozenge",
   unicodeslot=0x2666,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2667]={
   adobename="clubsuitwhite",
@@ -72507,10 +72825,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x2668,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2669]={
   adobename="quarternote",
@@ -72661,10 +72976,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x267B,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x267C]={
   category="so",
@@ -72689,14 +73001,12 @@ characters.data={
  },
  [0x267F]={
   category="so",
+  cjkwd="w",
   description="WHEELCHAIR SYMBOL",
   direction="on",
   linebreak="id",
   unicodeslot=0x267F,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2680]={
   category="so",
@@ -72830,17 +73140,16 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x2692,
+  variants=variants_emoji,
  },
  [0x2693]={
   category="so",
+  cjkwd="w",
   description="ANCHOR",
   direction="on",
   linebreak="al",
   unicodeslot=0x2693,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2694]={
   category="so",
@@ -72848,6 +73157,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x2694,
+  variants=variants_emoji,
  },
  [0x2695]={
   category="so",
@@ -72862,6 +73172,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x2696,
+  variants=variants_emoji,
  },
  [0x2697]={
   category="so",
@@ -72869,6 +73180,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x2697,
+  variants=variants_emoji,
  },
  [0x2698]={
   category="so",
@@ -72883,6 +73195,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x2699,
+  variants=variants_emoji,
  },
  [0x269A]={
   category="so",
@@ -72897,6 +73210,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x269B,
+  variants=variants_emoji,
  },
  [0x269C]={
   category="so",
@@ -72904,6 +73218,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x269C,
+  variants=variants_emoji,
  },
  [0x269D]={
   category="so",
@@ -72934,21 +73249,16 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x26A0,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x26A1]={
   category="so",
+  cjkwd="w",
   description="HIGH VOLTAGE SIGN",
   direction="on",
   linebreak="al",
   unicodeslot=0x26A1,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x26A2]={
   category="so",
@@ -73008,25 +73318,21 @@ characters.data={
  },
  [0x26AA]={
   category="so",
+  cjkwd="w",
   description="MEDIUM WHITE CIRCLE",
   direction="on",
   linebreak="al",
   unicodeslot=0x26AA,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x26AB]={
   category="so",
+  cjkwd="w",
   description="MEDIUM BLACK CIRCLE",
   direction="on",
   linebreak="al",
   unicodeslot=0x26AB,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x26AC]={
   category="so",
@@ -73062,6 +73368,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x26B0,
+  variants=variants_emoji,
  },
  [0x26B1]={
   category="so",
@@ -73069,6 +73376,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x26B1,
+  variants=variants_emoji,
  },
  [0x26B2]={
   category="so",
@@ -73149,26 +73457,21 @@ characters.data={
  },
  [0x26BD]={
   category="so",
+  cjkwd="w",
   description="SOCCER BALL",
   direction="on",
   linebreak="id",
   unicodeslot=0x26BD,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x26BE]={
   category="so",
-  cjkwd="a",
+  cjkwd="w",
   description="BASEBALL",
   direction="on",
   linebreak="id",
   unicodeslot=0x26BE,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x26BF]={
   category="so",
@@ -73208,27 +73511,21 @@ characters.data={
  },
  [0x26C4]={
   category="so",
-  cjkwd="a",
+  cjkwd="w",
   description="SNOWMAN WITHOUT SNOW",
   direction="on",
   linebreak="id",
   unicodeslot=0x26C4,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x26C5]={
   category="so",
-  cjkwd="a",
+  cjkwd="w",
   description="SUN BEHIND CLOUD",
   direction="on",
   linebreak="id",
   unicodeslot=0x26C5,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x26C6]={
   category="so",
@@ -73253,6 +73550,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x26C8,
+  variants=variants_emoji,
  },
  [0x26C9]={
   category="so",
@@ -73296,6 +73594,7 @@ characters.data={
  },
  [0x26CE]={
   category="so",
+  cjkwd="w",
   description="OPHIUCHUS",
   direction="on",
   linebreak="al",
@@ -73308,6 +73607,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x26CF,
+  variants=variants_emoji,
  },
  [0x26D0]={
   category="so",
@@ -73324,6 +73624,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x26D1,
+  variants=variants_emoji,
  },
  [0x26D2]={
   category="so",
@@ -73340,18 +73641,16 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x26D3,
+  variants=variants_emoji,
  },
  [0x26D4]={
   category="so",
-  cjkwd="a",
+  cjkwd="w",
   description="NO ENTRY",
   direction="on",
   linebreak="id",
   unicodeslot=0x26D4,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x26D5]={
   category="so",
@@ -73515,18 +73814,16 @@ characters.data={
   direction="on",
   linebreak="ai",
   unicodeslot=0x26E9,
+  variants=variants_emoji,
  },
  [0x26EA]={
   category="so",
-  cjkwd="a",
+  cjkwd="w",
   description="CHURCH",
   direction="on",
   linebreak="id",
   unicodeslot=0x26EA,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x26EB]={
   category="so",
@@ -73575,6 +73872,7 @@ characters.data={
   direction="on",
   linebreak="ai",
   unicodeslot=0x26F0,
+  variants=variants_emoji,
  },
  [0x26F1]={
   category="so",
@@ -73583,30 +73881,25 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x26F1,
+  variants=variants_emoji,
  },
  [0x26F2]={
   category="so",
-  cjkwd="a",
+  cjkwd="w",
   description="FOUNTAIN",
   direction="on",
   linebreak="id",
   unicodeslot=0x26F2,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x26F3]={
   category="so",
-  cjkwd="a",
+  cjkwd="w",
   description="FLAG IN HOLE",
   direction="on",
   linebreak="id",
   unicodeslot=0x26F3,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x26F4]={
   category="so",
@@ -73615,18 +73908,16 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x26F4,
+  variants=variants_emoji,
  },
  [0x26F5]={
   category="so",
-  cjkwd="a",
+  cjkwd="w",
   description="SAILBOAT",
   direction="on",
   linebreak="id",
   unicodeslot=0x26F5,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x26F6]={
   category="so",
@@ -73643,6 +73934,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x26F7,
+  variants=variants_emoji,
  },
  [0x26F8]={
   category="so",
@@ -73651,26 +73943,25 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x26F8,
+  variants=variants_emoji,
  },
  [0x26F9]={
   category="so",
   cjkwd="a",
   description="PERSON WITH BALL",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x26F9,
+  variants=variants_emoji,
  },
  [0x26FA]={
   category="so",
-  cjkwd="a",
+  cjkwd="w",
   description="TENT",
   direction="on",
   linebreak="id",
   unicodeslot=0x26FA,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x26FB]={
   category="so",
@@ -73690,15 +73981,12 @@ characters.data={
  },
  [0x26FD]={
   category="so",
-  cjkwd="a",
+  cjkwd="w",
   description="FUEL PUMP",
   direction="on",
   linebreak="id",
   unicodeslot=0x26FD,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x26FE]={
   category="so",
@@ -73736,10 +74024,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x2702,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2703]={
   category="so",
@@ -73757,6 +74042,7 @@ characters.data={
  },
  [0x2705]={
   category="so",
+  cjkwd="w",
   description="WHITE HEAVY CHECK MARK",
   direction="on",
   linebreak="al",
@@ -73782,10 +74068,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x2708,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2709]={
   category="so",
@@ -73793,42 +74076,39 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x2709,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x270A]={
   category="so",
+  cjkwd="w",
   description="RAISED FIST",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x270A,
  },
  [0x270B]={
   category="so",
+  cjkwd="w",
   description="RAISED HAND",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x270B,
  },
  [0x270C]={
   category="so",
   description="VICTORY HAND",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x270C,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x270D]={
   category="so",
   description="WRITING HAND",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x270D,
+  variants=variants_emoji,
  },
  [0x270E]={
   category="so",
@@ -73843,10 +74123,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x270F,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2710]={
   category="so",
@@ -73868,10 +74145,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x2712,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2713]={
   adobename="checkmark",
@@ -73889,10 +74163,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x2714,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2715]={
   category="so",
@@ -73907,10 +74178,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x2716,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2717]={
   category="so",
@@ -73960,6 +74228,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x271D,
+  variants=variants_emoji,
  },
  [0x271E]={
   category="so",
@@ -73990,6 +74259,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x2721,
+  variants=variants_emoji,
  },
  [0x2722]={
   category="so",
@@ -74035,6 +74305,7 @@ characters.data={
  },
  [0x2728]={
   category="so",
+  cjkwd="w",
   description="SPARKLES",
   direction="on",
   linebreak="al",
@@ -74116,10 +74387,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x2733,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2734]={
   category="so",
@@ -74127,10 +74395,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x2734,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2735]={
   category="so",
@@ -74244,10 +74509,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x2744,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2745]={
   category="so",
@@ -74269,10 +74531,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x2747,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2748]={
   category="so",
@@ -74304,6 +74563,7 @@ characters.data={
  },
  [0x274C]={
   category="so",
+  cjkwd="w",
   description="CROSS MARK",
   direction="on",
   linebreak="al",
@@ -74318,6 +74578,7 @@ characters.data={
  },
  [0x274E]={
   category="so",
+  cjkwd="w",
   description="NEGATIVE SQUARED CROSS MARK",
   direction="on",
   linebreak="al",
@@ -74353,6 +74614,7 @@ characters.data={
  },
  [0x2753]={
   category="so",
+  cjkwd="w",
   description="BLACK QUESTION MARK ORNAMENT",
   direction="on",
   linebreak="al",
@@ -74360,6 +74622,7 @@ characters.data={
  },
  [0x2754]={
   category="so",
+  cjkwd="w",
   description="WHITE QUESTION MARK ORNAMENT",
   direction="on",
   linebreak="al",
@@ -74367,6 +74630,7 @@ characters.data={
  },
  [0x2755]={
   category="so",
+  cjkwd="w",
   description="WHITE EXCLAMATION MARK ORNAMENT",
   direction="on",
   linebreak="al",
@@ -74381,15 +74645,12 @@ characters.data={
  },
  [0x2757]={
   category="so",
-  cjkwd="a",
+  cjkwd="w",
   description="HEAVY EXCLAMATION MARK SYMBOL",
   direction="on",
   linebreak="ai",
   unicodeslot=0x2757,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2758]={
   category="so",
@@ -74474,17 +74735,15 @@ characters.data={
   direction="on",
   linebreak="ex",
   unicodeslot=0x2763,
+  variants=variants_emoji,
  },
  [0x2764]={
   category="so",
   description="HEAVY BLACK HEART",
   direction="on",
-  linebreak="al",
+  linebreak="id",
   unicodeslot=0x2764,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2765]={
   category="so",
@@ -74857,6 +75116,7 @@ characters.data={
  },
  [0x2795]={
   category="so",
+  cjkwd="w",
   description="HEAVY PLUS SIGN",
   direction="on",
   linebreak="al",
@@ -74864,6 +75124,7 @@ characters.data={
  },
  [0x2796]={
   category="so",
+  cjkwd="w",
   description="HEAVY MINUS SIGN",
   direction="on",
   linebreak="al",
@@ -74871,6 +75132,7 @@ characters.data={
  },
  [0x2797]={
   category="so",
+  cjkwd="w",
   description="HEAVY DIVISION SIGN",
   direction="on",
   linebreak="al",
@@ -74946,10 +75208,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x27A1,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x27A2]={
   category="so",
@@ -75051,6 +75310,7 @@ characters.data={
  },
  [0x27B0]={
   category="so",
+  cjkwd="w",
   description="CURLY LOOP",
   direction="on",
   linebreak="al",
@@ -75156,6 +75416,7 @@ characters.data={
  },
  [0x27BF]={
   category="so",
+  cjkwd="w",
   description="DOUBLE CURLY LOOP",
   direction="on",
   linebreak="al",
@@ -77932,10 +78193,7 @@ characters.data={
   linebreak="al",
   mathextensible="m",
   unicodeslot=0x2934,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2935]={
   category="sm",
@@ -77944,10 +78202,7 @@ characters.data={
   linebreak="al",
   mathextensible="m",
   unicodeslot=0x2935,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2936]={
   category="sm",
@@ -81456,10 +81711,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x2B05,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2B06]={
   category="so",
@@ -81467,10 +81719,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x2B06,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2B07]={
   category="so",
@@ -81478,10 +81727,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x2B07,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2B08]={
   category="so",
@@ -81618,25 +81864,21 @@ characters.data={
  },
  [0x2B1B]={
   category="so",
+  cjkwd="w",
   description="BLACK LARGE SQUARE",
   direction="on",
   linebreak="al",
   unicodeslot=0x2B1B,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2B1C]={
   category="so",
+  cjkwd="w",
   description="WHITE LARGE SQUARE",
   direction="on",
   linebreak="al",
   unicodeslot=0x2B1C,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2B1D]={
   category="so",
@@ -82012,14 +82254,12 @@ characters.data={
  },
  [0x2B50]={
   category="so",
+  cjkwd="w",
   description="WHITE MEDIUM STAR",
   direction="on",
   linebreak="al",
   unicodeslot=0x2B50,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2B51]={
   category="so",
@@ -82051,15 +82291,12 @@ characters.data={
  },
  [0x2B55]={
   category="so",
-  cjkwd="a",
+  cjkwd="w",
   description="HEAVY LARGE CIRCLE",
   direction="on",
   linebreak="ai",
   unicodeslot=0x2B55,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x2B56]={
   category="so",
@@ -86907,6 +87144,20 @@ characters.data={
   linebreak="op",
   unicodeslot=0x2E42,
  },
+ [0x2E43]={
+  category="po",
+  description="DASH WITH LEFT UPTURN",
+  direction="on",
+  linebreak="ba",
+  unicodeslot=0x2E43,
+ },
+ [0x2E44]={
+  category="po",
+  description="DOUBLE SUSPENSION MARK",
+  direction="on",
+  linebreak="ba",
+  unicodeslot=0x2E44,
+ },
  [0x2E80]={
   category="so",
   cjkwd="w",
@@ -90307,10 +90558,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x3030,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x3031]={
   category="lm",
@@ -90420,10 +90668,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x303D,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x303E]={
   category="so",
@@ -96303,10 +96548,7 @@ characters.data={
   linebreak="id",
   specials={ "circle", 0x795D },
   unicodeslot=0x3297,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x3298]={
   adobename="ideographiclaborcircle",
@@ -96327,10 +96569,7 @@ characters.data={
   linebreak="id",
   specials={ "circle", 0x79D8 },
   unicodeslot=0x3299,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x329A]={
   category="so",
@@ -114845,6 +115084,13 @@ characters.data={
   linebreak="al",
   unicodeslot=0xA7AD,
  },
+ [0xA7AE]={
+  category="lu",
+  description="LATIN CAPITAL LETTER SMALL CAPITAL I",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0xA7AE,
+ },
  [0xA7B0]={
   category="lu",
   description="LATIN CAPITAL LETTER TURNED K",
@@ -116291,6 +116537,13 @@ characters.data={
   linebreak="cm",
   unicodeslot=0xA8C4,
  },
+ [0xA8C5]={
+  category="mn",
+  description="SAURASHTRA SIGN CANDRABINDU",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0xA8C5,
+ },
  [0xA8CE]={
   category="po",
   description="SAURASHTRA DANDA",
@@ -118877,6 +119130,9 @@ characters.data={
   direction="l",
   linebreak="sa",
   unicodeslot=0xAA60,
+  variants={
+   [0xFE00]="dotted form",
+  },
  },
  [0xAA61]={
   category="lo",
@@ -118884,6 +119140,9 @@ characters.data={
   direction="l",
   linebreak="sa",
   unicodeslot=0xAA61,
+  variants={
+   [0xFE00]="dotted form",
+  },
  },
  [0xAA62]={
   category="lo",
@@ -118891,6 +119150,9 @@ characters.data={
   direction="l",
   linebreak="sa",
   unicodeslot=0xAA62,
+  variants={
+   [0xFE00]="dotted form",
+  },
  },
  [0xAA63]={
   category="lo",
@@ -118898,6 +119160,9 @@ characters.data={
   direction="l",
   linebreak="sa",
   unicodeslot=0xAA63,
+  variants={
+   [0xFE00]="dotted form",
+  },
  },
  [0xAA64]={
   category="lo",
@@ -118905,6 +119170,9 @@ characters.data={
   direction="l",
   linebreak="sa",
   unicodeslot=0xAA64,
+  variants={
+   [0xFE00]="dotted form",
+  },
  },
  [0xAA65]={
   category="lo",
@@ -118912,6 +119180,9 @@ characters.data={
   direction="l",
   linebreak="sa",
   unicodeslot=0xAA65,
+  variants={
+   [0xFE00]="dotted form",
+  },
  },
  [0xAA66]={
   category="lo",
@@ -118919,6 +119190,9 @@ characters.data={
   direction="l",
   linebreak="sa",
   unicodeslot=0xAA66,
+  variants={
+   [0xFE00]="dotted form",
+  },
  },
  [0xAA67]={
   category="lo",
@@ -118954,6 +119228,9 @@ characters.data={
   direction="l",
   linebreak="sa",
   unicodeslot=0xAA6B,
+  variants={
+   [0xFE00]="dotted form",
+  },
  },
  [0xAA6C]={
   category="lo",
@@ -118961,6 +119238,9 @@ characters.data={
   direction="l",
   linebreak="sa",
   unicodeslot=0xAA6C,
+  variants={
+   [0xFE00]="dotted form",
+  },
  },
  [0xAA6D]={
   category="lo",
@@ -118982,6 +119262,9 @@ characters.data={
   direction="l",
   linebreak="sa",
   unicodeslot=0xAA6F,
+  variants={
+   [0xFE00]="dotted form",
+  },
  },
  [0xAA70]={
   category="lm",
@@ -119059,6 +119342,9 @@ characters.data={
   direction="l",
   linebreak="sa",
   unicodeslot=0xAA7A,
+  variants={
+   [0xFE00]="dotted form",
+  },
  },
  [0xAA7B]={
   category="mc",
@@ -134729,7 +135015,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER WO",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x3092,
   specials={ "narrow", 0x30F2 },
   unicodeslot=0xFF66,
@@ -134844,7 +135130,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER A",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x3042,
   specials={ "narrow", 0x30A2 },
   unicodeslot=0xFF71,
@@ -134855,7 +135141,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER I",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x3044,
   specials={ "narrow", 0x30A4 },
   unicodeslot=0xFF72,
@@ -134866,7 +135152,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER U",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x3046,
   specials={ "narrow", 0x30A6 },
   unicodeslot=0xFF73,
@@ -134877,7 +135163,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER E",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x3048,
   specials={ "narrow", 0x30A8 },
   unicodeslot=0xFF74,
@@ -134888,7 +135174,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER O",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x304A,
   specials={ "narrow", 0x30AA },
   unicodeslot=0xFF75,
@@ -134899,7 +135185,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER KA",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x304B,
   specials={ "narrow", 0x30AB },
   unicodeslot=0xFF76,
@@ -134910,7 +135196,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER KI",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x304D,
   specials={ "narrow", 0x30AD },
   unicodeslot=0xFF77,
@@ -134921,7 +135207,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER KU",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x304F,
   specials={ "narrow", 0x30AF },
   unicodeslot=0xFF78,
@@ -134932,7 +135218,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER KE",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x3051,
   specials={ "narrow", 0x30B1 },
   unicodeslot=0xFF79,
@@ -134943,7 +135229,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER KO",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x3053,
   specials={ "narrow", 0x30B3 },
   unicodeslot=0xFF7A,
@@ -134954,7 +135240,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER SA",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x3055,
   specials={ "narrow", 0x30B5 },
   unicodeslot=0xFF7B,
@@ -134965,7 +135251,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER SI",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x3057,
   specials={ "narrow", 0x30B7 },
   unicodeslot=0xFF7C,
@@ -134976,7 +135262,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER SU",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x3059,
   specials={ "narrow", 0x30B9 },
   unicodeslot=0xFF7D,
@@ -134987,7 +135273,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER SE",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x305B,
   specials={ "narrow", 0x30BB },
   unicodeslot=0xFF7E,
@@ -134998,7 +135284,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER SO",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x305D,
   specials={ "narrow", 0x30BD },
   unicodeslot=0xFF7F,
@@ -135009,7 +135295,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER TA",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x305F,
   specials={ "narrow", 0x30BF },
   unicodeslot=0xFF80,
@@ -135020,7 +135306,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER TI",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x3061,
   specials={ "narrow", 0x30C1 },
   unicodeslot=0xFF81,
@@ -135031,7 +135317,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER TU",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x3064,
   specials={ "narrow", 0x30C4 },
   unicodeslot=0xFF82,
@@ -135042,7 +135328,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER TE",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x3066,
   specials={ "narrow", 0x30C6 },
   unicodeslot=0xFF83,
@@ -135053,7 +135339,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER TO",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x3068,
   specials={ "narrow", 0x30C8 },
   unicodeslot=0xFF84,
@@ -135064,7 +135350,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER NA",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x306A,
   specials={ "narrow", 0x30CA },
   unicodeslot=0xFF85,
@@ -135075,7 +135361,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER NI",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x306B,
   specials={ "narrow", 0x30CB },
   unicodeslot=0xFF86,
@@ -135086,7 +135372,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER NU",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x306C,
   specials={ "narrow", 0x30CC },
   unicodeslot=0xFF87,
@@ -135097,7 +135383,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER NE",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x306D,
   specials={ "narrow", 0x30CD },
   unicodeslot=0xFF88,
@@ -135108,7 +135394,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER NO",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x306E,
   specials={ "narrow", 0x30CE },
   unicodeslot=0xFF89,
@@ -135119,7 +135405,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER HA",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x306F,
   specials={ "narrow", 0x30CF },
   unicodeslot=0xFF8A,
@@ -135130,7 +135416,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER HI",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x3072,
   specials={ "narrow", 0x30D2 },
   unicodeslot=0xFF8B,
@@ -135141,7 +135427,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER HU",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x3075,
   specials={ "narrow", 0x30D5 },
   unicodeslot=0xFF8C,
@@ -135152,7 +135438,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER HE",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x3078,
   specials={ "narrow", 0x30D8 },
   unicodeslot=0xFF8D,
@@ -135163,7 +135449,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER HO",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x307B,
   specials={ "narrow", 0x30DB },
   unicodeslot=0xFF8E,
@@ -135174,7 +135460,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER MA",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x307E,
   specials={ "narrow", 0x30DE },
   unicodeslot=0xFF8F,
@@ -135185,7 +135471,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER MI",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x307F,
   specials={ "narrow", 0x30DF },
   unicodeslot=0xFF90,
@@ -135196,7 +135482,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER MU",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x3080,
   specials={ "narrow", 0x30E0 },
   unicodeslot=0xFF91,
@@ -135207,7 +135493,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER ME",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x3081,
   specials={ "narrow", 0x30E1 },
   unicodeslot=0xFF92,
@@ -135218,7 +135504,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER MO",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x3082,
   specials={ "narrow", 0x30E2 },
   unicodeslot=0xFF93,
@@ -135229,7 +135515,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER YA",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x3084,
   specials={ "narrow", 0x30E4 },
   unicodeslot=0xFF94,
@@ -135240,7 +135526,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER YU",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x3086,
   specials={ "narrow", 0x30E6 },
   unicodeslot=0xFF95,
@@ -135251,7 +135537,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER YO",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x3088,
   specials={ "narrow", 0x30E8 },
   unicodeslot=0xFF96,
@@ -135262,7 +135548,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER RA",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x3089,
   specials={ "narrow", 0x30E9 },
   unicodeslot=0xFF97,
@@ -135273,7 +135559,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER RI",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x308A,
   specials={ "narrow", 0x30EA },
   unicodeslot=0xFF98,
@@ -135284,7 +135570,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER RU",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x308B,
   specials={ "narrow", 0x30EB },
   unicodeslot=0xFF99,
@@ -135295,7 +135581,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER RE",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x308C,
   specials={ "narrow", 0x30EC },
   unicodeslot=0xFF9A,
@@ -135306,7 +135592,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER RO",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x308D,
   specials={ "narrow", 0x30ED },
   unicodeslot=0xFF9B,
@@ -135317,7 +135603,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER WA",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x308F,
   specials={ "narrow", 0x30EF },
   unicodeslot=0xFF9C,
@@ -135328,7 +135614,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH KATAKANA LETTER N",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   shcode=0x3093,
   specials={ "narrow", 0x30F3 },
   unicodeslot=0xFF9D,
@@ -135358,7 +135644,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL FILLER",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3164 },
   unicodeslot=0xFFA0,
  },
@@ -135367,7 +135653,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER KIYEOK",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3131 },
   unicodeslot=0xFFA1,
  },
@@ -135376,7 +135662,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER SSANGKIYEOK",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3132 },
   unicodeslot=0xFFA2,
  },
@@ -135385,7 +135671,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER KIYEOK-SIOS",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3133 },
   unicodeslot=0xFFA3,
  },
@@ -135394,7 +135680,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER NIEUN",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3134 },
   unicodeslot=0xFFA4,
  },
@@ -135403,7 +135689,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER NIEUN-CIEUC",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3135 },
   unicodeslot=0xFFA5,
  },
@@ -135412,7 +135698,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER NIEUN-HIEUH",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3136 },
   unicodeslot=0xFFA6,
  },
@@ -135421,7 +135707,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER TIKEUT",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3137 },
   unicodeslot=0xFFA7,
  },
@@ -135430,7 +135716,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER SSANGTIKEUT",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3138 },
   unicodeslot=0xFFA8,
  },
@@ -135439,7 +135725,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER RIEUL",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3139 },
   unicodeslot=0xFFA9,
  },
@@ -135448,7 +135734,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER RIEUL-KIYEOK",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x313A },
   unicodeslot=0xFFAA,
  },
@@ -135457,7 +135743,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER RIEUL-MIEUM",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x313B },
   unicodeslot=0xFFAB,
  },
@@ -135466,7 +135752,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER RIEUL-PIEUP",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x313C },
   unicodeslot=0xFFAC,
  },
@@ -135475,7 +135761,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER RIEUL-SIOS",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x313D },
   unicodeslot=0xFFAD,
  },
@@ -135484,7 +135770,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER RIEUL-THIEUTH",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x313E },
   unicodeslot=0xFFAE,
  },
@@ -135493,7 +135779,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x313F },
   unicodeslot=0xFFAF,
  },
@@ -135502,7 +135788,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER RIEUL-HIEUH",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3140 },
   unicodeslot=0xFFB0,
  },
@@ -135511,7 +135797,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER MIEUM",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3141 },
   unicodeslot=0xFFB1,
  },
@@ -135520,7 +135806,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER PIEUP",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3142 },
   unicodeslot=0xFFB2,
  },
@@ -135529,7 +135815,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER SSANGPIEUP",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3143 },
   unicodeslot=0xFFB3,
  },
@@ -135538,7 +135824,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER PIEUP-SIOS",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3144 },
   unicodeslot=0xFFB4,
  },
@@ -135547,7 +135833,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER SIOS",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3145 },
   unicodeslot=0xFFB5,
  },
@@ -135556,7 +135842,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER SSANGSIOS",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3146 },
   unicodeslot=0xFFB6,
  },
@@ -135565,7 +135851,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER IEUNG",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3147 },
   unicodeslot=0xFFB7,
  },
@@ -135574,7 +135860,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER CIEUC",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3148 },
   unicodeslot=0xFFB8,
  },
@@ -135583,7 +135869,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER SSANGCIEUC",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3149 },
   unicodeslot=0xFFB9,
  },
@@ -135592,7 +135878,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER CHIEUCH",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x314A },
   unicodeslot=0xFFBA,
  },
@@ -135601,7 +135887,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER KHIEUKH",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x314B },
   unicodeslot=0xFFBB,
  },
@@ -135610,7 +135896,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER THIEUTH",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x314C },
   unicodeslot=0xFFBC,
  },
@@ -135619,7 +135905,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER PHIEUPH",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x314D },
   unicodeslot=0xFFBD,
  },
@@ -135628,7 +135914,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER HIEUH",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x314E },
   unicodeslot=0xFFBE,
  },
@@ -135637,7 +135923,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER A",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x314F },
   unicodeslot=0xFFC2,
  },
@@ -135646,7 +135932,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER AE",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3150 },
   unicodeslot=0xFFC3,
  },
@@ -135655,7 +135941,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER YA",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3151 },
   unicodeslot=0xFFC4,
  },
@@ -135664,7 +135950,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER YAE",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3152 },
   unicodeslot=0xFFC5,
  },
@@ -135673,7 +135959,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER EO",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3153 },
   unicodeslot=0xFFC6,
  },
@@ -135682,7 +135968,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER E",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3154 },
   unicodeslot=0xFFC7,
  },
@@ -135691,7 +135977,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER YEO",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3155 },
   unicodeslot=0xFFCA,
  },
@@ -135700,7 +135986,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER YE",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3156 },
   unicodeslot=0xFFCB,
  },
@@ -135709,7 +135995,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER O",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3157 },
   unicodeslot=0xFFCC,
  },
@@ -135718,7 +136004,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER WA",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3158 },
   unicodeslot=0xFFCD,
  },
@@ -135727,7 +136013,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER WAE",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3159 },
   unicodeslot=0xFFCE,
  },
@@ -135736,7 +136022,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER OE",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x315A },
   unicodeslot=0xFFCF,
  },
@@ -135745,7 +136031,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER YO",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x315B },
   unicodeslot=0xFFD2,
  },
@@ -135754,7 +136040,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER U",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x315C },
   unicodeslot=0xFFD3,
  },
@@ -135763,7 +136049,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER WEO",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x315D },
   unicodeslot=0xFFD4,
  },
@@ -135772,7 +136058,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER WE",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x315E },
   unicodeslot=0xFFD5,
  },
@@ -135781,7 +136067,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER WI",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x315F },
   unicodeslot=0xFFD6,
  },
@@ -135790,7 +136076,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER YU",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3160 },
   unicodeslot=0xFFD7,
  },
@@ -135799,7 +136085,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER EU",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3161 },
   unicodeslot=0xFFDA,
  },
@@ -135808,7 +136094,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER YI",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3162 },
   unicodeslot=0xFFDB,
  },
@@ -135817,7 +136103,7 @@ characters.data={
   cjkwd="h",
   description="HALFWIDTH HANGUL LETTER I",
   direction="l",
-  linebreak="al",
+  linebreak="id",
   specials={ "narrow", 0x3163 },
   unicodeslot=0xFFDC,
  },
@@ -138406,6 +138692,20 @@ characters.data={
   linebreak="al",
   unicodeslot=0x1018C,
  },
+ [0x1018D]={
+  category="so",
+  description="GREEK INDICTION SIGN",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1018D,
+ },
+ [0x1018E]={
+  category="so",
+  description="NOMISMA SIGN",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1018E,
+ },
  [0x10190]={
   category="so",
   description="ROMAN SEXTANS SIGN",
@@ -142133,6 +142433,510 @@ characters.data={
   linebreak="nu",
   unicodeslot=0x104A9,
  },
+ [0x104B0]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER A",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104B0,
+ },
+ [0x104B1]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER AI",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104B1,
+ },
+ [0x104B2]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER AIN",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104B2,
+ },
+ [0x104B3]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER AH",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104B3,
+ },
+ [0x104B4]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER BRA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104B4,
+ },
+ [0x104B5]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER CHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104B5,
+ },
+ [0x104B6]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER EHCHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104B6,
+ },
+ [0x104B7]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER E",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104B7,
+ },
+ [0x104B8]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER EIN",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104B8,
+ },
+ [0x104B9]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER HA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104B9,
+ },
+ [0x104BA]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER HYA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104BA,
+ },
+ [0x104BB]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER I",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104BB,
+ },
+ [0x104BC]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER KA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104BC,
+ },
+ [0x104BD]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER EHKA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104BD,
+ },
+ [0x104BE]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER KYA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104BE,
+ },
+ [0x104BF]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER LA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104BF,
+ },
+ [0x104C0]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER MA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104C0,
+ },
+ [0x104C1]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER NA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104C1,
+ },
+ [0x104C2]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER O",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104C2,
+ },
+ [0x104C3]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER OIN",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104C3,
+ },
+ [0x104C4]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER PA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104C4,
+ },
+ [0x104C5]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER EHPA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104C5,
+ },
+ [0x104C6]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER SA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104C6,
+ },
+ [0x104C7]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER SHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104C7,
+ },
+ [0x104C8]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER TA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104C8,
+ },
+ [0x104C9]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER EHTA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104C9,
+ },
+ [0x104CA]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER TSA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104CA,
+ },
+ [0x104CB]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER EHTSA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104CB,
+ },
+ [0x104CC]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER TSHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104CC,
+ },
+ [0x104CD]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER DHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104CD,
+ },
+ [0x104CE]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER U",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104CE,
+ },
+ [0x104CF]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER WA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104CF,
+ },
+ [0x104D0]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER KHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104D0,
+ },
+ [0x104D1]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER GHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104D1,
+ },
+ [0x104D2]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER ZA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104D2,
+ },
+ [0x104D3]={
+  category="lu",
+  description="OSAGE CAPITAL LETTER ZHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104D3,
+ },
+ [0x104D8]={
+  category="ll",
+  description="OSAGE SMALL LETTER A",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104D8,
+ },
+ [0x104D9]={
+  category="ll",
+  description="OSAGE SMALL LETTER AI",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104D9,
+ },
+ [0x104DA]={
+  category="ll",
+  description="OSAGE SMALL LETTER AIN",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104DA,
+ },
+ [0x104DB]={
+  category="ll",
+  description="OSAGE SMALL LETTER AH",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104DB,
+ },
+ [0x104DC]={
+  category="ll",
+  description="OSAGE SMALL LETTER BRA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104DC,
+ },
+ [0x104DD]={
+  category="ll",
+  description="OSAGE SMALL LETTER CHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104DD,
+ },
+ [0x104DE]={
+  category="ll",
+  description="OSAGE SMALL LETTER EHCHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104DE,
+ },
+ [0x104DF]={
+  category="ll",
+  description="OSAGE SMALL LETTER E",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104DF,
+ },
+ [0x104E0]={
+  category="ll",
+  description="OSAGE SMALL LETTER EIN",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104E0,
+ },
+ [0x104E1]={
+  category="ll",
+  description="OSAGE SMALL LETTER HA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104E1,
+ },
+ [0x104E2]={
+  category="ll",
+  description="OSAGE SMALL LETTER HYA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104E2,
+ },
+ [0x104E3]={
+  category="ll",
+  description="OSAGE SMALL LETTER I",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104E3,
+ },
+ [0x104E4]={
+  category="ll",
+  description="OSAGE SMALL LETTER KA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104E4,
+ },
+ [0x104E5]={
+  category="ll",
+  description="OSAGE SMALL LETTER EHKA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104E5,
+ },
+ [0x104E6]={
+  category="ll",
+  description="OSAGE SMALL LETTER KYA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104E6,
+ },
+ [0x104E7]={
+  category="ll",
+  description="OSAGE SMALL LETTER LA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104E7,
+ },
+ [0x104E8]={
+  category="ll",
+  description="OSAGE SMALL LETTER MA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104E8,
+ },
+ [0x104E9]={
+  category="ll",
+  description="OSAGE SMALL LETTER NA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104E9,
+ },
+ [0x104EA]={
+  category="ll",
+  description="OSAGE SMALL LETTER O",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104EA,
+ },
+ [0x104EB]={
+  category="ll",
+  description="OSAGE SMALL LETTER OIN",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104EB,
+ },
+ [0x104EC]={
+  category="ll",
+  description="OSAGE SMALL LETTER PA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104EC,
+ },
+ [0x104ED]={
+  category="ll",
+  description="OSAGE SMALL LETTER EHPA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104ED,
+ },
+ [0x104EE]={
+  category="ll",
+  description="OSAGE SMALL LETTER SA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104EE,
+ },
+ [0x104EF]={
+  category="ll",
+  description="OSAGE SMALL LETTER SHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104EF,
+ },
+ [0x104F0]={
+  category="ll",
+  description="OSAGE SMALL LETTER TA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104F0,
+ },
+ [0x104F1]={
+  category="ll",
+  description="OSAGE SMALL LETTER EHTA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104F1,
+ },
+ [0x104F2]={
+  category="ll",
+  description="OSAGE SMALL LETTER TSA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104F2,
+ },
+ [0x104F3]={
+  category="ll",
+  description="OSAGE SMALL LETTER EHTSA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104F3,
+ },
+ [0x104F4]={
+  category="ll",
+  description="OSAGE SMALL LETTER TSHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104F4,
+ },
+ [0x104F5]={
+  category="ll",
+  description="OSAGE SMALL LETTER DHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104F5,
+ },
+ [0x104F6]={
+  category="ll",
+  description="OSAGE SMALL LETTER U",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104F6,
+ },
+ [0x104F7]={
+  category="ll",
+  description="OSAGE SMALL LETTER WA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104F7,
+ },
+ [0x104F8]={
+  category="ll",
+  description="OSAGE SMALL LETTER KHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104F8,
+ },
+ [0x104F9]={
+  category="ll",
+  description="OSAGE SMALL LETTER GHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104F9,
+ },
+ [0x104FA]={
+  category="ll",
+  description="OSAGE SMALL LETTER ZA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104FA,
+ },
+ [0x104FB]={
+  category="ll",
+  description="OSAGE SMALL LETTER ZHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x104FB,
+ },
  [0x10500]={
   category="lo",
   description="ELBASAN LETTER A",
@@ -155024,6 +155828,13 @@ characters.data={
   linebreak="al",
   unicodeslot=0x1123D,
  },
+ [0x1123E]={
+  category="mn",
+  description="KHOJKI SIGN SUKUN",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1123E,
+ },
  [0x11280]={
   category="lo",
   description="MULTANI LETTER A",
@@ -156386,6 +157197,652 @@ characters.data={
   linebreak="cm",
   unicodeslot=0x11374,
  },
+ [0x11400]={
+  category="lo",
+  description="NEWA LETTER A",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11400,
+ },
+ [0x11401]={
+  category="lo",
+  description="NEWA LETTER AA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11401,
+ },
+ [0x11402]={
+  category="lo",
+  description="NEWA LETTER I",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11402,
+ },
+ [0x11403]={
+  category="lo",
+  description="NEWA LETTER II",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11403,
+ },
+ [0x11404]={
+  category="lo",
+  description="NEWA LETTER U",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11404,
+ },
+ [0x11405]={
+  category="lo",
+  description="NEWA LETTER UU",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11405,
+ },
+ [0x11406]={
+  category="lo",
+  description="NEWA LETTER VOCALIC R",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11406,
+ },
+ [0x11407]={
+  category="lo",
+  description="NEWA LETTER VOCALIC RR",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11407,
+ },
+ [0x11408]={
+  category="lo",
+  description="NEWA LETTER VOCALIC L",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11408,
+ },
+ [0x11409]={
+  category="lo",
+  description="NEWA LETTER VOCALIC LL",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11409,
+ },
+ [0x1140A]={
+  category="lo",
+  description="NEWA LETTER E",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1140A,
+ },
+ [0x1140B]={
+  category="lo",
+  description="NEWA LETTER AI",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1140B,
+ },
+ [0x1140C]={
+  category="lo",
+  description="NEWA LETTER O",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1140C,
+ },
+ [0x1140D]={
+  category="lo",
+  description="NEWA LETTER AU",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1140D,
+ },
+ [0x1140E]={
+  category="lo",
+  description="NEWA LETTER KA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1140E,
+ },
+ [0x1140F]={
+  category="lo",
+  description="NEWA LETTER KHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1140F,
+ },
+ [0x11410]={
+  category="lo",
+  description="NEWA LETTER GA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11410,
+ },
+ [0x11411]={
+  category="lo",
+  description="NEWA LETTER GHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11411,
+ },
+ [0x11412]={
+  category="lo",
+  description="NEWA LETTER NGA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11412,
+ },
+ [0x11413]={
+  category="lo",
+  description="NEWA LETTER NGHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11413,
+ },
+ [0x11414]={
+  category="lo",
+  description="NEWA LETTER CA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11414,
+ },
+ [0x11415]={
+  category="lo",
+  description="NEWA LETTER CHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11415,
+ },
+ [0x11416]={
+  category="lo",
+  description="NEWA LETTER JA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11416,
+ },
+ [0x11417]={
+  category="lo",
+  description="NEWA LETTER JHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11417,
+ },
+ [0x11418]={
+  category="lo",
+  description="NEWA LETTER NYA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11418,
+ },
+ [0x11419]={
+  category="lo",
+  description="NEWA LETTER NYHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11419,
+ },
+ [0x1141A]={
+  category="lo",
+  description="NEWA LETTER TTA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1141A,
+ },
+ [0x1141B]={
+  category="lo",
+  description="NEWA LETTER TTHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1141B,
+ },
+ [0x1141C]={
+  category="lo",
+  description="NEWA LETTER DDA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1141C,
+ },
+ [0x1141D]={
+  category="lo",
+  description="NEWA LETTER DDHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1141D,
+ },
+ [0x1141E]={
+  category="lo",
+  description="NEWA LETTER NNA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1141E,
+ },
+ [0x1141F]={
+  category="lo",
+  description="NEWA LETTER TA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1141F,
+ },
+ [0x11420]={
+  category="lo",
+  description="NEWA LETTER THA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11420,
+ },
+ [0x11421]={
+  category="lo",
+  description="NEWA LETTER DA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11421,
+ },
+ [0x11422]={
+  category="lo",
+  description="NEWA LETTER DHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11422,
+ },
+ [0x11423]={
+  category="lo",
+  description="NEWA LETTER NA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11423,
+ },
+ [0x11424]={
+  category="lo",
+  description="NEWA LETTER NHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11424,
+ },
+ [0x11425]={
+  category="lo",
+  description="NEWA LETTER PA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11425,
+ },
+ [0x11426]={
+  category="lo",
+  description="NEWA LETTER PHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11426,
+ },
+ [0x11427]={
+  category="lo",
+  description="NEWA LETTER BA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11427,
+ },
+ [0x11428]={
+  category="lo",
+  description="NEWA LETTER BHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11428,
+ },
+ [0x11429]={
+  category="lo",
+  description="NEWA LETTER MA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11429,
+ },
+ [0x1142A]={
+  category="lo",
+  description="NEWA LETTER MHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1142A,
+ },
+ [0x1142B]={
+  category="lo",
+  description="NEWA LETTER YA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1142B,
+ },
+ [0x1142C]={
+  category="lo",
+  description="NEWA LETTER RA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1142C,
+ },
+ [0x1142D]={
+  category="lo",
+  description="NEWA LETTER RHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1142D,
+ },
+ [0x1142E]={
+  category="lo",
+  description="NEWA LETTER LA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1142E,
+ },
+ [0x1142F]={
+  category="lo",
+  description="NEWA LETTER LHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1142F,
+ },
+ [0x11430]={
+  category="lo",
+  description="NEWA LETTER WA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11430,
+ },
+ [0x11431]={
+  category="lo",
+  description="NEWA LETTER SHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11431,
+ },
+ [0x11432]={
+  category="lo",
+  description="NEWA LETTER SSA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11432,
+ },
+ [0x11433]={
+  category="lo",
+  description="NEWA LETTER SA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11433,
+ },
+ [0x11434]={
+  category="lo",
+  description="NEWA LETTER HA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11434,
+ },
+ [0x11435]={
+  category="mc",
+  description="NEWA VOWEL SIGN AA",
+  direction="l",
+  linebreak="cm",
+  unicodeslot=0x11435,
+ },
+ [0x11436]={
+  category="mc",
+  description="NEWA VOWEL SIGN I",
+  direction="l",
+  linebreak="cm",
+  unicodeslot=0x11436,
+ },
+ [0x11437]={
+  category="mc",
+  description="NEWA VOWEL SIGN II",
+  direction="l",
+  linebreak="cm",
+  unicodeslot=0x11437,
+ },
+ [0x11438]={
+  category="mn",
+  description="NEWA VOWEL SIGN U",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11438,
+ },
+ [0x11439]={
+  category="mn",
+  description="NEWA VOWEL SIGN UU",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11439,
+ },
+ [0x1143A]={
+  category="mn",
+  description="NEWA VOWEL SIGN VOCALIC R",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1143A,
+ },
+ [0x1143B]={
+  category="mn",
+  description="NEWA VOWEL SIGN VOCALIC RR",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1143B,
+ },
+ [0x1143C]={
+  category="mn",
+  description="NEWA VOWEL SIGN VOCALIC L",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1143C,
+ },
+ [0x1143D]={
+  category="mn",
+  description="NEWA VOWEL SIGN VOCALIC LL",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1143D,
+ },
+ [0x1143E]={
+  category="mn",
+  description="NEWA VOWEL SIGN E",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1143E,
+ },
+ [0x1143F]={
+  category="mn",
+  description="NEWA VOWEL SIGN AI",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1143F,
+ },
+ [0x11440]={
+  category="mc",
+  description="NEWA VOWEL SIGN O",
+  direction="l",
+  linebreak="cm",
+  unicodeslot=0x11440,
+ },
+ [0x11441]={
+  category="mc",
+  description="NEWA VOWEL SIGN AU",
+  direction="l",
+  linebreak="cm",
+  unicodeslot=0x11441,
+ },
+ [0x11442]={
+  category="mn",
+  combining=0x9,
+  description="NEWA SIGN VIRAMA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11442,
+ },
+ [0x11443]={
+  category="mn",
+  description="NEWA SIGN CANDRABINDU",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11443,
+ },
+ [0x11444]={
+  category="mn",
+  description="NEWA SIGN ANUSVARA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11444,
+ },
+ [0x11445]={
+  category="mc",
+  description="NEWA SIGN VISARGA",
+  direction="l",
+  linebreak="cm",
+  unicodeslot=0x11445,
+ },
+ [0x11446]={
+  category="mn",
+  combining=0x7,
+  description="NEWA SIGN NUKTA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11446,
+ },
+ [0x11447]={
+  category="lo",
+  description="NEWA SIGN AVAGRAHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11447,
+ },
+ [0x11448]={
+  category="lo",
+  description="NEWA SIGN FINAL ANUSVARA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11448,
+ },
+ [0x11449]={
+  category="lo",
+  description="NEWA OM",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11449,
+ },
+ [0x1144A]={
+  category="lo",
+  description="NEWA SIDDHI",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1144A,
+ },
+ [0x1144B]={
+  category="po",
+  description="NEWA DANDA",
+  direction="l",
+  linebreak="ba",
+  unicodeslot=0x1144B,
+ },
+ [0x1144C]={
+  category="po",
+  description="NEWA DOUBLE DANDA",
+  direction="l",
+  linebreak="ba",
+  unicodeslot=0x1144C,
+ },
+ [0x1144D]={
+  category="po",
+  description="NEWA COMMA",
+  direction="l",
+  linebreak="ba",
+  unicodeslot=0x1144D,
+ },
+ [0x1144E]={
+  category="po",
+  description="NEWA GAP FILLER",
+  direction="l",
+  linebreak="ba",
+  unicodeslot=0x1144E,
+ },
+ [0x1144F]={
+  category="po",
+  description="NEWA ABBREVIATION SIGN",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1144F,
+ },
+ [0x11450]={
+  category="nd",
+  description="NEWA DIGIT ZERO",
+  direction="l",
+  linebreak="nu",
+  unicodeslot=0x11450,
+ },
+ [0x11451]={
+  category="nd",
+  description="NEWA DIGIT ONE",
+  direction="l",
+  linebreak="nu",
+  unicodeslot=0x11451,
+ },
+ [0x11452]={
+  category="nd",
+  description="NEWA DIGIT TWO",
+  direction="l",
+  linebreak="nu",
+  unicodeslot=0x11452,
+ },
+ [0x11453]={
+  category="nd",
+  description="NEWA DIGIT THREE",
+  direction="l",
+  linebreak="nu",
+  unicodeslot=0x11453,
+ },
+ [0x11454]={
+  category="nd",
+  description="NEWA DIGIT FOUR",
+  direction="l",
+  linebreak="nu",
+  unicodeslot=0x11454,
+ },
+ [0x11455]={
+  category="nd",
+  description="NEWA DIGIT FIVE",
+  direction="l",
+  linebreak="nu",
+  unicodeslot=0x11455,
+ },
+ [0x11456]={
+  category="nd",
+  description="NEWA DIGIT SIX",
+  direction="l",
+  linebreak="nu",
+  unicodeslot=0x11456,
+ },
+ [0x11457]={
+  category="nd",
+  description="NEWA DIGIT SEVEN",
+  direction="l",
+  linebreak="nu",
+  unicodeslot=0x11457,
+ },
+ [0x11458]={
+  category="nd",
+  description="NEWA DIGIT EIGHT",
+  direction="l",
+  linebreak="nu",
+  unicodeslot=0x11458,
+ },
+ [0x11459]={
+  category="nd",
+  description="NEWA DIGIT NINE",
+  direction="l",
+  linebreak="nu",
+  unicodeslot=0x11459,
+ },
+ [0x1145B]={
+  category="po",
+  description="NEWA PLACEHOLDER MARK",
+  direction="l",
+  linebreak="ba",
+  unicodeslot=0x1145B,
+ },
+ [0x1145D]={
+  category="po",
+  description="NEWA INSERTION SIGN",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1145D,
+ },
  [0x11480]={
   category="lo",
   description="TIRHUTA ANJI",
@@ -158167,6 +159624,97 @@ characters.data={
   linebreak="nu",
   unicodeslot=0x11659,
  },
+ [0x11660]={
+  category="po",
+  description="MONGOLIAN BIRGA WITH ORNAMENT",
+  direction="on",
+  linebreak="bb",
+  unicodeslot=0x11660,
+ },
+ [0x11661]={
+  category="po",
+  description="MONGOLIAN ROTATED BIRGA",
+  direction="on",
+  linebreak="bb",
+  unicodeslot=0x11661,
+ },
+ [0x11662]={
+  category="po",
+  description="MONGOLIAN DOUBLE BIRGA WITH ORNAMENT",
+  direction="on",
+  linebreak="bb",
+  unicodeslot=0x11662,
+ },
+ [0x11663]={
+  category="po",
+  description="MONGOLIAN TRIPLE BIRGA WITH ORNAMENT",
+  direction="on",
+  linebreak="bb",
+  unicodeslot=0x11663,
+ },
+ [0x11664]={
+  category="po",
+  description="MONGOLIAN BIRGA WITH DOUBLE ORNAMENT",
+  direction="on",
+  linebreak="bb",
+  unicodeslot=0x11664,
+ },
+ [0x11665]={
+  category="po",
+  description="MONGOLIAN ROTATED BIRGA WITH ORNAMENT",
+  direction="on",
+  linebreak="bb",
+  unicodeslot=0x11665,
+ },
+ [0x11666]={
+  category="po",
+  description="MONGOLIAN ROTATED BIRGA WITH DOUBLE ORNAMENT",
+  direction="on",
+  linebreak="bb",
+  unicodeslot=0x11666,
+ },
+ [0x11667]={
+  category="po",
+  description="MONGOLIAN INVERTED BIRGA",
+  direction="on",
+  linebreak="bb",
+  unicodeslot=0x11667,
+ },
+ [0x11668]={
+  category="po",
+  description="MONGOLIAN INVERTED BIRGA WITH DOUBLE ORNAMENT",
+  direction="on",
+  linebreak="bb",
+  unicodeslot=0x11668,
+ },
+ [0x11669]={
+  category="po",
+  description="MONGOLIAN SWIRL BIRGA",
+  direction="on",
+  linebreak="bb",
+  unicodeslot=0x11669,
+ },
+ [0x1166A]={
+  category="po",
+  description="MONGOLIAN SWIRL BIRGA WITH ORNAMENT",
+  direction="on",
+  linebreak="bb",
+  unicodeslot=0x1166A,
+ },
+ [0x1166B]={
+  category="po",
+  description="MONGOLIAN SWIRL BIRGA WITH DOUBLE ORNAMENT",
+  direction="on",
+  linebreak="bb",
+  unicodeslot=0x1166B,
+ },
+ [0x1166C]={
+  category="po",
+  description="MONGOLIAN TURNED SWIRL BIRGA WITH DOUBLE ORNAMENT",
+  direction="on",
+  linebreak="bb",
+  unicodeslot=0x1166C,
+ },
  [0x11680]={
   category="lo",
   description="TAKRI LETTER A",
@@ -160018,6 +161566,1162 @@ characters.data={
   linebreak="al",
   unicodeslot=0x11AF8,
  },
+ [0x11C00]={
+  category="lo",
+  description="BHAIKSUKI LETTER A",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C00,
+ },
+ [0x11C01]={
+  category="lo",
+  description="BHAIKSUKI LETTER AA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C01,
+ },
+ [0x11C02]={
+  category="lo",
+  description="BHAIKSUKI LETTER I",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C02,
+ },
+ [0x11C03]={
+  category="lo",
+  description="BHAIKSUKI LETTER II",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C03,
+ },
+ [0x11C04]={
+  category="lo",
+  description="BHAIKSUKI LETTER U",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C04,
+ },
+ [0x11C05]={
+  category="lo",
+  description="BHAIKSUKI LETTER UU",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C05,
+ },
+ [0x11C06]={
+  category="lo",
+  description="BHAIKSUKI LETTER VOCALIC R",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C06,
+ },
+ [0x11C07]={
+  category="lo",
+  description="BHAIKSUKI LETTER VOCALIC RR",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C07,
+ },
+ [0x11C08]={
+  category="lo",
+  description="BHAIKSUKI LETTER VOCALIC L",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C08,
+ },
+ [0x11C0A]={
+  category="lo",
+  description="BHAIKSUKI LETTER E",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C0A,
+ },
+ [0x11C0B]={
+  category="lo",
+  description="BHAIKSUKI LETTER AI",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C0B,
+ },
+ [0x11C0C]={
+  category="lo",
+  description="BHAIKSUKI LETTER O",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C0C,
+ },
+ [0x11C0D]={
+  category="lo",
+  description="BHAIKSUKI LETTER AU",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C0D,
+ },
+ [0x11C0E]={
+  category="lo",
+  description="BHAIKSUKI LETTER KA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C0E,
+ },
+ [0x11C0F]={
+  category="lo",
+  description="BHAIKSUKI LETTER KHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C0F,
+ },
+ [0x11C10]={
+  category="lo",
+  description="BHAIKSUKI LETTER GA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C10,
+ },
+ [0x11C11]={
+  category="lo",
+  description="BHAIKSUKI LETTER GHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C11,
+ },
+ [0x11C12]={
+  category="lo",
+  description="BHAIKSUKI LETTER NGA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C12,
+ },
+ [0x11C13]={
+  category="lo",
+  description="BHAIKSUKI LETTER CA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C13,
+ },
+ [0x11C14]={
+  category="lo",
+  description="BHAIKSUKI LETTER CHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C14,
+ },
+ [0x11C15]={
+  category="lo",
+  description="BHAIKSUKI LETTER JA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C15,
+ },
+ [0x11C16]={
+  category="lo",
+  description="BHAIKSUKI LETTER JHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C16,
+ },
+ [0x11C17]={
+  category="lo",
+  description="BHAIKSUKI LETTER NYA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C17,
+ },
+ [0x11C18]={
+  category="lo",
+  description="BHAIKSUKI LETTER TTA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C18,
+ },
+ [0x11C19]={
+  category="lo",
+  description="BHAIKSUKI LETTER TTHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C19,
+ },
+ [0x11C1A]={
+  category="lo",
+  description="BHAIKSUKI LETTER DDA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C1A,
+ },
+ [0x11C1B]={
+  category="lo",
+  description="BHAIKSUKI LETTER DDHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C1B,
+ },
+ [0x11C1C]={
+  category="lo",
+  description="BHAIKSUKI LETTER NNA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C1C,
+ },
+ [0x11C1D]={
+  category="lo",
+  description="BHAIKSUKI LETTER TA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C1D,
+ },
+ [0x11C1E]={
+  category="lo",
+  description="BHAIKSUKI LETTER THA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C1E,
+ },
+ [0x11C1F]={
+  category="lo",
+  description="BHAIKSUKI LETTER DA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C1F,
+ },
+ [0x11C20]={
+  category="lo",
+  description="BHAIKSUKI LETTER DHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C20,
+ },
+ [0x11C21]={
+  category="lo",
+  description="BHAIKSUKI LETTER NA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C21,
+ },
+ [0x11C22]={
+  category="lo",
+  description="BHAIKSUKI LETTER PA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C22,
+ },
+ [0x11C23]={
+  category="lo",
+  description="BHAIKSUKI LETTER PHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C23,
+ },
+ [0x11C24]={
+  category="lo",
+  description="BHAIKSUKI LETTER BA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C24,
+ },
+ [0x11C25]={
+  category="lo",
+  description="BHAIKSUKI LETTER BHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C25,
+ },
+ [0x11C26]={
+  category="lo",
+  description="BHAIKSUKI LETTER MA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C26,
+ },
+ [0x11C27]={
+  category="lo",
+  description="BHAIKSUKI LETTER YA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C27,
+ },
+ [0x11C28]={
+  category="lo",
+  description="BHAIKSUKI LETTER RA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C28,
+ },
+ [0x11C29]={
+  category="lo",
+  description="BHAIKSUKI LETTER LA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C29,
+ },
+ [0x11C2A]={
+  category="lo",
+  description="BHAIKSUKI LETTER VA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C2A,
+ },
+ [0x11C2B]={
+  category="lo",
+  description="BHAIKSUKI LETTER SHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C2B,
+ },
+ [0x11C2C]={
+  category="lo",
+  description="BHAIKSUKI LETTER SSA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C2C,
+ },
+ [0x11C2D]={
+  category="lo",
+  description="BHAIKSUKI LETTER SA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C2D,
+ },
+ [0x11C2E]={
+  category="lo",
+  description="BHAIKSUKI LETTER HA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C2E,
+ },
+ [0x11C2F]={
+  category="mc",
+  description="BHAIKSUKI VOWEL SIGN AA",
+  direction="l",
+  linebreak="cm",
+  unicodeslot=0x11C2F,
+ },
+ [0x11C30]={
+  category="mn",
+  description="BHAIKSUKI VOWEL SIGN I",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11C30,
+ },
+ [0x11C31]={
+  category="mn",
+  description="BHAIKSUKI VOWEL SIGN II",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11C31,
+ },
+ [0x11C32]={
+  category="mn",
+  description="BHAIKSUKI VOWEL SIGN U",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11C32,
+ },
+ [0x11C33]={
+  category="mn",
+  description="BHAIKSUKI VOWEL SIGN UU",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11C33,
+ },
+ [0x11C34]={
+  category="mn",
+  description="BHAIKSUKI VOWEL SIGN VOCALIC R",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11C34,
+ },
+ [0x11C35]={
+  category="mn",
+  description="BHAIKSUKI VOWEL SIGN VOCALIC RR",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11C35,
+ },
+ [0x11C36]={
+  category="mn",
+  description="BHAIKSUKI VOWEL SIGN VOCALIC L",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11C36,
+ },
+ [0x11C38]={
+  category="mn",
+  description="BHAIKSUKI VOWEL SIGN E",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11C38,
+ },
+ [0x11C39]={
+  category="mn",
+  description="BHAIKSUKI VOWEL SIGN AI",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11C39,
+ },
+ [0x11C3A]={
+  category="mn",
+  description="BHAIKSUKI VOWEL SIGN O",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11C3A,
+ },
+ [0x11C3B]={
+  category="mn",
+  description="BHAIKSUKI VOWEL SIGN AU",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11C3B,
+ },
+ [0x11C3C]={
+  category="mn",
+  description="BHAIKSUKI SIGN CANDRABINDU",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11C3C,
+ },
+ [0x11C3D]={
+  category="mn",
+  description="BHAIKSUKI SIGN ANUSVARA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11C3D,
+ },
+ [0x11C3E]={
+  category="mc",
+  description="BHAIKSUKI SIGN VISARGA",
+  direction="l",
+  linebreak="cm",
+  unicodeslot=0x11C3E,
+ },
+ [0x11C3F]={
+  category="mn",
+  combining=0x9,
+  description="BHAIKSUKI SIGN VIRAMA",
+  direction="l",
+  linebreak="cm",
+  unicodeslot=0x11C3F,
+ },
+ [0x11C40]={
+  category="lo",
+  description="BHAIKSUKI SIGN AVAGRAHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C40,
+ },
+ [0x11C41]={
+  category="po",
+  description="BHAIKSUKI DANDA",
+  direction="l",
+  linebreak="ba",
+  unicodeslot=0x11C41,
+ },
+ [0x11C42]={
+  category="po",
+  description="BHAIKSUKI DOUBLE DANDA",
+  direction="l",
+  linebreak="ba",
+  unicodeslot=0x11C42,
+ },
+ [0x11C43]={
+  category="po",
+  description="BHAIKSUKI WORD SEPARATOR",
+  direction="l",
+  linebreak="ba",
+  unicodeslot=0x11C43,
+ },
+ [0x11C44]={
+  category="po",
+  description="BHAIKSUKI GAP FILLER-1",
+  direction="l",
+  linebreak="ba",
+  unicodeslot=0x11C44,
+ },
+ [0x11C45]={
+  category="po",
+  description="BHAIKSUKI GAP FILLER-2",
+  direction="l",
+  linebreak="ba",
+  unicodeslot=0x11C45,
+ },
+ [0x11C50]={
+  category="nd",
+  description="BHAIKSUKI DIGIT ZERO",
+  direction="l",
+  linebreak="nu",
+  unicodeslot=0x11C50,
+ },
+ [0x11C51]={
+  category="nd",
+  description="BHAIKSUKI DIGIT ONE",
+  direction="l",
+  linebreak="nu",
+  unicodeslot=0x11C51,
+ },
+ [0x11C52]={
+  category="nd",
+  description="BHAIKSUKI DIGIT TWO",
+  direction="l",
+  linebreak="nu",
+  unicodeslot=0x11C52,
+ },
+ [0x11C53]={
+  category="nd",
+  description="BHAIKSUKI DIGIT THREE",
+  direction="l",
+  linebreak="nu",
+  unicodeslot=0x11C53,
+ },
+ [0x11C54]={
+  category="nd",
+  description="BHAIKSUKI DIGIT FOUR",
+  direction="l",
+  linebreak="nu",
+  unicodeslot=0x11C54,
+ },
+ [0x11C55]={
+  category="nd",
+  description="BHAIKSUKI DIGIT FIVE",
+  direction="l",
+  linebreak="nu",
+  unicodeslot=0x11C55,
+ },
+ [0x11C56]={
+  category="nd",
+  description="BHAIKSUKI DIGIT SIX",
+  direction="l",
+  linebreak="nu",
+  unicodeslot=0x11C56,
+ },
+ [0x11C57]={
+  category="nd",
+  description="BHAIKSUKI DIGIT SEVEN",
+  direction="l",
+  linebreak="nu",
+  unicodeslot=0x11C57,
+ },
+ [0x11C58]={
+  category="nd",
+  description="BHAIKSUKI DIGIT EIGHT",
+  direction="l",
+  linebreak="nu",
+  unicodeslot=0x11C58,
+ },
+ [0x11C59]={
+  category="nd",
+  description="BHAIKSUKI DIGIT NINE",
+  direction="l",
+  linebreak="nu",
+  unicodeslot=0x11C59,
+ },
+ [0x11C5A]={
+  category="no",
+  description="BHAIKSUKI NUMBER ONE",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C5A,
+ },
+ [0x11C5B]={
+  category="no",
+  description="BHAIKSUKI NUMBER TWO",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C5B,
+ },
+ [0x11C5C]={
+  category="no",
+  description="BHAIKSUKI NUMBER THREE",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C5C,
+ },
+ [0x11C5D]={
+  category="no",
+  description="BHAIKSUKI NUMBER FOUR",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C5D,
+ },
+ [0x11C5E]={
+  category="no",
+  description="BHAIKSUKI NUMBER FIVE",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C5E,
+ },
+ [0x11C5F]={
+  category="no",
+  description="BHAIKSUKI NUMBER SIX",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C5F,
+ },
+ [0x11C60]={
+  category="no",
+  description="BHAIKSUKI NUMBER SEVEN",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C60,
+ },
+ [0x11C61]={
+  category="no",
+  description="BHAIKSUKI NUMBER EIGHT",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C61,
+ },
+ [0x11C62]={
+  category="no",
+  description="BHAIKSUKI NUMBER NINE",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C62,
+ },
+ [0x11C63]={
+  category="no",
+  description="BHAIKSUKI NUMBER TEN",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C63,
+ },
+ [0x11C64]={
+  category="no",
+  description="BHAIKSUKI NUMBER TWENTY",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C64,
+ },
+ [0x11C65]={
+  category="no",
+  description="BHAIKSUKI NUMBER THIRTY",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C65,
+ },
+ [0x11C66]={
+  category="no",
+  description="BHAIKSUKI NUMBER FORTY",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C66,
+ },
+ [0x11C67]={
+  category="no",
+  description="BHAIKSUKI NUMBER FIFTY",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C67,
+ },
+ [0x11C68]={
+  category="no",
+  description="BHAIKSUKI NUMBER SIXTY",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C68,
+ },
+ [0x11C69]={
+  category="no",
+  description="BHAIKSUKI NUMBER SEVENTY",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C69,
+ },
+ [0x11C6A]={
+  category="no",
+  description="BHAIKSUKI NUMBER EIGHTY",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C6A,
+ },
+ [0x11C6B]={
+  category="no",
+  description="BHAIKSUKI NUMBER NINETY",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C6B,
+ },
+ [0x11C6C]={
+  category="no",
+  description="BHAIKSUKI HUNDREDS UNIT MARK",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C6C,
+ },
+ [0x11C70]={
+  category="po",
+  description="MARCHEN HEAD MARK",
+  direction="l",
+  linebreak="bb",
+  unicodeslot=0x11C70,
+ },
+ [0x11C71]={
+  category="po",
+  description="MARCHEN MARK SHAD",
+  direction="l",
+  linebreak="ex",
+  unicodeslot=0x11C71,
+ },
+ [0x11C72]={
+  category="lo",
+  description="MARCHEN LETTER KA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C72,
+ },
+ [0x11C73]={
+  category="lo",
+  description="MARCHEN LETTER KHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C73,
+ },
+ [0x11C74]={
+  category="lo",
+  description="MARCHEN LETTER GA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C74,
+ },
+ [0x11C75]={
+  category="lo",
+  description="MARCHEN LETTER NGA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C75,
+ },
+ [0x11C76]={
+  category="lo",
+  description="MARCHEN LETTER CA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C76,
+ },
+ [0x11C77]={
+  category="lo",
+  description="MARCHEN LETTER CHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C77,
+ },
+ [0x11C78]={
+  category="lo",
+  description="MARCHEN LETTER JA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C78,
+ },
+ [0x11C79]={
+  category="lo",
+  description="MARCHEN LETTER NYA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C79,
+ },
+ [0x11C7A]={
+  category="lo",
+  description="MARCHEN LETTER TA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C7A,
+ },
+ [0x11C7B]={
+  category="lo",
+  description="MARCHEN LETTER THA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C7B,
+ },
+ [0x11C7C]={
+  category="lo",
+  description="MARCHEN LETTER DA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C7C,
+ },
+ [0x11C7D]={
+  category="lo",
+  description="MARCHEN LETTER NA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C7D,
+ },
+ [0x11C7E]={
+  category="lo",
+  description="MARCHEN LETTER PA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C7E,
+ },
+ [0x11C7F]={
+  category="lo",
+  description="MARCHEN LETTER PHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C7F,
+ },
+ [0x11C80]={
+  category="lo",
+  description="MARCHEN LETTER BA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C80,
+ },
+ [0x11C81]={
+  category="lo",
+  description="MARCHEN LETTER MA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C81,
+ },
+ [0x11C82]={
+  category="lo",
+  description="MARCHEN LETTER TSA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C82,
+ },
+ [0x11C83]={
+  category="lo",
+  description="MARCHEN LETTER TSHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C83,
+ },
+ [0x11C84]={
+  category="lo",
+  description="MARCHEN LETTER DZA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C84,
+ },
+ [0x11C85]={
+  category="lo",
+  description="MARCHEN LETTER WA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C85,
+ },
+ [0x11C86]={
+  category="lo",
+  description="MARCHEN LETTER ZHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C86,
+ },
+ [0x11C87]={
+  category="lo",
+  description="MARCHEN LETTER ZA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C87,
+ },
+ [0x11C88]={
+  category="lo",
+  description="MARCHEN LETTER -A",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C88,
+ },
+ [0x11C89]={
+  category="lo",
+  description="MARCHEN LETTER YA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C89,
+ },
+ [0x11C8A]={
+  category="lo",
+  description="MARCHEN LETTER RA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C8A,
+ },
+ [0x11C8B]={
+  category="lo",
+  description="MARCHEN LETTER LA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C8B,
+ },
+ [0x11C8C]={
+  category="lo",
+  description="MARCHEN LETTER SHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C8C,
+ },
+ [0x11C8D]={
+  category="lo",
+  description="MARCHEN LETTER SA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C8D,
+ },
+ [0x11C8E]={
+  category="lo",
+  description="MARCHEN LETTER HA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C8E,
+ },
+ [0x11C8F]={
+  category="lo",
+  description="MARCHEN LETTER A",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11C8F,
+ },
+ [0x11C92]={
+  category="mn",
+  description="MARCHEN SUBJOINED LETTER KA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11C92,
+ },
+ [0x11C93]={
+  category="mn",
+  description="MARCHEN SUBJOINED LETTER KHA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11C93,
+ },
+ [0x11C94]={
+  category="mn",
+  description="MARCHEN SUBJOINED LETTER GA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11C94,
+ },
+ [0x11C95]={
+  category="mn",
+  description="MARCHEN SUBJOINED LETTER NGA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11C95,
+ },
+ [0x11C96]={
+  category="mn",
+  description="MARCHEN SUBJOINED LETTER CA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11C96,
+ },
+ [0x11C97]={
+  category="mn",
+  description="MARCHEN SUBJOINED LETTER CHA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11C97,
+ },
+ [0x11C98]={
+  category="mn",
+  description="MARCHEN SUBJOINED LETTER JA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11C98,
+ },
+ [0x11C99]={
+  category="mn",
+  description="MARCHEN SUBJOINED LETTER NYA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11C99,
+ },
+ [0x11C9A]={
+  category="mn",
+  description="MARCHEN SUBJOINED LETTER TA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11C9A,
+ },
+ [0x11C9B]={
+  category="mn",
+  description="MARCHEN SUBJOINED LETTER THA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11C9B,
+ },
+ [0x11C9C]={
+  category="mn",
+  description="MARCHEN SUBJOINED LETTER DA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11C9C,
+ },
+ [0x11C9D]={
+  category="mn",
+  description="MARCHEN SUBJOINED LETTER NA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11C9D,
+ },
+ [0x11C9E]={
+  category="mn",
+  description="MARCHEN SUBJOINED LETTER PA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11C9E,
+ },
+ [0x11C9F]={
+  category="mn",
+  description="MARCHEN SUBJOINED LETTER PHA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11C9F,
+ },
+ [0x11CA0]={
+  category="mn",
+  description="MARCHEN SUBJOINED LETTER BA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11CA0,
+ },
+ [0x11CA1]={
+  category="mn",
+  description="MARCHEN SUBJOINED LETTER MA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11CA1,
+ },
+ [0x11CA2]={
+  category="mn",
+  description="MARCHEN SUBJOINED LETTER TSA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11CA2,
+ },
+ [0x11CA3]={
+  category="mn",
+  description="MARCHEN SUBJOINED LETTER TSHA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11CA3,
+ },
+ [0x11CA4]={
+  category="mn",
+  description="MARCHEN SUBJOINED LETTER DZA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11CA4,
+ },
+ [0x11CA5]={
+  category="mn",
+  description="MARCHEN SUBJOINED LETTER WA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11CA5,
+ },
+ [0x11CA6]={
+  category="mn",
+  description="MARCHEN SUBJOINED LETTER ZHA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11CA6,
+ },
+ [0x11CA7]={
+  category="mn",
+  description="MARCHEN SUBJOINED LETTER ZA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11CA7,
+ },
+ [0x11CA9]={
+  category="mc",
+  description="MARCHEN SUBJOINED LETTER YA",
+  direction="l",
+  linebreak="cm",
+  unicodeslot=0x11CA9,
+ },
+ [0x11CAA]={
+  category="mn",
+  description="MARCHEN SUBJOINED LETTER RA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11CAA,
+ },
+ [0x11CAB]={
+  category="mn",
+  description="MARCHEN SUBJOINED LETTER LA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11CAB,
+ },
+ [0x11CAC]={
+  category="mn",
+  description="MARCHEN SUBJOINED LETTER SHA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11CAC,
+ },
+ [0x11CAD]={
+  category="mn",
+  description="MARCHEN SUBJOINED LETTER SA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11CAD,
+ },
+ [0x11CAE]={
+  category="mn",
+  description="MARCHEN SUBJOINED LETTER HA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11CAE,
+ },
+ [0x11CAF]={
+  category="mn",
+  description="MARCHEN SUBJOINED LETTER A",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11CAF,
+ },
+ [0x11CB0]={
+  category="mn",
+  description="MARCHEN VOWEL SIGN AA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11CB0,
+ },
+ [0x11CB1]={
+  category="mc",
+  description="MARCHEN VOWEL SIGN I",
+  direction="l",
+  linebreak="cm",
+  unicodeslot=0x11CB1,
+ },
+ [0x11CB2]={
+  category="mn",
+  description="MARCHEN VOWEL SIGN U",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11CB2,
+ },
+ [0x11CB3]={
+  category="mn",
+  description="MARCHEN VOWEL SIGN E",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11CB3,
+ },
+ [0x11CB4]={
+  category="mc",
+  description="MARCHEN VOWEL SIGN O",
+  direction="l",
+  linebreak="cm",
+  unicodeslot=0x11CB4,
+ },
+ [0x11CB5]={
+  category="mn",
+  description="MARCHEN SIGN ANUSVARA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11CB5,
+ },
+ [0x11CB6]={
+  category="mn",
+  description="MARCHEN SIGN CANDRABINDU",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11CB6,
+ },
  [0x12000]={
   category="lo",
   description="CUNEIFORM SIGN A",
@@ -186604,6 +189308,6054 @@ characters.data={
   linebreak="al",
   unicodeslot=0x16F9F,
  },
+ [0x16FE0]={
+  category="lm",
+  cjkwd="w",
+  description="TANGUT ITERATION MARK",
+  direction="l",
+  linebreak="ns",
+  unicodeslot=0x16FE0,
+ },
+ [0x18800]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-001",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18800,
+ },
+ [0x18801]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-002",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18801,
+ },
+ [0x18802]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-003",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18802,
+ },
+ [0x18803]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-004",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18803,
+ },
+ [0x18804]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-005",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18804,
+ },
+ [0x18805]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-006",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18805,
+ },
+ [0x18806]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-007",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18806,
+ },
+ [0x18807]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-008",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18807,
+ },
+ [0x18808]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-009",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18808,
+ },
+ [0x18809]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-010",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18809,
+ },
+ [0x1880A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-011",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1880A,
+ },
+ [0x1880B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-012",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1880B,
+ },
+ [0x1880C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-013",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1880C,
+ },
+ [0x1880D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-014",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1880D,
+ },
+ [0x1880E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-015",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1880E,
+ },
+ [0x1880F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-016",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1880F,
+ },
+ [0x18810]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-017",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18810,
+ },
+ [0x18811]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-018",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18811,
+ },
+ [0x18812]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-019",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18812,
+ },
+ [0x18813]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-020",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18813,
+ },
+ [0x18814]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-021",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18814,
+ },
+ [0x18815]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-022",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18815,
+ },
+ [0x18816]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-023",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18816,
+ },
+ [0x18817]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-024",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18817,
+ },
+ [0x18818]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-025",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18818,
+ },
+ [0x18819]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-026",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18819,
+ },
+ [0x1881A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-027",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1881A,
+ },
+ [0x1881B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-028",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1881B,
+ },
+ [0x1881C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-029",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1881C,
+ },
+ [0x1881D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-030",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1881D,
+ },
+ [0x1881E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-031",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1881E,
+ },
+ [0x1881F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-032",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1881F,
+ },
+ [0x18820]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-033",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18820,
+ },
+ [0x18821]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-034",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18821,
+ },
+ [0x18822]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-035",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18822,
+ },
+ [0x18823]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-036",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18823,
+ },
+ [0x18824]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-037",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18824,
+ },
+ [0x18825]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-038",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18825,
+ },
+ [0x18826]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-039",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18826,
+ },
+ [0x18827]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-040",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18827,
+ },
+ [0x18828]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-041",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18828,
+ },
+ [0x18829]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-042",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18829,
+ },
+ [0x1882A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-043",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1882A,
+ },
+ [0x1882B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-044",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1882B,
+ },
+ [0x1882C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-045",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1882C,
+ },
+ [0x1882D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-046",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1882D,
+ },
+ [0x1882E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-047",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1882E,
+ },
+ [0x1882F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-048",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1882F,
+ },
+ [0x18830]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-049",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18830,
+ },
+ [0x18831]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-050",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18831,
+ },
+ [0x18832]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-051",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18832,
+ },
+ [0x18833]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-052",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18833,
+ },
+ [0x18834]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-053",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18834,
+ },
+ [0x18835]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-054",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18835,
+ },
+ [0x18836]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-055",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18836,
+ },
+ [0x18837]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-056",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18837,
+ },
+ [0x18838]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-057",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18838,
+ },
+ [0x18839]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-058",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18839,
+ },
+ [0x1883A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-059",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1883A,
+ },
+ [0x1883B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-060",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1883B,
+ },
+ [0x1883C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-061",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1883C,
+ },
+ [0x1883D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-062",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1883D,
+ },
+ [0x1883E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-063",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1883E,
+ },
+ [0x1883F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-064",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1883F,
+ },
+ [0x18840]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-065",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18840,
+ },
+ [0x18841]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-066",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18841,
+ },
+ [0x18842]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-067",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18842,
+ },
+ [0x18843]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-068",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18843,
+ },
+ [0x18844]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-069",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18844,
+ },
+ [0x18845]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-070",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18845,
+ },
+ [0x18846]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-071",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18846,
+ },
+ [0x18847]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-072",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18847,
+ },
+ [0x18848]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-073",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18848,
+ },
+ [0x18849]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-074",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18849,
+ },
+ [0x1884A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-075",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1884A,
+ },
+ [0x1884B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-076",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1884B,
+ },
+ [0x1884C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-077",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1884C,
+ },
+ [0x1884D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-078",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1884D,
+ },
+ [0x1884E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-079",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1884E,
+ },
+ [0x1884F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-080",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1884F,
+ },
+ [0x18850]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-081",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18850,
+ },
+ [0x18851]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-082",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18851,
+ },
+ [0x18852]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-083",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18852,
+ },
+ [0x18853]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-084",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18853,
+ },
+ [0x18854]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-085",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18854,
+ },
+ [0x18855]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-086",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18855,
+ },
+ [0x18856]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-087",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18856,
+ },
+ [0x18857]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-088",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18857,
+ },
+ [0x18858]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-089",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18858,
+ },
+ [0x18859]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-090",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18859,
+ },
+ [0x1885A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-091",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1885A,
+ },
+ [0x1885B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-092",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1885B,
+ },
+ [0x1885C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-093",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1885C,
+ },
+ [0x1885D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-094",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1885D,
+ },
+ [0x1885E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-095",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1885E,
+ },
+ [0x1885F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-096",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1885F,
+ },
+ [0x18860]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-097",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18860,
+ },
+ [0x18861]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-098",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18861,
+ },
+ [0x18862]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-099",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18862,
+ },
+ [0x18863]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-100",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18863,
+ },
+ [0x18864]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-101",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18864,
+ },
+ [0x18865]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-102",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18865,
+ },
+ [0x18866]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-103",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18866,
+ },
+ [0x18867]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-104",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18867,
+ },
+ [0x18868]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-105",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18868,
+ },
+ [0x18869]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-106",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18869,
+ },
+ [0x1886A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-107",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1886A,
+ },
+ [0x1886B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-108",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1886B,
+ },
+ [0x1886C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-109",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1886C,
+ },
+ [0x1886D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-110",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1886D,
+ },
+ [0x1886E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-111",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1886E,
+ },
+ [0x1886F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-112",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1886F,
+ },
+ [0x18870]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-113",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18870,
+ },
+ [0x18871]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-114",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18871,
+ },
+ [0x18872]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-115",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18872,
+ },
+ [0x18873]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-116",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18873,
+ },
+ [0x18874]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-117",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18874,
+ },
+ [0x18875]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-118",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18875,
+ },
+ [0x18876]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-119",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18876,
+ },
+ [0x18877]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-120",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18877,
+ },
+ [0x18878]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-121",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18878,
+ },
+ [0x18879]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-122",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18879,
+ },
+ [0x1887A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-123",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1887A,
+ },
+ [0x1887B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-124",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1887B,
+ },
+ [0x1887C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-125",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1887C,
+ },
+ [0x1887D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-126",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1887D,
+ },
+ [0x1887E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-127",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1887E,
+ },
+ [0x1887F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-128",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1887F,
+ },
+ [0x18880]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-129",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18880,
+ },
+ [0x18881]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-130",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18881,
+ },
+ [0x18882]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-131",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18882,
+ },
+ [0x18883]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-132",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18883,
+ },
+ [0x18884]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-133",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18884,
+ },
+ [0x18885]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-134",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18885,
+ },
+ [0x18886]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-135",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18886,
+ },
+ [0x18887]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-136",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18887,
+ },
+ [0x18888]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-137",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18888,
+ },
+ [0x18889]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-138",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18889,
+ },
+ [0x1888A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-139",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1888A,
+ },
+ [0x1888B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-140",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1888B,
+ },
+ [0x1888C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-141",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1888C,
+ },
+ [0x1888D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-142",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1888D,
+ },
+ [0x1888E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-143",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1888E,
+ },
+ [0x1888F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-144",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1888F,
+ },
+ [0x18890]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-145",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18890,
+ },
+ [0x18891]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-146",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18891,
+ },
+ [0x18892]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-147",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18892,
+ },
+ [0x18893]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-148",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18893,
+ },
+ [0x18894]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-149",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18894,
+ },
+ [0x18895]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-150",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18895,
+ },
+ [0x18896]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-151",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18896,
+ },
+ [0x18897]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-152",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18897,
+ },
+ [0x18898]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-153",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18898,
+ },
+ [0x18899]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-154",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18899,
+ },
+ [0x1889A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-155",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1889A,
+ },
+ [0x1889B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-156",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1889B,
+ },
+ [0x1889C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-157",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1889C,
+ },
+ [0x1889D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-158",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1889D,
+ },
+ [0x1889E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-159",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1889E,
+ },
+ [0x1889F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-160",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1889F,
+ },
+ [0x188A0]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-161",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188A0,
+ },
+ [0x188A1]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-162",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188A1,
+ },
+ [0x188A2]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-163",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188A2,
+ },
+ [0x188A3]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-164",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188A3,
+ },
+ [0x188A4]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-165",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188A4,
+ },
+ [0x188A5]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-166",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188A5,
+ },
+ [0x188A6]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-167",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188A6,
+ },
+ [0x188A7]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-168",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188A7,
+ },
+ [0x188A8]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-169",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188A8,
+ },
+ [0x188A9]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-170",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188A9,
+ },
+ [0x188AA]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-171",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188AA,
+ },
+ [0x188AB]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-172",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188AB,
+ },
+ [0x188AC]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-173",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188AC,
+ },
+ [0x188AD]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-174",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188AD,
+ },
+ [0x188AE]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-175",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188AE,
+ },
+ [0x188AF]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-176",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188AF,
+ },
+ [0x188B0]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-177",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188B0,
+ },
+ [0x188B1]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-178",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188B1,
+ },
+ [0x188B2]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-179",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188B2,
+ },
+ [0x188B3]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-180",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188B3,
+ },
+ [0x188B4]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-181",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188B4,
+ },
+ [0x188B5]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-182",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188B5,
+ },
+ [0x188B6]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-183",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188B6,
+ },
+ [0x188B7]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-184",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188B7,
+ },
+ [0x188B8]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-185",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188B8,
+ },
+ [0x188B9]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-186",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188B9,
+ },
+ [0x188BA]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-187",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188BA,
+ },
+ [0x188BB]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-188",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188BB,
+ },
+ [0x188BC]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-189",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188BC,
+ },
+ [0x188BD]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-190",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188BD,
+ },
+ [0x188BE]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-191",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188BE,
+ },
+ [0x188BF]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-192",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188BF,
+ },
+ [0x188C0]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-193",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188C0,
+ },
+ [0x188C1]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-194",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188C1,
+ },
+ [0x188C2]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-195",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188C2,
+ },
+ [0x188C3]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-196",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188C3,
+ },
+ [0x188C4]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-197",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188C4,
+ },
+ [0x188C5]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-198",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188C5,
+ },
+ [0x188C6]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-199",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188C6,
+ },
+ [0x188C7]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-200",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188C7,
+ },
+ [0x188C8]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-201",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188C8,
+ },
+ [0x188C9]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-202",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188C9,
+ },
+ [0x188CA]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-203",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188CA,
+ },
+ [0x188CB]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-204",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188CB,
+ },
+ [0x188CC]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-205",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188CC,
+ },
+ [0x188CD]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-206",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188CD,
+ },
+ [0x188CE]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-207",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188CE,
+ },
+ [0x188CF]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-208",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188CF,
+ },
+ [0x188D0]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-209",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188D0,
+ },
+ [0x188D1]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-210",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188D1,
+ },
+ [0x188D2]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-211",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188D2,
+ },
+ [0x188D3]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-212",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188D3,
+ },
+ [0x188D4]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-213",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188D4,
+ },
+ [0x188D5]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-214",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188D5,
+ },
+ [0x188D6]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-215",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188D6,
+ },
+ [0x188D7]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-216",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188D7,
+ },
+ [0x188D8]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-217",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188D8,
+ },
+ [0x188D9]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-218",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188D9,
+ },
+ [0x188DA]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-219",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188DA,
+ },
+ [0x188DB]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-220",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188DB,
+ },
+ [0x188DC]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-221",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188DC,
+ },
+ [0x188DD]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-222",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188DD,
+ },
+ [0x188DE]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-223",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188DE,
+ },
+ [0x188DF]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-224",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188DF,
+ },
+ [0x188E0]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-225",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188E0,
+ },
+ [0x188E1]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-226",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188E1,
+ },
+ [0x188E2]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-227",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188E2,
+ },
+ [0x188E3]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-228",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188E3,
+ },
+ [0x188E4]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-229",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188E4,
+ },
+ [0x188E5]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-230",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188E5,
+ },
+ [0x188E6]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-231",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188E6,
+ },
+ [0x188E7]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-232",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188E7,
+ },
+ [0x188E8]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-233",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188E8,
+ },
+ [0x188E9]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-234",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188E9,
+ },
+ [0x188EA]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-235",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188EA,
+ },
+ [0x188EB]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-236",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188EB,
+ },
+ [0x188EC]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-237",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188EC,
+ },
+ [0x188ED]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-238",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188ED,
+ },
+ [0x188EE]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-239",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188EE,
+ },
+ [0x188EF]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-240",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188EF,
+ },
+ [0x188F0]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-241",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188F0,
+ },
+ [0x188F1]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-242",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188F1,
+ },
+ [0x188F2]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-243",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188F2,
+ },
+ [0x188F3]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-244",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188F3,
+ },
+ [0x188F4]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-245",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188F4,
+ },
+ [0x188F5]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-246",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188F5,
+ },
+ [0x188F6]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-247",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188F6,
+ },
+ [0x188F7]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-248",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188F7,
+ },
+ [0x188F8]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-249",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188F8,
+ },
+ [0x188F9]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-250",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188F9,
+ },
+ [0x188FA]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-251",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188FA,
+ },
+ [0x188FB]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-252",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188FB,
+ },
+ [0x188FC]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-253",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188FC,
+ },
+ [0x188FD]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-254",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188FD,
+ },
+ [0x188FE]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-255",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188FE,
+ },
+ [0x188FF]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-256",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x188FF,
+ },
+ [0x18900]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-257",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18900,
+ },
+ [0x18901]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-258",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18901,
+ },
+ [0x18902]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-259",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18902,
+ },
+ [0x18903]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-260",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18903,
+ },
+ [0x18904]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-261",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18904,
+ },
+ [0x18905]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-262",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18905,
+ },
+ [0x18906]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-263",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18906,
+ },
+ [0x18907]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-264",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18907,
+ },
+ [0x18908]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-265",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18908,
+ },
+ [0x18909]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-266",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18909,
+ },
+ [0x1890A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-267",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1890A,
+ },
+ [0x1890B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-268",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1890B,
+ },
+ [0x1890C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-269",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1890C,
+ },
+ [0x1890D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-270",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1890D,
+ },
+ [0x1890E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-271",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1890E,
+ },
+ [0x1890F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-272",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1890F,
+ },
+ [0x18910]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-273",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18910,
+ },
+ [0x18911]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-274",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18911,
+ },
+ [0x18912]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-275",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18912,
+ },
+ [0x18913]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-276",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18913,
+ },
+ [0x18914]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-277",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18914,
+ },
+ [0x18915]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-278",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18915,
+ },
+ [0x18916]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-279",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18916,
+ },
+ [0x18917]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-280",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18917,
+ },
+ [0x18918]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-281",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18918,
+ },
+ [0x18919]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-282",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18919,
+ },
+ [0x1891A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-283",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1891A,
+ },
+ [0x1891B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-284",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1891B,
+ },
+ [0x1891C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-285",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1891C,
+ },
+ [0x1891D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-286",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1891D,
+ },
+ [0x1891E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-287",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1891E,
+ },
+ [0x1891F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-288",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1891F,
+ },
+ [0x18920]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-289",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18920,
+ },
+ [0x18921]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-290",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18921,
+ },
+ [0x18922]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-291",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18922,
+ },
+ [0x18923]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-292",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18923,
+ },
+ [0x18924]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-293",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18924,
+ },
+ [0x18925]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-294",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18925,
+ },
+ [0x18926]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-295",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18926,
+ },
+ [0x18927]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-296",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18927,
+ },
+ [0x18928]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-297",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18928,
+ },
+ [0x18929]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-298",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18929,
+ },
+ [0x1892A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-299",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1892A,
+ },
+ [0x1892B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-300",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1892B,
+ },
+ [0x1892C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-301",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1892C,
+ },
+ [0x1892D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-302",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1892D,
+ },
+ [0x1892E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-303",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1892E,
+ },
+ [0x1892F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-304",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1892F,
+ },
+ [0x18930]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-305",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18930,
+ },
+ [0x18931]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-306",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18931,
+ },
+ [0x18932]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-307",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18932,
+ },
+ [0x18933]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-308",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18933,
+ },
+ [0x18934]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-309",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18934,
+ },
+ [0x18935]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-310",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18935,
+ },
+ [0x18936]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-311",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18936,
+ },
+ [0x18937]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-312",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18937,
+ },
+ [0x18938]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-313",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18938,
+ },
+ [0x18939]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-314",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18939,
+ },
+ [0x1893A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-315",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1893A,
+ },
+ [0x1893B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-316",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1893B,
+ },
+ [0x1893C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-317",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1893C,
+ },
+ [0x1893D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-318",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1893D,
+ },
+ [0x1893E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-319",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1893E,
+ },
+ [0x1893F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-320",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1893F,
+ },
+ [0x18940]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-321",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18940,
+ },
+ [0x18941]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-322",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18941,
+ },
+ [0x18942]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-323",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18942,
+ },
+ [0x18943]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-324",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18943,
+ },
+ [0x18944]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-325",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18944,
+ },
+ [0x18945]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-326",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18945,
+ },
+ [0x18946]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-327",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18946,
+ },
+ [0x18947]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-328",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18947,
+ },
+ [0x18948]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-329",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18948,
+ },
+ [0x18949]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-330",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18949,
+ },
+ [0x1894A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-331",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1894A,
+ },
+ [0x1894B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-332",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1894B,
+ },
+ [0x1894C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-333",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1894C,
+ },
+ [0x1894D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-334",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1894D,
+ },
+ [0x1894E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-335",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1894E,
+ },
+ [0x1894F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-336",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1894F,
+ },
+ [0x18950]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-337",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18950,
+ },
+ [0x18951]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-338",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18951,
+ },
+ [0x18952]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-339",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18952,
+ },
+ [0x18953]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-340",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18953,
+ },
+ [0x18954]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-341",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18954,
+ },
+ [0x18955]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-342",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18955,
+ },
+ [0x18956]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-343",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18956,
+ },
+ [0x18957]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-344",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18957,
+ },
+ [0x18958]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-345",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18958,
+ },
+ [0x18959]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-346",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18959,
+ },
+ [0x1895A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-347",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1895A,
+ },
+ [0x1895B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-348",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1895B,
+ },
+ [0x1895C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-349",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1895C,
+ },
+ [0x1895D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-350",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1895D,
+ },
+ [0x1895E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-351",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1895E,
+ },
+ [0x1895F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-352",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1895F,
+ },
+ [0x18960]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-353",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18960,
+ },
+ [0x18961]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-354",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18961,
+ },
+ [0x18962]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-355",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18962,
+ },
+ [0x18963]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-356",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18963,
+ },
+ [0x18964]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-357",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18964,
+ },
+ [0x18965]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-358",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18965,
+ },
+ [0x18966]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-359",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18966,
+ },
+ [0x18967]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-360",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18967,
+ },
+ [0x18968]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-361",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18968,
+ },
+ [0x18969]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-362",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18969,
+ },
+ [0x1896A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-363",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1896A,
+ },
+ [0x1896B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-364",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1896B,
+ },
+ [0x1896C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-365",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1896C,
+ },
+ [0x1896D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-366",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1896D,
+ },
+ [0x1896E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-367",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1896E,
+ },
+ [0x1896F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-368",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1896F,
+ },
+ [0x18970]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-369",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18970,
+ },
+ [0x18971]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-370",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18971,
+ },
+ [0x18972]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-371",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18972,
+ },
+ [0x18973]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-372",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18973,
+ },
+ [0x18974]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-373",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18974,
+ },
+ [0x18975]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-374",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18975,
+ },
+ [0x18976]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-375",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18976,
+ },
+ [0x18977]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-376",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18977,
+ },
+ [0x18978]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-377",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18978,
+ },
+ [0x18979]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-378",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18979,
+ },
+ [0x1897A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-379",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1897A,
+ },
+ [0x1897B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-380",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1897B,
+ },
+ [0x1897C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-381",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1897C,
+ },
+ [0x1897D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-382",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1897D,
+ },
+ [0x1897E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-383",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1897E,
+ },
+ [0x1897F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-384",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1897F,
+ },
+ [0x18980]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-385",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18980,
+ },
+ [0x18981]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-386",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18981,
+ },
+ [0x18982]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-387",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18982,
+ },
+ [0x18983]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-388",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18983,
+ },
+ [0x18984]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-389",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18984,
+ },
+ [0x18985]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-390",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18985,
+ },
+ [0x18986]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-391",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18986,
+ },
+ [0x18987]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-392",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18987,
+ },
+ [0x18988]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-393",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18988,
+ },
+ [0x18989]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-394",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18989,
+ },
+ [0x1898A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-395",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1898A,
+ },
+ [0x1898B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-396",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1898B,
+ },
+ [0x1898C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-397",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1898C,
+ },
+ [0x1898D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-398",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1898D,
+ },
+ [0x1898E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-399",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1898E,
+ },
+ [0x1898F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-400",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1898F,
+ },
+ [0x18990]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-401",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18990,
+ },
+ [0x18991]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-402",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18991,
+ },
+ [0x18992]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-403",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18992,
+ },
+ [0x18993]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-404",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18993,
+ },
+ [0x18994]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-405",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18994,
+ },
+ [0x18995]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-406",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18995,
+ },
+ [0x18996]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-407",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18996,
+ },
+ [0x18997]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-408",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18997,
+ },
+ [0x18998]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-409",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18998,
+ },
+ [0x18999]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-410",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18999,
+ },
+ [0x1899A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-411",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1899A,
+ },
+ [0x1899B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-412",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1899B,
+ },
+ [0x1899C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-413",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1899C,
+ },
+ [0x1899D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-414",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1899D,
+ },
+ [0x1899E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-415",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1899E,
+ },
+ [0x1899F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-416",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1899F,
+ },
+ [0x189A0]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-417",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189A0,
+ },
+ [0x189A1]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-418",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189A1,
+ },
+ [0x189A2]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-419",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189A2,
+ },
+ [0x189A3]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-420",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189A3,
+ },
+ [0x189A4]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-421",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189A4,
+ },
+ [0x189A5]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-422",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189A5,
+ },
+ [0x189A6]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-423",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189A6,
+ },
+ [0x189A7]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-424",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189A7,
+ },
+ [0x189A8]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-425",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189A8,
+ },
+ [0x189A9]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-426",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189A9,
+ },
+ [0x189AA]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-427",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189AA,
+ },
+ [0x189AB]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-428",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189AB,
+ },
+ [0x189AC]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-429",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189AC,
+ },
+ [0x189AD]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-430",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189AD,
+ },
+ [0x189AE]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-431",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189AE,
+ },
+ [0x189AF]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-432",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189AF,
+ },
+ [0x189B0]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-433",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189B0,
+ },
+ [0x189B1]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-434",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189B1,
+ },
+ [0x189B2]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-435",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189B2,
+ },
+ [0x189B3]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-436",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189B3,
+ },
+ [0x189B4]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-437",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189B4,
+ },
+ [0x189B5]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-438",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189B5,
+ },
+ [0x189B6]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-439",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189B6,
+ },
+ [0x189B7]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-440",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189B7,
+ },
+ [0x189B8]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-441",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189B8,
+ },
+ [0x189B9]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-442",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189B9,
+ },
+ [0x189BA]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-443",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189BA,
+ },
+ [0x189BB]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-444",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189BB,
+ },
+ [0x189BC]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-445",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189BC,
+ },
+ [0x189BD]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-446",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189BD,
+ },
+ [0x189BE]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-447",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189BE,
+ },
+ [0x189BF]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-448",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189BF,
+ },
+ [0x189C0]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-449",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189C0,
+ },
+ [0x189C1]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-450",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189C1,
+ },
+ [0x189C2]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-451",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189C2,
+ },
+ [0x189C3]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-452",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189C3,
+ },
+ [0x189C4]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-453",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189C4,
+ },
+ [0x189C5]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-454",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189C5,
+ },
+ [0x189C6]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-455",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189C6,
+ },
+ [0x189C7]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-456",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189C7,
+ },
+ [0x189C8]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-457",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189C8,
+ },
+ [0x189C9]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-458",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189C9,
+ },
+ [0x189CA]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-459",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189CA,
+ },
+ [0x189CB]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-460",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189CB,
+ },
+ [0x189CC]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-461",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189CC,
+ },
+ [0x189CD]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-462",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189CD,
+ },
+ [0x189CE]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-463",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189CE,
+ },
+ [0x189CF]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-464",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189CF,
+ },
+ [0x189D0]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-465",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189D0,
+ },
+ [0x189D1]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-466",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189D1,
+ },
+ [0x189D2]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-467",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189D2,
+ },
+ [0x189D3]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-468",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189D3,
+ },
+ [0x189D4]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-469",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189D4,
+ },
+ [0x189D5]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-470",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189D5,
+ },
+ [0x189D6]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-471",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189D6,
+ },
+ [0x189D7]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-472",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189D7,
+ },
+ [0x189D8]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-473",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189D8,
+ },
+ [0x189D9]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-474",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189D9,
+ },
+ [0x189DA]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-475",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189DA,
+ },
+ [0x189DB]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-476",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189DB,
+ },
+ [0x189DC]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-477",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189DC,
+ },
+ [0x189DD]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-478",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189DD,
+ },
+ [0x189DE]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-479",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189DE,
+ },
+ [0x189DF]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-480",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189DF,
+ },
+ [0x189E0]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-481",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189E0,
+ },
+ [0x189E1]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-482",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189E1,
+ },
+ [0x189E2]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-483",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189E2,
+ },
+ [0x189E3]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-484",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189E3,
+ },
+ [0x189E4]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-485",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189E4,
+ },
+ [0x189E5]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-486",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189E5,
+ },
+ [0x189E6]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-487",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189E6,
+ },
+ [0x189E7]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-488",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189E7,
+ },
+ [0x189E8]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-489",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189E8,
+ },
+ [0x189E9]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-490",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189E9,
+ },
+ [0x189EA]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-491",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189EA,
+ },
+ [0x189EB]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-492",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189EB,
+ },
+ [0x189EC]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-493",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189EC,
+ },
+ [0x189ED]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-494",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189ED,
+ },
+ [0x189EE]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-495",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189EE,
+ },
+ [0x189EF]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-496",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189EF,
+ },
+ [0x189F0]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-497",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189F0,
+ },
+ [0x189F1]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-498",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189F1,
+ },
+ [0x189F2]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-499",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189F2,
+ },
+ [0x189F3]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-500",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189F3,
+ },
+ [0x189F4]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-501",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189F4,
+ },
+ [0x189F5]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-502",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189F5,
+ },
+ [0x189F6]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-503",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189F6,
+ },
+ [0x189F7]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-504",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189F7,
+ },
+ [0x189F8]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-505",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189F8,
+ },
+ [0x189F9]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-506",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189F9,
+ },
+ [0x189FA]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-507",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189FA,
+ },
+ [0x189FB]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-508",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189FB,
+ },
+ [0x189FC]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-509",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189FC,
+ },
+ [0x189FD]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-510",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189FD,
+ },
+ [0x189FE]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-511",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189FE,
+ },
+ [0x189FF]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-512",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189FF,
+ },
+ [0x18A00]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-513",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A00,
+ },
+ [0x18A01]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-514",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A01,
+ },
+ [0x18A02]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-515",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A02,
+ },
+ [0x18A03]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-516",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A03,
+ },
+ [0x18A04]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-517",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A04,
+ },
+ [0x18A05]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-518",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A05,
+ },
+ [0x18A06]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-519",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A06,
+ },
+ [0x18A07]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-520",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A07,
+ },
+ [0x18A08]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-521",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A08,
+ },
+ [0x18A09]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-522",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A09,
+ },
+ [0x18A0A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-523",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A0A,
+ },
+ [0x18A0B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-524",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A0B,
+ },
+ [0x18A0C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-525",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A0C,
+ },
+ [0x18A0D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-526",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A0D,
+ },
+ [0x18A0E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-527",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A0E,
+ },
+ [0x18A0F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-528",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A0F,
+ },
+ [0x18A10]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-529",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A10,
+ },
+ [0x18A11]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-530",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A11,
+ },
+ [0x18A12]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-531",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A12,
+ },
+ [0x18A13]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-532",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A13,
+ },
+ [0x18A14]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-533",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A14,
+ },
+ [0x18A15]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-534",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A15,
+ },
+ [0x18A16]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-535",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A16,
+ },
+ [0x18A17]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-536",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A17,
+ },
+ [0x18A18]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-537",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A18,
+ },
+ [0x18A19]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-538",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A19,
+ },
+ [0x18A1A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-539",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A1A,
+ },
+ [0x18A1B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-540",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A1B,
+ },
+ [0x18A1C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-541",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A1C,
+ },
+ [0x18A1D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-542",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A1D,
+ },
+ [0x18A1E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-543",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A1E,
+ },
+ [0x18A1F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-544",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A1F,
+ },
+ [0x18A20]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-545",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A20,
+ },
+ [0x18A21]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-546",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A21,
+ },
+ [0x18A22]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-547",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A22,
+ },
+ [0x18A23]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-548",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A23,
+ },
+ [0x18A24]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-549",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A24,
+ },
+ [0x18A25]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-550",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A25,
+ },
+ [0x18A26]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-551",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A26,
+ },
+ [0x18A27]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-552",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A27,
+ },
+ [0x18A28]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-553",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A28,
+ },
+ [0x18A29]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-554",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A29,
+ },
+ [0x18A2A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-555",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A2A,
+ },
+ [0x18A2B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-556",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A2B,
+ },
+ [0x18A2C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-557",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A2C,
+ },
+ [0x18A2D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-558",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A2D,
+ },
+ [0x18A2E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-559",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A2E,
+ },
+ [0x18A2F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-560",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A2F,
+ },
+ [0x18A30]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-561",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A30,
+ },
+ [0x18A31]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-562",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A31,
+ },
+ [0x18A32]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-563",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A32,
+ },
+ [0x18A33]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-564",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A33,
+ },
+ [0x18A34]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-565",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A34,
+ },
+ [0x18A35]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-566",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A35,
+ },
+ [0x18A36]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-567",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A36,
+ },
+ [0x18A37]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-568",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A37,
+ },
+ [0x18A38]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-569",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A38,
+ },
+ [0x18A39]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-570",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A39,
+ },
+ [0x18A3A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-571",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A3A,
+ },
+ [0x18A3B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-572",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A3B,
+ },
+ [0x18A3C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-573",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A3C,
+ },
+ [0x18A3D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-574",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A3D,
+ },
+ [0x18A3E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-575",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A3E,
+ },
+ [0x18A3F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-576",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A3F,
+ },
+ [0x18A40]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-577",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A40,
+ },
+ [0x18A41]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-578",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A41,
+ },
+ [0x18A42]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-579",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A42,
+ },
+ [0x18A43]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-580",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A43,
+ },
+ [0x18A44]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-581",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A44,
+ },
+ [0x18A45]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-582",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A45,
+ },
+ [0x18A46]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-583",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A46,
+ },
+ [0x18A47]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-584",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A47,
+ },
+ [0x18A48]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-585",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A48,
+ },
+ [0x18A49]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-586",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A49,
+ },
+ [0x18A4A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-587",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A4A,
+ },
+ [0x18A4B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-588",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A4B,
+ },
+ [0x18A4C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-589",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A4C,
+ },
+ [0x18A4D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-590",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A4D,
+ },
+ [0x18A4E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-591",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A4E,
+ },
+ [0x18A4F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-592",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A4F,
+ },
+ [0x18A50]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-593",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A50,
+ },
+ [0x18A51]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-594",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A51,
+ },
+ [0x18A52]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-595",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A52,
+ },
+ [0x18A53]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-596",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A53,
+ },
+ [0x18A54]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-597",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A54,
+ },
+ [0x18A55]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-598",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A55,
+ },
+ [0x18A56]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-599",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A56,
+ },
+ [0x18A57]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-600",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A57,
+ },
+ [0x18A58]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-601",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A58,
+ },
+ [0x18A59]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-602",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A59,
+ },
+ [0x18A5A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-603",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A5A,
+ },
+ [0x18A5B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-604",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A5B,
+ },
+ [0x18A5C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-605",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A5C,
+ },
+ [0x18A5D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-606",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A5D,
+ },
+ [0x18A5E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-607",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A5E,
+ },
+ [0x18A5F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-608",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A5F,
+ },
+ [0x18A60]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-609",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A60,
+ },
+ [0x18A61]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-610",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A61,
+ },
+ [0x18A62]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-611",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A62,
+ },
+ [0x18A63]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-612",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A63,
+ },
+ [0x18A64]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-613",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A64,
+ },
+ [0x18A65]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-614",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A65,
+ },
+ [0x18A66]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-615",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A66,
+ },
+ [0x18A67]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-616",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A67,
+ },
+ [0x18A68]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-617",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A68,
+ },
+ [0x18A69]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-618",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A69,
+ },
+ [0x18A6A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-619",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A6A,
+ },
+ [0x18A6B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-620",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A6B,
+ },
+ [0x18A6C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-621",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A6C,
+ },
+ [0x18A6D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-622",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A6D,
+ },
+ [0x18A6E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-623",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A6E,
+ },
+ [0x18A6F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-624",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A6F,
+ },
+ [0x18A70]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-625",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A70,
+ },
+ [0x18A71]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-626",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A71,
+ },
+ [0x18A72]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-627",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A72,
+ },
+ [0x18A73]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-628",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A73,
+ },
+ [0x18A74]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-629",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A74,
+ },
+ [0x18A75]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-630",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A75,
+ },
+ [0x18A76]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-631",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A76,
+ },
+ [0x18A77]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-632",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A77,
+ },
+ [0x18A78]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-633",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A78,
+ },
+ [0x18A79]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-634",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A79,
+ },
+ [0x18A7A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-635",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A7A,
+ },
+ [0x18A7B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-636",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A7B,
+ },
+ [0x18A7C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-637",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A7C,
+ },
+ [0x18A7D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-638",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A7D,
+ },
+ [0x18A7E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-639",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A7E,
+ },
+ [0x18A7F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-640",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A7F,
+ },
+ [0x18A80]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-641",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A80,
+ },
+ [0x18A81]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-642",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A81,
+ },
+ [0x18A82]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-643",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A82,
+ },
+ [0x18A83]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-644",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A83,
+ },
+ [0x18A84]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-645",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A84,
+ },
+ [0x18A85]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-646",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A85,
+ },
+ [0x18A86]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-647",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A86,
+ },
+ [0x18A87]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-648",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A87,
+ },
+ [0x18A88]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-649",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A88,
+ },
+ [0x18A89]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-650",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A89,
+ },
+ [0x18A8A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-651",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A8A,
+ },
+ [0x18A8B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-652",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A8B,
+ },
+ [0x18A8C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-653",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A8C,
+ },
+ [0x18A8D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-654",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A8D,
+ },
+ [0x18A8E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-655",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A8E,
+ },
+ [0x18A8F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-656",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A8F,
+ },
+ [0x18A90]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-657",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A90,
+ },
+ [0x18A91]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-658",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A91,
+ },
+ [0x18A92]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-659",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A92,
+ },
+ [0x18A93]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-660",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A93,
+ },
+ [0x18A94]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-661",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A94,
+ },
+ [0x18A95]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-662",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A95,
+ },
+ [0x18A96]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-663",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A96,
+ },
+ [0x18A97]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-664",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A97,
+ },
+ [0x18A98]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-665",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A98,
+ },
+ [0x18A99]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-666",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A99,
+ },
+ [0x18A9A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-667",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A9A,
+ },
+ [0x18A9B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-668",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A9B,
+ },
+ [0x18A9C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-669",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A9C,
+ },
+ [0x18A9D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-670",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A9D,
+ },
+ [0x18A9E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-671",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A9E,
+ },
+ [0x18A9F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-672",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A9F,
+ },
+ [0x18AA0]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-673",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AA0,
+ },
+ [0x18AA1]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-674",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AA1,
+ },
+ [0x18AA2]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-675",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AA2,
+ },
+ [0x18AA3]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-676",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AA3,
+ },
+ [0x18AA4]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-677",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AA4,
+ },
+ [0x18AA5]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-678",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AA5,
+ },
+ [0x18AA6]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-679",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AA6,
+ },
+ [0x18AA7]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-680",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AA7,
+ },
+ [0x18AA8]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-681",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AA8,
+ },
+ [0x18AA9]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-682",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AA9,
+ },
+ [0x18AAA]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-683",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AAA,
+ },
+ [0x18AAB]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-684",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AAB,
+ },
+ [0x18AAC]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-685",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AAC,
+ },
+ [0x18AAD]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-686",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AAD,
+ },
+ [0x18AAE]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-687",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AAE,
+ },
+ [0x18AAF]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-688",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AAF,
+ },
+ [0x18AB0]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-689",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AB0,
+ },
+ [0x18AB1]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-690",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AB1,
+ },
+ [0x18AB2]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-691",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AB2,
+ },
+ [0x18AB3]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-692",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AB3,
+ },
+ [0x18AB4]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-693",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AB4,
+ },
+ [0x18AB5]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-694",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AB5,
+ },
+ [0x18AB6]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-695",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AB6,
+ },
+ [0x18AB7]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-696",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AB7,
+ },
+ [0x18AB8]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-697",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AB8,
+ },
+ [0x18AB9]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-698",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AB9,
+ },
+ [0x18ABA]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-699",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ABA,
+ },
+ [0x18ABB]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-700",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ABB,
+ },
+ [0x18ABC]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-701",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ABC,
+ },
+ [0x18ABD]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-702",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ABD,
+ },
+ [0x18ABE]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-703",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ABE,
+ },
+ [0x18ABF]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-704",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ABF,
+ },
+ [0x18AC0]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-705",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AC0,
+ },
+ [0x18AC1]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-706",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AC1,
+ },
+ [0x18AC2]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-707",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AC2,
+ },
+ [0x18AC3]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-708",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AC3,
+ },
+ [0x18AC4]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-709",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AC4,
+ },
+ [0x18AC5]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-710",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AC5,
+ },
+ [0x18AC6]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-711",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AC6,
+ },
+ [0x18AC7]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-712",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AC7,
+ },
+ [0x18AC8]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-713",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AC8,
+ },
+ [0x18AC9]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-714",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AC9,
+ },
+ [0x18ACA]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-715",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ACA,
+ },
+ [0x18ACB]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-716",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ACB,
+ },
+ [0x18ACC]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-717",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ACC,
+ },
+ [0x18ACD]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-718",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ACD,
+ },
+ [0x18ACE]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-719",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ACE,
+ },
+ [0x18ACF]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-720",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ACF,
+ },
+ [0x18AD0]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-721",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AD0,
+ },
+ [0x18AD1]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-722",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AD1,
+ },
+ [0x18AD2]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-723",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AD2,
+ },
+ [0x18AD3]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-724",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AD3,
+ },
+ [0x18AD4]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-725",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AD4,
+ },
+ [0x18AD5]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-726",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AD5,
+ },
+ [0x18AD6]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-727",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AD6,
+ },
+ [0x18AD7]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-728",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AD7,
+ },
+ [0x18AD8]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-729",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AD8,
+ },
+ [0x18AD9]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-730",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AD9,
+ },
+ [0x18ADA]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-731",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ADA,
+ },
+ [0x18ADB]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-732",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ADB,
+ },
+ [0x18ADC]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-733",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ADC,
+ },
+ [0x18ADD]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-734",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ADD,
+ },
+ [0x18ADE]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-735",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ADE,
+ },
+ [0x18ADF]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-736",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ADF,
+ },
+ [0x18AE0]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-737",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AE0,
+ },
+ [0x18AE1]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-738",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AE1,
+ },
+ [0x18AE2]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-739",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AE2,
+ },
+ [0x18AE3]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-740",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AE3,
+ },
+ [0x18AE4]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-741",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AE4,
+ },
+ [0x18AE5]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-742",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AE5,
+ },
+ [0x18AE6]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-743",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AE6,
+ },
+ [0x18AE7]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-744",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AE7,
+ },
+ [0x18AE8]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-745",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AE8,
+ },
+ [0x18AE9]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-746",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AE9,
+ },
+ [0x18AEA]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-747",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AEA,
+ },
+ [0x18AEB]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-748",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AEB,
+ },
+ [0x18AEC]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-749",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AEC,
+ },
+ [0x18AED]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-750",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AED,
+ },
+ [0x18AEE]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-751",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AEE,
+ },
+ [0x18AEF]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-752",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AEF,
+ },
+ [0x18AF0]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-753",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AF0,
+ },
+ [0x18AF1]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-754",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AF1,
+ },
+ [0x18AF2]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-755",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AF2,
+ },
  [0x1B000]={
   category="lo",
   cjkwd="w",
@@ -205672,6 +214424,310 @@ characters.data={
   linebreak="cm",
   unicodeslot=0x1DAAF,
  },
+ [0x1E000]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER AZU",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E000,
+ },
+ [0x1E001]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER BUKY",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E001,
+ },
+ [0x1E002]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER VEDE",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E002,
+ },
+ [0x1E003]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER GLAGOLI",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E003,
+ },
+ [0x1E004]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER DOBRO",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E004,
+ },
+ [0x1E005]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER YESTU",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E005,
+ },
+ [0x1E006]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER ZHIVETE",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E006,
+ },
+ [0x1E008]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER ZEMLJA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E008,
+ },
+ [0x1E009]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER IZHE",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E009,
+ },
+ [0x1E00A]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER INITIAL IZHE",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E00A,
+ },
+ [0x1E00B]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER I",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E00B,
+ },
+ [0x1E00C]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER DJERVI",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E00C,
+ },
+ [0x1E00D]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER KAKO",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E00D,
+ },
+ [0x1E00E]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER LJUDIJE",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E00E,
+ },
+ [0x1E00F]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER MYSLITE",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E00F,
+ },
+ [0x1E010]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER NASHI",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E010,
+ },
+ [0x1E011]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER ONU",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E011,
+ },
+ [0x1E012]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER POKOJI",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E012,
+ },
+ [0x1E013]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER RITSI",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E013,
+ },
+ [0x1E014]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER SLOVO",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E014,
+ },
+ [0x1E015]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER TVRIDO",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E015,
+ },
+ [0x1E016]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER UKU",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E016,
+ },
+ [0x1E017]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER FRITU",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E017,
+ },
+ [0x1E018]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER HERU",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E018,
+ },
+ [0x1E01B]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER SHTA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E01B,
+ },
+ [0x1E01C]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER TSI",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E01C,
+ },
+ [0x1E01D]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER CHRIVI",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E01D,
+ },
+ [0x1E01E]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER SHA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E01E,
+ },
+ [0x1E01F]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER YERU",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E01F,
+ },
+ [0x1E020]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER YERI",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E020,
+ },
+ [0x1E021]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER YATI",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E021,
+ },
+ [0x1E023]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER YU",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E023,
+ },
+ [0x1E024]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER SMALL YUS",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E024,
+ },
+ [0x1E026]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER YO",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E026,
+ },
+ [0x1E027]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER IOTATED SMALL YUS",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E027,
+ },
+ [0x1E028]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER BIG YUS",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E028,
+ },
+ [0x1E029]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER IOTATED BIG YUS",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E029,
+ },
+ [0x1E02A]={
+  category="mn",
+  combining=0xE6,
+  description="COMBINING GLAGOLITIC LETTER FITA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E02A,
+ },
  [0x1E800]={
   category="lo",
   description="MENDE KIKAKUI SYLLABLE M001 KI",
@@ -207170,6 +216226,690 @@ characters.data={
   linebreak="cm",
   unicodeslot=0x1E8D6,
  },
+ [0x1E900]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER ALIF",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E900,
+ },
+ [0x1E901]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER DAALI",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E901,
+ },
+ [0x1E902]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER LAAM",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E902,
+ },
+ [0x1E903]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER MIIM",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E903,
+ },
+ [0x1E904]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER BA",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E904,
+ },
+ [0x1E905]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER SINNYIIYHE",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E905,
+ },
+ [0x1E906]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER PE",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E906,
+ },
+ [0x1E907]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER BHE",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E907,
+ },
+ [0x1E908]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER RA",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E908,
+ },
+ [0x1E909]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER E",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E909,
+ },
+ [0x1E90A]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER FA",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E90A,
+ },
+ [0x1E90B]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER I",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E90B,
+ },
+ [0x1E90C]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER O",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E90C,
+ },
+ [0x1E90D]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER DHA",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E90D,
+ },
+ [0x1E90E]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER YHE",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E90E,
+ },
+ [0x1E90F]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER WAW",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E90F,
+ },
+ [0x1E910]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER NUN",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E910,
+ },
+ [0x1E911]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER KAF",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E911,
+ },
+ [0x1E912]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER YA",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E912,
+ },
+ [0x1E913]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER U",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E913,
+ },
+ [0x1E914]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER JIIM",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E914,
+ },
+ [0x1E915]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER CHI",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E915,
+ },
+ [0x1E916]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER HA",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E916,
+ },
+ [0x1E917]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER QAAF",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E917,
+ },
+ [0x1E918]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER GA",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E918,
+ },
+ [0x1E919]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER NYA",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E919,
+ },
+ [0x1E91A]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER TU",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E91A,
+ },
+ [0x1E91B]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER NHA",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E91B,
+ },
+ [0x1E91C]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER VA",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E91C,
+ },
+ [0x1E91D]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER KHA",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E91D,
+ },
+ [0x1E91E]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER GBE",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E91E,
+ },
+ [0x1E91F]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER ZAL",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E91F,
+ },
+ [0x1E920]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER KPO",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E920,
+ },
+ [0x1E921]={
+  arabic="d",
+  category="lu",
+  description="ADLAM CAPITAL LETTER SHA",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E921,
+ },
+ [0x1E922]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER ALIF",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E922,
+ },
+ [0x1E923]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER DAALI",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E923,
+ },
+ [0x1E924]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER LAAM",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E924,
+ },
+ [0x1E925]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER MIIM",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E925,
+ },
+ [0x1E926]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER BA",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E926,
+ },
+ [0x1E927]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER SINNYIIYHE",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E927,
+ },
+ [0x1E928]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER PE",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E928,
+ },
+ [0x1E929]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER BHE",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E929,
+ },
+ [0x1E92A]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER RA",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E92A,
+ },
+ [0x1E92B]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER E",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E92B,
+ },
+ [0x1E92C]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER FA",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E92C,
+ },
+ [0x1E92D]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER I",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E92D,
+ },
+ [0x1E92E]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER O",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E92E,
+ },
+ [0x1E92F]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER DHA",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E92F,
+ },
+ [0x1E930]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER YHE",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E930,
+ },
+ [0x1E931]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER WAW",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E931,
+ },
+ [0x1E932]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER NUN",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E932,
+ },
+ [0x1E933]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER KAF",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E933,
+ },
+ [0x1E934]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER YA",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E934,
+ },
+ [0x1E935]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER U",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E935,
+ },
+ [0x1E936]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER JIIM",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E936,
+ },
+ [0x1E937]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER CHI",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E937,
+ },
+ [0x1E938]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER HA",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E938,
+ },
+ [0x1E939]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER QAAF",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E939,
+ },
+ [0x1E93A]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER GA",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E93A,
+ },
+ [0x1E93B]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER NYA",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E93B,
+ },
+ [0x1E93C]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER TU",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E93C,
+ },
+ [0x1E93D]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER NHA",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E93D,
+ },
+ [0x1E93E]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER VA",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E93E,
+ },
+ [0x1E93F]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER KHA",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E93F,
+ },
+ [0x1E940]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER GBE",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E940,
+ },
+ [0x1E941]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER ZAL",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E941,
+ },
+ [0x1E942]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER KPO",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E942,
+ },
+ [0x1E943]={
+  arabic="d",
+  category="ll",
+  description="ADLAM SMALL LETTER SHA",
+  direction="r",
+  linebreak="al",
+  unicodeslot=0x1E943,
+ },
+ [0x1E944]={
+  category="mn",
+  combining=0xE6,
+  description="ADLAM ALIF LENGTHENER",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E944,
+ },
+ [0x1E945]={
+  category="mn",
+  combining=0xE6,
+  description="ADLAM VOWEL LENGTHENER",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E945,
+ },
+ [0x1E946]={
+  category="mn",
+  combining=0xE6,
+  description="ADLAM GEMINATION MARK",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E946,
+ },
+ [0x1E947]={
+  category="mn",
+  combining=0xE6,
+  description="ADLAM HAMZA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E947,
+ },
+ [0x1E948]={
+  category="mn",
+  combining=0xE6,
+  description="ADLAM CONSONANT MODIFIER",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E948,
+ },
+ [0x1E949]={
+  category="mn",
+  combining=0xE6,
+  description="ADLAM GEMINATE CONSONANT MODIFIER",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E949,
+ },
+ [0x1E94A]={
+  category="mn",
+  combining=0x7,
+  description="ADLAM NUKTA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1E94A,
+ },
+ [0x1E950]={
+  category="nd",
+  description="ADLAM DIGIT ZERO",
+  direction="r",
+  linebreak="nu",
+  unicodeslot=0x1E950,
+ },
+ [0x1E951]={
+  category="nd",
+  description="ADLAM DIGIT ONE",
+  direction="r",
+  linebreak="nu",
+  unicodeslot=0x1E951,
+ },
+ [0x1E952]={
+  category="nd",
+  description="ADLAM DIGIT TWO",
+  direction="r",
+  linebreak="nu",
+  unicodeslot=0x1E952,
+ },
+ [0x1E953]={
+  category="nd",
+  description="ADLAM DIGIT THREE",
+  direction="r",
+  linebreak="nu",
+  unicodeslot=0x1E953,
+ },
+ [0x1E954]={
+  category="nd",
+  description="ADLAM DIGIT FOUR",
+  direction="r",
+  linebreak="nu",
+  unicodeslot=0x1E954,
+ },
+ [0x1E955]={
+  category="nd",
+  description="ADLAM DIGIT FIVE",
+  direction="r",
+  linebreak="nu",
+  unicodeslot=0x1E955,
+ },
+ [0x1E956]={
+  category="nd",
+  description="ADLAM DIGIT SIX",
+  direction="r",
+  linebreak="nu",
+  unicodeslot=0x1E956,
+ },
+ [0x1E957]={
+  category="nd",
+  description="ADLAM DIGIT SEVEN",
+  direction="r",
+  linebreak="nu",
+  unicodeslot=0x1E957,
+ },
+ [0x1E958]={
+  category="nd",
+  description="ADLAM DIGIT EIGHT",
+  direction="r",
+  linebreak="nu",
+  unicodeslot=0x1E958,
+ },
+ [0x1E959]={
+  category="nd",
+  description="ADLAM DIGIT NINE",
+  direction="r",
+  linebreak="nu",
+  unicodeslot=0x1E959,
+ },
+ [0x1E95E]={
+  category="po",
+  description="ADLAM INITIAL EXCLAMATION MARK",
+  direction="r",
+  linebreak="op",
+  unicodeslot=0x1E95E,
+ },
+ [0x1E95F]={
+  category="po",
+  description="ADLAM INITIAL QUESTION MARK",
+  direction="r",
+  linebreak="op",
+  unicodeslot=0x1E95F,
+ },
  [0x1EE00]={
   category="lo",
   comment="check math properties",
@@ -208485,14 +218225,12 @@ characters.data={
  },
  [0x1F004]={
   category="so",
+  cjkwd="w",
   description="MAHJONG TILE RED DRAGON",
   direction="on",
   linebreak="id",
   unicodeslot=0x1F004,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x1F005]={
   category="so",
@@ -209777,6 +219515,7 @@ characters.data={
  },
  [0x1F0CF]={
   category="so",
+  cjkwd="w",
   description="PLAYING CARD BLACK JOKER",
   direction="on",
   linebreak="id",
@@ -210951,10 +220690,7 @@ characters.data={
   direction="l",
   linebreak="ai",
   unicodeslot=0x1F170,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x1F171]={
   category="so",
@@ -210963,10 +220699,7 @@ characters.data={
   direction="l",
   linebreak="ai",
   unicodeslot=0x1F171,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x1F172]={
   category="so",
@@ -211071,10 +220804,7 @@ characters.data={
   direction="l",
   linebreak="ai",
   unicodeslot=0x1F17E,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x1F17F]={
   category="so",
@@ -211083,10 +220813,7 @@ characters.data={
   direction="l",
   linebreak="ai",
   unicodeslot=0x1F17F,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x1F180]={
   category="so",
@@ -211202,7 +220929,7 @@ characters.data={
  },
  [0x1F18E]={
   category="so",
-  cjkwd="a",
+  cjkwd="w",
   description="NEGATIVE SQUARED AB",
   direction="l",
   linebreak="ai",
@@ -211227,7 +220954,7 @@ characters.data={
  },
  [0x1F191]={
   category="so",
-  cjkwd="a",
+  cjkwd="w",
   description="SQUARED CL",
   direction="l",
   linebreak="ai",
@@ -211235,7 +220962,7 @@ characters.data={
  },
  [0x1F192]={
   category="so",
-  cjkwd="a",
+  cjkwd="w",
   description="SQUARED COOL",
   direction="l",
   linebreak="ai",
@@ -211243,7 +220970,7 @@ characters.data={
  },
  [0x1F193]={
   category="so",
-  cjkwd="a",
+  cjkwd="w",
   description="SQUARED FREE",
   direction="l",
   linebreak="ai",
@@ -211251,7 +220978,7 @@ characters.data={
  },
  [0x1F194]={
   category="so",
-  cjkwd="a",
+  cjkwd="w",
   description="SQUARED ID",
   direction="l",
   linebreak="ai",
@@ -211259,7 +220986,7 @@ characters.data={
  },
  [0x1F195]={
   category="so",
-  cjkwd="a",
+  cjkwd="w",
   description="SQUARED NEW",
   direction="l",
   linebreak="ai",
@@ -211267,7 +220994,7 @@ characters.data={
  },
  [0x1F196]={
   category="so",
-  cjkwd="a",
+  cjkwd="w",
   description="SQUARED NG",
   direction="l",
   linebreak="ai",
@@ -211275,7 +221002,7 @@ characters.data={
  },
  [0x1F197]={
   category="so",
-  cjkwd="a",
+  cjkwd="w",
   description="SQUARED OK",
   direction="l",
   linebreak="ai",
@@ -211283,7 +221010,7 @@ characters.data={
  },
  [0x1F198]={
   category="so",
-  cjkwd="a",
+  cjkwd="w",
   description="SQUARED SOS",
   direction="l",
   linebreak="ai",
@@ -211291,7 +221018,7 @@ characters.data={
  },
  [0x1F199]={
   category="so",
-  cjkwd="a",
+  cjkwd="w",
   description="SQUARED UP WITH EXCLAMATION MARK",
   direction="l",
   linebreak="ai",
@@ -211299,12 +221026,156 @@ characters.data={
  },
  [0x1F19A]={
   category="so",
-  cjkwd="a",
+  cjkwd="w",
   description="SQUARED VS",
   direction="l",
   linebreak="ai",
   unicodeslot=0x1F19A,
  },
+ [0x1F19B]={
+  category="so",
+  cjkwd="a",
+  description="SQUARED THREE D",
+  direction="l",
+  linebreak="ai",
+  unicodeslot=0x1F19B,
+ },
+ [0x1F19C]={
+  category="so",
+  cjkwd="a",
+  description="SQUARED SECOND SCREEN",
+  direction="l",
+  linebreak="ai",
+  unicodeslot=0x1F19C,
+ },
+ [0x1F19D]={
+  category="so",
+  cjkwd="a",
+  description="SQUARED TWO K",
+  direction="l",
+  linebreak="ai",
+  unicodeslot=0x1F19D,
+ },
+ [0x1F19E]={
+  category="so",
+  cjkwd="a",
+  description="SQUARED FOUR K",
+  direction="l",
+  linebreak="ai",
+  unicodeslot=0x1F19E,
+ },
+ [0x1F19F]={
+  category="so",
+  cjkwd="a",
+  description="SQUARED EIGHT K",
+  direction="l",
+  linebreak="ai",
+  unicodeslot=0x1F19F,
+ },
+ [0x1F1A0]={
+  category="so",
+  cjkwd="a",
+  description="SQUARED FIVE POINT ONE",
+  direction="l",
+  linebreak="ai",
+  unicodeslot=0x1F1A0,
+ },
+ [0x1F1A1]={
+  category="so",
+  cjkwd="a",
+  description="SQUARED SEVEN POINT ONE",
+  direction="l",
+  linebreak="ai",
+  unicodeslot=0x1F1A1,
+ },
+ [0x1F1A2]={
+  category="so",
+  cjkwd="a",
+  description="SQUARED TWENTY-TWO POINT TWO",
+  direction="l",
+  linebreak="ai",
+  unicodeslot=0x1F1A2,
+ },
+ [0x1F1A3]={
+  category="so",
+  cjkwd="a",
+  description="SQUARED SIXTY P",
+  direction="l",
+  linebreak="ai",
+  unicodeslot=0x1F1A3,
+ },
+ [0x1F1A4]={
+  category="so",
+  cjkwd="a",
+  description="SQUARED ONE HUNDRED TWENTY P",
+  direction="l",
+  linebreak="ai",
+  unicodeslot=0x1F1A4,
+ },
+ [0x1F1A5]={
+  category="so",
+  cjkwd="a",
+  description="SQUARED LATIN SMALL LETTER D",
+  direction="l",
+  linebreak="ai",
+  unicodeslot=0x1F1A5,
+ },
+ [0x1F1A6]={
+  category="so",
+  cjkwd="a",
+  description="SQUARED HC",
+  direction="l",
+  linebreak="ai",
+  unicodeslot=0x1F1A6,
+ },
+ [0x1F1A7]={
+  category="so",
+  cjkwd="a",
+  description="SQUARED HDR",
+  direction="l",
+  linebreak="ai",
+  unicodeslot=0x1F1A7,
+ },
+ [0x1F1A8]={
+  category="so",
+  cjkwd="a",
+  description="SQUARED HI-RES",
+  direction="l",
+  linebreak="ai",
+  unicodeslot=0x1F1A8,
+ },
+ [0x1F1A9]={
+  category="so",
+  cjkwd="a",
+  description="SQUARED LOSSLESS",
+  direction="l",
+  linebreak="ai",
+  unicodeslot=0x1F1A9,
+ },
+ [0x1F1AA]={
+  category="so",
+  cjkwd="a",
+  description="SQUARED SHV",
+  direction="l",
+  linebreak="ai",
+  unicodeslot=0x1F1AA,
+ },
+ [0x1F1AB]={
+  category="so",
+  cjkwd="a",
+  description="SQUARED UHD",
+  direction="l",
+  linebreak="ai",
+  unicodeslot=0x1F1AB,
+ },
+ [0x1F1AC]={
+  category="so",
+  cjkwd="a",
+  description="SQUARED VOD",
+  direction="l",
+  linebreak="ai",
+  unicodeslot=0x1F1AC,
+ },
  [0x1F1E6]={
   category="so",
   description="REGIONAL INDICATOR SYMBOL LETTER A",
@@ -211513,10 +221384,7 @@ characters.data={
   linebreak="id",
   specials={ "square", 0x30B5 },
   unicodeslot=0x1F202,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x1F210]={
   category="so",
@@ -211616,10 +221484,7 @@ characters.data={
   linebreak="id",
   specials={ "square", 0x7121 },
   unicodeslot=0x1F21A,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x1F21B]={
   category="so",
@@ -211809,10 +221674,7 @@ characters.data={
   linebreak="id",
   specials={ "square", 0x6307 },
   unicodeslot=0x1F22F,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x1F230]={
   category="so",
@@ -211885,10 +221747,7 @@ characters.data={
   linebreak="id",
   specials={ "square", 0x6708 },
   unicodeslot=0x1F237,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  [0x1F238]={
   category="so",
@@ -211917,6 +221776,15 @@ characters.data={
   specials={ "square", 0x55B6 },
   unicodeslot=0x1F23A,
  },
+ [0x1F23B]={
+  category="so",
+  cjkwd="w",
+  description="SQUARED CJK UNIFIED IDEOGRAPH-914D",
+  direction="l",
+  linebreak="id",
+  specials={ "square", 0x914D },
+  unicodeslot=0x1F23B,
+ },
  [0x1F240]={
   category="so",
   cjkwd="w",
@@ -212018,6 +221886,7 @@ characters.data={
  },
  [0x1F300]={
   category="so",
+  cjkwd="w",
   description="CYCLONE",
   direction="on",
   linebreak="id",
@@ -212025,6 +221894,7 @@ characters.data={
  },
  [0x1F301]={
   category="so",
+  cjkwd="w",
   description="FOGGY",
   direction="on",
   linebreak="id",
@@ -212032,6 +221902,7 @@ characters.data={
  },
  [0x1F302]={
   category="so",
+  cjkwd="w",
   description="CLOSED UMBRELLA",
   direction="on",
   linebreak="id",
@@ -212039,6 +221910,7 @@ characters.data={
  },
  [0x1F303]={
   category="so",
+  cjkwd="w",
   description="NIGHT WITH STARS",
   direction="on",
   linebreak="id",
@@ -212046,6 +221918,7 @@ characters.data={
  },
  [0x1F304]={
   category="so",
+  cjkwd="w",
   description="SUNRISE OVER MOUNTAINS",
   direction="on",
   linebreak="id",
@@ -212053,6 +221926,7 @@ characters.data={
  },
  [0x1F305]={
   category="so",
+  cjkwd="w",
   description="SUNRISE",
   direction="on",
   linebreak="id",
@@ -212060,6 +221934,7 @@ characters.data={
  },
  [0x1F306]={
   category="so",
+  cjkwd="w",
   description="CITYSCAPE AT DUSK",
   direction="on",
   linebreak="id",
@@ -212067,6 +221942,7 @@ characters.data={
  },
  [0x1F307]={
   category="so",
+  cjkwd="w",
   description="SUNSET OVER BUILDINGS",
   direction="on",
   linebreak="id",
@@ -212074,6 +221950,7 @@ characters.data={
  },
  [0x1F308]={
   category="so",
+  cjkwd="w",
   description="RAINBOW",
   direction="on",
   linebreak="id",
@@ -212081,6 +221958,7 @@ characters.data={
  },
  [0x1F309]={
   category="so",
+  cjkwd="w",
   description="BRIDGE AT NIGHT",
   direction="on",
   linebreak="id",
@@ -212088,6 +221966,7 @@ characters.data={
  },
  [0x1F30A]={
   category="so",
+  cjkwd="w",
   description="WATER WAVE",
   direction="on",
   linebreak="id",
@@ -212095,6 +221974,7 @@ characters.data={
  },
  [0x1F30B]={
   category="so",
+  cjkwd="w",
   description="VOLCANO",
   direction="on",
   linebreak="id",
@@ -212102,6 +221982,7 @@ characters.data={
  },
  [0x1F30C]={
   category="so",
+  cjkwd="w",
   description="MILKY WAY",
   direction="on",
   linebreak="id",
@@ -212109,6 +221990,7 @@ characters.data={
  },
  [0x1F30D]={
   category="so",
+  cjkwd="w",
   description="EARTH GLOBE EUROPE-AFRICA",
   direction="on",
   linebreak="id",
@@ -212116,6 +221998,7 @@ characters.data={
  },
  [0x1F30E]={
   category="so",
+  cjkwd="w",
   description="EARTH GLOBE AMERICAS",
   direction="on",
   linebreak="id",
@@ -212123,6 +222006,7 @@ characters.data={
  },
  [0x1F30F]={
   category="so",
+  cjkwd="w",
   description="EARTH GLOBE ASIA-AUSTRALIA",
   direction="on",
   linebreak="id",
@@ -212130,6 +222014,7 @@ characters.data={
  },
  [0x1F310]={
   category="so",
+  cjkwd="w",
   description="GLOBE WITH MERIDIANS",
   direction="on",
   linebreak="id",
@@ -212137,6 +222022,7 @@ characters.data={
  },
  [0x1F311]={
   category="so",
+  cjkwd="w",
   description="NEW MOON SYMBOL",
   direction="on",
   linebreak="id",
@@ -212144,6 +222030,7 @@ characters.data={
  },
  [0x1F312]={
   category="so",
+  cjkwd="w",
   description="WAXING CRESCENT MOON SYMBOL",
   direction="on",
   linebreak="id",
@@ -212151,6 +222038,7 @@ characters.data={
  },
  [0x1F313]={
   category="so",
+  cjkwd="w",
   description="FIRST QUARTER MOON SYMBOL",
   direction="on",
   linebreak="id",
@@ -212158,6 +222046,7 @@ characters.data={
  },
  [0x1F314]={
   category="so",
+  cjkwd="w",
   description="WAXING GIBBOUS MOON SYMBOL",
   direction="on",
   linebreak="id",
@@ -212165,6 +222054,7 @@ characters.data={
  },
  [0x1F315]={
   category="so",
+  cjkwd="w",
   description="FULL MOON SYMBOL",
   direction="on",
   linebreak="id",
@@ -212172,6 +222062,7 @@ characters.data={
  },
  [0x1F316]={
   category="so",
+  cjkwd="w",
   description="WANING GIBBOUS MOON SYMBOL",
   direction="on",
   linebreak="id",
@@ -212179,6 +222070,7 @@ characters.data={
  },
  [0x1F317]={
   category="so",
+  cjkwd="w",
   description="LAST QUARTER MOON SYMBOL",
   direction="on",
   linebreak="id",
@@ -212186,6 +222078,7 @@ characters.data={
  },
  [0x1F318]={
   category="so",
+  cjkwd="w",
   description="WANING CRESCENT MOON SYMBOL",
   direction="on",
   linebreak="id",
@@ -212193,6 +222086,7 @@ characters.data={
  },
  [0x1F319]={
   category="so",
+  cjkwd="w",
   description="CRESCENT MOON",
   direction="on",
   linebreak="id",
@@ -212200,6 +222094,7 @@ characters.data={
  },
  [0x1F31A]={
   category="so",
+  cjkwd="w",
   description="NEW MOON WITH FACE",
   direction="on",
   linebreak="id",
@@ -212207,6 +222102,7 @@ characters.data={
  },
  [0x1F31B]={
   category="so",
+  cjkwd="w",
   description="FIRST QUARTER MOON WITH FACE",
   direction="on",
   linebreak="id",
@@ -212214,6 +222110,7 @@ characters.data={
  },
  [0x1F31C]={
   category="so",
+  cjkwd="w",
   description="LAST QUARTER MOON WITH FACE",
   direction="on",
   linebreak="id",
@@ -212221,6 +222118,7 @@ characters.data={
  },
  [0x1F31D]={
   category="so",
+  cjkwd="w",
   description="FULL MOON WITH FACE",
   direction="on",
   linebreak="id",
@@ -212228,6 +222126,7 @@ characters.data={
  },
  [0x1F31E]={
   category="so",
+  cjkwd="w",
   description="SUN WITH FACE",
   direction="on",
   linebreak="id",
@@ -212235,6 +222134,7 @@ characters.data={
  },
  [0x1F31F]={
   category="so",
+  cjkwd="w",
   description="GLOWING STAR",
   direction="on",
   linebreak="id",
@@ -212242,6 +222142,7 @@ characters.data={
  },
  [0x1F320]={
   category="so",
+  cjkwd="w",
   description="SHOOTING STAR",
   direction="on",
   linebreak="id",
@@ -212253,6 +222154,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F321,
+  variants=variants_emoji,
  },
  [0x1F322]={
   category="so",
@@ -212274,6 +222176,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F324,
+  variants=variants_emoji,
  },
  [0x1F325]={
   category="so",
@@ -212281,6 +222184,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F325,
+  variants=variants_emoji,
  },
  [0x1F326]={
   category="so",
@@ -212288,6 +222192,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F326,
+  variants=variants_emoji,
  },
  [0x1F327]={
   category="so",
@@ -212295,6 +222200,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F327,
+  variants=variants_emoji,
  },
  [0x1F328]={
   category="so",
@@ -212302,6 +222208,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F328,
+  variants=variants_emoji,
  },
  [0x1F329]={
   category="so",
@@ -212309,6 +222216,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F329,
+  variants=variants_emoji,
  },
  [0x1F32A]={
   category="so",
@@ -212316,6 +222224,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F32A,
+  variants=variants_emoji,
  },
  [0x1F32B]={
   category="so",
@@ -212323,6 +222232,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F32B,
+  variants=variants_emoji,
  },
  [0x1F32C]={
   category="so",
@@ -212330,9 +222240,11 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F32C,
+  variants=variants_emoji,
  },
  [0x1F32D]={
   category="so",
+  cjkwd="w",
   description="HOT DOG",
   direction="on",
   linebreak="id",
@@ -212340,6 +222252,7 @@ characters.data={
  },
  [0x1F32E]={
   category="so",
+  cjkwd="w",
   description="TACO",
   direction="on",
   linebreak="id",
@@ -212347,6 +222260,7 @@ characters.data={
  },
  [0x1F32F]={
   category="so",
+  cjkwd="w",
   description="BURRITO",
   direction="on",
   linebreak="id",
@@ -212354,6 +222268,7 @@ characters.data={
  },
  [0x1F330]={
   category="so",
+  cjkwd="w",
   description="CHESTNUT",
   direction="on",
   linebreak="id",
@@ -212361,6 +222276,7 @@ characters.data={
  },
  [0x1F331]={
   category="so",
+  cjkwd="w",
   description="SEEDLING",
   direction="on",
   linebreak="id",
@@ -212368,6 +222284,7 @@ characters.data={
  },
  [0x1F332]={
   category="so",
+  cjkwd="w",
   description="EVERGREEN TREE",
   direction="on",
   linebreak="id",
@@ -212375,6 +222292,7 @@ characters.data={
  },
  [0x1F333]={
   category="so",
+  cjkwd="w",
   description="DECIDUOUS TREE",
   direction="on",
   linebreak="id",
@@ -212382,6 +222300,7 @@ characters.data={
  },
  [0x1F334]={
   category="so",
+  cjkwd="w",
   description="PALM TREE",
   direction="on",
   linebreak="id",
@@ -212389,6 +222308,7 @@ characters.data={
  },
  [0x1F335]={
   category="so",
+  cjkwd="w",
   description="CACTUS",
   direction="on",
   linebreak="id",
@@ -212400,9 +222320,11 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F336,
+  variants=variants_emoji,
  },
  [0x1F337]={
   category="so",
+  cjkwd="w",
   description="TULIP",
   direction="on",
   linebreak="id",
@@ -212410,6 +222332,7 @@ characters.data={
  },
  [0x1F338]={
   category="so",
+  cjkwd="w",
   description="CHERRY BLOSSOM",
   direction="on",
   linebreak="id",
@@ -212417,6 +222340,7 @@ characters.data={
  },
  [0x1F339]={
   category="so",
+  cjkwd="w",
   description="ROSE",
   direction="on",
   linebreak="id",
@@ -212424,6 +222348,7 @@ characters.data={
  },
  [0x1F33A]={
   category="so",
+  cjkwd="w",
   description="HIBISCUS",
   direction="on",
   linebreak="id",
@@ -212431,6 +222356,7 @@ characters.data={
  },
  [0x1F33B]={
   category="so",
+  cjkwd="w",
   description="SUNFLOWER",
   direction="on",
   linebreak="id",
@@ -212438,6 +222364,7 @@ characters.data={
  },
  [0x1F33C]={
   category="so",
+  cjkwd="w",
   description="BLOSSOM",
   direction="on",
   linebreak="id",
@@ -212445,6 +222372,7 @@ characters.data={
  },
  [0x1F33D]={
   category="so",
+  cjkwd="w",
   description="EAR OF MAIZE",
   direction="on",
   linebreak="id",
@@ -212452,6 +222380,7 @@ characters.data={
  },
  [0x1F33E]={
   category="so",
+  cjkwd="w",
   description="EAR OF RICE",
   direction="on",
   linebreak="id",
@@ -212459,6 +222388,7 @@ characters.data={
  },
  [0x1F33F]={
   category="so",
+  cjkwd="w",
   description="HERB",
   direction="on",
   linebreak="id",
@@ -212466,6 +222396,7 @@ characters.data={
  },
  [0x1F340]={
   category="so",
+  cjkwd="w",
   description="FOUR LEAF CLOVER",
   direction="on",
   linebreak="id",
@@ -212473,6 +222404,7 @@ characters.data={
  },
  [0x1F341]={
   category="so",
+  cjkwd="w",
   description="MAPLE LEAF",
   direction="on",
   linebreak="id",
@@ -212480,6 +222412,7 @@ characters.data={
  },
  [0x1F342]={
   category="so",
+  cjkwd="w",
   description="FALLEN LEAF",
   direction="on",
   linebreak="id",
@@ -212487,6 +222420,7 @@ characters.data={
  },
  [0x1F343]={
   category="so",
+  cjkwd="w",
   description="LEAF FLUTTERING IN WIND",
   direction="on",
   linebreak="id",
@@ -212494,6 +222428,7 @@ characters.data={
  },
  [0x1F344]={
   category="so",
+  cjkwd="w",
   description="MUSHROOM",
   direction="on",
   linebreak="id",
@@ -212501,6 +222436,7 @@ characters.data={
  },
  [0x1F345]={
   category="so",
+  cjkwd="w",
   description="TOMATO",
   direction="on",
   linebreak="id",
@@ -212508,6 +222444,7 @@ characters.data={
  },
  [0x1F346]={
   category="so",
+  cjkwd="w",
   description="AUBERGINE",
   direction="on",
   linebreak="id",
@@ -212515,6 +222452,7 @@ characters.data={
  },
  [0x1F347]={
   category="so",
+  cjkwd="w",
   description="GRAPES",
   direction="on",
   linebreak="id",
@@ -212522,6 +222460,7 @@ characters.data={
  },
  [0x1F348]={
   category="so",
+  cjkwd="w",
   description="MELON",
   direction="on",
   linebreak="id",
@@ -212529,6 +222468,7 @@ characters.data={
  },
  [0x1F349]={
   category="so",
+  cjkwd="w",
   description="WATERMELON",
   direction="on",
   linebreak="id",
@@ -212536,6 +222476,7 @@ characters.data={
  },
  [0x1F34A]={
   category="so",
+  cjkwd="w",
   description="TANGERINE",
   direction="on",
   linebreak="id",
@@ -212543,6 +222484,7 @@ characters.data={
  },
  [0x1F34B]={
   category="so",
+  cjkwd="w",
   description="LEMON",
   direction="on",
   linebreak="id",
@@ -212550,6 +222492,7 @@ characters.data={
  },
  [0x1F34C]={
   category="so",
+  cjkwd="w",
   description="BANANA",
   direction="on",
   linebreak="id",
@@ -212557,6 +222500,7 @@ characters.data={
  },
  [0x1F34D]={
   category="so",
+  cjkwd="w",
   description="PINEAPPLE",
   direction="on",
   linebreak="id",
@@ -212564,6 +222508,7 @@ characters.data={
  },
  [0x1F34E]={
   category="so",
+  cjkwd="w",
   description="RED APPLE",
   direction="on",
   linebreak="id",
@@ -212571,6 +222516,7 @@ characters.data={
  },
  [0x1F34F]={
   category="so",
+  cjkwd="w",
   description="GREEN APPLE",
   direction="on",
   linebreak="id",
@@ -212578,6 +222524,7 @@ characters.data={
  },
  [0x1F350]={
   category="so",
+  cjkwd="w",
   description="PEAR",
   direction="on",
   linebreak="id",
@@ -212585,6 +222532,7 @@ characters.data={
  },
  [0x1F351]={
   category="so",
+  cjkwd="w",
   description="PEACH",
   direction="on",
   linebreak="id",
@@ -212592,6 +222540,7 @@ characters.data={
  },
  [0x1F352]={
   category="so",
+  cjkwd="w",
   description="CHERRIES",
   direction="on",
   linebreak="id",
@@ -212599,6 +222548,7 @@ characters.data={
  },
  [0x1F353]={
   category="so",
+  cjkwd="w",
   description="STRAWBERRY",
   direction="on",
   linebreak="id",
@@ -212606,6 +222556,7 @@ characters.data={
  },
  [0x1F354]={
   category="so",
+  cjkwd="w",
   description="HAMBURGER",
   direction="on",
   linebreak="id",
@@ -212613,6 +222564,7 @@ characters.data={
  },
  [0x1F355]={
   category="so",
+  cjkwd="w",
   description="SLICE OF PIZZA",
   direction="on",
   linebreak="id",
@@ -212620,6 +222572,7 @@ characters.data={
  },
  [0x1F356]={
   category="so",
+  cjkwd="w",
   description="MEAT ON BONE",
   direction="on",
   linebreak="id",
@@ -212627,6 +222580,7 @@ characters.data={
  },
  [0x1F357]={
   category="so",
+  cjkwd="w",
   description="POULTRY LEG",
   direction="on",
   linebreak="id",
@@ -212634,6 +222588,7 @@ characters.data={
  },
  [0x1F358]={
   category="so",
+  cjkwd="w",
   description="RICE CRACKER",
   direction="on",
   linebreak="id",
@@ -212641,6 +222596,7 @@ characters.data={
  },
  [0x1F359]={
   category="so",
+  cjkwd="w",
   description="RICE BALL",
   direction="on",
   linebreak="id",
@@ -212648,6 +222604,7 @@ characters.data={
  },
  [0x1F35A]={
   category="so",
+  cjkwd="w",
   description="COOKED RICE",
   direction="on",
   linebreak="id",
@@ -212655,6 +222612,7 @@ characters.data={
  },
  [0x1F35B]={
   category="so",
+  cjkwd="w",
   description="CURRY AND RICE",
   direction="on",
   linebreak="id",
@@ -212662,6 +222620,7 @@ characters.data={
  },
  [0x1F35C]={
   category="so",
+  cjkwd="w",
   description="STEAMING BOWL",
   direction="on",
   linebreak="id",
@@ -212669,6 +222628,7 @@ characters.data={
  },
  [0x1F35D]={
   category="so",
+  cjkwd="w",
   description="SPAGHETTI",
   direction="on",
   linebreak="id",
@@ -212676,6 +222636,7 @@ characters.data={
  },
  [0x1F35E]={
   category="so",
+  cjkwd="w",
   description="BREAD",
   direction="on",
   linebreak="id",
@@ -212683,6 +222644,7 @@ characters.data={
  },
  [0x1F35F]={
   category="so",
+  cjkwd="w",
   description="FRENCH FRIES",
   direction="on",
   linebreak="id",
@@ -212690,6 +222652,7 @@ characters.data={
  },
  [0x1F360]={
   category="so",
+  cjkwd="w",
   description="ROASTED SWEET POTATO",
   direction="on",
   linebreak="id",
@@ -212697,6 +222660,7 @@ characters.data={
  },
  [0x1F361]={
   category="so",
+  cjkwd="w",
   description="DANGO",
   direction="on",
   linebreak="id",
@@ -212704,6 +222668,7 @@ characters.data={
  },
  [0x1F362]={
   category="so",
+  cjkwd="w",
   description="ODEN",
   direction="on",
   linebreak="id",
@@ -212711,6 +222676,7 @@ characters.data={
  },
  [0x1F363]={
   category="so",
+  cjkwd="w",
   description="SUSHI",
   direction="on",
   linebreak="id",
@@ -212718,6 +222684,7 @@ characters.data={
  },
  [0x1F364]={
   category="so",
+  cjkwd="w",
   description="FRIED SHRIMP",
   direction="on",
   linebreak="id",
@@ -212725,6 +222692,7 @@ characters.data={
  },
  [0x1F365]={
   category="so",
+  cjkwd="w",
   description="FISH CAKE WITH SWIRL DESIGN",
   direction="on",
   linebreak="id",
@@ -212732,6 +222700,7 @@ characters.data={
  },
  [0x1F366]={
   category="so",
+  cjkwd="w",
   description="SOFT ICE CREAM",
   direction="on",
   linebreak="id",
@@ -212739,6 +222708,7 @@ characters.data={
  },
  [0x1F367]={
   category="so",
+  cjkwd="w",
   description="SHAVED ICE",
   direction="on",
   linebreak="id",
@@ -212746,6 +222716,7 @@ characters.data={
  },
  [0x1F368]={
   category="so",
+  cjkwd="w",
   description="ICE CREAM",
   direction="on",
   linebreak="id",
@@ -212753,6 +222724,7 @@ characters.data={
  },
  [0x1F369]={
   category="so",
+  cjkwd="w",
   description="DOUGHNUT",
   direction="on",
   linebreak="id",
@@ -212760,6 +222732,7 @@ characters.data={
  },
  [0x1F36A]={
   category="so",
+  cjkwd="w",
   description="COOKIE",
   direction="on",
   linebreak="id",
@@ -212767,6 +222740,7 @@ characters.data={
  },
  [0x1F36B]={
   category="so",
+  cjkwd="w",
   description="CHOCOLATE BAR",
   direction="on",
   linebreak="id",
@@ -212774,6 +222748,7 @@ characters.data={
  },
  [0x1F36C]={
   category="so",
+  cjkwd="w",
   description="CANDY",
   direction="on",
   linebreak="id",
@@ -212781,6 +222756,7 @@ characters.data={
  },
  [0x1F36D]={
   category="so",
+  cjkwd="w",
   description="LOLLIPOP",
   direction="on",
   linebreak="id",
@@ -212788,6 +222764,7 @@ characters.data={
  },
  [0x1F36E]={
   category="so",
+  cjkwd="w",
   description="CUSTARD",
   direction="on",
   linebreak="id",
@@ -212795,6 +222772,7 @@ characters.data={
  },
  [0x1F36F]={
   category="so",
+  cjkwd="w",
   description="HONEY POT",
   direction="on",
   linebreak="id",
@@ -212802,6 +222780,7 @@ characters.data={
  },
  [0x1F370]={
   category="so",
+  cjkwd="w",
   description="SHORTCAKE",
   direction="on",
   linebreak="id",
@@ -212809,6 +222788,7 @@ characters.data={
  },
  [0x1F371]={
   category="so",
+  cjkwd="w",
   description="BENTO BOX",
   direction="on",
   linebreak="id",
@@ -212816,6 +222796,7 @@ characters.data={
  },
  [0x1F372]={
   category="so",
+  cjkwd="w",
   description="POT OF FOOD",
   direction="on",
   linebreak="id",
@@ -212823,6 +222804,7 @@ characters.data={
  },
  [0x1F373]={
   category="so",
+  cjkwd="w",
   description="COOKING",
   direction="on",
   linebreak="id",
@@ -212830,6 +222812,7 @@ characters.data={
  },
  [0x1F374]={
   category="so",
+  cjkwd="w",
   description="FORK AND KNIFE",
   direction="on",
   linebreak="id",
@@ -212837,6 +222820,7 @@ characters.data={
  },
  [0x1F375]={
   category="so",
+  cjkwd="w",
   description="TEACUP WITHOUT HANDLE",
   direction="on",
   linebreak="id",
@@ -212844,6 +222828,7 @@ characters.data={
  },
  [0x1F376]={
   category="so",
+  cjkwd="w",
   description="SAKE BOTTLE AND CUP",
   direction="on",
   linebreak="id",
@@ -212851,6 +222836,7 @@ characters.data={
  },
  [0x1F377]={
   category="so",
+  cjkwd="w",
   description="WINE GLASS",
   direction="on",
   linebreak="id",
@@ -212858,6 +222844,7 @@ characters.data={
  },
  [0x1F378]={
   category="so",
+  cjkwd="w",
   description="COCKTAIL GLASS",
   direction="on",
   linebreak="id",
@@ -212865,6 +222852,7 @@ characters.data={
  },
  [0x1F379]={
   category="so",
+  cjkwd="w",
   description="TROPICAL DRINK",
   direction="on",
   linebreak="id",
@@ -212872,6 +222860,7 @@ characters.data={
  },
  [0x1F37A]={
   category="so",
+  cjkwd="w",
   description="BEER MUG",
   direction="on",
   linebreak="id",
@@ -212879,6 +222868,7 @@ characters.data={
  },
  [0x1F37B]={
   category="so",
+  cjkwd="w",
   description="CLINKING BEER MUGS",
   direction="on",
   linebreak="id",
@@ -212886,6 +222876,7 @@ characters.data={
  },
  [0x1F37C]={
   category="so",
+  cjkwd="w",
   description="BABY BOTTLE",
   direction="on",
   linebreak="id",
@@ -212897,9 +222888,11 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F37D,
+  variants=variants_emoji,
  },
  [0x1F37E]={
   category="so",
+  cjkwd="w",
   description="BOTTLE WITH POPPING CORK",
   direction="on",
   linebreak="id",
@@ -212907,6 +222900,7 @@ characters.data={
  },
  [0x1F37F]={
   category="so",
+  cjkwd="w",
   description="POPCORN",
   direction="on",
   linebreak="id",
@@ -212914,6 +222908,7 @@ characters.data={
  },
  [0x1F380]={
   category="so",
+  cjkwd="w",
   description="RIBBON",
   direction="on",
   linebreak="id",
@@ -212921,6 +222916,7 @@ characters.data={
  },
  [0x1F381]={
   category="so",
+  cjkwd="w",
   description="WRAPPED PRESENT",
   direction="on",
   linebreak="id",
@@ -212928,6 +222924,7 @@ characters.data={
  },
  [0x1F382]={
   category="so",
+  cjkwd="w",
   description="BIRTHDAY CAKE",
   direction="on",
   linebreak="id",
@@ -212935,6 +222932,7 @@ characters.data={
  },
  [0x1F383]={
   category="so",
+  cjkwd="w",
   description="JACK-O-LANTERN",
   direction="on",
   linebreak="id",
@@ -212942,6 +222940,7 @@ characters.data={
  },
  [0x1F384]={
   category="so",
+  cjkwd="w",
   description="CHRISTMAS TREE",
   direction="on",
   linebreak="id",
@@ -212949,13 +222948,15 @@ characters.data={
  },
  [0x1F385]={
   category="so",
+  cjkwd="w",
   description="FATHER CHRISTMAS",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F385,
  },
  [0x1F386]={
   category="so",
+  cjkwd="w",
   description="FIREWORKS",
   direction="on",
   linebreak="id",
@@ -212963,6 +222964,7 @@ characters.data={
  },
  [0x1F387]={
   category="so",
+  cjkwd="w",
   description="FIREWORK SPARKLER",
   direction="on",
   linebreak="id",
@@ -212970,6 +222972,7 @@ characters.data={
  },
  [0x1F388]={
   category="so",
+  cjkwd="w",
   description="BALLOON",
   direction="on",
   linebreak="id",
@@ -212977,6 +222980,7 @@ characters.data={
  },
  [0x1F389]={
   category="so",
+  cjkwd="w",
   description="PARTY POPPER",
   direction="on",
   linebreak="id",
@@ -212984,6 +222988,7 @@ characters.data={
  },
  [0x1F38A]={
   category="so",
+  cjkwd="w",
   description="CONFETTI BALL",
   direction="on",
   linebreak="id",
@@ -212991,6 +222996,7 @@ characters.data={
  },
  [0x1F38B]={
   category="so",
+  cjkwd="w",
   description="TANABATA TREE",
   direction="on",
   linebreak="id",
@@ -212998,6 +223004,7 @@ characters.data={
  },
  [0x1F38C]={
   category="so",
+  cjkwd="w",
   description="CROSSED FLAGS",
   direction="on",
   linebreak="id",
@@ -213005,6 +223012,7 @@ characters.data={
  },
  [0x1F38D]={
   category="so",
+  cjkwd="w",
   description="PINE DECORATION",
   direction="on",
   linebreak="id",
@@ -213012,6 +223020,7 @@ characters.data={
  },
  [0x1F38E]={
   category="so",
+  cjkwd="w",
   description="JAPANESE DOLLS",
   direction="on",
   linebreak="id",
@@ -213019,6 +223028,7 @@ characters.data={
  },
  [0x1F38F]={
   category="so",
+  cjkwd="w",
   description="CARP STREAMER",
   direction="on",
   linebreak="id",
@@ -213026,6 +223036,7 @@ characters.data={
  },
  [0x1F390]={
   category="so",
+  cjkwd="w",
   description="WIND CHIME",
   direction="on",
   linebreak="id",
@@ -213033,6 +223044,7 @@ characters.data={
  },
  [0x1F391]={
   category="so",
+  cjkwd="w",
   description="MOON VIEWING CEREMONY",
   direction="on",
   linebreak="id",
@@ -213040,6 +223052,7 @@ characters.data={
  },
  [0x1F392]={
   category="so",
+  cjkwd="w",
   description="SCHOOL SATCHEL",
   direction="on",
   linebreak="id",
@@ -213047,6 +223060,7 @@ characters.data={
  },
  [0x1F393]={
   category="so",
+  cjkwd="w",
   description="GRADUATION CAP",
   direction="on",
   linebreak="id",
@@ -213072,6 +223086,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F396,
+  variants=variants_emoji,
  },
  [0x1F397]={
   category="so",
@@ -213079,6 +223094,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F397,
+  variants=variants_emoji,
  },
  [0x1F398]={
   category="so",
@@ -213093,6 +223109,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F399,
+  variants=variants_emoji,
  },
  [0x1F39A]={
   category="so",
@@ -213100,6 +223117,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F39A,
+  variants=variants_emoji,
  },
  [0x1F39B]={
   category="so",
@@ -213107,6 +223125,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F39B,
+  variants=variants_emoji,
  },
  [0x1F39C]={
   category="so",
@@ -213128,6 +223147,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F39E,
+  variants=variants_emoji,
  },
  [0x1F39F]={
   category="so",
@@ -213135,9 +223155,11 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F39F,
+  variants=variants_emoji,
  },
  [0x1F3A0]={
   category="so",
+  cjkwd="w",
   description="CAROUSEL HORSE",
   direction="on",
   linebreak="id",
@@ -213145,6 +223167,7 @@ characters.data={
  },
  [0x1F3A1]={
   category="so",
+  cjkwd="w",
   description="FERRIS WHEEL",
   direction="on",
   linebreak="id",
@@ -213152,6 +223175,7 @@ characters.data={
  },
  [0x1F3A2]={
   category="so",
+  cjkwd="w",
   description="ROLLER COASTER",
   direction="on",
   linebreak="id",
@@ -213159,6 +223183,7 @@ characters.data={
  },
  [0x1F3A3]={
   category="so",
+  cjkwd="w",
   description="FISHING POLE AND FISH",
   direction="on",
   linebreak="id",
@@ -213166,6 +223191,7 @@ characters.data={
  },
  [0x1F3A4]={
   category="so",
+  cjkwd="w",
   description="MICROPHONE",
   direction="on",
   linebreak="id",
@@ -213173,6 +223199,7 @@ characters.data={
  },
  [0x1F3A5]={
   category="so",
+  cjkwd="w",
   description="MOVIE CAMERA",
   direction="on",
   linebreak="id",
@@ -213180,6 +223207,7 @@ characters.data={
  },
  [0x1F3A6]={
   category="so",
+  cjkwd="w",
   description="CINEMA",
   direction="on",
   linebreak="id",
@@ -213187,6 +223215,7 @@ characters.data={
  },
  [0x1F3A7]={
   category="so",
+  cjkwd="w",
   description="HEADPHONE",
   direction="on",
   linebreak="id",
@@ -213194,6 +223223,7 @@ characters.data={
  },
  [0x1F3A8]={
   category="so",
+  cjkwd="w",
   description="ARTIST PALETTE",
   direction="on",
   linebreak="id",
@@ -213201,6 +223231,7 @@ characters.data={
  },
  [0x1F3A9]={
   category="so",
+  cjkwd="w",
   description="TOP HAT",
   direction="on",
   linebreak="id",
@@ -213208,6 +223239,7 @@ characters.data={
  },
  [0x1F3AA]={
   category="so",
+  cjkwd="w",
   description="CIRCUS TENT",
   direction="on",
   linebreak="id",
@@ -213215,6 +223247,7 @@ characters.data={
  },
  [0x1F3AB]={
   category="so",
+  cjkwd="w",
   description="TICKET",
   direction="on",
   linebreak="id",
@@ -213222,6 +223255,7 @@ characters.data={
  },
  [0x1F3AC]={
   category="so",
+  cjkwd="w",
   description="CLAPPER BOARD",
   direction="on",
   linebreak="id",
@@ -213229,6 +223263,7 @@ characters.data={
  },
  [0x1F3AD]={
   category="so",
+  cjkwd="w",
   description="PERFORMING ARTS",
   direction="on",
   linebreak="id",
@@ -213236,6 +223271,7 @@ characters.data={
  },
  [0x1F3AE]={
   category="so",
+  cjkwd="w",
   description="VIDEO GAME",
   direction="on",
   linebreak="id",
@@ -213243,6 +223279,7 @@ characters.data={
  },
  [0x1F3AF]={
   category="so",
+  cjkwd="w",
   description="DIRECT HIT",
   direction="on",
   linebreak="id",
@@ -213250,6 +223287,7 @@ characters.data={
  },
  [0x1F3B0]={
   category="so",
+  cjkwd="w",
   description="SLOT MACHINE",
   direction="on",
   linebreak="id",
@@ -213257,6 +223295,7 @@ characters.data={
  },
  [0x1F3B1]={
   category="so",
+  cjkwd="w",
   description="BILLIARDS",
   direction="on",
   linebreak="id",
@@ -213264,6 +223303,7 @@ characters.data={
  },
  [0x1F3B2]={
   category="so",
+  cjkwd="w",
   description="GAME DIE",
   direction="on",
   linebreak="id",
@@ -213271,6 +223311,7 @@ characters.data={
  },
  [0x1F3B3]={
   category="so",
+  cjkwd="w",
   description="BOWLING",
   direction="on",
   linebreak="id",
@@ -213278,6 +223319,7 @@ characters.data={
  },
  [0x1F3B4]={
   category="so",
+  cjkwd="w",
   description="FLOWER PLAYING CARDS",
   direction="on",
   linebreak="id",
@@ -213285,6 +223327,7 @@ characters.data={
  },
  [0x1F3B5]={
   category="so",
+  cjkwd="w",
   description="MUSICAL NOTE",
   direction="on",
   linebreak="al",
@@ -213292,6 +223335,7 @@ characters.data={
  },
  [0x1F3B6]={
   category="so",
+  cjkwd="w",
   description="MULTIPLE MUSICAL NOTES",
   direction="on",
   linebreak="al",
@@ -213299,6 +223343,7 @@ characters.data={
  },
  [0x1F3B7]={
   category="so",
+  cjkwd="w",
   description="SAXOPHONE",
   direction="on",
   linebreak="id",
@@ -213306,6 +223351,7 @@ characters.data={
  },
  [0x1F3B8]={
   category="so",
+  cjkwd="w",
   description="GUITAR",
   direction="on",
   linebreak="id",
@@ -213313,6 +223359,7 @@ characters.data={
  },
  [0x1F3B9]={
   category="so",
+  cjkwd="w",
   description="MUSICAL KEYBOARD",
   direction="on",
   linebreak="id",
@@ -213320,6 +223367,7 @@ characters.data={
  },
  [0x1F3BA]={
   category="so",
+  cjkwd="w",
   description="TRUMPET",
   direction="on",
   linebreak="id",
@@ -213327,6 +223375,7 @@ characters.data={
  },
  [0x1F3BB]={
   category="so",
+  cjkwd="w",
   description="VIOLIN",
   direction="on",
   linebreak="id",
@@ -213334,6 +223383,7 @@ characters.data={
  },
  [0x1F3BC]={
   category="so",
+  cjkwd="w",
   description="MUSICAL SCORE",
   direction="on",
   linebreak="al",
@@ -213341,6 +223391,7 @@ characters.data={
  },
  [0x1F3BD]={
   category="so",
+  cjkwd="w",
   description="RUNNING SHIRT WITH SASH",
   direction="on",
   linebreak="id",
@@ -213348,6 +223399,7 @@ characters.data={
  },
  [0x1F3BE]={
   category="so",
+  cjkwd="w",
   description="TENNIS RACQUET AND BALL",
   direction="on",
   linebreak="id",
@@ -213355,6 +223407,7 @@ characters.data={
  },
  [0x1F3BF]={
   category="so",
+  cjkwd="w",
   description="SKI AND SKI BOOT",
   direction="on",
   linebreak="id",
@@ -213362,6 +223415,7 @@ characters.data={
  },
  [0x1F3C0]={
   category="so",
+  cjkwd="w",
   description="BASKETBALL AND HOOP",
   direction="on",
   linebreak="id",
@@ -213369,6 +223423,7 @@ characters.data={
  },
  [0x1F3C1]={
   category="so",
+  cjkwd="w",
   description="CHEQUERED FLAG",
   direction="on",
   linebreak="id",
@@ -213376,6 +223431,7 @@ characters.data={
  },
  [0x1F3C2]={
   category="so",
+  cjkwd="w",
   description="SNOWBOARDER",
   direction="on",
   linebreak="id",
@@ -213383,20 +223439,23 @@ characters.data={
  },
  [0x1F3C3]={
   category="so",
+  cjkwd="w",
   description="RUNNER",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F3C3,
  },
  [0x1F3C4]={
   category="so",
+  cjkwd="w",
   description="SURFER",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F3C4,
  },
  [0x1F3C5]={
   category="so",
+  cjkwd="w",
   description="SPORTS MEDAL",
   direction="on",
   linebreak="id",
@@ -213404,6 +223463,7 @@ characters.data={
  },
  [0x1F3C6]={
   category="so",
+  cjkwd="w",
   description="TROPHY",
   direction="on",
   linebreak="id",
@@ -213411,6 +223471,7 @@ characters.data={
  },
  [0x1F3C7]={
   category="so",
+  cjkwd="w",
   description="HORSE RACING",
   direction="on",
   linebreak="id",
@@ -213418,6 +223479,7 @@ characters.data={
  },
  [0x1F3C8]={
   category="so",
+  cjkwd="w",
   description="AMERICAN FOOTBALL",
   direction="on",
   linebreak="id",
@@ -213425,6 +223487,7 @@ characters.data={
  },
  [0x1F3C9]={
   category="so",
+  cjkwd="w",
   description="RUGBY FOOTBALL",
   direction="on",
   linebreak="id",
@@ -213432,17 +223495,19 @@ characters.data={
  },
  [0x1F3CA]={
   category="so",
+  cjkwd="w",
   description="SWIMMER",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F3CA,
  },
  [0x1F3CB]={
   category="so",
   description="WEIGHT LIFTER",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F3CB,
+  variants=variants_emoji,
  },
  [0x1F3CC]={
   category="so",
@@ -213450,6 +223515,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F3CC,
+  variants=variants_emoji,
  },
  [0x1F3CD]={
   category="so",
@@ -213457,6 +223523,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F3CD,
+  variants=variants_emoji,
  },
  [0x1F3CE]={
   category="so",
@@ -213464,9 +223531,11 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F3CE,
+  variants=variants_emoji,
  },
  [0x1F3CF]={
   category="so",
+  cjkwd="w",
   description="CRICKET BAT AND BALL",
   direction="on",
   linebreak="id",
@@ -213474,6 +223543,7 @@ characters.data={
  },
  [0x1F3D0]={
   category="so",
+  cjkwd="w",
   description="VOLLEYBALL",
   direction="on",
   linebreak="id",
@@ -213481,6 +223551,7 @@ characters.data={
  },
  [0x1F3D1]={
   category="so",
+  cjkwd="w",
   description="FIELD HOCKEY STICK AND BALL",
   direction="on",
   linebreak="id",
@@ -213488,6 +223559,7 @@ characters.data={
  },
  [0x1F3D2]={
   category="so",
+  cjkwd="w",
   description="ICE HOCKEY STICK AND PUCK",
   direction="on",
   linebreak="id",
@@ -213495,6 +223567,7 @@ characters.data={
  },
  [0x1F3D3]={
   category="so",
+  cjkwd="w",
   description="TABLE TENNIS PADDLE AND BALL",
   direction="on",
   linebreak="id",
@@ -213506,6 +223579,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F3D4,
+  variants=variants_emoji,
  },
  [0x1F3D5]={
   category="so",
@@ -213513,6 +223587,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F3D5,
+  variants=variants_emoji,
  },
  [0x1F3D6]={
   category="so",
@@ -213520,6 +223595,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F3D6,
+  variants=variants_emoji,
  },
  [0x1F3D7]={
   category="so",
@@ -213527,6 +223603,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F3D7,
+  variants=variants_emoji,
  },
  [0x1F3D8]={
   category="so",
@@ -213534,6 +223611,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F3D8,
+  variants=variants_emoji,
  },
  [0x1F3D9]={
   category="so",
@@ -213541,6 +223619,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F3D9,
+  variants=variants_emoji,
  },
  [0x1F3DA]={
   category="so",
@@ -213548,6 +223627,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F3DA,
+  variants=variants_emoji,
  },
  [0x1F3DB]={
   category="so",
@@ -213555,6 +223635,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F3DB,
+  variants=variants_emoji,
  },
  [0x1F3DC]={
   category="so",
@@ -213562,6 +223643,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F3DC,
+  variants=variants_emoji,
  },
  [0x1F3DD]={
   category="so",
@@ -213569,6 +223651,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F3DD,
+  variants=variants_emoji,
  },
  [0x1F3DE]={
   category="so",
@@ -213576,6 +223659,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F3DE,
+  variants=variants_emoji,
  },
  [0x1F3DF]={
   category="so",
@@ -213583,9 +223667,11 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F3DF,
+  variants=variants_emoji,
  },
  [0x1F3E0]={
   category="so",
+  cjkwd="w",
   description="HOUSE BUILDING",
   direction="on",
   linebreak="id",
@@ -213593,6 +223679,7 @@ characters.data={
  },
  [0x1F3E1]={
   category="so",
+  cjkwd="w",
   description="HOUSE WITH GARDEN",
   direction="on",
   linebreak="id",
@@ -213600,6 +223687,7 @@ characters.data={
  },
  [0x1F3E2]={
   category="so",
+  cjkwd="w",
   description="OFFICE BUILDING",
   direction="on",
   linebreak="id",
@@ -213607,6 +223695,7 @@ characters.data={
  },
  [0x1F3E3]={
   category="so",
+  cjkwd="w",
   description="JAPANESE POST OFFICE",
   direction="on",
   linebreak="id",
@@ -213614,6 +223703,7 @@ characters.data={
  },
  [0x1F3E4]={
   category="so",
+  cjkwd="w",
   description="EUROPEAN POST OFFICE",
   direction="on",
   linebreak="id",
@@ -213621,6 +223711,7 @@ characters.data={
  },
  [0x1F3E5]={
   category="so",
+  cjkwd="w",
   description="HOSPITAL",
   direction="on",
   linebreak="id",
@@ -213628,6 +223719,7 @@ characters.data={
  },
  [0x1F3E6]={
   category="so",
+  cjkwd="w",
   description="BANK",
   direction="on",
   linebreak="id",
@@ -213635,6 +223727,7 @@ characters.data={
  },
  [0x1F3E7]={
   category="so",
+  cjkwd="w",
   description="AUTOMATED TELLER MACHINE",
   direction="on",
   linebreak="id",
@@ -213642,6 +223735,7 @@ characters.data={
  },
  [0x1F3E8]={
   category="so",
+  cjkwd="w",
   description="HOTEL",
   direction="on",
   linebreak="id",
@@ -213649,6 +223743,7 @@ characters.data={
  },
  [0x1F3E9]={
   category="so",
+  cjkwd="w",
   description="LOVE HOTEL",
   direction="on",
   linebreak="id",
@@ -213656,6 +223751,7 @@ characters.data={
  },
  [0x1F3EA]={
   category="so",
+  cjkwd="w",
   description="CONVENIENCE STORE",
   direction="on",
   linebreak="id",
@@ -213663,6 +223759,7 @@ characters.data={
  },
  [0x1F3EB]={
   category="so",
+  cjkwd="w",
   description="SCHOOL",
   direction="on",
   linebreak="id",
@@ -213670,6 +223767,7 @@ characters.data={
  },
  [0x1F3EC]={
   category="so",
+  cjkwd="w",
   description="DEPARTMENT STORE",
   direction="on",
   linebreak="id",
@@ -213677,6 +223775,7 @@ characters.data={
  },
  [0x1F3ED]={
   category="so",
+  cjkwd="w",
   description="FACTORY",
   direction="on",
   linebreak="id",
@@ -213684,6 +223783,7 @@ characters.data={
  },
  [0x1F3EE]={
   category="so",
+  cjkwd="w",
   description="IZAKAYA LANTERN",
   direction="on",
   linebreak="id",
@@ -213691,6 +223791,7 @@ characters.data={
  },
  [0x1F3EF]={
   category="so",
+  cjkwd="w",
   description="JAPANESE CASTLE",
   direction="on",
   linebreak="id",
@@ -213698,6 +223799,7 @@ characters.data={
  },
  [0x1F3F0]={
   category="so",
+  cjkwd="w",
   description="EUROPEAN CASTLE",
   direction="on",
   linebreak="id",
@@ -213723,9 +223825,11 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F3F3,
+  variants=variants_emoji,
  },
  [0x1F3F4]={
   category="so",
+  cjkwd="w",
   description="WAVING BLACK FLAG",
   direction="on",
   linebreak="id",
@@ -213737,6 +223841,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F3F5,
+  variants=variants_emoji,
  },
  [0x1F3F6]={
   category="so",
@@ -213751,9 +223856,11 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F3F7,
+  variants=variants_emoji,
  },
  [0x1F3F8]={
   category="so",
+  cjkwd="w",
   description="BADMINTON RACQUET AND SHUTTLECOCK",
   direction="on",
   linebreak="id",
@@ -213761,6 +223868,7 @@ characters.data={
  },
  [0x1F3F9]={
   category="so",
+  cjkwd="w",
   description="BOW AND ARROW",
   direction="on",
   linebreak="id",
@@ -213768,6 +223876,7 @@ characters.data={
  },
  [0x1F3FA]={
   category="so",
+  cjkwd="w",
   description="AMPHORA",
   direction="on",
   linebreak="id",
@@ -213775,41 +223884,47 @@ characters.data={
  },
  [0x1F3FB]={
   category="sk",
+  cjkwd="w",
   description="EMOJI MODIFIER FITZPATRICK TYPE-1-2",
   direction="on",
-  linebreak="al",
+  linebreak="em",
   unicodeslot=0x1F3FB,
  },
  [0x1F3FC]={
   category="sk",
+  cjkwd="w",
   description="EMOJI MODIFIER FITZPATRICK TYPE-3",
   direction="on",
-  linebreak="al",
+  linebreak="em",
   unicodeslot=0x1F3FC,
  },
  [0x1F3FD]={
   category="sk",
+  cjkwd="w",
   description="EMOJI MODIFIER FITZPATRICK TYPE-4",
   direction="on",
-  linebreak="al",
+  linebreak="em",
   unicodeslot=0x1F3FD,
  },
  [0x1F3FE]={
   category="sk",
+  cjkwd="w",
   description="EMOJI MODIFIER FITZPATRICK TYPE-5",
   direction="on",
-  linebreak="al",
+  linebreak="em",
   unicodeslot=0x1F3FE,
  },
  [0x1F3FF]={
   category="sk",
+  cjkwd="w",
   description="EMOJI MODIFIER FITZPATRICK TYPE-6",
   direction="on",
-  linebreak="al",
+  linebreak="em",
   unicodeslot=0x1F3FF,
  },
  [0x1F400]={
   category="so",
+  cjkwd="w",
   description="RAT",
   direction="on",
   linebreak="id",
@@ -213817,6 +223932,7 @@ characters.data={
  },
  [0x1F401]={
   category="so",
+  cjkwd="w",
   description="MOUSE",
   direction="on",
   linebreak="id",
@@ -213824,6 +223940,7 @@ characters.data={
  },
  [0x1F402]={
   category="so",
+  cjkwd="w",
   description="OX",
   direction="on",
   linebreak="id",
@@ -213831,6 +223948,7 @@ characters.data={
  },
  [0x1F403]={
   category="so",
+  cjkwd="w",
   description="WATER BUFFALO",
   direction="on",
   linebreak="id",
@@ -213838,6 +223956,7 @@ characters.data={
  },
  [0x1F404]={
   category="so",
+  cjkwd="w",
   description="COW",
   direction="on",
   linebreak="id",
@@ -213845,6 +223964,7 @@ characters.data={
  },
  [0x1F405]={
   category="so",
+  cjkwd="w",
   description="TIGER",
   direction="on",
   linebreak="id",
@@ -213852,6 +223972,7 @@ characters.data={
  },
  [0x1F406]={
   category="so",
+  cjkwd="w",
   description="LEOPARD",
   direction="on",
   linebreak="id",
@@ -213859,6 +223980,7 @@ characters.data={
  },
  [0x1F407]={
   category="so",
+  cjkwd="w",
   description="RABBIT",
   direction="on",
   linebreak="id",
@@ -213866,6 +223988,7 @@ characters.data={
  },
  [0x1F408]={
   category="so",
+  cjkwd="w",
   description="CAT",
   direction="on",
   linebreak="id",
@@ -213873,6 +223996,7 @@ characters.data={
  },
  [0x1F409]={
   category="so",
+  cjkwd="w",
   description="DRAGON",
   direction="on",
   linebreak="id",
@@ -213880,6 +224004,7 @@ characters.data={
  },
  [0x1F40A]={
   category="so",
+  cjkwd="w",
   description="CROCODILE",
   direction="on",
   linebreak="id",
@@ -213887,6 +224012,7 @@ characters.data={
  },
  [0x1F40B]={
   category="so",
+  cjkwd="w",
   description="WHALE",
   direction="on",
   linebreak="id",
@@ -213894,6 +224020,7 @@ characters.data={
  },
  [0x1F40C]={
   category="so",
+  cjkwd="w",
   description="SNAIL",
   direction="on",
   linebreak="id",
@@ -213901,6 +224028,7 @@ characters.data={
  },
  [0x1F40D]={
   category="so",
+  cjkwd="w",
   description="SNAKE",
   direction="on",
   linebreak="id",
@@ -213908,6 +224036,7 @@ characters.data={
  },
  [0x1F40E]={
   category="so",
+  cjkwd="w",
   description="HORSE",
   direction="on",
   linebreak="id",
@@ -213915,6 +224044,7 @@ characters.data={
  },
  [0x1F40F]={
   category="so",
+  cjkwd="w",
   description="RAM",
   direction="on",
   linebreak="id",
@@ -213922,6 +224052,7 @@ characters.data={
  },
  [0x1F410]={
   category="so",
+  cjkwd="w",
   description="GOAT",
   direction="on",
   linebreak="id",
@@ -213929,6 +224060,7 @@ characters.data={
  },
  [0x1F411]={
   category="so",
+  cjkwd="w",
   description="SHEEP",
   direction="on",
   linebreak="id",
@@ -213936,6 +224068,7 @@ characters.data={
  },
  [0x1F412]={
   category="so",
+  cjkwd="w",
   description="MONKEY",
   direction="on",
   linebreak="id",
@@ -213943,6 +224076,7 @@ characters.data={
  },
  [0x1F413]={
   category="so",
+  cjkwd="w",
   description="ROOSTER",
   direction="on",
   linebreak="id",
@@ -213950,6 +224084,7 @@ characters.data={
  },
  [0x1F414]={
   category="so",
+  cjkwd="w",
   description="CHICKEN",
   direction="on",
   linebreak="id",
@@ -213957,6 +224092,7 @@ characters.data={
  },
  [0x1F415]={
   category="so",
+  cjkwd="w",
   description="DOG",
   direction="on",
   linebreak="id",
@@ -213964,6 +224100,7 @@ characters.data={
  },
  [0x1F416]={
   category="so",
+  cjkwd="w",
   description="PIG",
   direction="on",
   linebreak="id",
@@ -213971,6 +224108,7 @@ characters.data={
  },
  [0x1F417]={
   category="so",
+  cjkwd="w",
   description="BOAR",
   direction="on",
   linebreak="id",
@@ -213978,6 +224116,7 @@ characters.data={
  },
  [0x1F418]={
   category="so",
+  cjkwd="w",
   description="ELEPHANT",
   direction="on",
   linebreak="id",
@@ -213985,6 +224124,7 @@ characters.data={
  },
  [0x1F419]={
   category="so",
+  cjkwd="w",
   description="OCTOPUS",
   direction="on",
   linebreak="id",
@@ -213992,6 +224132,7 @@ characters.data={
  },
  [0x1F41A]={
   category="so",
+  cjkwd="w",
   description="SPIRAL SHELL",
   direction="on",
   linebreak="id",
@@ -213999,6 +224140,7 @@ characters.data={
  },
  [0x1F41B]={
   category="so",
+  cjkwd="w",
   description="BUG",
   direction="on",
   linebreak="id",
@@ -214006,6 +224148,7 @@ characters.data={
  },
  [0x1F41C]={
   category="so",
+  cjkwd="w",
   description="ANT",
   direction="on",
   linebreak="id",
@@ -214013,6 +224156,7 @@ characters.data={
  },
  [0x1F41D]={
   category="so",
+  cjkwd="w",
   description="HONEYBEE",
   direction="on",
   linebreak="id",
@@ -214020,6 +224164,7 @@ characters.data={
  },
  [0x1F41E]={
   category="so",
+  cjkwd="w",
   description="LADY BEETLE",
   direction="on",
   linebreak="id",
@@ -214027,6 +224172,7 @@ characters.data={
  },
  [0x1F41F]={
   category="so",
+  cjkwd="w",
   description="FISH",
   direction="on",
   linebreak="id",
@@ -214034,6 +224180,7 @@ characters.data={
  },
  [0x1F420]={
   category="so",
+  cjkwd="w",
   description="TROPICAL FISH",
   direction="on",
   linebreak="id",
@@ -214041,6 +224188,7 @@ characters.data={
  },
  [0x1F421]={
   category="so",
+  cjkwd="w",
   description="BLOWFISH",
   direction="on",
   linebreak="id",
@@ -214048,6 +224196,7 @@ characters.data={
  },
  [0x1F422]={
   category="so",
+  cjkwd="w",
   description="TURTLE",
   direction="on",
   linebreak="id",
@@ -214055,6 +224204,7 @@ characters.data={
  },
  [0x1F423]={
   category="so",
+  cjkwd="w",
   description="HATCHING CHICK",
   direction="on",
   linebreak="id",
@@ -214062,6 +224212,7 @@ characters.data={
  },
  [0x1F424]={
   category="so",
+  cjkwd="w",
   description="BABY CHICK",
   direction="on",
   linebreak="id",
@@ -214069,6 +224220,7 @@ characters.data={
  },
  [0x1F425]={
   category="so",
+  cjkwd="w",
   description="FRONT-FACING BABY CHICK",
   direction="on",
   linebreak="id",
@@ -214076,6 +224228,7 @@ characters.data={
  },
  [0x1F426]={
   category="so",
+  cjkwd="w",
   description="BIRD",
   direction="on",
   linebreak="id",
@@ -214083,6 +224236,7 @@ characters.data={
  },
  [0x1F427]={
   category="so",
+  cjkwd="w",
   description="PENGUIN",
   direction="on",
   linebreak="id",
@@ -214090,6 +224244,7 @@ characters.data={
  },
  [0x1F428]={
   category="so",
+  cjkwd="w",
   description="KOALA",
   direction="on",
   linebreak="id",
@@ -214097,6 +224252,7 @@ characters.data={
  },
  [0x1F429]={
   category="so",
+  cjkwd="w",
   description="POODLE",
   direction="on",
   linebreak="id",
@@ -214104,6 +224260,7 @@ characters.data={
  },
  [0x1F42A]={
   category="so",
+  cjkwd="w",
   description="DROMEDARY CAMEL",
   direction="on",
   linebreak="id",
@@ -214111,6 +224268,7 @@ characters.data={
  },
  [0x1F42B]={
   category="so",
+  cjkwd="w",
   description="BACTRIAN CAMEL",
   direction="on",
   linebreak="id",
@@ -214118,6 +224276,7 @@ characters.data={
  },
  [0x1F42C]={
   category="so",
+  cjkwd="w",
   description="DOLPHIN",
   direction="on",
   linebreak="id",
@@ -214125,6 +224284,7 @@ characters.data={
  },
  [0x1F42D]={
   category="so",
+  cjkwd="w",
   description="MOUSE FACE",
   direction="on",
   linebreak="id",
@@ -214132,6 +224292,7 @@ characters.data={
  },
  [0x1F42E]={
   category="so",
+  cjkwd="w",
   description="COW FACE",
   direction="on",
   linebreak="id",
@@ -214139,6 +224300,7 @@ characters.data={
  },
  [0x1F42F]={
   category="so",
+  cjkwd="w",
   description="TIGER FACE",
   direction="on",
   linebreak="id",
@@ -214146,6 +224308,7 @@ characters.data={
  },
  [0x1F430]={
   category="so",
+  cjkwd="w",
   description="RABBIT FACE",
   direction="on",
   linebreak="id",
@@ -214153,6 +224316,7 @@ characters.data={
  },
  [0x1F431]={
   category="so",
+  cjkwd="w",
   description="CAT FACE",
   direction="on",
   linebreak="id",
@@ -214160,6 +224324,7 @@ characters.data={
  },
  [0x1F432]={
   category="so",
+  cjkwd="w",
   description="DRAGON FACE",
   direction="on",
   linebreak="id",
@@ -214167,6 +224332,7 @@ characters.data={
  },
  [0x1F433]={
   category="so",
+  cjkwd="w",
   description="SPOUTING WHALE",
   direction="on",
   linebreak="id",
@@ -214174,6 +224340,7 @@ characters.data={
  },
  [0x1F434]={
   category="so",
+  cjkwd="w",
   description="HORSE FACE",
   direction="on",
   linebreak="id",
@@ -214181,6 +224348,7 @@ characters.data={
  },
  [0x1F435]={
   category="so",
+  cjkwd="w",
   description="MONKEY FACE",
   direction="on",
   linebreak="id",
@@ -214188,6 +224356,7 @@ characters.data={
  },
  [0x1F436]={
   category="so",
+  cjkwd="w",
   description="DOG FACE",
   direction="on",
   linebreak="id",
@@ -214195,6 +224364,7 @@ characters.data={
  },
  [0x1F437]={
   category="so",
+  cjkwd="w",
   description="PIG FACE",
   direction="on",
   linebreak="id",
@@ -214202,6 +224372,7 @@ characters.data={
  },
  [0x1F438]={
   category="so",
+  cjkwd="w",
   description="FROG FACE",
   direction="on",
   linebreak="id",
@@ -214209,6 +224380,7 @@ characters.data={
  },
  [0x1F439]={
   category="so",
+  cjkwd="w",
   description="HAMSTER FACE",
   direction="on",
   linebreak="id",
@@ -214216,6 +224388,7 @@ characters.data={
  },
  [0x1F43A]={
   category="so",
+  cjkwd="w",
   description="WOLF FACE",
   direction="on",
   linebreak="id",
@@ -214223,6 +224396,7 @@ characters.data={
  },
  [0x1F43B]={
   category="so",
+  cjkwd="w",
   description="BEAR FACE",
   direction="on",
   linebreak="id",
@@ -214230,6 +224404,7 @@ characters.data={
  },
  [0x1F43C]={
   category="so",
+  cjkwd="w",
   description="PANDA FACE",
   direction="on",
   linebreak="id",
@@ -214237,6 +224412,7 @@ characters.data={
  },
  [0x1F43D]={
   category="so",
+  cjkwd="w",
   description="PIG NOSE",
   direction="on",
   linebreak="id",
@@ -214244,6 +224420,7 @@ characters.data={
  },
  [0x1F43E]={
   category="so",
+  cjkwd="w",
   description="PAW PRINTS",
   direction="on",
   linebreak="id",
@@ -214255,9 +224432,11 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F43F,
+  variants=variants_emoji,
  },
  [0x1F440]={
   category="so",
+  cjkwd="w",
   description="EYES",
   direction="on",
   linebreak="id",
@@ -214269,23 +224448,27 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F441,
+  variants=variants_emoji,
  },
  [0x1F442]={
   category="so",
+  cjkwd="w",
   description="EAR",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F442,
  },
  [0x1F443]={
   category="so",
+  cjkwd="w",
   description="NOSE",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F443,
  },
  [0x1F444]={
   category="so",
+  cjkwd="w",
   description="MOUTH",
   direction="on",
   linebreak="id",
@@ -214293,6 +224476,7 @@ characters.data={
  },
  [0x1F445]={
   category="so",
+  cjkwd="w",
   description="TONGUE",
   direction="on",
   linebreak="id",
@@ -214300,83 +224484,95 @@ characters.data={
  },
  [0x1F446]={
   category="so",
+  cjkwd="w",
   description="WHITE UP POINTING BACKHAND INDEX",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F446,
  },
  [0x1F447]={
   category="so",
+  cjkwd="w",
   description="WHITE DOWN POINTING BACKHAND INDEX",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F447,
  },
  [0x1F448]={
   category="so",
+  cjkwd="w",
   description="WHITE LEFT POINTING BACKHAND INDEX",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F448,
  },
  [0x1F449]={
   category="so",
+  cjkwd="w",
   description="WHITE RIGHT POINTING BACKHAND INDEX",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F449,
  },
  [0x1F44A]={
   category="so",
+  cjkwd="w",
   description="FISTED HAND SIGN",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F44A,
  },
  [0x1F44B]={
   category="so",
+  cjkwd="w",
   description="WAVING HAND SIGN",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F44B,
  },
  [0x1F44C]={
   category="so",
+  cjkwd="w",
   description="OK HAND SIGN",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F44C,
  },
  [0x1F44D]={
   category="so",
+  cjkwd="w",
   description="THUMBS UP SIGN",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F44D,
  },
  [0x1F44E]={
   category="so",
+  cjkwd="w",
   description="THUMBS DOWN SIGN",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F44E,
  },
  [0x1F44F]={
   category="so",
+  cjkwd="w",
   description="CLAPPING HANDS SIGN",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F44F,
  },
  [0x1F450]={
   category="so",
+  cjkwd="w",
   description="OPEN HANDS SIGN",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F450,
  },
  [0x1F451]={
   category="so",
+  cjkwd="w",
   description="CROWN",
   direction="on",
   linebreak="id",
@@ -214384,6 +224580,7 @@ characters.data={
  },
  [0x1F452]={
   category="so",
+  cjkwd="w",
   description="WOMANS HAT",
   direction="on",
   linebreak="id",
@@ -214391,6 +224588,7 @@ characters.data={
  },
  [0x1F453]={
   category="so",
+  cjkwd="w",
   description="EYEGLASSES",
   direction="on",
   linebreak="id",
@@ -214398,6 +224596,7 @@ characters.data={
  },
  [0x1F454]={
   category="so",
+  cjkwd="w",
   description="NECKTIE",
   direction="on",
   linebreak="id",
@@ -214405,6 +224604,7 @@ characters.data={
  },
  [0x1F455]={
   category="so",
+  cjkwd="w",
   description="T-SHIRT",
   direction="on",
   linebreak="id",
@@ -214412,6 +224612,7 @@ characters.data={
  },
  [0x1F456]={
   category="so",
+  cjkwd="w",
   description="JEANS",
   direction="on",
   linebreak="id",
@@ -214419,6 +224620,7 @@ characters.data={
  },
  [0x1F457]={
   category="so",
+  cjkwd="w",
   description="DRESS",
   direction="on",
   linebreak="id",
@@ -214426,6 +224628,7 @@ characters.data={
  },
  [0x1F458]={
   category="so",
+  cjkwd="w",
   description="KIMONO",
   direction="on",
   linebreak="id",
@@ -214433,6 +224636,7 @@ characters.data={
  },
  [0x1F459]={
   category="so",
+  cjkwd="w",
   description="BIKINI",
   direction="on",
   linebreak="id",
@@ -214440,6 +224644,7 @@ characters.data={
  },
  [0x1F45A]={
   category="so",
+  cjkwd="w",
   description="WOMANS CLOTHES",
   direction="on",
   linebreak="id",
@@ -214447,6 +224652,7 @@ characters.data={
  },
  [0x1F45B]={
   category="so",
+  cjkwd="w",
   description="PURSE",
   direction="on",
   linebreak="id",
@@ -214454,6 +224660,7 @@ characters.data={
  },
  [0x1F45C]={
   category="so",
+  cjkwd="w",
   description="HANDBAG",
   direction="on",
   linebreak="id",
@@ -214461,6 +224668,7 @@ characters.data={
  },
  [0x1F45D]={
   category="so",
+  cjkwd="w",
   description="POUCH",
   direction="on",
   linebreak="id",
@@ -214468,6 +224676,7 @@ characters.data={
  },
  [0x1F45E]={
   category="so",
+  cjkwd="w",
   description="MANS SHOE",
   direction="on",
   linebreak="id",
@@ -214475,6 +224684,7 @@ characters.data={
  },
  [0x1F45F]={
   category="so",
+  cjkwd="w",
   description="ATHLETIC SHOE",
   direction="on",
   linebreak="id",
@@ -214482,6 +224692,7 @@ characters.data={
  },
  [0x1F460]={
   category="so",
+  cjkwd="w",
   description="HIGH-HEELED SHOE",
   direction="on",
   linebreak="id",
@@ -214489,6 +224700,7 @@ characters.data={
  },
  [0x1F461]={
   category="so",
+  cjkwd="w",
   description="WOMANS SANDAL",
   direction="on",
   linebreak="id",
@@ -214496,6 +224708,7 @@ characters.data={
  },
  [0x1F462]={
   category="so",
+  cjkwd="w",
   description="WOMANS BOOTS",
   direction="on",
   linebreak="id",
@@ -214503,6 +224716,7 @@ characters.data={
  },
  [0x1F463]={
   category="so",
+  cjkwd="w",
   description="FOOTPRINTS",
   direction="on",
   linebreak="id",
@@ -214510,6 +224724,7 @@ characters.data={
  },
  [0x1F464]={
   category="so",
+  cjkwd="w",
   description="BUST IN SILHOUETTE",
   direction="on",
   linebreak="id",
@@ -214517,6 +224732,7 @@ characters.data={
  },
  [0x1F465]={
   category="so",
+  cjkwd="w",
   description="BUSTS IN SILHOUETTE",
   direction="on",
   linebreak="id",
@@ -214524,34 +224740,39 @@ characters.data={
  },
  [0x1F466]={
   category="so",
+  cjkwd="w",
   description="BOY",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F466,
  },
  [0x1F467]={
   category="so",
+  cjkwd="w",
   description="GIRL",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F467,
  },
  [0x1F468]={
   category="so",
+  cjkwd="w",
   description="MAN",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F468,
  },
  [0x1F469]={
   category="so",
+  cjkwd="w",
   description="WOMAN",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F469,
  },
  [0x1F46A]={
   category="so",
+  cjkwd="w",
   description="FAMILY",
   direction="on",
   linebreak="id",
@@ -214559,6 +224780,7 @@ characters.data={
  },
  [0x1F46B]={
   category="so",
+  cjkwd="w",
   description="MAN AND WOMAN HOLDING HANDS",
   direction="on",
   linebreak="id",
@@ -214566,6 +224788,7 @@ characters.data={
  },
  [0x1F46C]={
   category="so",
+  cjkwd="w",
   description="TWO MEN HOLDING HANDS",
   direction="on",
   linebreak="id",
@@ -214573,6 +224796,7 @@ characters.data={
  },
  [0x1F46D]={
   category="so",
+  cjkwd="w",
   description="TWO WOMEN HOLDING HANDS",
   direction="on",
   linebreak="id",
@@ -214580,13 +224804,15 @@ characters.data={
  },
  [0x1F46E]={
   category="so",
+  cjkwd="w",
   description="POLICE OFFICER",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F46E,
  },
  [0x1F46F]={
   category="so",
+  cjkwd="w",
   description="WOMAN WITH BUNNY EARS",
   direction="on",
   linebreak="id",
@@ -214594,69 +224820,79 @@ characters.data={
  },
  [0x1F470]={
   category="so",
+  cjkwd="w",
   description="BRIDE WITH VEIL",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F470,
  },
  [0x1F471]={
   category="so",
+  cjkwd="w",
   description="PERSON WITH BLOND HAIR",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F471,
  },
  [0x1F472]={
   category="so",
+  cjkwd="w",
   description="MAN WITH GUA PI MAO",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F472,
  },
  [0x1F473]={
   category="so",
+  cjkwd="w",
   description="MAN WITH TURBAN",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F473,
  },
  [0x1F474]={
   category="so",
+  cjkwd="w",
   description="OLDER MAN",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F474,
  },
  [0x1F475]={
   category="so",
+  cjkwd="w",
   description="OLDER WOMAN",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F475,
  },
  [0x1F476]={
   category="so",
+  cjkwd="w",
   description="BABY",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F476,
  },
  [0x1F477]={
   category="so",
+  cjkwd="w",
   description="CONSTRUCTION WORKER",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F477,
  },
  [0x1F478]={
   category="so",
+  cjkwd="w",
   description="PRINCESS",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F478,
  },
  [0x1F479]={
   category="so",
+  cjkwd="w",
   description="JAPANESE OGRE",
   direction="on",
   linebreak="id",
@@ -214664,6 +224900,7 @@ characters.data={
  },
  [0x1F47A]={
   category="so",
+  cjkwd="w",
   description="JAPANESE GOBLIN",
   direction="on",
   linebreak="id",
@@ -214671,6 +224908,7 @@ characters.data={
  },
  [0x1F47B]={
   category="so",
+  cjkwd="w",
   description="GHOST",
   direction="on",
   linebreak="id",
@@ -214678,13 +224916,15 @@ characters.data={
  },
  [0x1F47C]={
   category="so",
+  cjkwd="w",
   description="BABY ANGEL",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F47C,
  },
  [0x1F47D]={
   category="so",
+  cjkwd="w",
   description="EXTRATERRESTRIAL ALIEN",
   direction="on",
   linebreak="id",
@@ -214692,6 +224932,7 @@ characters.data={
  },
  [0x1F47E]={
   category="so",
+  cjkwd="w",
   description="ALIEN MONSTER",
   direction="on",
   linebreak="id",
@@ -214699,6 +224940,7 @@ characters.data={
  },
  [0x1F47F]={
   category="so",
+  cjkwd="w",
   description="IMP",
   direction="on",
   linebreak="id",
@@ -214706,6 +224948,7 @@ characters.data={
  },
  [0x1F480]={
   category="so",
+  cjkwd="w",
   description="SKULL",
   direction="on",
   linebreak="id",
@@ -214713,27 +224956,31 @@ characters.data={
  },
  [0x1F481]={
   category="so",
+  cjkwd="w",
   description="INFORMATION DESK PERSON",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F481,
  },
  [0x1F482]={
   category="so",
+  cjkwd="w",
   description="GUARDSMAN",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F482,
  },
  [0x1F483]={
   category="so",
+  cjkwd="w",
   description="DANCER",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F483,
  },
  [0x1F484]={
   category="so",
+  cjkwd="w",
   description="LIPSTICK",
   direction="on",
   linebreak="id",
@@ -214741,27 +224988,31 @@ characters.data={
  },
  [0x1F485]={
   category="so",
+  cjkwd="w",
   description="NAIL POLISH",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F485,
  },
  [0x1F486]={
   category="so",
+  cjkwd="w",
   description="FACE MASSAGE",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F486,
  },
  [0x1F487]={
   category="so",
+  cjkwd="w",
   description="HAIRCUT",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F487,
  },
  [0x1F488]={
   category="so",
+  cjkwd="w",
   description="BARBER POLE",
   direction="on",
   linebreak="id",
@@ -214769,6 +225020,7 @@ characters.data={
  },
  [0x1F489]={
   category="so",
+  cjkwd="w",
   description="SYRINGE",
   direction="on",
   linebreak="id",
@@ -214776,6 +225028,7 @@ characters.data={
  },
  [0x1F48A]={
   category="so",
+  cjkwd="w",
   description="PILL",
   direction="on",
   linebreak="id",
@@ -214783,6 +225036,7 @@ characters.data={
  },
  [0x1F48B]={
   category="so",
+  cjkwd="w",
   description="KISS MARK",
   direction="on",
   linebreak="id",
@@ -214790,6 +225044,7 @@ characters.data={
  },
  [0x1F48C]={
   category="so",
+  cjkwd="w",
   description="LOVE LETTER",
   direction="on",
   linebreak="id",
@@ -214797,6 +225052,7 @@ characters.data={
  },
  [0x1F48D]={
   category="so",
+  cjkwd="w",
   description="RING",
   direction="on",
   linebreak="id",
@@ -214804,6 +225060,7 @@ characters.data={
  },
  [0x1F48E]={
   category="so",
+  cjkwd="w",
   description="GEM STONE",
   direction="on",
   linebreak="id",
@@ -214811,6 +225068,7 @@ characters.data={
  },
  [0x1F48F]={
   category="so",
+  cjkwd="w",
   description="KISS",
   direction="on",
   linebreak="id",
@@ -214818,6 +225076,7 @@ characters.data={
  },
  [0x1F490]={
   category="so",
+  cjkwd="w",
   description="BOUQUET",
   direction="on",
   linebreak="id",
@@ -214825,6 +225084,7 @@ characters.data={
  },
  [0x1F491]={
   category="so",
+  cjkwd="w",
   description="COUPLE WITH HEART",
   direction="on",
   linebreak="id",
@@ -214832,6 +225092,7 @@ characters.data={
  },
  [0x1F492]={
   category="so",
+  cjkwd="w",
   description="WEDDING",
   direction="on",
   linebreak="id",
@@ -214839,6 +225100,7 @@ characters.data={
  },
  [0x1F493]={
   category="so",
+  cjkwd="w",
   description="BEATING HEART",
   direction="on",
   linebreak="id",
@@ -214846,6 +225108,7 @@ characters.data={
  },
  [0x1F494]={
   category="so",
+  cjkwd="w",
   description="BROKEN HEART",
   direction="on",
   linebreak="id",
@@ -214853,6 +225116,7 @@ characters.data={
  },
  [0x1F495]={
   category="so",
+  cjkwd="w",
   description="TWO HEARTS",
   direction="on",
   linebreak="id",
@@ -214860,6 +225124,7 @@ characters.data={
  },
  [0x1F496]={
   category="so",
+  cjkwd="w",
   description="SPARKLING HEART",
   direction="on",
   linebreak="id",
@@ -214867,6 +225132,7 @@ characters.data={
  },
  [0x1F497]={
   category="so",
+  cjkwd="w",
   description="GROWING HEART",
   direction="on",
   linebreak="id",
@@ -214874,6 +225140,7 @@ characters.data={
  },
  [0x1F498]={
   category="so",
+  cjkwd="w",
   description="HEART WITH ARROW",
   direction="on",
   linebreak="id",
@@ -214881,6 +225148,7 @@ characters.data={
  },
  [0x1F499]={
   category="so",
+  cjkwd="w",
   description="BLUE HEART",
   direction="on",
   linebreak="id",
@@ -214888,6 +225156,7 @@ characters.data={
  },
  [0x1F49A]={
   category="so",
+  cjkwd="w",
   description="GREEN HEART",
   direction="on",
   linebreak="id",
@@ -214895,6 +225164,7 @@ characters.data={
  },
  [0x1F49B]={
   category="so",
+  cjkwd="w",
   description="YELLOW HEART",
   direction="on",
   linebreak="id",
@@ -214902,6 +225172,7 @@ characters.data={
  },
  [0x1F49C]={
   category="so",
+  cjkwd="w",
   description="PURPLE HEART",
   direction="on",
   linebreak="id",
@@ -214909,6 +225180,7 @@ characters.data={
  },
  [0x1F49D]={
   category="so",
+  cjkwd="w",
   description="HEART WITH RIBBON",
   direction="on",
   linebreak="id",
@@ -214916,6 +225188,7 @@ characters.data={
  },
  [0x1F49E]={
   category="so",
+  cjkwd="w",
   description="REVOLVING HEARTS",
   direction="on",
   linebreak="id",
@@ -214923,6 +225196,7 @@ characters.data={
  },
  [0x1F49F]={
   category="so",
+  cjkwd="w",
   description="HEART DECORATION",
   direction="on",
   linebreak="id",
@@ -214930,6 +225204,7 @@ characters.data={
  },
  [0x1F4A0]={
   category="so",
+  cjkwd="w",
   description="DIAMOND SHAPE WITH A DOT INSIDE",
   direction="on",
   linebreak="al",
@@ -214937,6 +225212,7 @@ characters.data={
  },
  [0x1F4A1]={
   category="so",
+  cjkwd="w",
   description="ELECTRIC LIGHT BULB",
   direction="on",
   linebreak="id",
@@ -214944,6 +225220,7 @@ characters.data={
  },
  [0x1F4A2]={
   category="so",
+  cjkwd="w",
   description="ANGER SYMBOL",
   direction="on",
   linebreak="al",
@@ -214951,6 +225228,7 @@ characters.data={
  },
  [0x1F4A3]={
   category="so",
+  cjkwd="w",
   description="BOMB",
   direction="on",
   linebreak="id",
@@ -214958,6 +225236,7 @@ characters.data={
  },
  [0x1F4A4]={
   category="so",
+  cjkwd="w",
   description="SLEEPING SYMBOL",
   direction="on",
   linebreak="al",
@@ -214965,6 +225244,7 @@ characters.data={
  },
  [0x1F4A5]={
   category="so",
+  cjkwd="w",
   description="COLLISION SYMBOL",
   direction="on",
   linebreak="id",
@@ -214972,6 +225252,7 @@ characters.data={
  },
  [0x1F4A6]={
   category="so",
+  cjkwd="w",
   description="SPLASHING SWEAT SYMBOL",
   direction="on",
   linebreak="id",
@@ -214979,6 +225260,7 @@ characters.data={
  },
  [0x1F4A7]={
   category="so",
+  cjkwd="w",
   description="DROPLET",
   direction="on",
   linebreak="id",
@@ -214986,6 +225268,7 @@ characters.data={
  },
  [0x1F4A8]={
   category="so",
+  cjkwd="w",
   description="DASH SYMBOL",
   direction="on",
   linebreak="id",
@@ -214993,6 +225276,7 @@ characters.data={
  },
  [0x1F4A9]={
   category="so",
+  cjkwd="w",
   description="PILE OF POO",
   direction="on",
   linebreak="id",
@@ -215000,13 +225284,15 @@ characters.data={
  },
  [0x1F4AA]={
   category="so",
+  cjkwd="w",
   description="FLEXED BICEPS",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F4AA,
  },
  [0x1F4AB]={
   category="so",
+  cjkwd="w",
   description="DIZZY SYMBOL",
   direction="on",
   linebreak="id",
@@ -215014,6 +225300,7 @@ characters.data={
  },
  [0x1F4AC]={
   category="so",
+  cjkwd="w",
   description="SPEECH BALLOON",
   direction="on",
   linebreak="id",
@@ -215021,6 +225308,7 @@ characters.data={
  },
  [0x1F4AD]={
   category="so",
+  cjkwd="w",
   description="THOUGHT BALLOON",
   direction="on",
   linebreak="id",
@@ -215028,6 +225316,7 @@ characters.data={
  },
  [0x1F4AE]={
   category="so",
+  cjkwd="w",
   description="WHITE FLOWER",
   direction="on",
   linebreak="id",
@@ -215035,6 +225324,7 @@ characters.data={
  },
  [0x1F4AF]={
   category="so",
+  cjkwd="w",
   description="HUNDRED POINTS SYMBOL",
   direction="on",
   linebreak="al",
@@ -215042,6 +225332,7 @@ characters.data={
  },
  [0x1F4B0]={
   category="so",
+  cjkwd="w",
   description="MONEY BAG",
   direction="on",
   linebreak="id",
@@ -215049,6 +225340,7 @@ characters.data={
  },
  [0x1F4B1]={
   category="so",
+  cjkwd="w",
   description="CURRENCY EXCHANGE",
   direction="on",
   linebreak="al",
@@ -215056,6 +225348,7 @@ characters.data={
  },
  [0x1F4B2]={
   category="so",
+  cjkwd="w",
   description="HEAVY DOLLAR SIGN",
   direction="on",
   linebreak="al",
@@ -215063,6 +225356,7 @@ characters.data={
  },
  [0x1F4B3]={
   category="so",
+  cjkwd="w",
   description="CREDIT CARD",
   direction="on",
   linebreak="id",
@@ -215070,6 +225364,7 @@ characters.data={
  },
  [0x1F4B4]={
   category="so",
+  cjkwd="w",
   description="BANKNOTE WITH YEN SIGN",
   direction="on",
   linebreak="id",
@@ -215077,6 +225372,7 @@ characters.data={
  },
  [0x1F4B5]={
   category="so",
+  cjkwd="w",
   description="BANKNOTE WITH DOLLAR SIGN",
   direction="on",
   linebreak="id",
@@ -215084,6 +225380,7 @@ characters.data={
  },
  [0x1F4B6]={
   category="so",
+  cjkwd="w",
   description="BANKNOTE WITH EURO SIGN",
   direction="on",
   linebreak="id",
@@ -215091,6 +225388,7 @@ characters.data={
  },
  [0x1F4B7]={
   category="so",
+  cjkwd="w",
   description="BANKNOTE WITH POUND SIGN",
   direction="on",
   linebreak="id",
@@ -215098,6 +225396,7 @@ characters.data={
  },
  [0x1F4B8]={
   category="so",
+  cjkwd="w",
   description="MONEY WITH WINGS",
   direction="on",
   linebreak="id",
@@ -215105,6 +225404,7 @@ characters.data={
  },
  [0x1F4B9]={
   category="so",
+  cjkwd="w",
   description="CHART WITH UPWARDS TREND AND YEN SIGN",
   direction="on",
   linebreak="id",
@@ -215112,6 +225412,7 @@ characters.data={
  },
  [0x1F4BA]={
   category="so",
+  cjkwd="w",
   description="SEAT",
   direction="on",
   linebreak="id",
@@ -215119,6 +225420,7 @@ characters.data={
  },
  [0x1F4BB]={
   category="so",
+  cjkwd="w",
   description="PERSONAL COMPUTER",
   direction="on",
   linebreak="id",
@@ -215126,6 +225428,7 @@ characters.data={
  },
  [0x1F4BC]={
   category="so",
+  cjkwd="w",
   description="BRIEFCASE",
   direction="on",
   linebreak="id",
@@ -215133,6 +225436,7 @@ characters.data={
  },
  [0x1F4BD]={
   category="so",
+  cjkwd="w",
   description="MINIDISC",
   direction="on",
   linebreak="id",
@@ -215140,6 +225444,7 @@ characters.data={
  },
  [0x1F4BE]={
   category="so",
+  cjkwd="w",
   description="FLOPPY DISK",
   direction="on",
   linebreak="id",
@@ -215147,6 +225452,7 @@ characters.data={
  },
  [0x1F4BF]={
   category="so",
+  cjkwd="w",
   description="OPTICAL DISC",
   direction="on",
   linebreak="id",
@@ -215154,6 +225460,7 @@ characters.data={
  },
  [0x1F4C0]={
   category="so",
+  cjkwd="w",
   description="DVD",
   direction="on",
   linebreak="id",
@@ -215161,6 +225468,7 @@ characters.data={
  },
  [0x1F4C1]={
   category="so",
+  cjkwd="w",
   description="FILE FOLDER",
   direction="on",
   linebreak="id",
@@ -215168,6 +225476,7 @@ characters.data={
  },
  [0x1F4C2]={
   category="so",
+  cjkwd="w",
   description="OPEN FILE FOLDER",
   direction="on",
   linebreak="id",
@@ -215175,6 +225484,7 @@ characters.data={
  },
  [0x1F4C3]={
   category="so",
+  cjkwd="w",
   description="PAGE WITH CURL",
   direction="on",
   linebreak="id",
@@ -215182,6 +225492,7 @@ characters.data={
  },
  [0x1F4C4]={
   category="so",
+  cjkwd="w",
   description="PAGE FACING UP",
   direction="on",
   linebreak="id",
@@ -215189,6 +225500,7 @@ characters.data={
  },
  [0x1F4C5]={
   category="so",
+  cjkwd="w",
   description="CALENDAR",
   direction="on",
   linebreak="id",
@@ -215196,6 +225508,7 @@ characters.data={
  },
  [0x1F4C6]={
   category="so",
+  cjkwd="w",
   description="TEAR-OFF CALENDAR",
   direction="on",
   linebreak="id",
@@ -215203,6 +225516,7 @@ characters.data={
  },
  [0x1F4C7]={
   category="so",
+  cjkwd="w",
   description="CARD INDEX",
   direction="on",
   linebreak="id",
@@ -215210,6 +225524,7 @@ characters.data={
  },
  [0x1F4C8]={
   category="so",
+  cjkwd="w",
   description="CHART WITH UPWARDS TREND",
   direction="on",
   linebreak="id",
@@ -215217,6 +225532,7 @@ characters.data={
  },
  [0x1F4C9]={
   category="so",
+  cjkwd="w",
   description="CHART WITH DOWNWARDS TREND",
   direction="on",
   linebreak="id",
@@ -215224,6 +225540,7 @@ characters.data={
  },
  [0x1F4CA]={
   category="so",
+  cjkwd="w",
   description="BAR CHART",
   direction="on",
   linebreak="id",
@@ -215231,6 +225548,7 @@ characters.data={
  },
  [0x1F4CB]={
   category="so",
+  cjkwd="w",
   description="CLIPBOARD",
   direction="on",
   linebreak="id",
@@ -215238,6 +225556,7 @@ characters.data={
  },
  [0x1F4CC]={
   category="so",
+  cjkwd="w",
   description="PUSHPIN",
   direction="on",
   linebreak="id",
@@ -215245,6 +225564,7 @@ characters.data={
  },
  [0x1F4CD]={
   category="so",
+  cjkwd="w",
   description="ROUND PUSHPIN",
   direction="on",
   linebreak="id",
@@ -215252,6 +225572,7 @@ characters.data={
  },
  [0x1F4CE]={
   category="so",
+  cjkwd="w",
   description="PAPERCLIP",
   direction="on",
   linebreak="id",
@@ -215259,6 +225580,7 @@ characters.data={
  },
  [0x1F4CF]={
   category="so",
+  cjkwd="w",
   description="STRAIGHT RULER",
   direction="on",
   linebreak="id",
@@ -215266,6 +225588,7 @@ characters.data={
  },
  [0x1F4D0]={
   category="so",
+  cjkwd="w",
   description="TRIANGULAR RULER",
   direction="on",
   linebreak="id",
@@ -215273,6 +225596,7 @@ characters.data={
  },
  [0x1F4D1]={
   category="so",
+  cjkwd="w",
   description="BOOKMARK TABS",
   direction="on",
   linebreak="id",
@@ -215280,6 +225604,7 @@ characters.data={
  },
  [0x1F4D2]={
   category="so",
+  cjkwd="w",
   description="LEDGER",
   direction="on",
   linebreak="id",
@@ -215287,6 +225612,7 @@ characters.data={
  },
  [0x1F4D3]={
   category="so",
+  cjkwd="w",
   description="NOTEBOOK",
   direction="on",
   linebreak="id",
@@ -215294,6 +225620,7 @@ characters.data={
  },
  [0x1F4D4]={
   category="so",
+  cjkwd="w",
   description="NOTEBOOK WITH DECORATIVE COVER",
   direction="on",
   linebreak="id",
@@ -215301,6 +225628,7 @@ characters.data={
  },
  [0x1F4D5]={
   category="so",
+  cjkwd="w",
   description="CLOSED BOOK",
   direction="on",
   linebreak="id",
@@ -215308,6 +225636,7 @@ characters.data={
  },
  [0x1F4D6]={
   category="so",
+  cjkwd="w",
   description="OPEN BOOK",
   direction="on",
   linebreak="id",
@@ -215315,6 +225644,7 @@ characters.data={
  },
  [0x1F4D7]={
   category="so",
+  cjkwd="w",
   description="GREEN BOOK",
   direction="on",
   linebreak="id",
@@ -215322,6 +225652,7 @@ characters.data={
  },
  [0x1F4D8]={
   category="so",
+  cjkwd="w",
   description="BLUE BOOK",
   direction="on",
   linebreak="id",
@@ -215329,6 +225660,7 @@ characters.data={
  },
  [0x1F4D9]={
   category="so",
+  cjkwd="w",
   description="ORANGE BOOK",
   direction="on",
   linebreak="id",
@@ -215336,6 +225668,7 @@ characters.data={
  },
  [0x1F4DA]={
   category="so",
+  cjkwd="w",
   description="BOOKS",
   direction="on",
   linebreak="id",
@@ -215343,6 +225676,7 @@ characters.data={
  },
  [0x1F4DB]={
   category="so",
+  cjkwd="w",
   description="NAME BADGE",
   direction="on",
   linebreak="id",
@@ -215350,6 +225684,7 @@ characters.data={
  },
  [0x1F4DC]={
   category="so",
+  cjkwd="w",
   description="SCROLL",
   direction="on",
   linebreak="id",
@@ -215357,6 +225692,7 @@ characters.data={
  },
  [0x1F4DD]={
   category="so",
+  cjkwd="w",
   description="MEMO",
   direction="on",
   linebreak="id",
@@ -215364,6 +225700,7 @@ characters.data={
  },
  [0x1F4DE]={
   category="so",
+  cjkwd="w",
   description="TELEPHONE RECEIVER",
   direction="on",
   linebreak="id",
@@ -215371,6 +225708,7 @@ characters.data={
  },
  [0x1F4DF]={
   category="so",
+  cjkwd="w",
   description="PAGER",
   direction="on",
   linebreak="id",
@@ -215378,6 +225716,7 @@ characters.data={
  },
  [0x1F4E0]={
   category="so",
+  cjkwd="w",
   description="FAX MACHINE",
   direction="on",
   linebreak="id",
@@ -215385,6 +225724,7 @@ characters.data={
  },
  [0x1F4E1]={
   category="so",
+  cjkwd="w",
   description="SATELLITE ANTENNA",
   direction="on",
   linebreak="id",
@@ -215392,6 +225732,7 @@ characters.data={
  },
  [0x1F4E2]={
   category="so",
+  cjkwd="w",
   description="PUBLIC ADDRESS LOUDSPEAKER",
   direction="on",
   linebreak="id",
@@ -215399,6 +225740,7 @@ characters.data={
  },
  [0x1F4E3]={
   category="so",
+  cjkwd="w",
   description="CHEERING MEGAPHONE",
   direction="on",
   linebreak="id",
@@ -215406,6 +225748,7 @@ characters.data={
  },
  [0x1F4E4]={
   category="so",
+  cjkwd="w",
   description="OUTBOX TRAY",
   direction="on",
   linebreak="id",
@@ -215413,6 +225756,7 @@ characters.data={
  },
  [0x1F4E5]={
   category="so",
+  cjkwd="w",
   description="INBOX TRAY",
   direction="on",
   linebreak="id",
@@ -215420,6 +225764,7 @@ characters.data={
  },
  [0x1F4E6]={
   category="so",
+  cjkwd="w",
   description="PACKAGE",
   direction="on",
   linebreak="id",
@@ -215427,6 +225772,7 @@ characters.data={
  },
  [0x1F4E7]={
   category="so",
+  cjkwd="w",
   description="E-MAIL SYMBOL",
   direction="on",
   linebreak="id",
@@ -215434,6 +225780,7 @@ characters.data={
  },
  [0x1F4E8]={
   category="so",
+  cjkwd="w",
   description="INCOMING ENVELOPE",
   direction="on",
   linebreak="id",
@@ -215441,6 +225788,7 @@ characters.data={
  },
  [0x1F4E9]={
   category="so",
+  cjkwd="w",
   description="ENVELOPE WITH DOWNWARDS ARROW ABOVE",
   direction="on",
   linebreak="id",
@@ -215448,6 +225796,7 @@ characters.data={
  },
  [0x1F4EA]={
   category="so",
+  cjkwd="w",
   description="CLOSED MAILBOX WITH LOWERED FLAG",
   direction="on",
   linebreak="id",
@@ -215455,6 +225804,7 @@ characters.data={
  },
  [0x1F4EB]={
   category="so",
+  cjkwd="w",
   description="CLOSED MAILBOX WITH RAISED FLAG",
   direction="on",
   linebreak="id",
@@ -215462,6 +225812,7 @@ characters.data={
  },
  [0x1F4EC]={
   category="so",
+  cjkwd="w",
   description="OPEN MAILBOX WITH RAISED FLAG",
   direction="on",
   linebreak="id",
@@ -215469,6 +225820,7 @@ characters.data={
  },
  [0x1F4ED]={
   category="so",
+  cjkwd="w",
   description="OPEN MAILBOX WITH LOWERED FLAG",
   direction="on",
   linebreak="id",
@@ -215476,6 +225828,7 @@ characters.data={
  },
  [0x1F4EE]={
   category="so",
+  cjkwd="w",
   description="POSTBOX",
   direction="on",
   linebreak="id",
@@ -215483,6 +225836,7 @@ characters.data={
  },
  [0x1F4EF]={
   category="so",
+  cjkwd="w",
   description="POSTAL HORN",
   direction="on",
   linebreak="id",
@@ -215490,6 +225844,7 @@ characters.data={
  },
  [0x1F4F0]={
   category="so",
+  cjkwd="w",
   description="NEWSPAPER",
   direction="on",
   linebreak="id",
@@ -215497,6 +225852,7 @@ characters.data={
  },
  [0x1F4F1]={
   category="so",
+  cjkwd="w",
   description="MOBILE PHONE",
   direction="on",
   linebreak="id",
@@ -215504,6 +225860,7 @@ characters.data={
  },
  [0x1F4F2]={
   category="so",
+  cjkwd="w",
   description="MOBILE PHONE WITH RIGHTWARDS ARROW AT LEFT",
   direction="on",
   linebreak="id",
@@ -215511,6 +225868,7 @@ characters.data={
  },
  [0x1F4F3]={
   category="so",
+  cjkwd="w",
   description="VIBRATION MODE",
   direction="on",
   linebreak="id",
@@ -215518,6 +225876,7 @@ characters.data={
  },
  [0x1F4F4]={
   category="so",
+  cjkwd="w",
   description="MOBILE PHONE OFF",
   direction="on",
   linebreak="id",
@@ -215525,6 +225884,7 @@ characters.data={
  },
  [0x1F4F5]={
   category="so",
+  cjkwd="w",
   description="NO MOBILE PHONES",
   direction="on",
   linebreak="id",
@@ -215532,6 +225892,7 @@ characters.data={
  },
  [0x1F4F6]={
   category="so",
+  cjkwd="w",
   description="ANTENNA WITH BARS",
   direction="on",
   linebreak="id",
@@ -215539,6 +225900,7 @@ characters.data={
  },
  [0x1F4F7]={
   category="so",
+  cjkwd="w",
   description="CAMERA",
   direction="on",
   linebreak="id",
@@ -215546,6 +225908,7 @@ characters.data={
  },
  [0x1F4F8]={
   category="so",
+  cjkwd="w",
   description="CAMERA WITH FLASH",
   direction="on",
   linebreak="id",
@@ -215553,6 +225916,7 @@ characters.data={
  },
  [0x1F4F9]={
   category="so",
+  cjkwd="w",
   description="VIDEO CAMERA",
   direction="on",
   linebreak="id",
@@ -215560,6 +225924,7 @@ characters.data={
  },
  [0x1F4FA]={
   category="so",
+  cjkwd="w",
   description="TELEVISION",
   direction="on",
   linebreak="id",
@@ -215567,6 +225932,7 @@ characters.data={
  },
  [0x1F4FB]={
   category="so",
+  cjkwd="w",
   description="RADIO",
   direction="on",
   linebreak="id",
@@ -215574,6 +225940,7 @@ characters.data={
  },
  [0x1F4FC]={
   category="so",
+  cjkwd="w",
   description="VIDEOCASSETTE",
   direction="on",
   linebreak="id",
@@ -215585,6 +225952,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F4FD,
+  variants=variants_emoji,
  },
  [0x1F4FE]={
   category="so",
@@ -215595,6 +225963,7 @@ characters.data={
  },
  [0x1F4FF]={
   category="so",
+  cjkwd="w",
   description="PRAYER BEADS",
   direction="on",
   linebreak="id",
@@ -215602,6 +225971,7 @@ characters.data={
  },
  [0x1F500]={
   category="so",
+  cjkwd="w",
   description="TWISTED RIGHTWARDS ARROWS",
   direction="on",
   linebreak="al",
@@ -215609,6 +225979,7 @@ characters.data={
  },
  [0x1F501]={
   category="so",
+  cjkwd="w",
   description="CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS",
   direction="on",
   linebreak="al",
@@ -215616,6 +225987,7 @@ characters.data={
  },
  [0x1F502]={
   category="so",
+  cjkwd="w",
   description="CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS WITH CIRCLED ONE OVERLAY",
   direction="on",
   linebreak="al",
@@ -215623,6 +225995,7 @@ characters.data={
  },
  [0x1F503]={
   category="so",
+  cjkwd="w",
   description="CLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS",
   direction="on",
   linebreak="al",
@@ -215630,6 +226003,7 @@ characters.data={
  },
  [0x1F504]={
   category="so",
+  cjkwd="w",
   description="ANTICLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS",
   direction="on",
   linebreak="al",
@@ -215637,6 +226011,7 @@ characters.data={
  },
  [0x1F505]={
   category="so",
+  cjkwd="w",
   description="LOW BRIGHTNESS SYMBOL",
   direction="on",
   linebreak="al",
@@ -215644,6 +226019,7 @@ characters.data={
  },
  [0x1F506]={
   category="so",
+  cjkwd="w",
   description="HIGH BRIGHTNESS SYMBOL",
   direction="on",
   linebreak="al",
@@ -215651,6 +226027,7 @@ characters.data={
  },
  [0x1F507]={
   category="so",
+  cjkwd="w",
   description="SPEAKER WITH CANCELLATION STROKE",
   direction="on",
   linebreak="id",
@@ -215658,6 +226035,7 @@ characters.data={
  },
  [0x1F508]={
   category="so",
+  cjkwd="w",
   description="SPEAKER",
   direction="on",
   linebreak="id",
@@ -215665,6 +226043,7 @@ characters.data={
  },
  [0x1F509]={
   category="so",
+  cjkwd="w",
   description="SPEAKER WITH ONE SOUND WAVE",
   direction="on",
   linebreak="id",
@@ -215672,6 +226051,7 @@ characters.data={
  },
  [0x1F50A]={
   category="so",
+  cjkwd="w",
   description="SPEAKER WITH THREE SOUND WAVES",
   direction="on",
   linebreak="id",
@@ -215679,6 +226059,7 @@ characters.data={
  },
  [0x1F50B]={
   category="so",
+  cjkwd="w",
   description="BATTERY",
   direction="on",
   linebreak="id",
@@ -215686,6 +226067,7 @@ characters.data={
  },
  [0x1F50C]={
   category="so",
+  cjkwd="w",
   description="ELECTRIC PLUG",
   direction="on",
   linebreak="id",
@@ -215693,6 +226075,7 @@ characters.data={
  },
  [0x1F50D]={
   category="so",
+  cjkwd="w",
   description="LEFT-POINTING MAGNIFYING GLASS",
   direction="on",
   linebreak="id",
@@ -215700,6 +226083,7 @@ characters.data={
  },
  [0x1F50E]={
   category="so",
+  cjkwd="w",
   description="RIGHT-POINTING MAGNIFYING GLASS",
   direction="on",
   linebreak="id",
@@ -215707,6 +226091,7 @@ characters.data={
  },
  [0x1F50F]={
   category="so",
+  cjkwd="w",
   description="LOCK WITH INK PEN",
   direction="on",
   linebreak="id",
@@ -215714,6 +226099,7 @@ characters.data={
  },
  [0x1F510]={
   category="so",
+  cjkwd="w",
   description="CLOSED LOCK WITH KEY",
   direction="on",
   linebreak="id",
@@ -215721,6 +226107,7 @@ characters.data={
  },
  [0x1F511]={
   category="so",
+  cjkwd="w",
   description="KEY",
   direction="on",
   linebreak="id",
@@ -215728,6 +226115,7 @@ characters.data={
  },
  [0x1F512]={
   category="so",
+  cjkwd="w",
   description="LOCK",
   direction="on",
   linebreak="id",
@@ -215735,6 +226123,7 @@ characters.data={
  },
  [0x1F513]={
   category="so",
+  cjkwd="w",
   description="OPEN LOCK",
   direction="on",
   linebreak="id",
@@ -215742,6 +226131,7 @@ characters.data={
  },
  [0x1F514]={
   category="so",
+  cjkwd="w",
   description="BELL",
   direction="on",
   linebreak="id",
@@ -215749,6 +226139,7 @@ characters.data={
  },
  [0x1F515]={
   category="so",
+  cjkwd="w",
   description="BELL WITH CANCELLATION STROKE",
   direction="on",
   linebreak="id",
@@ -215756,6 +226147,7 @@ characters.data={
  },
  [0x1F516]={
   category="so",
+  cjkwd="w",
   description="BOOKMARK",
   direction="on",
   linebreak="id",
@@ -215763,6 +226155,7 @@ characters.data={
  },
  [0x1F517]={
   category="so",
+  cjkwd="w",
   description="LINK SYMBOL",
   direction="on",
   linebreak="al",
@@ -215770,6 +226163,7 @@ characters.data={
  },
  [0x1F518]={
   category="so",
+  cjkwd="w",
   description="RADIO BUTTON",
   direction="on",
   linebreak="al",
@@ -215777,6 +226171,7 @@ characters.data={
  },
  [0x1F519]={
   category="so",
+  cjkwd="w",
   description="BACK WITH LEFTWARDS ARROW ABOVE",
   direction="on",
   linebreak="al",
@@ -215784,6 +226179,7 @@ characters.data={
  },
  [0x1F51A]={
   category="so",
+  cjkwd="w",
   description="END WITH LEFTWARDS ARROW ABOVE",
   direction="on",
   linebreak="al",
@@ -215791,6 +226187,7 @@ characters.data={
  },
  [0x1F51B]={
   category="so",
+  cjkwd="w",
   description="ON WITH EXCLAMATION MARK WITH LEFT RIGHT ARROW ABOVE",
   direction="on",
   linebreak="al",
@@ -215798,6 +226195,7 @@ characters.data={
  },
  [0x1F51C]={
   category="so",
+  cjkwd="w",
   description="SOON WITH RIGHTWARDS ARROW ABOVE",
   direction="on",
   linebreak="al",
@@ -215805,6 +226203,7 @@ characters.data={
  },
  [0x1F51D]={
   category="so",
+  cjkwd="w",
   description="TOP WITH UPWARDS ARROW ABOVE",
   direction="on",
   linebreak="al",
@@ -215812,6 +226211,7 @@ characters.data={
  },
  [0x1F51E]={
   category="so",
+  cjkwd="w",
   description="NO ONE UNDER EIGHTEEN SYMBOL",
   direction="on",
   linebreak="al",
@@ -215819,6 +226219,7 @@ characters.data={
  },
  [0x1F51F]={
   category="so",
+  cjkwd="w",
   description="KEYCAP TEN",
   direction="on",
   linebreak="al",
@@ -215826,6 +226227,7 @@ characters.data={
  },
  [0x1F520]={
   category="so",
+  cjkwd="w",
   description="INPUT SYMBOL FOR LATIN CAPITAL LETTERS",
   direction="on",
   linebreak="al",
@@ -215833,6 +226235,7 @@ characters.data={
  },
  [0x1F521]={
   category="so",
+  cjkwd="w",
   description="INPUT SYMBOL FOR LATIN SMALL LETTERS",
   direction="on",
   linebreak="al",
@@ -215840,6 +226243,7 @@ characters.data={
  },
  [0x1F522]={
   category="so",
+  cjkwd="w",
   description="INPUT SYMBOL FOR NUMBERS",
   direction="on",
   linebreak="al",
@@ -215847,6 +226251,7 @@ characters.data={
  },
  [0x1F523]={
   category="so",
+  cjkwd="w",
   description="INPUT SYMBOL FOR SYMBOLS",
   direction="on",
   linebreak="al",
@@ -215854,6 +226259,7 @@ characters.data={
  },
  [0x1F524]={
   category="so",
+  cjkwd="w",
   description="INPUT SYMBOL FOR LATIN LETTERS",
   direction="on",
   linebreak="al",
@@ -215861,6 +226267,7 @@ characters.data={
  },
  [0x1F525]={
   category="so",
+  cjkwd="w",
   description="FIRE",
   direction="on",
   linebreak="id",
@@ -215868,6 +226275,7 @@ characters.data={
  },
  [0x1F526]={
   category="so",
+  cjkwd="w",
   description="ELECTRIC TORCH",
   direction="on",
   linebreak="id",
@@ -215875,6 +226283,7 @@ characters.data={
  },
  [0x1F527]={
   category="so",
+  cjkwd="w",
   description="WRENCH",
   direction="on",
   linebreak="id",
@@ -215882,6 +226291,7 @@ characters.data={
  },
  [0x1F528]={
   category="so",
+  cjkwd="w",
   description="HAMMER",
   direction="on",
   linebreak="id",
@@ -215889,6 +226299,7 @@ characters.data={
  },
  [0x1F529]={
   category="so",
+  cjkwd="w",
   description="NUT AND BOLT",
   direction="on",
   linebreak="id",
@@ -215896,6 +226307,7 @@ characters.data={
  },
  [0x1F52A]={
   category="so",
+  cjkwd="w",
   description="HOCHO",
   direction="on",
   linebreak="id",
@@ -215903,6 +226315,7 @@ characters.data={
  },
  [0x1F52B]={
   category="so",
+  cjkwd="w",
   description="PISTOL",
   direction="on",
   linebreak="id",
@@ -215910,6 +226323,7 @@ characters.data={
  },
  [0x1F52C]={
   category="so",
+  cjkwd="w",
   description="MICROSCOPE",
   direction="on",
   linebreak="id",
@@ -215917,6 +226331,7 @@ characters.data={
  },
  [0x1F52D]={
   category="so",
+  cjkwd="w",
   description="TELESCOPE",
   direction="on",
   linebreak="id",
@@ -215924,6 +226339,7 @@ characters.data={
  },
  [0x1F52E]={
   category="so",
+  cjkwd="w",
   description="CRYSTAL BALL",
   direction="on",
   linebreak="id",
@@ -215931,6 +226347,7 @@ characters.data={
  },
  [0x1F52F]={
   category="so",
+  cjkwd="w",
   description="SIX POINTED STAR WITH MIDDLE DOT",
   direction="on",
   linebreak="id",
@@ -215938,6 +226355,7 @@ characters.data={
  },
  [0x1F530]={
   category="so",
+  cjkwd="w",
   description="JAPANESE SYMBOL FOR BEGINNER",
   direction="on",
   linebreak="id",
@@ -215945,6 +226363,7 @@ characters.data={
  },
  [0x1F531]={
   category="so",
+  cjkwd="w",
   description="TRIDENT EMBLEM",
   direction="on",
   linebreak="id",
@@ -215952,6 +226371,7 @@ characters.data={
  },
  [0x1F532]={
   category="so",
+  cjkwd="w",
   description="BLACK SQUARE BUTTON",
   direction="on",
   linebreak="al",
@@ -215959,6 +226379,7 @@ characters.data={
  },
  [0x1F533]={
   category="so",
+  cjkwd="w",
   description="WHITE SQUARE BUTTON",
   direction="on",
   linebreak="al",
@@ -215966,6 +226387,7 @@ characters.data={
  },
  [0x1F534]={
   category="so",
+  cjkwd="w",
   description="LARGE RED CIRCLE",
   direction="on",
   linebreak="al",
@@ -215973,6 +226395,7 @@ characters.data={
  },
  [0x1F535]={
   category="so",
+  cjkwd="w",
   description="LARGE BLUE CIRCLE",
   direction="on",
   linebreak="al",
@@ -215980,6 +226403,7 @@ characters.data={
  },
  [0x1F536]={
   category="so",
+  cjkwd="w",
   description="LARGE ORANGE DIAMOND",
   direction="on",
   linebreak="al",
@@ -215987,6 +226411,7 @@ characters.data={
  },
  [0x1F537]={
   category="so",
+  cjkwd="w",
   description="LARGE BLUE DIAMOND",
   direction="on",
   linebreak="al",
@@ -215994,6 +226419,7 @@ characters.data={
  },
  [0x1F538]={
   category="so",
+  cjkwd="w",
   description="SMALL ORANGE DIAMOND",
   direction="on",
   linebreak="al",
@@ -216001,6 +226427,7 @@ characters.data={
  },
  [0x1F539]={
   category="so",
+  cjkwd="w",
   description="SMALL BLUE DIAMOND",
   direction="on",
   linebreak="al",
@@ -216008,6 +226435,7 @@ characters.data={
  },
  [0x1F53A]={
   category="so",
+  cjkwd="w",
   description="UP-POINTING RED TRIANGLE",
   direction="on",
   linebreak="al",
@@ -216015,6 +226443,7 @@ characters.data={
  },
  [0x1F53B]={
   category="so",
+  cjkwd="w",
   description="DOWN-POINTING RED TRIANGLE",
   direction="on",
   linebreak="al",
@@ -216022,6 +226451,7 @@ characters.data={
  },
  [0x1F53C]={
   category="so",
+  cjkwd="w",
   description="UP-POINTING SMALL RED TRIANGLE",
   direction="on",
   linebreak="al",
@@ -216029,6 +226459,7 @@ characters.data={
  },
  [0x1F53D]={
   category="so",
+  cjkwd="w",
   description="DOWN-POINTING SMALL RED TRIANGLE",
   direction="on",
   linebreak="al",
@@ -216117,6 +226548,7 @@ characters.data={
   direction="on",
   linebreak="al",
   unicodeslot=0x1F549,
+  variants=variants_emoji,
  },
  [0x1F54A]={
   category="so",
@@ -216124,9 +226556,11 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F54A,
+  variants=variants_emoji,
  },
  [0x1F54B]={
   category="so",
+  cjkwd="w",
   description="KAABA",
   direction="on",
   linebreak="id",
@@ -216134,6 +226568,7 @@ characters.data={
  },
  [0x1F54C]={
   category="so",
+  cjkwd="w",
   description="MOSQUE",
   direction="on",
   linebreak="id",
@@ -216141,6 +226576,7 @@ characters.data={
  },
  [0x1F54D]={
   category="so",
+  cjkwd="w",
   description="SYNAGOGUE",
   direction="on",
   linebreak="id",
@@ -216148,6 +226584,7 @@ characters.data={
  },
  [0x1F54E]={
   category="so",
+  cjkwd="w",
   description="MENORAH WITH NINE BRANCHES",
   direction="on",
   linebreak="id",
@@ -216162,6 +226599,7 @@ characters.data={
  },
  [0x1F550]={
   category="so",
+  cjkwd="w",
   description="CLOCK FACE ONE OCLOCK",
   direction="on",
   linebreak="id",
@@ -216169,6 +226607,7 @@ characters.data={
  },
  [0x1F551]={
   category="so",
+  cjkwd="w",
   description="CLOCK FACE TWO OCLOCK",
   direction="on",
   linebreak="id",
@@ -216176,6 +226615,7 @@ characters.data={
  },
  [0x1F552]={
   category="so",
+  cjkwd="w",
   description="CLOCK FACE THREE OCLOCK",
   direction="on",
   linebreak="id",
@@ -216183,6 +226623,7 @@ characters.data={
  },
  [0x1F553]={
   category="so",
+  cjkwd="w",
   description="CLOCK FACE FOUR OCLOCK",
   direction="on",
   linebreak="id",
@@ -216190,6 +226631,7 @@ characters.data={
  },
  [0x1F554]={
   category="so",
+  cjkwd="w",
   description="CLOCK FACE FIVE OCLOCK",
   direction="on",
   linebreak="id",
@@ -216197,6 +226639,7 @@ characters.data={
  },
  [0x1F555]={
   category="so",
+  cjkwd="w",
   description="CLOCK FACE SIX OCLOCK",
   direction="on",
   linebreak="id",
@@ -216204,6 +226647,7 @@ characters.data={
  },
  [0x1F556]={
   category="so",
+  cjkwd="w",
   description="CLOCK FACE SEVEN OCLOCK",
   direction="on",
   linebreak="id",
@@ -216211,6 +226655,7 @@ characters.data={
  },
  [0x1F557]={
   category="so",
+  cjkwd="w",
   description="CLOCK FACE EIGHT OCLOCK",
   direction="on",
   linebreak="id",
@@ -216218,6 +226663,7 @@ characters.data={
  },
  [0x1F558]={
   category="so",
+  cjkwd="w",
   description="CLOCK FACE NINE OCLOCK",
   direction="on",
   linebreak="id",
@@ -216225,6 +226671,7 @@ characters.data={
  },
  [0x1F559]={
   category="so",
+  cjkwd="w",
   description="CLOCK FACE TEN OCLOCK",
   direction="on",
   linebreak="id",
@@ -216232,6 +226679,7 @@ characters.data={
  },
  [0x1F55A]={
   category="so",
+  cjkwd="w",
   description="CLOCK FACE ELEVEN OCLOCK",
   direction="on",
   linebreak="id",
@@ -216239,6 +226687,7 @@ characters.data={
  },
  [0x1F55B]={
   category="so",
+  cjkwd="w",
   description="CLOCK FACE TWELVE OCLOCK",
   direction="on",
   linebreak="id",
@@ -216246,6 +226695,7 @@ characters.data={
  },
  [0x1F55C]={
   category="so",
+  cjkwd="w",
   description="CLOCK FACE ONE-THIRTY",
   direction="on",
   linebreak="id",
@@ -216253,6 +226703,7 @@ characters.data={
  },
  [0x1F55D]={
   category="so",
+  cjkwd="w",
   description="CLOCK FACE TWO-THIRTY",
   direction="on",
   linebreak="id",
@@ -216260,6 +226711,7 @@ characters.data={
  },
  [0x1F55E]={
   category="so",
+  cjkwd="w",
   description="CLOCK FACE THREE-THIRTY",
   direction="on",
   linebreak="id",
@@ -216267,6 +226719,7 @@ characters.data={
  },
  [0x1F55F]={
   category="so",
+  cjkwd="w",
   description="CLOCK FACE FOUR-THIRTY",
   direction="on",
   linebreak="id",
@@ -216274,6 +226727,7 @@ characters.data={
  },
  [0x1F560]={
   category="so",
+  cjkwd="w",
   description="CLOCK FACE FIVE-THIRTY",
   direction="on",
   linebreak="id",
@@ -216281,6 +226735,7 @@ characters.data={
  },
  [0x1F561]={
   category="so",
+  cjkwd="w",
   description="CLOCK FACE SIX-THIRTY",
   direction="on",
   linebreak="id",
@@ -216288,6 +226743,7 @@ characters.data={
  },
  [0x1F562]={
   category="so",
+  cjkwd="w",
   description="CLOCK FACE SEVEN-THIRTY",
   direction="on",
   linebreak="id",
@@ -216295,6 +226751,7 @@ characters.data={
  },
  [0x1F563]={
   category="so",
+  cjkwd="w",
   description="CLOCK FACE EIGHT-THIRTY",
   direction="on",
   linebreak="id",
@@ -216302,6 +226759,7 @@ characters.data={
  },
  [0x1F564]={
   category="so",
+  cjkwd="w",
   description="CLOCK FACE NINE-THIRTY",
   direction="on",
   linebreak="id",
@@ -216309,6 +226767,7 @@ characters.data={
  },
  [0x1F565]={
   category="so",
+  cjkwd="w",
   description="CLOCK FACE TEN-THIRTY",
   direction="on",
   linebreak="id",
@@ -216316,6 +226775,7 @@ characters.data={
  },
  [0x1F566]={
   category="so",
+  cjkwd="w",
   description="CLOCK FACE ELEVEN-THIRTY",
   direction="on",
   linebreak="id",
@@ -216323,6 +226783,7 @@ characters.data={
  },
  [0x1F567]={
   category="so",
+  cjkwd="w",
   description="CLOCK FACE TWELVE-THIRTY",
   direction="on",
   linebreak="id",
@@ -216383,6 +226844,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F56F,
+  variants=variants_emoji,
  },
  [0x1F570]={
   category="so",
@@ -216390,6 +226852,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F570,
+  variants=variants_emoji,
  },
  [0x1F571]={
   category="so",
@@ -216411,6 +226874,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F573,
+  variants=variants_emoji,
  },
  [0x1F574]={
   category="so",
@@ -216418,13 +226882,15 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F574,
+  variants=variants_emoji,
  },
  [0x1F575]={
   category="so",
   description="SLEUTH OR SPY",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F575,
+  variants=variants_emoji,
  },
  [0x1F576]={
   category="so",
@@ -216432,6 +226898,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F576,
+  variants=variants_emoji,
  },
  [0x1F577]={
   category="so",
@@ -216439,6 +226906,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F577,
+  variants=variants_emoji,
  },
  [0x1F578]={
   category="so",
@@ -216446,6 +226914,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F578,
+  variants=variants_emoji,
  },
  [0x1F579]={
   category="so",
@@ -216453,6 +226922,15 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F579,
+  variants=variants_emoji,
+ },
+ [0x1F57A]={
+  category="so",
+  cjkwd="w",
+  description="MAN DANCING",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F57A,
  },
  [0x1F57B]={
   category="so",
@@ -216544,6 +227022,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F587,
+  variants=variants_emoji,
  },
  [0x1F588]={
   category="so",
@@ -216565,6 +227044,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F58A,
+  variants=variants_emoji,
  },
  [0x1F58B]={
   category="so",
@@ -216572,6 +227052,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F58B,
+  variants=variants_emoji,
  },
  [0x1F58C]={
   category="so",
@@ -216579,6 +227060,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F58C,
+  variants=variants_emoji,
  },
  [0x1F58D]={
   category="so",
@@ -216586,6 +227068,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F58D,
+  variants=variants_emoji,
  },
  [0x1F58E]={
   category="so",
@@ -216605,8 +227088,9 @@ characters.data={
   category="so",
   description="RAISED HAND WITH FINGERS SPLAYED",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F590,
+  variants=variants_emoji,
  },
  [0x1F591]={
   category="so",
@@ -216638,16 +227122,18 @@ characters.data={
  },
  [0x1F595]={
   category="so",
+  cjkwd="w",
   description="REVERSED HAND WITH MIDDLE FINGER EXTENDED",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F595,
  },
  [0x1F596]={
   category="so",
+  cjkwd="w",
   description="RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F596,
  },
  [0x1F597]={
@@ -216741,12 +227227,21 @@ characters.data={
   linebreak="id",
   unicodeslot=0x1F5A3,
  },
+ [0x1F5A4]={
+  category="so",
+  cjkwd="w",
+  description="BLACK HEART",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F5A4,
+ },
  [0x1F5A5]={
   category="so",
   description="DESKTOP COMPUTER",
   direction="on",
   linebreak="id",
   unicodeslot=0x1F5A5,
+  variants=variants_emoji,
  },
  [0x1F5A6]={
   category="so",
@@ -216768,6 +227263,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F5A8,
+  variants=variants_emoji,
  },
  [0x1F5A9]={
   category="so",
@@ -216831,6 +227327,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F5B1,
+  variants=variants_emoji,
  },
  [0x1F5B2]={
   category="so",
@@ -216838,6 +227335,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F5B2,
+  variants=variants_emoji,
  },
  [0x1F5B3]={
   category="so",
@@ -216908,6 +227406,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F5BC,
+  variants=variants_emoji,
  },
  [0x1F5BD]={
   category="so",
@@ -216950,6 +227449,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F5C2,
+  variants=variants_emoji,
  },
  [0x1F5C3]={
   category="so",
@@ -216957,6 +227457,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F5C3,
+  variants=variants_emoji,
  },
  [0x1F5C4]={
   category="so",
@@ -216964,6 +227465,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F5C4,
+  variants=variants_emoji,
  },
  [0x1F5C5]={
   category="so",
@@ -217055,6 +227557,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F5D1,
+  variants=variants_emoji,
  },
  [0x1F5D2]={
   category="so",
@@ -217062,6 +227565,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F5D2,
+  variants=variants_emoji,
  },
  [0x1F5D3]={
   category="so",
@@ -217069,6 +227573,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F5D3,
+  variants=variants_emoji,
  },
  [0x1F5D4]={
   category="so",
@@ -217132,6 +227637,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F5DC,
+  variants=variants_emoji,
  },
  [0x1F5DD]={
   category="so",
@@ -217139,6 +227645,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F5DD,
+  variants=variants_emoji,
  },
  [0x1F5DE]={
   category="so",
@@ -217146,6 +227653,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F5DE,
+  variants=variants_emoji,
  },
  [0x1F5DF]={
   category="so",
@@ -217167,6 +227675,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F5E1,
+  variants=variants_emoji,
  },
  [0x1F5E2]={
   category="so",
@@ -217181,6 +227690,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F5E3,
+  variants=variants_emoji,
  },
  [0x1F5E4]={
   category="so",
@@ -217216,6 +227726,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F5E8,
+  variants=variants_emoji,
  },
  [0x1F5E9]={
   category="so",
@@ -217265,6 +227776,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F5EF,
+  variants=variants_emoji,
  },
  [0x1F5F0]={
   category="so",
@@ -217293,6 +227805,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F5F3,
+  variants=variants_emoji,
  },
  [0x1F5F4]={
   category="so",
@@ -217342,9 +227855,11 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F5FA,
+  variants=variants_emoji,
  },
  [0x1F5FB]={
   category="so",
+  cjkwd="w",
   description="MOUNT FUJI",
   direction="on",
   linebreak="id",
@@ -217352,6 +227867,7 @@ characters.data={
  },
  [0x1F5FC]={
   category="so",
+  cjkwd="w",
   description="TOKYO TOWER",
   direction="on",
   linebreak="id",
@@ -217359,6 +227875,7 @@ characters.data={
  },
  [0x1F5FD]={
   category="so",
+  cjkwd="w",
   description="STATUE OF LIBERTY",
   direction="on",
   linebreak="id",
@@ -217366,6 +227883,7 @@ characters.data={
  },
  [0x1F5FE]={
   category="so",
+  cjkwd="w",
   description="SILHOUETTE OF JAPAN",
   direction="on",
   linebreak="id",
@@ -217373,6 +227891,7 @@ characters.data={
  },
  [0x1F5FF]={
   category="so",
+  cjkwd="w",
   description="MOYAI",
   direction="on",
   linebreak="id",
@@ -217380,6 +227899,7 @@ characters.data={
  },
  [0x1F600]={
   category="so",
+  cjkwd="w",
   description="GRINNING FACE",
   direction="on",
   linebreak="id",
@@ -217387,6 +227907,7 @@ characters.data={
  },
  [0x1F601]={
   category="so",
+  cjkwd="w",
   description="GRINNING FACE WITH SMILING EYES",
   direction="on",
   linebreak="id",
@@ -217394,6 +227915,7 @@ characters.data={
  },
  [0x1F602]={
   category="so",
+  cjkwd="w",
   description="FACE WITH TEARS OF JOY",
   direction="on",
   linebreak="id",
@@ -217401,6 +227923,7 @@ characters.data={
  },
  [0x1F603]={
   category="so",
+  cjkwd="w",
   description="SMILING FACE WITH OPEN MOUTH",
   direction="on",
   linebreak="id",
@@ -217408,6 +227931,7 @@ characters.data={
  },
  [0x1F604]={
   category="so",
+  cjkwd="w",
   description="SMILING FACE WITH OPEN MOUTH AND SMILING EYES",
   direction="on",
   linebreak="id",
@@ -217415,6 +227939,7 @@ characters.data={
  },
  [0x1F605]={
   category="so",
+  cjkwd="w",
   description="SMILING FACE WITH OPEN MOUTH AND COLD SWEAT",
   direction="on",
   linebreak="id",
@@ -217422,6 +227947,7 @@ characters.data={
  },
  [0x1F606]={
   category="so",
+  cjkwd="w",
   description="SMILING FACE WITH OPEN MOUTH AND TIGHTLY-CLOSED EYES",
   direction="on",
   linebreak="id",
@@ -217429,6 +227955,7 @@ characters.data={
  },
  [0x1F607]={
   category="so",
+  cjkwd="w",
   description="SMILING FACE WITH HALO",
   direction="on",
   linebreak="id",
@@ -217436,6 +227963,7 @@ characters.data={
  },
  [0x1F608]={
   category="so",
+  cjkwd="w",
   description="SMILING FACE WITH HORNS",
   direction="on",
   linebreak="id",
@@ -217443,6 +227971,7 @@ characters.data={
  },
  [0x1F609]={
   category="so",
+  cjkwd="w",
   description="WINKING FACE",
   direction="on",
   linebreak="id",
@@ -217450,6 +227979,7 @@ characters.data={
  },
  [0x1F60A]={
   category="so",
+  cjkwd="w",
   description="SMILING FACE WITH SMILING EYES",
   direction="on",
   linebreak="id",
@@ -217457,6 +227987,7 @@ characters.data={
  },
  [0x1F60B]={
   category="so",
+  cjkwd="w",
   description="FACE SAVOURING DELICIOUS FOOD",
   direction="on",
   linebreak="id",
@@ -217464,6 +227995,7 @@ characters.data={
  },
  [0x1F60C]={
   category="so",
+  cjkwd="w",
   description="RELIEVED FACE",
   direction="on",
   linebreak="id",
@@ -217471,6 +228003,7 @@ characters.data={
  },
  [0x1F60D]={
   category="so",
+  cjkwd="w",
   description="SMILING FACE WITH HEART-SHAPED EYES",
   direction="on",
   linebreak="id",
@@ -217478,6 +228011,7 @@ characters.data={
  },
  [0x1F60E]={
   category="so",
+  cjkwd="w",
   description="SMILING FACE WITH SUNGLASSES",
   direction="on",
   linebreak="id",
@@ -217485,6 +228019,7 @@ characters.data={
  },
  [0x1F60F]={
   category="so",
+  cjkwd="w",
   description="SMIRKING FACE",
   direction="on",
   linebreak="id",
@@ -217492,6 +228027,7 @@ characters.data={
  },
  [0x1F610]={
   category="so",
+  cjkwd="w",
   description="NEUTRAL FACE",
   direction="on",
   linebreak="id",
@@ -217499,6 +228035,7 @@ characters.data={
  },
  [0x1F611]={
   category="so",
+  cjkwd="w",
   description="EXPRESSIONLESS FACE",
   direction="on",
   linebreak="id",
@@ -217506,6 +228043,7 @@ characters.data={
  },
  [0x1F612]={
   category="so",
+  cjkwd="w",
   description="UNAMUSED FACE",
   direction="on",
   linebreak="id",
@@ -217513,6 +228051,7 @@ characters.data={
  },
  [0x1F613]={
   category="so",
+  cjkwd="w",
   description="FACE WITH COLD SWEAT",
   direction="on",
   linebreak="id",
@@ -217520,6 +228059,7 @@ characters.data={
  },
  [0x1F614]={
   category="so",
+  cjkwd="w",
   description="PENSIVE FACE",
   direction="on",
   linebreak="id",
@@ -217527,6 +228067,7 @@ characters.data={
  },
  [0x1F615]={
   category="so",
+  cjkwd="w",
   description="CONFUSED FACE",
   direction="on",
   linebreak="id",
@@ -217534,6 +228075,7 @@ characters.data={
  },
  [0x1F616]={
   category="so",
+  cjkwd="w",
   description="CONFOUNDED FACE",
   direction="on",
   linebreak="id",
@@ -217541,6 +228083,7 @@ characters.data={
  },
  [0x1F617]={
   category="so",
+  cjkwd="w",
   description="KISSING FACE",
   direction="on",
   linebreak="id",
@@ -217548,6 +228091,7 @@ characters.data={
  },
  [0x1F618]={
   category="so",
+  cjkwd="w",
   description="FACE THROWING A KISS",
   direction="on",
   linebreak="id",
@@ -217555,6 +228099,7 @@ characters.data={
  },
  [0x1F619]={
   category="so",
+  cjkwd="w",
   description="KISSING FACE WITH SMILING EYES",
   direction="on",
   linebreak="id",
@@ -217562,6 +228107,7 @@ characters.data={
  },
  [0x1F61A]={
   category="so",
+  cjkwd="w",
   description="KISSING FACE WITH CLOSED EYES",
   direction="on",
   linebreak="id",
@@ -217569,6 +228115,7 @@ characters.data={
  },
  [0x1F61B]={
   category="so",
+  cjkwd="w",
   description="FACE WITH STUCK-OUT TONGUE",
   direction="on",
   linebreak="id",
@@ -217576,6 +228123,7 @@ characters.data={
  },
  [0x1F61C]={
   category="so",
+  cjkwd="w",
   description="FACE WITH STUCK-OUT TONGUE AND WINKING EYE",
   direction="on",
   linebreak="id",
@@ -217583,6 +228131,7 @@ characters.data={
  },
  [0x1F61D]={
   category="so",
+  cjkwd="w",
   description="FACE WITH STUCK-OUT TONGUE AND TIGHTLY-CLOSED EYES",
   direction="on",
   linebreak="id",
@@ -217590,6 +228139,7 @@ characters.data={
  },
  [0x1F61E]={
   category="so",
+  cjkwd="w",
   description="DISAPPOINTED FACE",
   direction="on",
   linebreak="id",
@@ -217597,6 +228147,7 @@ characters.data={
  },
  [0x1F61F]={
   category="so",
+  cjkwd="w",
   description="WORRIED FACE",
   direction="on",
   linebreak="id",
@@ -217604,6 +228155,7 @@ characters.data={
  },
  [0x1F620]={
   category="so",
+  cjkwd="w",
   description="ANGRY FACE",
   direction="on",
   linebreak="id",
@@ -217611,6 +228163,7 @@ characters.data={
  },
  [0x1F621]={
   category="so",
+  cjkwd="w",
   description="POUTING FACE",
   direction="on",
   linebreak="id",
@@ -217618,6 +228171,7 @@ characters.data={
  },
  [0x1F622]={
   category="so",
+  cjkwd="w",
   description="CRYING FACE",
   direction="on",
   linebreak="id",
@@ -217625,6 +228179,7 @@ characters.data={
  },
  [0x1F623]={
   category="so",
+  cjkwd="w",
   description="PERSEVERING FACE",
   direction="on",
   linebreak="id",
@@ -217632,6 +228187,7 @@ characters.data={
  },
  [0x1F624]={
   category="so",
+  cjkwd="w",
   description="FACE WITH LOOK OF TRIUMPH",
   direction="on",
   linebreak="id",
@@ -217639,6 +228195,7 @@ characters.data={
  },
  [0x1F625]={
   category="so",
+  cjkwd="w",
   description="DISAPPOINTED BUT RELIEVED FACE",
   direction="on",
   linebreak="id",
@@ -217646,6 +228203,7 @@ characters.data={
  },
  [0x1F626]={
   category="so",
+  cjkwd="w",
   description="FROWNING FACE WITH OPEN MOUTH",
   direction="on",
   linebreak="id",
@@ -217653,6 +228211,7 @@ characters.data={
  },
  [0x1F627]={
   category="so",
+  cjkwd="w",
   description="ANGUISHED FACE",
   direction="on",
   linebreak="id",
@@ -217660,6 +228219,7 @@ characters.data={
  },
  [0x1F628]={
   category="so",
+  cjkwd="w",
   description="FEARFUL FACE",
   direction="on",
   linebreak="id",
@@ -217667,6 +228227,7 @@ characters.data={
  },
  [0x1F629]={
   category="so",
+  cjkwd="w",
   description="WEARY FACE",
   direction="on",
   linebreak="id",
@@ -217674,6 +228235,7 @@ characters.data={
  },
  [0x1F62A]={
   category="so",
+  cjkwd="w",
   description="SLEEPY FACE",
   direction="on",
   linebreak="id",
@@ -217681,6 +228243,7 @@ characters.data={
  },
  [0x1F62B]={
   category="so",
+  cjkwd="w",
   description="TIRED FACE",
   direction="on",
   linebreak="id",
@@ -217688,6 +228251,7 @@ characters.data={
  },
  [0x1F62C]={
   category="so",
+  cjkwd="w",
   description="GRIMACING FACE",
   direction="on",
   linebreak="id",
@@ -217695,6 +228259,7 @@ characters.data={
  },
  [0x1F62D]={
   category="so",
+  cjkwd="w",
   description="LOUDLY CRYING FACE",
   direction="on",
   linebreak="id",
@@ -217702,6 +228267,7 @@ characters.data={
  },
  [0x1F62E]={
   category="so",
+  cjkwd="w",
   description="FACE WITH OPEN MOUTH",
   direction="on",
   linebreak="id",
@@ -217709,6 +228275,7 @@ characters.data={
  },
  [0x1F62F]={
   category="so",
+  cjkwd="w",
   description="HUSHED FACE",
   direction="on",
   linebreak="id",
@@ -217716,6 +228283,7 @@ characters.data={
  },
  [0x1F630]={
   category="so",
+  cjkwd="w",
   description="FACE WITH OPEN MOUTH AND COLD SWEAT",
   direction="on",
   linebreak="id",
@@ -217723,6 +228291,7 @@ characters.data={
  },
  [0x1F631]={
   category="so",
+  cjkwd="w",
   description="FACE SCREAMING IN FEAR",
   direction="on",
   linebreak="id",
@@ -217730,6 +228299,7 @@ characters.data={
  },
  [0x1F632]={
   category="so",
+  cjkwd="w",
   description="ASTONISHED FACE",
   direction="on",
   linebreak="id",
@@ -217737,6 +228307,7 @@ characters.data={
  },
  [0x1F633]={
   category="so",
+  cjkwd="w",
   description="FLUSHED FACE",
   direction="on",
   linebreak="id",
@@ -217744,6 +228315,7 @@ characters.data={
  },
  [0x1F634]={
   category="so",
+  cjkwd="w",
   description="SLEEPING FACE",
   direction="on",
   linebreak="id",
@@ -217751,6 +228323,7 @@ characters.data={
  },
  [0x1F635]={
   category="so",
+  cjkwd="w",
   description="DIZZY FACE",
   direction="on",
   linebreak="id",
@@ -217758,6 +228331,7 @@ characters.data={
  },
  [0x1F636]={
   category="so",
+  cjkwd="w",
   description="FACE WITHOUT MOUTH",
   direction="on",
   linebreak="id",
@@ -217765,6 +228339,7 @@ characters.data={
  },
  [0x1F637]={
   category="so",
+  cjkwd="w",
   description="FACE WITH MEDICAL MASK",
   direction="on",
   linebreak="id",
@@ -217772,6 +228347,7 @@ characters.data={
  },
  [0x1F638]={
   category="so",
+  cjkwd="w",
   description="GRINNING CAT FACE WITH SMILING EYES",
   direction="on",
   linebreak="id",
@@ -217779,6 +228355,7 @@ characters.data={
  },
  [0x1F639]={
   category="so",
+  cjkwd="w",
   description="CAT FACE WITH TEARS OF JOY",
   direction="on",
   linebreak="id",
@@ -217786,6 +228363,7 @@ characters.data={
  },
  [0x1F63A]={
   category="so",
+  cjkwd="w",
   description="SMILING CAT FACE WITH OPEN MOUTH",
   direction="on",
   linebreak="id",
@@ -217793,6 +228371,7 @@ characters.data={
  },
  [0x1F63B]={
   category="so",
+  cjkwd="w",
   description="SMILING CAT FACE WITH HEART-SHAPED EYES",
   direction="on",
   linebreak="id",
@@ -217800,6 +228379,7 @@ characters.data={
  },
  [0x1F63C]={
   category="so",
+  cjkwd="w",
   description="CAT FACE WITH WRY SMILE",
   direction="on",
   linebreak="id",
@@ -217807,6 +228387,7 @@ characters.data={
  },
  [0x1F63D]={
   category="so",
+  cjkwd="w",
   description="KISSING CAT FACE WITH CLOSED EYES",
   direction="on",
   linebreak="id",
@@ -217814,6 +228395,7 @@ characters.data={
  },
  [0x1F63E]={
   category="so",
+  cjkwd="w",
   description="POUTING CAT FACE",
   direction="on",
   linebreak="id",
@@ -217821,6 +228403,7 @@ characters.data={
  },
  [0x1F63F]={
   category="so",
+  cjkwd="w",
   description="CRYING CAT FACE",
   direction="on",
   linebreak="id",
@@ -217828,6 +228411,7 @@ characters.data={
  },
  [0x1F640]={
   category="so",
+  cjkwd="w",
   description="WEARY CAT FACE",
   direction="on",
   linebreak="id",
@@ -217835,6 +228419,7 @@ characters.data={
  },
  [0x1F641]={
   category="so",
+  cjkwd="w",
   description="SLIGHTLY FROWNING FACE",
   direction="on",
   linebreak="id",
@@ -217842,6 +228427,7 @@ characters.data={
  },
  [0x1F642]={
   category="so",
+  cjkwd="w",
   description="SLIGHTLY SMILING FACE",
   direction="on",
   linebreak="id",
@@ -217849,6 +228435,7 @@ characters.data={
  },
  [0x1F643]={
   category="so",
+  cjkwd="w",
   description="UPSIDE-DOWN FACE",
   direction="on",
   linebreak="id",
@@ -217856,6 +228443,7 @@ characters.data={
  },
  [0x1F644]={
   category="so",
+  cjkwd="w",
   description="FACE WITH ROLLING EYES",
   direction="on",
   linebreak="id",
@@ -217863,27 +228451,31 @@ characters.data={
  },
  [0x1F645]={
   category="so",
+  cjkwd="w",
   description="FACE WITH NO GOOD GESTURE",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F645,
  },
  [0x1F646]={
   category="so",
+  cjkwd="w",
   description="FACE WITH OK GESTURE",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F646,
  },
  [0x1F647]={
   category="so",
+  cjkwd="w",
   description="PERSON BOWING DEEPLY",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F647,
  },
  [0x1F648]={
   category="so",
+  cjkwd="w",
   description="SEE-NO-EVIL MONKEY",
   direction="on",
   linebreak="id",
@@ -217891,6 +228483,7 @@ characters.data={
  },
  [0x1F649]={
   category="so",
+  cjkwd="w",
   description="HEAR-NO-EVIL MONKEY",
   direction="on",
   linebreak="id",
@@ -217898,6 +228491,7 @@ characters.data={
  },
  [0x1F64A]={
   category="so",
+  cjkwd="w",
   description="SPEAK-NO-EVIL MONKEY",
   direction="on",
   linebreak="id",
@@ -217905,37 +228499,42 @@ characters.data={
  },
  [0x1F64B]={
   category="so",
+  cjkwd="w",
   description="HAPPY PERSON RAISING ONE HAND",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F64B,
  },
  [0x1F64C]={
   category="so",
+  cjkwd="w",
   description="PERSON RAISING BOTH HANDS IN CELEBRATION",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F64C,
  },
  [0x1F64D]={
   category="so",
+  cjkwd="w",
   description="PERSON FROWNING",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F64D,
  },
  [0x1F64E]={
   category="so",
+  cjkwd="w",
   description="PERSON WITH POUTING FACE",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F64E,
  },
  [0x1F64F]={
   category="so",
+  cjkwd="w",
   description="PERSON WITH FOLDED HANDS",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F64F,
  },
  [0x1F650]={
@@ -218276,6 +228875,7 @@ characters.data={
  },
  [0x1F680]={
   category="so",
+  cjkwd="w",
   description="ROCKET",
   direction="on",
   linebreak="id",
@@ -218283,6 +228883,7 @@ characters.data={
  },
  [0x1F681]={
   category="so",
+  cjkwd="w",
   description="HELICOPTER",
   direction="on",
   linebreak="id",
@@ -218290,6 +228891,7 @@ characters.data={
  },
  [0x1F682]={
   category="so",
+  cjkwd="w",
   description="STEAM LOCOMOTIVE",
   direction="on",
   linebreak="id",
@@ -218297,6 +228899,7 @@ characters.data={
  },
  [0x1F683]={
   category="so",
+  cjkwd="w",
   description="RAILWAY CAR",
   direction="on",
   linebreak="id",
@@ -218304,6 +228907,7 @@ characters.data={
  },
  [0x1F684]={
   category="so",
+  cjkwd="w",
   description="HIGH-SPEED TRAIN",
   direction="on",
   linebreak="id",
@@ -218311,6 +228915,7 @@ characters.data={
  },
  [0x1F685]={
   category="so",
+  cjkwd="w",
   description="HIGH-SPEED TRAIN WITH BULLET NOSE",
   direction="on",
   linebreak="id",
@@ -218318,6 +228923,7 @@ characters.data={
  },
  [0x1F686]={
   category="so",
+  cjkwd="w",
   description="TRAIN",
   direction="on",
   linebreak="id",
@@ -218325,6 +228931,7 @@ characters.data={
  },
  [0x1F687]={
   category="so",
+  cjkwd="w",
   description="METRO",
   direction="on",
   linebreak="id",
@@ -218332,6 +228939,7 @@ characters.data={
  },
  [0x1F688]={
   category="so",
+  cjkwd="w",
   description="LIGHT RAIL",
   direction="on",
   linebreak="id",
@@ -218339,6 +228947,7 @@ characters.data={
  },
  [0x1F689]={
   category="so",
+  cjkwd="w",
   description="STATION",
   direction="on",
   linebreak="id",
@@ -218346,6 +228955,7 @@ characters.data={
  },
  [0x1F68A]={
   category="so",
+  cjkwd="w",
   description="TRAM",
   direction="on",
   linebreak="id",
@@ -218353,6 +228963,7 @@ characters.data={
  },
  [0x1F68B]={
   category="so",
+  cjkwd="w",
   description="TRAM CAR",
   direction="on",
   linebreak="id",
@@ -218360,6 +228971,7 @@ characters.data={
  },
  [0x1F68C]={
   category="so",
+  cjkwd="w",
   description="BUS",
   direction="on",
   linebreak="id",
@@ -218367,6 +228979,7 @@ characters.data={
  },
  [0x1F68D]={
   category="so",
+  cjkwd="w",
   description="ONCOMING BUS",
   direction="on",
   linebreak="id",
@@ -218374,6 +228987,7 @@ characters.data={
  },
  [0x1F68E]={
   category="so",
+  cjkwd="w",
   description="TROLLEYBUS",
   direction="on",
   linebreak="id",
@@ -218381,6 +228995,7 @@ characters.data={
  },
  [0x1F68F]={
   category="so",
+  cjkwd="w",
   description="BUS STOP",
   direction="on",
   linebreak="id",
@@ -218388,6 +229003,7 @@ characters.data={
  },
  [0x1F690]={
   category="so",
+  cjkwd="w",
   description="MINIBUS",
   direction="on",
   linebreak="id",
@@ -218395,6 +229011,7 @@ characters.data={
  },
  [0x1F691]={
   category="so",
+  cjkwd="w",
   description="AMBULANCE",
   direction="on",
   linebreak="id",
@@ -218402,6 +229019,7 @@ characters.data={
  },
  [0x1F692]={
   category="so",
+  cjkwd="w",
   description="FIRE ENGINE",
   direction="on",
   linebreak="id",
@@ -218409,6 +229027,7 @@ characters.data={
  },
  [0x1F693]={
   category="so",
+  cjkwd="w",
   description="POLICE CAR",
   direction="on",
   linebreak="id",
@@ -218416,6 +229035,7 @@ characters.data={
  },
  [0x1F694]={
   category="so",
+  cjkwd="w",
   description="ONCOMING POLICE CAR",
   direction="on",
   linebreak="id",
@@ -218423,6 +229043,7 @@ characters.data={
  },
  [0x1F695]={
   category="so",
+  cjkwd="w",
   description="TAXI",
   direction="on",
   linebreak="id",
@@ -218430,6 +229051,7 @@ characters.data={
  },
  [0x1F696]={
   category="so",
+  cjkwd="w",
   description="ONCOMING TAXI",
   direction="on",
   linebreak="id",
@@ -218437,6 +229059,7 @@ characters.data={
  },
  [0x1F697]={
   category="so",
+  cjkwd="w",
   description="AUTOMOBILE",
   direction="on",
   linebreak="id",
@@ -218444,6 +229067,7 @@ characters.data={
  },
  [0x1F698]={
   category="so",
+  cjkwd="w",
   description="ONCOMING AUTOMOBILE",
   direction="on",
   linebreak="id",
@@ -218451,6 +229075,7 @@ characters.data={
  },
  [0x1F699]={
   category="so",
+  cjkwd="w",
   description="RECREATIONAL VEHICLE",
   direction="on",
   linebreak="id",
@@ -218458,6 +229083,7 @@ characters.data={
  },
  [0x1F69A]={
   category="so",
+  cjkwd="w",
   description="DELIVERY TRUCK",
   direction="on",
   linebreak="id",
@@ -218465,6 +229091,7 @@ characters.data={
  },
  [0x1F69B]={
   category="so",
+  cjkwd="w",
   description="ARTICULATED LORRY",
   direction="on",
   linebreak="id",
@@ -218472,6 +229099,7 @@ characters.data={
  },
  [0x1F69C]={
   category="so",
+  cjkwd="w",
   description="TRACTOR",
   direction="on",
   linebreak="id",
@@ -218479,6 +229107,7 @@ characters.data={
  },
  [0x1F69D]={
   category="so",
+  cjkwd="w",
   description="MONORAIL",
   direction="on",
   linebreak="id",
@@ -218486,6 +229115,7 @@ characters.data={
  },
  [0x1F69E]={
   category="so",
+  cjkwd="w",
   description="MOUNTAIN RAILWAY",
   direction="on",
   linebreak="id",
@@ -218493,6 +229123,7 @@ characters.data={
  },
  [0x1F69F]={
   category="so",
+  cjkwd="w",
   description="SUSPENSION RAILWAY",
   direction="on",
   linebreak="id",
@@ -218500,6 +229131,7 @@ characters.data={
  },
  [0x1F6A0]={
   category="so",
+  cjkwd="w",
   description="MOUNTAIN CABLEWAY",
   direction="on",
   linebreak="id",
@@ -218507,6 +229139,7 @@ characters.data={
  },
  [0x1F6A1]={
   category="so",
+  cjkwd="w",
   description="AERIAL TRAMWAY",
   direction="on",
   linebreak="id",
@@ -218514,6 +229147,7 @@ characters.data={
  },
  [0x1F6A2]={
   category="so",
+  cjkwd="w",
   description="SHIP",
   direction="on",
   linebreak="id",
@@ -218521,13 +229155,15 @@ characters.data={
  },
  [0x1F6A3]={
   category="so",
+  cjkwd="w",
   description="ROWBOAT",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F6A3,
  },
  [0x1F6A4]={
   category="so",
+  cjkwd="w",
   description="SPEEDBOAT",
   direction="on",
   linebreak="id",
@@ -218535,6 +229171,7 @@ characters.data={
  },
  [0x1F6A5]={
   category="so",
+  cjkwd="w",
   description="HORIZONTAL TRAFFIC LIGHT",
   direction="on",
   linebreak="id",
@@ -218542,6 +229179,7 @@ characters.data={
  },
  [0x1F6A6]={
   category="so",
+  cjkwd="w",
   description="VERTICAL TRAFFIC LIGHT",
   direction="on",
   linebreak="id",
@@ -218549,6 +229187,7 @@ characters.data={
  },
  [0x1F6A7]={
   category="so",
+  cjkwd="w",
   description="CONSTRUCTION SIGN",
   direction="on",
   linebreak="id",
@@ -218556,6 +229195,7 @@ characters.data={
  },
  [0x1F6A8]={
   category="so",
+  cjkwd="w",
   description="POLICE CARS REVOLVING LIGHT",
   direction="on",
   linebreak="id",
@@ -218563,6 +229203,7 @@ characters.data={
  },
  [0x1F6A9]={
   category="so",
+  cjkwd="w",
   description="TRIANGULAR FLAG ON POST",
   direction="on",
   linebreak="id",
@@ -218570,6 +229211,7 @@ characters.data={
  },
  [0x1F6AA]={
   category="so",
+  cjkwd="w",
   description="DOOR",
   direction="on",
   linebreak="id",
@@ -218577,6 +229219,7 @@ characters.data={
  },
  [0x1F6AB]={
   category="so",
+  cjkwd="w",
   description="NO ENTRY SIGN",
   direction="on",
   linebreak="id",
@@ -218584,6 +229227,7 @@ characters.data={
  },
  [0x1F6AC]={
   category="so",
+  cjkwd="w",
   description="SMOKING SYMBOL",
   direction="on",
   linebreak="id",
@@ -218591,6 +229235,7 @@ characters.data={
  },
  [0x1F6AD]={
   category="so",
+  cjkwd="w",
   description="NO SMOKING SYMBOL",
   direction="on",
   linebreak="id",
@@ -218598,6 +229243,7 @@ characters.data={
  },
  [0x1F6AE]={
   category="so",
+  cjkwd="w",
   description="PUT LITTER IN ITS PLACE SYMBOL",
   direction="on",
   linebreak="id",
@@ -218605,6 +229251,7 @@ characters.data={
  },
  [0x1F6AF]={
   category="so",
+  cjkwd="w",
   description="DO NOT LITTER SYMBOL",
   direction="on",
   linebreak="id",
@@ -218612,6 +229259,7 @@ characters.data={
  },
  [0x1F6B0]={
   category="so",
+  cjkwd="w",
   description="POTABLE WATER SYMBOL",
   direction="on",
   linebreak="id",
@@ -218619,6 +229267,7 @@ characters.data={
  },
  [0x1F6B1]={
   category="so",
+  cjkwd="w",
   description="NON-POTABLE WATER SYMBOL",
   direction="on",
   linebreak="id",
@@ -218626,6 +229275,7 @@ characters.data={
  },
  [0x1F6B2]={
   category="so",
+  cjkwd="w",
   description="BICYCLE",
   direction="on",
   linebreak="id",
@@ -218633,6 +229283,7 @@ characters.data={
  },
  [0x1F6B3]={
   category="so",
+  cjkwd="w",
   description="NO BICYCLES",
   direction="on",
   linebreak="id",
@@ -218640,27 +229291,31 @@ characters.data={
  },
  [0x1F6B4]={
   category="so",
+  cjkwd="w",
   description="BICYCLIST",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F6B4,
  },
  [0x1F6B5]={
   category="so",
+  cjkwd="w",
   description="MOUNTAIN BICYCLIST",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F6B5,
  },
  [0x1F6B6]={
   category="so",
+  cjkwd="w",
   description="PEDESTRIAN",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F6B6,
  },
  [0x1F6B7]={
   category="so",
+  cjkwd="w",
   description="NO PEDESTRIANS",
   direction="on",
   linebreak="id",
@@ -218668,6 +229323,7 @@ characters.data={
  },
  [0x1F6B8]={
   category="so",
+  cjkwd="w",
   description="CHILDREN CROSSING",
   direction="on",
   linebreak="id",
@@ -218675,6 +229331,7 @@ characters.data={
  },
  [0x1F6B9]={
   category="so",
+  cjkwd="w",
   description="MENS SYMBOL",
   direction="on",
   linebreak="id",
@@ -218682,6 +229339,7 @@ characters.data={
  },
  [0x1F6BA]={
   category="so",
+  cjkwd="w",
   description="WOMENS SYMBOL",
   direction="on",
   linebreak="id",
@@ -218689,6 +229347,7 @@ characters.data={
  },
  [0x1F6BB]={
   category="so",
+  cjkwd="w",
   description="RESTROOM",
   direction="on",
   linebreak="id",
@@ -218696,6 +229355,7 @@ characters.data={
  },
  [0x1F6BC]={
   category="so",
+  cjkwd="w",
   description="BABY SYMBOL",
   direction="on",
   linebreak="id",
@@ -218703,6 +229363,7 @@ characters.data={
  },
  [0x1F6BD]={
   category="so",
+  cjkwd="w",
   description="TOILET",
   direction="on",
   linebreak="id",
@@ -218710,6 +229371,7 @@ characters.data={
  },
  [0x1F6BE]={
   category="so",
+  cjkwd="w",
   description="WATER CLOSET",
   direction="on",
   linebreak="id",
@@ -218717,6 +229379,7 @@ characters.data={
  },
  [0x1F6BF]={
   category="so",
+  cjkwd="w",
   description="SHOWER",
   direction="on",
   linebreak="id",
@@ -218724,13 +229387,15 @@ characters.data={
  },
  [0x1F6C0]={
   category="so",
+  cjkwd="w",
   description="BATH",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F6C0,
  },
  [0x1F6C1]={
   category="so",
+  cjkwd="w",
   description="BATHTUB",
   direction="on",
   linebreak="id",
@@ -218738,6 +229403,7 @@ characters.data={
  },
  [0x1F6C2]={
   category="so",
+  cjkwd="w",
   description="PASSPORT CONTROL",
   direction="on",
   linebreak="id",
@@ -218745,6 +229411,7 @@ characters.data={
  },
  [0x1F6C3]={
   category="so",
+  cjkwd="w",
   description="CUSTOMS",
   direction="on",
   linebreak="id",
@@ -218752,6 +229419,7 @@ characters.data={
  },
  [0x1F6C4]={
   category="so",
+  cjkwd="w",
   description="BAGGAGE CLAIM",
   direction="on",
   linebreak="id",
@@ -218759,6 +229427,7 @@ characters.data={
  },
  [0x1F6C5]={
   category="so",
+  cjkwd="w",
   description="LEFT LUGGAGE",
   direction="on",
   linebreak="id",
@@ -218805,9 +229474,11 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F6CB,
+  variants=variants_emoji,
  },
  [0x1F6CC]={
   category="so",
+  cjkwd="w",
   description="SLEEPING ACCOMMODATION",
   direction="on",
   linebreak="id",
@@ -218819,6 +229490,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F6CD,
+  variants=variants_emoji,
  },
  [0x1F6CE]={
   category="so",
@@ -218826,6 +229498,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F6CE,
+  variants=variants_emoji,
  },
  [0x1F6CF]={
   category="so",
@@ -218833,20 +229506,39 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F6CF,
+  variants=variants_emoji,
  },
  [0x1F6D0]={
   category="so",
+  cjkwd="w",
   description="PLACE OF WORSHIP",
   direction="on",
   linebreak="id",
   unicodeslot=0x1F6D0,
  },
+ [0x1F6D1]={
+  category="so",
+  cjkwd="w",
+  description="OCTAGONAL SIGN",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F6D1,
+ },
+ [0x1F6D2]={
+  category="so",
+  cjkwd="w",
+  description="SHOPPING TROLLEY",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F6D2,
+ },
  [0x1F6E0]={
   category="so",
   description="HAMMER AND WRENCH",
   direction="on",
   linebreak="id",
   unicodeslot=0x1F6E0,
+  variants=variants_emoji,
  },
  [0x1F6E1]={
   category="so",
@@ -218854,6 +229546,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F6E1,
+  variants=variants_emoji,
  },
  [0x1F6E2]={
   category="so",
@@ -218861,6 +229554,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F6E2,
+  variants=variants_emoji,
  },
  [0x1F6E3]={
   category="so",
@@ -218868,6 +229562,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F6E3,
+  variants=variants_emoji,
  },
  [0x1F6E4]={
   category="so",
@@ -218875,6 +229570,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F6E4,
+  variants=variants_emoji,
  },
  [0x1F6E5]={
   category="so",
@@ -218882,6 +229578,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F6E5,
+  variants=variants_emoji,
  },
  [0x1F6E6]={
   category="so",
@@ -218910,6 +229607,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F6E9,
+  variants=variants_emoji,
  },
  [0x1F6EA]={
   category="so",
@@ -218920,6 +229618,7 @@ characters.data={
  },
  [0x1F6EB]={
   category="so",
+  cjkwd="w",
   description="AIRPLANE DEPARTURE",
   direction="on",
   linebreak="id",
@@ -218927,6 +229626,7 @@ characters.data={
  },
  [0x1F6EC]={
   category="so",
+  cjkwd="w",
   description="AIRPLANE ARRIVING",
   direction="on",
   linebreak="id",
@@ -218938,6 +229638,7 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F6F0,
+  variants=variants_emoji,
  },
  [0x1F6F1]={
   category="so",
@@ -218959,6 +229660,31 @@ characters.data={
   direction="on",
   linebreak="id",
   unicodeslot=0x1F6F3,
+  variants=variants_emoji,
+ },
+ [0x1F6F4]={
+  category="so",
+  cjkwd="w",
+  description="SCOOTER",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F6F4,
+ },
+ [0x1F6F5]={
+  category="so",
+  cjkwd="w",
+  description="MOTOR SCOOTER",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F6F5,
+ },
+ [0x1F6F6]={
+  category="so",
+  cjkwd="w",
+  description="CANOE",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F6F6,
  },
  [0x1F700]={
   category="so",
@@ -221405,6 +232131,7 @@ characters.data={
  },
  [0x1F910]={
   category="so",
+  cjkwd="w",
   description="ZIPPER-MOUTH FACE",
   direction="on",
   linebreak="id",
@@ -221412,6 +232139,7 @@ characters.data={
  },
  [0x1F911]={
   category="so",
+  cjkwd="w",
   description="MONEY-MOUTH FACE",
   direction="on",
   linebreak="id",
@@ -221419,6 +232147,7 @@ characters.data={
  },
  [0x1F912]={
   category="so",
+  cjkwd="w",
   description="FACE WITH THERMOMETER",
   direction="on",
   linebreak="id",
@@ -221426,6 +232155,7 @@ characters.data={
  },
  [0x1F913]={
   category="so",
+  cjkwd="w",
   description="NERD FACE",
   direction="on",
   linebreak="id",
@@ -221433,6 +232163,7 @@ characters.data={
  },
  [0x1F914]={
   category="so",
+  cjkwd="w",
   description="THINKING FACE",
   direction="on",
   linebreak="id",
@@ -221440,6 +232171,7 @@ characters.data={
  },
  [0x1F915]={
   category="so",
+  cjkwd="w",
   description="FACE WITH HEAD-BANDAGE",
   direction="on",
   linebreak="id",
@@ -221447,6 +232179,7 @@ characters.data={
  },
  [0x1F916]={
   category="so",
+  cjkwd="w",
   description="ROBOT FACE",
   direction="on",
   linebreak="id",
@@ -221454,6 +232187,7 @@ characters.data={
  },
  [0x1F917]={
   category="so",
+  cjkwd="w",
   description="HUGGING FACE",
   direction="on",
   linebreak="id",
@@ -221461,13 +232195,447 @@ characters.data={
  },
  [0x1F918]={
   category="so",
+  cjkwd="w",
   description="SIGN OF THE HORNS",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F918,
  },
+ [0x1F919]={
+  category="so",
+  cjkwd="w",
+  description="CALL ME HAND",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F919,
+ },
+ [0x1F91A]={
+  category="so",
+  cjkwd="w",
+  description="RAISED BACK OF HAND",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F91A,
+ },
+ [0x1F91B]={
+  category="so",
+  cjkwd="w",
+  description="LEFT-FACING FIST",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F91B,
+ },
+ [0x1F91C]={
+  category="so",
+  cjkwd="w",
+  description="RIGHT-FACING FIST",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F91C,
+ },
+ [0x1F91D]={
+  category="so",
+  cjkwd="w",
+  description="HANDSHAKE",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F91D,
+ },
+ [0x1F91E]={
+  category="so",
+  cjkwd="w",
+  description="HAND WITH INDEX AND MIDDLE FINGERS CROSSED",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F91E,
+ },
+ [0x1F920]={
+  category="so",
+  cjkwd="w",
+  description="FACE WITH COWBOY HAT",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F920,
+ },
+ [0x1F921]={
+  category="so",
+  cjkwd="w",
+  description="CLOWN FACE",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F921,
+ },
+ [0x1F922]={
+  category="so",
+  cjkwd="w",
+  description="NAUSEATED FACE",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F922,
+ },
+ [0x1F923]={
+  category="so",
+  cjkwd="w",
+  description="ROLLING ON THE FLOOR LAUGHING",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F923,
+ },
+ [0x1F924]={
+  category="so",
+  cjkwd="w",
+  description="DROOLING FACE",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F924,
+ },
+ [0x1F925]={
+  category="so",
+  cjkwd="w",
+  description="LYING FACE",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F925,
+ },
+ [0x1F926]={
+  category="so",
+  cjkwd="w",
+  description="FACE PALM",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F926,
+ },
+ [0x1F927]={
+  category="so",
+  cjkwd="w",
+  description="SNEEZING FACE",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F927,
+ },
+ [0x1F930]={
+  category="so",
+  cjkwd="w",
+  description="PREGNANT WOMAN",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F930,
+ },
+ [0x1F933]={
+  category="so",
+  cjkwd="w",
+  description="SELFIE",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F933,
+ },
+ [0x1F934]={
+  category="so",
+  cjkwd="w",
+  description="PRINCE",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F934,
+ },
+ [0x1F935]={
+  category="so",
+  cjkwd="w",
+  description="MAN IN TUXEDO",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F935,
+ },
+ [0x1F936]={
+  category="so",
+  cjkwd="w",
+  description="MOTHER CHRISTMAS",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F936,
+ },
+ [0x1F937]={
+  category="so",
+  cjkwd="w",
+  description="SHRUG",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F937,
+ },
+ [0x1F938]={
+  category="so",
+  cjkwd="w",
+  description="PERSON DOING CARTWHEEL",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F938,
+ },
+ [0x1F939]={
+  category="so",
+  cjkwd="w",
+  description="JUGGLING",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F939,
+ },
+ [0x1F93A]={
+  category="so",
+  cjkwd="w",
+  description="FENCER",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F93A,
+ },
+ [0x1F93B]={
+  category="so",
+  cjkwd="w",
+  description="MODERN PENTATHLON",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F93B,
+ },
+ [0x1F93C]={
+  category="so",
+  cjkwd="w",
+  description="WRESTLERS",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F93C,
+ },
+ [0x1F93D]={
+  category="so",
+  cjkwd="w",
+  description="WATER POLO",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F93D,
+ },
+ [0x1F93E]={
+  category="so",
+  cjkwd="w",
+  description="HANDBALL",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F93E,
+ },
+ [0x1F940]={
+  category="so",
+  cjkwd="w",
+  description="WILTED FLOWER",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F940,
+ },
+ [0x1F941]={
+  category="so",
+  cjkwd="w",
+  description="DRUM WITH DRUMSTICKS",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F941,
+ },
+ [0x1F942]={
+  category="so",
+  cjkwd="w",
+  description="CLINKING GLASSES",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F942,
+ },
+ [0x1F943]={
+  category="so",
+  cjkwd="w",
+  description="TUMBLER GLASS",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F943,
+ },
+ [0x1F944]={
+  category="so",
+  cjkwd="w",
+  description="SPOON",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F944,
+ },
+ [0x1F945]={
+  category="so",
+  cjkwd="w",
+  description="GOAL NET",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F945,
+ },
+ [0x1F946]={
+  category="so",
+  cjkwd="w",
+  description="RIFLE",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F946,
+ },
+ [0x1F947]={
+  category="so",
+  cjkwd="w",
+  description="FIRST PLACE MEDAL",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F947,
+ },
+ [0x1F948]={
+  category="so",
+  cjkwd="w",
+  description="SECOND PLACE MEDAL",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F948,
+ },
+ [0x1F949]={
+  category="so",
+  cjkwd="w",
+  description="THIRD PLACE MEDAL",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F949,
+ },
+ [0x1F94A]={
+  category="so",
+  cjkwd="w",
+  description="BOXING GLOVE",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F94A,
+ },
+ [0x1F94B]={
+  category="so",
+  cjkwd="w",
+  description="MARTIAL ARTS UNIFORM",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F94B,
+ },
+ [0x1F950]={
+  category="so",
+  cjkwd="w",
+  description="CROISSANT",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F950,
+ },
+ [0x1F951]={
+  category="so",
+  cjkwd="w",
+  description="AVOCADO",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F951,
+ },
+ [0x1F952]={
+  category="so",
+  cjkwd="w",
+  description="CUCUMBER",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F952,
+ },
+ [0x1F953]={
+  category="so",
+  cjkwd="w",
+  description="BACON",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F953,
+ },
+ [0x1F954]={
+  category="so",
+  cjkwd="w",
+  description="POTATO",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F954,
+ },
+ [0x1F955]={
+  category="so",
+  cjkwd="w",
+  description="CARROT",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F955,
+ },
+ [0x1F956]={
+  category="so",
+  cjkwd="w",
+  description="BAGUETTE BREAD",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F956,
+ },
+ [0x1F957]={
+  category="so",
+  cjkwd="w",
+  description="GREEN SALAD",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F957,
+ },
+ [0x1F958]={
+  category="so",
+  cjkwd="w",
+  description="SHALLOW PAN OF FOOD",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F958,
+ },
+ [0x1F959]={
+  category="so",
+  cjkwd="w",
+  description="STUFFED FLATBREAD",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F959,
+ },
+ [0x1F95A]={
+  category="so",
+  cjkwd="w",
+  description="EGG",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F95A,
+ },
+ [0x1F95B]={
+  category="so",
+  cjkwd="w",
+  description="GLASS OF MILK",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F95B,
+ },
+ [0x1F95C]={
+  category="so",
+  cjkwd="w",
+  description="PEANUTS",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F95C,
+ },
+ [0x1F95D]={
+  category="so",
+  cjkwd="w",
+  description="KIWIFRUIT",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F95D,
+ },
+ [0x1F95E]={
+  category="so",
+  cjkwd="w",
+  description="PANCAKES",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F95E,
+ },
  [0x1F980]={
   category="so",
+  cjkwd="w",
   description="CRAB",
   direction="on",
   linebreak="id",
@@ -221475,6 +232643,7 @@ characters.data={
  },
  [0x1F981]={
   category="so",
+  cjkwd="w",
   description="LION FACE",
   direction="on",
   linebreak="id",
@@ -221482,6 +232651,7 @@ characters.data={
  },
  [0x1F982]={
   category="so",
+  cjkwd="w",
   description="SCORPION",
   direction="on",
   linebreak="id",
@@ -221489,6 +232659,7 @@ characters.data={
  },
  [0x1F983]={
   category="so",
+  cjkwd="w",
   description="TURKEY",
   direction="on",
   linebreak="id",
@@ -221496,13 +232667,119 @@ characters.data={
  },
  [0x1F984]={
   category="so",
+  cjkwd="w",
   description="UNICORN FACE",
   direction="on",
   linebreak="id",
   unicodeslot=0x1F984,
  },
+ [0x1F985]={
+  category="so",
+  cjkwd="w",
+  description="EAGLE",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F985,
+ },
+ [0x1F986]={
+  category="so",
+  cjkwd="w",
+  description="DUCK",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F986,
+ },
+ [0x1F987]={
+  category="so",
+  cjkwd="w",
+  description="BAT",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F987,
+ },
+ [0x1F988]={
+  category="so",
+  cjkwd="w",
+  description="SHARK",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F988,
+ },
+ [0x1F989]={
+  category="so",
+  cjkwd="w",
+  description="OWL",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F989,
+ },
+ [0x1F98A]={
+  category="so",
+  cjkwd="w",
+  description="FOX FACE",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F98A,
+ },
+ [0x1F98B]={
+  category="so",
+  cjkwd="w",
+  description="BUTTERFLY",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F98B,
+ },
+ [0x1F98C]={
+  category="so",
+  cjkwd="w",
+  description="DEER",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F98C,
+ },
+ [0x1F98D]={
+  category="so",
+  cjkwd="w",
+  description="GORILLA",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F98D,
+ },
+ [0x1F98E]={
+  category="so",
+  cjkwd="w",
+  description="LIZARD",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F98E,
+ },
+ [0x1F98F]={
+  category="so",
+  cjkwd="w",
+  description="RHINOCEROS",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F98F,
+ },
+ [0x1F990]={
+  category="so",
+  cjkwd="w",
+  description="SHRIMP",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F990,
+ },
+ [0x1F991]={
+  category="so",
+  cjkwd="w",
+  description="SQUID",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F991,
+ },
  [0x1F9C0]={
   category="so",
+  cjkwd="w",
   description="CHEESE WEDGE",
   direction="on",
   linebreak="id",
@@ -227065,4 +238342,4 @@ characters.data={
   linebreak="cm",
   unicodeslot=0xE007F,
  },
-}
+}
\ No newline at end of file
diff --git a/tex/context/base/mkiv/char-ini.lua b/tex/context/base/mkiv/char-ini.lua
index d9ffdb2c1..a9ea52cce 100644
--- a/tex/context/base/mkiv/char-ini.lua
+++ b/tex/context/base/mkiv/char-ini.lua
@@ -178,6 +178,7 @@ insert(characters.ranges,{
 })
 
 local blocks = allocate {
+    ["adlam"]                                      = { first = 0x1E900, last = 0x1E95F,             description = "Adlam" },
     ["aegeannumbers"]                              = { first = 0x10100, last = 0x1013F,             description = "Aegean Numbers" },
     ["ahom"]                                       = { first = 0x11700, last = 0x1173F,             description = "Ahom" },
     ["alchemicalsymbols"]                          = { first = 0x1F700, last = 0x1F77F,             description = "Alchemical Symbols" },
@@ -202,6 +203,7 @@ local blocks = allocate {
     ["bassavah"]                                   = { first = 0x16AD0, last = 0x16AFF,             description = "Bassa Vah" },
     ["batak"]                                      = { first = 0x01BC0, last = 0x01BFF,             description = "Batak" },
     ["bengali"]                                    = { first = 0x00980, last = 0x009FF, otf="beng", description = "Bengali" },
+    ["bhaiksuki"]                                  = { first = 0x11C00, last = 0x11C6F,             description = "Bhaiksuki" },
     ["blockelements"]                              = { first = 0x02580, last = 0x0259F, otf="bopo", description = "Block Elements" },
     ["bopomofo"]                                   = { first = 0x03100, last = 0x0312F, otf="bopo", description = "Bopomofo" },
     ["bopomofoextended"]                           = { first = 0x031A0, last = 0x031BF, otf="bopo", description = "Bopomofo Extended" },
@@ -247,6 +249,7 @@ local blocks = allocate {
     ["cyrillic"]                                   = { first = 0x00400, last = 0x004FF, otf="cyrl", description = "Cyrillic" },
     ["cyrillicextendeda"]                          = { first = 0x02DE0, last = 0x02DFF, otf="cyrl", description = "Cyrillic Extended-A" },
     ["cyrillicextendedb"]                          = { first = 0x0A640, last = 0x0A69F, otf="cyrl", description = "Cyrillic Extended-B" },
+    ["cyrillicextendedc"]                          = { first = 0x01C80, last = 0x01C8F,             description = "Cyrillic Extended-C" },
     ["cyrillicsupplement"]                         = { first = 0x00500, last = 0x0052F, otf="cyrl", description = "Cyrillic Supplement" },
     ["deseret"]                                    = { first = 0x10400, last = 0x1044F, otf="dsrt", description = "Deseret" },
     ["devanagari"]                                 = { first = 0x00900, last = 0x0097F, otf="deva", description = "Devanagari" },
@@ -297,6 +300,7 @@ local blocks = allocate {
     ["georgian"]                                   = { first = 0x010A0, last = 0x010FF, otf="geor",  description = "Georgian" },
     ["georgiansupplement"]                         = { first = 0x02D00, last = 0x02D2F, otf="geor",  description = "Georgian Supplement" },
     ["glagolitic"]                                 = { first = 0x02C00, last = 0x02C5F, otf="glag",  description = "Glagolitic" },
+    ["glagoliticsupplement"]                       = { first = 0x1E000, last = 0x1E02F,              description = "Glagolitic Supplement" },
     ["gothic"]                                     = { first = 0x10330, last = 0x1034F, otf="goth",  description = "Gothic" },
     ["grantha"]                                    = { first = 0x11300, last = 0x1137F,              description = "Grantha" },
     ["greekandcoptic"]                             = { first = 0x00370, last = 0x003FF, otf="grek",  description = "Greek and Coptic" },
@@ -316,6 +320,7 @@ local blocks = allocate {
     ["highsurrogates"]                             = { first = 0x0D800, last = 0x0DB7F,              description = "High Surrogates" },
     ["hiragana"]                                   = { first = 0x03040, last = 0x0309F, otf="kana",  description = "Hiragana" },
     ["ideographicdescriptioncharacters"]           = { first = 0x02FF0, last = 0x02FFF,              description = "Ideographic Description Characters" },
+    ["ideographicsymbolsandpunctuation"]           = { first = 0x16FE0, last = 0x16FFF,              description = "Ideographic Symbols and Punctuation" },
     ["imperialaramaic"]                            = { first = 0x10840, last = 0x1085F,              description = "Imperial Aramaic" },
     ["inscriptionalpahlavi"]                       = { first = 0x10B60, last = 0x10B7F,              description = "Inscriptional Pahlavi" },
     ["inscriptionalparthian"]                      = { first = 0x10B40, last = 0x10B5F,              description = "Inscriptional Parthian" },
@@ -377,6 +382,7 @@ local blocks = allocate {
     ["malayalam"]                                  = { first = 0x00D00, last = 0x00D7F, otf="mlym",  description = "Malayalam" },
     ["mandaic"]                                    = { first = 0x00840, last = 0x0085F, otf="mand",  description = "Mandaic" },
     ["manichaean"]                                 = { first = 0x10AC0, last = 0x10AFF,              description = "Manichaean" },
+    ["marchen"]                                    = { first = 0x11C70, last = 0x11CBF,              description = "Marchen" },
     ["mathematicalalphanumericsymbols"]            = { first = 0x1D400, last = 0x1D7FF, math = true, description = "Mathematical Alphanumeric Symbols" },
     ["mathematicaloperators"]                      = { first = 0x02200, last = 0x022FF, math = true, description = "Mathematical Operators" },
     ["meeteimayek"]                                = { first = 0x0ABC0, last = 0x0ABFF,              description = "Meetei Mayek" },
@@ -394,6 +400,7 @@ local blocks = allocate {
     ["modi"]                                       = { first = 0x11600, last = 0x1165F,              description = "Modi" },
     ["modifiertoneletters"]                        = { first = 0x0A700, last = 0x0A71F,              description = "Modifier Tone Letters" },
     ["mongolian"]                                  = { first = 0x01800, last = 0x018AF, otf="mong",  description = "Mongolian" },
+    ["mongoliansupplement"]                        = { first = 0x11660, last = 0x1167F,              description = "Mongolian Supplement" },
     ["mro"]                                        = { first = 0x16A40, last = 0x16A6F,              description = "Mro" },
     ["multani"]                                    = { first = 0x11280, last = 0x112AF,              description = "Multani" },
     ["musicalsymbols"]                             = { first = 0x1D100, last = 0x1D1FF, otf="musc",  description = "Musical Symbols" },
@@ -401,6 +408,7 @@ local blocks = allocate {
     ["myanmarextendeda"]                           = { first = 0x0AA60, last = 0x0AA7F,              description = "Myanmar Extended-A" },
     ["myanmarextendedb"]                           = { first = 0x0A9E0, last = 0x0A9FF,              description = "Myanmar Extended-B" },
     ["nabataean"]                                  = { first = 0x10880, last = 0x108AF,              description = "Nabataean" },
+    ["newa"]                                       = { first = 0x11400, last = 0x1147F,              description = "Newa" },
     ["newtailue"]                                  = { first = 0x01980, last = 0x019DF,              description = "New Tai Lue" },
     ["nko"]                                        = { first = 0x007C0, last = 0x007FF, otf="nko",   description = "NKo" },
     ["numberforms"]                                = { first = 0x02150, last = 0x0218F,              description = "Number Forms" },
@@ -416,6 +424,7 @@ local blocks = allocate {
     ["opticalcharacterrecognition"]                = { first = 0x02440, last = 0x0245F,              description = "Optical Character Recognition" },
     ["oriya"]                                      = { first = 0x00B00, last = 0x00B7F, otf="orya",  description = "Oriya" },
     ["ornamentaldingbats"]                         = { first = 0x1F650, last = 0x1F67F,              description = "Ornamental Dingbats" },
+    ["osage"]                                      = { first = 0x104B0, last = 0x104FF,              description = "Osage" },
     ["osmanya"]                                    = { first = 0x10480, last = 0x104AF, otf="osma",  description = "Osmanya" },
     ["pahawhhmong"]                                = { first = 0x16B00, last = 0x16B8F,              description = "Pahawh Hmong" },
     ["palmyrene"]                                  = { first = 0x10860, last = 0x1087F,              description = "Palmyrene" },
@@ -466,6 +475,8 @@ local blocks = allocate {
     ["taixuanjingsymbols"]                         = { first = 0x1D300, last = 0x1D35F,              description = "Tai Xuan Jing Symbols" },
     ["takri"]                                      = { first = 0x11680, last = 0x116CF,              description = "Takri" },
     ["tamil"]                                      = { first = 0x00B80, last = 0x00BFF, otf="taml",  description = "Tamil" },
+    ["tangut"]                                     = { first = 0x17000, last = 0x187FF,              description = "Tangut" },
+    ["tangutcomponents"]                           = { first = 0x18800, last = 0x18AFF,              description = "Tangut Components" },
     ["telugu"]                                     = { first = 0x00C00, last = 0x00C7F, otf="telu",  description = "Telugu" },
     ["thaana"]                                     = { first = 0x00780, last = 0x007BF, otf="thaa",  description = "Thaana" },
     ["thai"]                                       = { first = 0x00E00, last = 0x00E7F, otf="thai",  description = "Thai" },
@@ -674,16 +685,17 @@ characters.linebreaks = {
 
     -- non-tailorable line breaking classes
 
-    ["bk"] = "mandatory break",                              -- nl, ps : cause a line break (after)
-    ["cr"] = "carriage return",                              -- cr : cause a line break (after), except between cr and lf
-    ["lf"] = "line feed",                                    -- lf : cause a line break (after)
-    ["cm"] = "combining mark",                               -- combining marks, control codes : prohibit a line break between the character and the preceding character
-    ["nl"] = "next line",                                    -- nel : cause a line break (after)
-    ["sg"] = "surrogate",                                    -- surrogates :do not occur in well-formed text
-    ["wj"] = "word joiner",                                  -- wj : prohibit line breaks before and after
-    ["zw"] = "zero width space",                             -- zwsp : provide a break opportunity
-    ["gl"] = "non-breaking (glue)",                          -- cgj, nbsp, zwnbsp : prohibit line breaks before and after
-    ["sp"] = "space",                                        -- space : enable indirect line breaks
+    ["bk"]  = "mandatory break",                             -- nl, ps : cause a line break (after)
+    ["cr"]  = "carriage return",                             -- cr : cause a line break (after), except between cr and lf
+    ["lf"]  = "line feed",                                   -- lf : cause a line break (after)
+    ["cm"]  = "combining mark",                              -- combining marks, control codes : prohibit a line break between the character and the preceding character
+    ["nl"]  = "next line",                                   -- nel : cause a line break (after)
+    ["sg"]  = "surrogate",                                   -- surrogates :do not occur in well-formed text
+    ["wj"]  = "word joiner",                                 -- wj : prohibit line breaks before and after
+    ["zw"]  = "zero width space",                            -- zwsp : provide a break opportunity
+    ["gl"]  = "non-breaking (glue)",                         -- cgj, nbsp, zwnbsp : prohibit line breaks before and after
+    ["sp"]  = "space",                                       -- space : enable indirect line breaks
+    ["zwj"] = "zero width joiner",                           -- prohibit line breaks within joiner sequences
 
     -- break opportunities
 
@@ -716,6 +728,8 @@ characters.linebreaks = {
     ["ai"] = "ambiguous (alphabetic or ideographic)",        -- characters with ambiguous east asian width : act like al when the resolved eaw is n; otherwise, act as id
     ["al"] = "alphabetic",                                   -- alphabets and regular symbols : are alphabetic characters or symbols that are used with alphabetic characters
     ["cj"] = "conditional japanese starter",                 -- small kana : treat as ns or id for strict or normal breaking.
+    ["eb"] = "emoji base",                                   -- all emoji allowing modifiers, do not break from following emoji modifier
+    ["em"] = "emoji modifier",                               -- skin tone modifiers, do not break from preceding emoji base
     ["h2"] = "hangul lv syllable",                           -- hangul : form korean syllable blocks
     ["h3"] = "hangul lvt syllable",                          -- hangul : form korean syllable blocks
     ["hl"] = "hebrew letter",                                -- hebrew : do not break around a following hyphen; otherwise act as alphabetic
diff --git a/tex/context/base/mkiv/cont-fil.mkiv b/tex/context/base/mkiv/cont-fil.mkiv
index e4a63a30e..e2c7f401e 100644
--- a/tex/context/base/mkiv/cont-fil.mkiv
+++ b/tex/context/base/mkiv/cont-fil.mkiv
@@ -69,8 +69,10 @@
 \definefilesynonym [pre-stack]       [present-stack]
 \definefilesynonym [pre-arrows]      [pre-12]
 \definefilesynonym [pre-writing]     [pre-13]
-\definefilesynonym [pre-split]       [pre-14]
-\definefilesynonym [pre-balls]       [pre-15]
+\definefilesynonym [pre-split]       [present-split]
+\definefilesynonym [pre-14]          [present-split]
+\definefilesynonym [pre-balls]       [present-balls]
+\definefilesynonym [pre-15]          [present-balls]
 \definefilesynonym [pre-knot]        [pre-16]
 \definefilesynonym [pre-weird]       [pre-17]
 \definefilesynonym [pre-shade]       [pre-18]
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index ed4c07e2a..ef43de58e 100644
--- a/tex/context/base/mkiv/cont-new.mkiv
+++ b/tex/context/base/mkiv/cont-new.mkiv
@@ -11,7 +11,7 @@
 %C therefore copyrighted by \PRAGMA. See mreadme.pdf for
 %C details.
 
-\newcontextversion{2016.11.04 20:50}
+\newcontextversion{2016.11.17 14:19}
 
 %D This file is loaded at runtime, thereby providing an excellent place for
 %D hacks, patches, extensions and new features.
diff --git a/tex/context/base/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv
index 8e1364f90..86d730f92 100644
--- a/tex/context/base/mkiv/context.mkiv
+++ b/tex/context/base/mkiv/context.mkiv
@@ -39,7 +39,7 @@
 %D up and the dependencies are more consistent.
 
 \edef\contextformat {\jobname}
-\edef\contextversion{2016.11.04 20:50}
+\edef\contextversion{2016.11.17 14:19}
 \edef\contextkind   {beta}
 
 %D For those who want to use this:
diff --git a/tex/context/base/mkiv/font-ini.mkvi b/tex/context/base/mkiv/font-ini.mkvi
index 523c44b0b..ad36e2e25 100644
--- a/tex/context/base/mkiv/font-ini.mkvi
+++ b/tex/context/base/mkiv/font-ini.mkvi
@@ -647,25 +647,70 @@
 \def\font_basics_check_math_bodyfont#style#alternative#size%
   {}
 
+% \def\font_basics_check_text_bodyfont#style#alternative#size% size can be empty (checking needed as \bf is already defined)
+%   {\setugvalue{#style#size}{\font_helpers_set_current_font_style_size{#style}{#size}}% \rma
+%    \setugvalue{#alternative#size}{\font_helpers_set_current_font_alternative_size{#alternative}{#size}}% \sla
+%    \setugvalue{#style#alternative#size}{\font_helpers_set_current_font_style_alternative_size{#style}{#alternative}{#size}}% \rmsla
+%    \ifcsname\s!normal#style\endcsname % text/math check
+%      \expandafter\let\csname#style\expandafter\endcsname\csname\s!normal#style\endcsname
+%    \else
+%      \setugvalue{#style}{\font_helpers_set_current_font_style{#style}}% \rm
+%    \fi
+%    \ifcsname\s!normal#alternative\endcsname % text/math check
+%      \expandafter\let\csname#alternative\expandafter\endcsname\csname\s!normal#alternative\endcsname
+%    \else
+%      \setugvalue{#alternative}{\font_helpers_set_current_font_alternative{#alternative}}% \sl
+%    \fi
+%    \setugvalue{#style\s!x}{\font_helpers_set_current_font_x_style_alternative{#style}}% \rmx
+%    \setugvalue{#style\s!xx}{\font_helpers_set_current_font_xx_style_alternative{#style}}% \rmxx
+%    \setugvalue{#alternative\s!x}{\font_helpers_set_current_font_x_alternative{#alternative}}% \slx
+%    \setugvalue{#alternative\s!xx}{\font_helpers_set_current_font_xx_alternative{#alternative}}% \slxx
+%    \setugvalue{#style#alternative}{\font_helpers_set_current_font_style_alternative{#style}{#alternative}}}% \rmsl
+
+% \def\font_basics_check_text_bodyfont#style#alternative#size% size can be empty (checking needed as \bf is already defined)
+%   {\ifcsname#style#size\endcsname\else
+%      \setugvalue{#style#size}{\font_helpers_set_current_font_style_size{#style}{#size}}% \rma
+%    \fi
+%    \ifcsname#alternative#size\endcsname\else
+%      \setugvalue{#alternative#size}{\font_helpers_set_current_font_alternative_size{#alternative}{#size}}% \sla
+%    \fi
+%    \ifcsname#style#alternative#size\endcsname\else
+%      \setugvalue{#style#alternative#size}{\font_helpers_set_current_font_style_alternative_size{#style}{#alternative}{#size}}% \rmsla
+%    \fi
+%    \ifcsname#style\endcsname\else
+%      \setugvalue{#style}{\font_helpers_set_current_font_style{#style}}% \rm
+%    \fi
+%    \ifcsname#alternative\endcsname\else
+%      \setugvalue{#alternative}{\font_helpers_set_current_font_alternative{#alternative}}% \sl
+%    \fi
+%    \ifcsname#style\s!x\endcsname\else
+%      \setugvalue{#style\s!x }{\font_helpers_set_current_font_x_style_alternative{#style}}% \rmx
+%      \setugvalue{#style\s!xx}{\font_helpers_set_current_font_xx_style_alternative{#style}}% \rmxx
+%    \fi
+%    \ifcsname#alternative\s!x\endcsname\else
+%      \setugvalue{#alternative\s!x }{\font_helpers_set_current_font_x_alternative{#alternative}}% \slx
+%      \setugvalue{#alternative\s!xx}{\font_helpers_set_current_font_xx_alternative{#alternative}}% \slxx
+%    \fi
+%    \ifcsname#style#alternative\endcsname\else
+%      \setugvalue{#style#alternative}{\font_helpers_set_current_font_style_alternative{#style}{#alternative}}% \rmsl
+%    \fi}
+
+\def\font_basics_check_text_bodyfont_step#whatever#body% size can be empty (checking needed as \bf is already defined)
+  {\ifcsname#whatever\endcsname\else
+     \setugvalue{#whatever}{#body}%
+   \fi}
+
 \def\font_basics_check_text_bodyfont#style#alternative#size% size can be empty (checking needed as \bf is already defined)
-  {\setugvalue{#style#size}{\font_helpers_set_current_font_style_size{#style}{#size}}% \rma
-   \setugvalue{#alternative#size}{\font_helpers_set_current_font_alternative_size{#alternative}{#size}}% \sla
-   \setugvalue{#style#alternative#size}{\font_helpers_set_current_font_style_alternative_size{#style}{#alternative}{#size}}% \rmsla
-   \ifcsname\s!normal#style\endcsname % text/math check
-     \expandafter\let\csname#style\expandafter\endcsname\csname\s!normal#style\endcsname
-   \else
-     \setugvalue{#style}{\font_helpers_set_current_font_style{#style}}% \rm
-   \fi
-   \ifcsname\s!normal#alternative\endcsname % text/math check
-     \expandafter\let\csname#alternative\expandafter\endcsname\csname\s!normal#alternative\endcsname
-   \else
-     \setugvalue{#alternative}{\font_helpers_set_current_font_alternative{#alternative}}% \sl
-   \fi
-   \setugvalue{#style\s!x}{\font_helpers_set_current_font_x_style_alternative{#style}}% \rmx
-   \setugvalue{#style\s!xx}{\font_helpers_set_current_font_xx_style_alternative{#style}}% \rmxx
-   \setugvalue{#alternative\s!x}{\font_helpers_set_current_font_x_alternative{#alternative}}% \slx
-   \setugvalue{#alternative\s!xx}{\font_helpers_set_current_font_xx_alternative{#alternative}}% \slxx
-   \setugvalue{#style#alternative}{\font_helpers_set_current_font_style_alternative{#style}{#alternative}}}% \rmsl
+  {\font_basics_check_text_bodyfont_step{#style#size}{\font_helpers_set_current_font_style_size{#style}{#size}}% \rma
+   \font_basics_check_text_bodyfont_step{#alternative#size}{\font_helpers_set_current_font_alternative_size{#alternative}{#size}}% \sla
+   \font_basics_check_text_bodyfont_step{#style#alternative#size}{\font_helpers_set_current_font_style_alternative_size{#style}{#alternative}{#size}}% \rmsla
+   \font_basics_check_text_bodyfont_step{#style}{\font_helpers_set_current_font_style{#style}}% \rm
+   \font_basics_check_text_bodyfont_step{#alternative}{\font_helpers_set_current_font_alternative{#alternative}}% \sl
+   \font_basics_check_text_bodyfont_step{#style\s!x }{\font_helpers_set_current_font_x_style_alternative{#style}}% \rmx
+   \font_basics_check_text_bodyfont_step{#style\s!xx}{\font_helpers_set_current_font_xx_style_alternative{#style}}% \rmxx
+   \font_basics_check_text_bodyfont_step{#alternative\s!x }{\font_helpers_set_current_font_x_alternative{#alternative}}% \slx
+   \font_basics_check_text_bodyfont_step{#alternative\s!xx}{\font_helpers_set_current_font_xx_alternative{#alternative}}% \slxx
+   \font_basics_check_text_bodyfont_step{#style#alternative}{\font_helpers_set_current_font_style_alternative{#style}{#alternative}}}% \rmsl
 
 %D Scaling macros:
 %D
@@ -2411,7 +2456,6 @@
 \unexpanded\def\switchtobodyfont[#specification]% could become an ifx
   {\doifsomething{#specification}{\font_basics_switchtobodyfont{#specification}}}
 
-
 \unexpanded\def\usebodyfontparameter#1%
   {\edef\m_font_bodyfont_asked{#1\c!bodyfont}%
    \ifx\m_font_bodyfont_asked\empty\else
diff --git a/tex/context/base/mkiv/lxml-tex.lua b/tex/context/base/mkiv/lxml-tex.lua
index eb7d15de8..c9675d435 100644
--- a/tex/context/base/mkiv/lxml-tex.lua
+++ b/tex/context/base/mkiv/lxml-tex.lua
@@ -1404,7 +1404,7 @@ local function attribute(collected,a,default)
     end
 end
 
-local function chainattribute(collected,arguments) -- todo: optional levels
+local function chainattribute(collected,arguments,default) -- todo: optional levels
     if collected and #collected > 0 then
         local e = collected[1]
         while e do
@@ -1413,6 +1413,7 @@ local function chainattribute(collected,arguments) -- todo: optional levels
                 local a = at[arguments]
                 if a then
                     contextsprint(notcatcodes,a)
+                    return
                 end
             else
                 break -- error
@@ -1420,6 +1421,9 @@ local function chainattribute(collected,arguments) -- todo: optional levels
             e = e.__p__
         end
     end
+    if default then
+        contextsprint(notcatcodes,default)
+    end
 end
 
 local function chainpath(collected,nonamespace)
diff --git a/tex/context/base/mkiv/math-del.mkiv b/tex/context/base/mkiv/math-del.mkiv
index 9629d595d..269b6946a 100644
--- a/tex/context/base/mkiv/math-del.mkiv
+++ b/tex/context/base/mkiv/math-del.mkiv
@@ -130,7 +130,10 @@
 
 % \setupmathextensible[integral][rightoffset=-3mu,exact=yes,factor=2]
 %
-% \let\int\integral
+% \let\inlineint \int
+% \let\displayint\integral
+%
+% \unexpanded\def\int{\ifmmode\inlineordisplaymath\inlineint\displayint\else\normalint\fi}
 %
 % \startlines
 % \ruledhbox{$\integral           f\frac{1}{2}$}
diff --git a/tex/context/base/mkiv/math-ini.mkiv b/tex/context/base/mkiv/math-ini.mkiv
index 773e77536..d1a339e82 100644
--- a/tex/context/base/mkiv/math-ini.mkiv
+++ b/tex/context/base/mkiv/math-ini.mkiv
@@ -19,6 +19,10 @@
 % todo: 0x2062 : invisible times
 % todo: 0x2063 : invisible comma
 
+% a bit tricky way to set ... no (pseudo) registers but math hash values:
+%
+% \normalexpanded{\Umathlimitabovevgap\displaystyle=40\dimexpr\the\Umathlimitabovevgap\displaystyle\relax}
+
 % Todo in luatex maincontrol.w: also accept a number here:
 %
 %    case set_math_param_cmd:
diff --git a/tex/context/base/mkiv/scrn-but.mkvi b/tex/context/base/mkiv/scrn-but.mkvi
index 98d9f2daa..65b0d2c4e 100644
--- a/tex/context/base/mkiv/scrn-but.mkvi
+++ b/tex/context/base/mkiv/scrn-but.mkvi
@@ -408,7 +408,8 @@
 %D \stoptyping
 %D
 %D The no longer hard coded text areas offset compensation makes tuning
-%D easier. After all, menus need some setup anyway.
+%D easier. After all, menus need some setup anyway. The offsets are
+%D added to the width or height (this is different from \MKII).
 
 \newbox  \b_scrn_menu
 
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index 3b2304159..6e8fc1812 100644
Binary files a/tex/context/base/mkiv/status-files.pdf and b/tex/context/base/mkiv/status-files.pdf differ
diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf
index c64546d95..c2a03b263 100644
Binary files a/tex/context/base/mkiv/status-lua.pdf and b/tex/context/base/mkiv/status-lua.pdf differ
diff --git a/tex/context/base/mkiv/strc-con.mkvi b/tex/context/base/mkiv/strc-con.mkvi
index 36c5d1b42..396869608 100644
--- a/tex/context/base/mkiv/strc-con.mkvi
+++ b/tex/context/base/mkiv/strc-con.mkvi
@@ -692,8 +692,7 @@
     \edef\p_strc_constructions_inbetween{\constructionparameter\c!inbetween}%
     \ifx\p_strc_constructions_inbetween\empty \else
       \p_strc_constructions_inbetween
-      \par
-      \nobreak
+      \directcheckedvspacing\v!samepage
     \fi
     \useconstructionstyleandcolor\c!style\c!color
     \ignorespaces
diff --git a/tex/context/base/mkiv/tabl-tab.mkiv b/tex/context/base/mkiv/tabl-tab.mkiv
index e238447b9..76f7f76c3 100644
--- a/tex/context/base/mkiv/tabl-tab.mkiv
+++ b/tex/context/base/mkiv/tabl-tab.mkiv
@@ -981,7 +981,10 @@
 \def\tabl_table_normal_full_rule
   {\starttablenoalign
    \!ttGetHalfRuleThickness
+   \scratchdistance\directtablesparameter\c!openup
+   \ifzeropt\scratchdistance\else\kern\scratchdistance\fi
    \hrule\s!height\scratchdimen\s!depth\scratchdimen
+   \ifzeropt\scratchdistance\else\kern\scratchdistance\fi
    \stoptablenoalign}
 
 \def\tabl_table_normal_short_rule % was: \!ttShortHrule
@@ -2268,6 +2271,7 @@
    \c!commands=,
    \c!background=,
    \c!backgroundcolor=,
-   \c!split=\v!auto]
+   \c!split=\v!auto,
+   \c!openup=\zeropoint]
 
 \protect \endinput
diff --git a/tex/context/interface/mkiv/i-context.pdf b/tex/context/interface/mkiv/i-context.pdf
index 0c266d81b..4d982bbe8 100644
Binary files a/tex/context/interface/mkiv/i-context.pdf and b/tex/context/interface/mkiv/i-context.pdf differ
diff --git a/tex/context/interface/mkiv/i-readme.pdf b/tex/context/interface/mkiv/i-readme.pdf
index fa27198d2..d17b063bb 100644
Binary files a/tex/context/interface/mkiv/i-readme.pdf and b/tex/context/interface/mkiv/i-readme.pdf differ
diff --git a/tex/context/interface/mkiv/i-table.xml b/tex/context/interface/mkiv/i-table.xml
index 9aeceec8c..950a9ff34 100644
--- a/tex/context/interface/mkiv/i-table.xml
+++ b/tex/context/interface/mkiv/i-table.xml
@@ -117,6 +117,9 @@
                     <cd:constant type="strut"/>
                     <cd:constant type="cd:number"/>
                 </cd:parameter>
+                <cd:parameter name="openup">
+                    <cd:constant type="cd:dimension"/>
+                </cd:parameter>
             </cd:assignments>
         </cd:arguments>
     </cd:command>
diff --git a/tex/context/modules/common/s-pre-14.tex b/tex/context/modules/common/s-pre-14.tex
deleted file mode 100644
index 4dae6c009..000000000
--- a/tex/context/modules/common/s-pre-14.tex
+++ /dev/null
@@ -1,263 +0,0 @@
-%D \module
-%D   [      file=s-pre-14,
-%D        version=1999.08.20,
-%D          title=\CONTEXT\ Style File,
-%D       subtitle=Presentation Environment 14,
-%D         author=Hans Hagen,
-%D           date=\currentdate,
-%D      copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D In the process of making a couple of simple styles for
-%D \EUROTEX\ 99, I came to this one. The joke is in the
-%D pagenumber. This style can be used for short presentations
-%D with much text.
-
-\startmode[asintended] \setupbodyfont[lbr] \stopmode
-
-\setupbodyfont[14.4pt]
-
-%D Since we expect text, we can best be very tolerant.
-
-\setuptolerance
-  [verytolerant,stretch]
-
-%D As most styles we choose a large screen page size.
-
-\setuppapersize
-  [S6][S6]
-
-\setuplayout
-  [width=fit,
-   rightedge=3cm,
-   margin=0pt,
-   rightedgedistance=2cm,
-   height=middle,
-   header=0pt,
-   footer=0pt,
-   topspace=1cm,
-   backspace=1cm]
-
-%D We only use two colors, named \type {One} and \type
-%D {Two}:
-
-\setupcolors
-  [state=start]
-
-\definecolor [One] [r=.6,g=.4,b=.4]
-\definecolor [Two] [r=.4,g=.6,b=.6]
-
-%D If you've looked at the demo file, you will have noticed
-%D that the background consists of four pieces: two filled
-%D rectangles and two half numbers. These are put on th epage
-%D using four overlays:
-
-\setupbackgrounds
-  [page]
-  [background={one,two,three,four}]
-
-%D When we code this in \TEX, we get the following
-%D definitions. As an alternative we coudl have used layers
-%D but I'm afraid that it would not have led to less code.
-
-\defineoverlay
-  [one]
-  [{\framed
-     [frame=off,background=color,backgroundcolor=Two,
-      width=\overlaywidth,height=\overlayheight]
-     {}}]
-
-\defineoverlay
-  [three]
-  [{\hbox to \overlaywidth
-      {\hfill\SetOverlayWidth
-       \framed
-         [frame=off,background=color,backgroundcolor=One,
-          width=\overlaywidth,height=\overlayheight]
-         {}}}]
-
-%D We could have used the main backgroundcolor instead of
-%D overlay \type {one}.
-
-\definefont[NumberFont][RegularBold at 3cm]
-
-\defineoverlay
-  [two]
-  [{\framed
-     [frame=off,width=\overlaywidth,height=\overlayheight,
-      offset=overlay]
-     {\vfill
-      \NumberFont\setstrut\SetOverlayWidth
-      \hbox to \hsize
-         {\hfill
-          \setupinteraction[style=,color=]%
-          \setbox0=\hbox{\strut\One\pagenumber}%
-          \hbox to 0pt{\hss\gotobox{\box0}[previouspage]\hss}%
-          \hskip\overlaywidth}}}]
-
-\defineoverlay
-  [four]
-  [{\framed
-     [frame=off,width=\overlaywidth,height=\overlayheight,offset=overlay]
-     {\vfill
-      \hbox to \hsize
-        {\hfill
-         \SetOverlayWidth
-         \framed
-           [frame=off,width=\overlaywidth,height=\overlayheight,offset=overlay]
-           {\vfill\NumberFont\setstrut
-            \setbox0=\hbox{\strut\Two\pagenumber}%
-            \setbox2=\hbox{\clip[nx=2,ny=1,x=2,y=1]{\copy0}}%
-            \dp2=\dp0
-            \hbox to \hsize{\hbox to 0pt{\hss\hskip.5\wd0\box2\hss}\hfill}}}}}]
-
-\def\SetOverlayWidth%
-  {\scratchdimen         =  \rightedgedistance
-   \divide\scratchdimen  by 2
-   \advance\scratchdimen by \rightedgewidth
-   \advance\scratchdimen by \backspace
-   \edef\overlaywidth{\the\scratchdimen}}
-
-%D A much cleaner implementation is the following. If you hate
-%D \METAPOST, you can run this style in the specified mode:
-
-\startnotmode[no-metapost]
-
-\setupbackgrounds
-  [page]
-  [background={number}]
-
-\defineoverlay[number][\useMPgraphic{number}]
-
-\startuseMPgraphic{number}
-  StartPage ;
-    path Vage ; picture Left, Right ;
-    x1 = x2 = xpart (llcorner Field[Text][RightEdge] shifted (-RightEdgeDistance/2,0)) ;
-    y1 = ypart llcorner Page ;
-    y2 = ypart ulcorner Page ;
-    Vage := llcorner Page -- z1 -- z2 -- ulcorner Page -- cycle ;
-    fill Page withcolor \MPcolor {One} ;
-    fill Vage withcolor \MPcolor {Two} ;
-    if PageNumber>0 :
-      defaultfont  := "\truefontname{RegularBold}" ;
-      Left := Right := thelabel("\folio",origin) ysized 3cm ;
-      clip Right to boundingbox Right shifted (bbwidth(Right)/2,0) ;
-      draw Left  shifted z1 shifted (0,2.25cm) withcolor \MPcolor {One} ;
-      draw Right shifted z1 shifted (0,2.25cm) withcolor \MPcolor {Two} ;
-    fi ;
-  StopPage ;
-\stopuseMPgraphic
-
-\stopnotmode
-
-%D We use the simple label typesetting present in \METAPOST\
-%D because digits are seldom kerned so real \TEX ing is not
-%D needed. As in the previous method, we let the graphics
-%D overlap so that we don't get white lines due to rounding
-%D problems in viewers.
-%D
-%D We put a  button behind the text (this overlay is calculated
-%D each page).
-
-\defineoverlay
-  [nextpage]
-  [\overlaybutton{nextpage}]
-
-\setupbackgrounds
-  [text]
-  [backgroundoffset=.5cm,
-   background=nextpage]
-
-%D We still have to turn on interaction mode.
-
-\setupinteraction
-  [state=start,
-   display=new,
-   menu=on]
-
-\setupinteraction
-  [color=,
-   contrastcolor=]
-
-%D Next we define structuring commands.
-
-\definehead[Topic]  [chapter] \setuphead[Topic]  [style=\bfc]
-\definehead[Subject][section] \setuphead[Subject][style=\bfa]
-
-\setuphead
-  [Topic, Subject]
-  [number=no,
-   after={\blank[big]}]
-
-%D Because we will provide a menu, we don't offer lists.
-
-\let\Topics  \gobbleoneargument
-\let\Subjects\relax
-
-%D The table of contents goes to the right edge.
-
-\startinteractionmenu[right]
-  \setupinteraction
-    [color=black,
-     contrastcolor=Two]
-  \placelist
-    [Topic]
-    [alternative=e,
-     frame=off,
-     criterium=all]
-  \vfill
-\stopinteractionmenu
-
-\setuplist
-  [Topic]
-  [width=\rightedgewidth,
-   maxwidth=\rightedgewidth,
-   style=\bfa]
-
-%D We safe some space:
-
-\setupwhitespace
-  [medium]
-
-\setupblank
-  [medium]
-
-%D In the titlepage, we still use the \TEX\ overlays,
-%D so that we don't have to define a second graphic.
-
-\def\TitlePage#1%
-  {\StartTitlePage#1\StopTitlePage}
-
-\def\StartTitlePage%
-  {\bgroup
-   \setupbackgrounds[page][background={one,three}]
-   \startstandardmakeup
-     \setupalign[middle]
-     \def\\{\vfil\bfb\setupinterlinespace}
-     \bfd\setupinterlinespace
-     \vfil}
-
-\def\StopTitlePage%
-  {\vfil\vfil\vfil
-   \stopstandardmakeup
-   \egroup}
-
-%D This is it.
-
-\doifnotmode{demo}{\endinput}
-
-\starttext
-
-\TitlePage{Some Quotes\\(that you probably know by now)}
-
-\Topic{Tufte}   \input tufte
-\Topic{Knuth}   \input knuth
-\Topic{Reich}   \input reich
-\Topic{Zapf}    \input zapf
-\Topic{Materie} \input materie
-%Topic{Stork}   \input stork
-
-\stoptext
diff --git a/tex/context/modules/common/s-pre-15.tex b/tex/context/modules/common/s-pre-15.tex
deleted file mode 100644
index 90d428243..000000000
--- a/tex/context/modules/common/s-pre-15.tex
+++ /dev/null
@@ -1,186 +0,0 @@
-%D \module
-%D   [      file=s-pre-15,
-%D        version=1999.09.01,
-%D          title=\CONTEXT\ Style File,
-%D       subtitle=Presentation Environment 15,
-%D         author=Hans Hagen,
-%D           date=\currentdate,
-%D      copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This is one of the styles I made for the presentation on
-%D the \NTS\ project at Euro\TeX\ 1998. You need balls to let
-%D \TEX\ typeset graphics, but this style demonstrates that it
-%D can be done.
-%D
-%D This presentation is meant for presentations that build up
-%D an idea stepwise.
-%D
-%D \starttyping
-%D \TitlePage{Do you know \TEX ?}
-%D
-%D \StartIdea
-%D   \StartItem We use \TEX\ for typesetting       \unknown \StopItem
-%D   \StartItem mathematical text                  \unknown \StopItem
-%D   \StartItem but also for text that has no math \unknown \StopItem
-%D   \StartItem or presentations like this         \unknown \StopItem
-%D   \StartItem and whatever you can come up with!          \StopItem
-%D \StopIdea
-%D \stoptyping
-
-%D The basic layout is rather simple and used as much of the
-%D screen as possible.
-
-\setuppapersize
-  [S6][S6]
-
-\setuplayout
-  [backspace=25pt,
-   topspace=25pt,
-   width=middle,
-   height=middle,
-   header=0pt,
-   footer=0pt]
-
-\setupinteraction
-  [state=start,
-   display=new,
-   color=LineColor,
-   contrastcolor=LineColor,
-   click=no]
-
-\setupinteractionscreen
-  [option=max]
-
-\startmode[asintended] \setupbodyfont[lbr] \stopmode
-
-\setupbodyfont[14.4pt]
-
-%D We use a lot of color. You can remap them if you want
-%D differend ones. The ideas circulate over the colors.
-
-\setupcolors
-  [state=start]
-
-\definecolor[TextColor][s=.8]
-\definecolor[PageColor][s=.6]
-\definecolor[LineColor][s=.4]
-
-\definecolor[red]  [r=.4]        \definecolor[cyan]   [g=.4,b=.4]
-\definecolor[green][g=.4]        \definecolor[magenta][r=.4,b=.4]
-\definecolor[blue] [b=.4]        \definecolor[yellow] [r=.4,g=.4]
-
-\definecolor[linecolor 1][red]   \definecolor[linecolor 5][cyan]
-\definecolor[linecolor 2][green] \definecolor[linecolor 6][magenta]
-\definecolor[linecolor 3][blue]  \definecolor[linecolor 4][yellow]
-
-%D We use variables to make sure that the graphics are reused
-%D but unique.
-
-\setupMPvariables[pageframe][pagecolor=PageColor,linecolor=LineColor]
-\setupMPvariables[textframe][textcolor=TextColor,linecolor=LineColor]
-
-\setupbackgrounds
-  [page]
-  [background={pageframe,nextpage}]
-
-\defineoverlay [pageframe] [\uniqueMPgraphic{pageframe}]
-\defineoverlay [textframe] [\uniqueMPgraphic{textframe}]
-\defineoverlay [nextpage]  [\overlaybutton{forward}]
-
-\startuniqueMPgraphic{pageframe}{pagecolor,linecolor}
-  path p ; p := fullsquare xyscaled (\overlaywidth,\overlayheight) ;
-  pickup pencircle scaled 10pt ;
-  fill p withcolor \MPvar{pagecolor} ;
-  draw p withcolor \MPvar{linecolor} ;
-\stopuniqueMPgraphic
-
-\startuniqueMPgraphic{textframe}{textcolor,linecolor}
-  path p ; p := fullcircle xyscaled (\overlaywidth,\overlayheight) ;
-  pickup pencircle scaled 10pt ;
-  fill p withcolor \MPvar{textcolor} ;
-  draw p withcolor \MPvar{linecolor} ;
-\stopuniqueMPgraphic
-
-%D The rest of the file implements the nasty part: typesetting
-%D text embedded in a graphic. The text is collected in a box
-%D so that we can reuse it.
-
-\newbox\CollectedIdeas
-\newcounter\CurrentTopic
-
-\def\StartItem%
-  {\setbox\CollectedIdeas=\hbox\bgroup
-     \ifdim\wd\CollectedIdeas>0pt \unhbox\CollectedIdeas\hskip25pt \fi
-     \setbox\scratchbox=\hbox\bgroup
-       \framed
-         [width=160pt,height=160pt,align=middle,frame=off,
-          background=textframe,offset=15pt,top=\vfill,bottom=\vfill]
-        \bgroup}
-
-\def\StopItem%
-  {\egroup
-   \egroup
-   \setbox\scratchbox=\hbox{\lower.5\ht\scratchbox\box\scratchbox}%
-   \ht\scratchbox=.5\ht\scratchbox
-   \dp\scratchbox=  \ht\scratchbox
-   \box\scratchbox
-   \egroup
-   \startstandardmakeup
-     \dontcomplain
-     \leftskip       0pt plus 50pt
-     \rightskip      0pt plus 50pt
-     \parfillskip    0pt
-     \baselineskip 100pt
-     \unhcopy\CollectedIdeas
-   \stopstandardmakeup}
-
-\def\StartIdea%
-  {\ifnum\CurrentTopic=6 \doglobal\newcounter\CurrentTopic \fi
-   \doglobal\increment\CurrentTopic
-   \definecolor[LineColor][linecolor \CurrentTopic]
-   \setbox\CollectedIdeas=\null}
-
-\def\StopIdea%
-  {}
-
-\def\StartTitlePage%
-  {\startstandardmakeup
-   \setupalign[middle]
-   \def\\{\vfil\bfb\setupinterlinespace}
-   \bfd\setupinterlinespace
-   \vfil}
-
-\def\StopTitlePage%
-  {\vfil\vfil
-   \stopstandardmakeup}
-
-\def\TitlePage#1%
-  {\StartTitlePage#1\StopTitlePage}
-
-\doifnotmode{demo}{\endinput}
-
-%D A simple test on functionality.
-
-\setupoutput[pdftex]
-
-\starttext
-
-\TitlePage{Do you know \TEX ?}
-
-\startbuffer
-\StartIdea
-  \StartItem We use \TEX\ for typesetting       \unknown \StopItem
-  \StartItem mathematical text                  \unknown \StopItem
-  \StartItem but also for text that has no math \unknown \StopItem
-  \StartItem or presentations like this         \unknown \StopItem
-  \StartItem and whatever you can come up with!          \StopItem
-\StopIdea
-\stopbuffer
-
-\dorecurse{6}{\getbuffer}
-
-\stoptext
diff --git a/tex/context/modules/common/s-pre-19.tex b/tex/context/modules/common/s-pre-19.tex
deleted file mode 100644
index 991d311ce..000000000
--- a/tex/context/modules/common/s-pre-19.tex
+++ /dev/null
@@ -1,347 +0,0 @@
-%D \module
-%D   [      file=s-pre-19,
-%D        version=2000.07.31,
-%D          title=\CONTEXT\ Style File,
-%D       subtitle=Presentation Environment 19,
-%D         author=Hans Hagen,
-%D           date=\currentdate,
-%D      copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This style is made in the process or writing the \METAFUN\
-%D manual. It exploits a few tricks, like graphics calculated
-%D using positional information. It also uses the (at that
-%D moment) new menu list placement alternative. If you forget
-%D about the definition of the button shapes, which is
-%D complicated in any system, this style is not even that hard
-%D to follow. Watch how the left side of the buttons follow
-%D the right side of the text graphic.
-%D
-%D While playing bit with this style, the random alternative
-%D made me think of those organic building with non equal
-%D windows (we have a few in The Netherlands), so I decided to
-%D label this style as \type {pre-organic}.
-%D
-%D At the end of this file, there is a small test file, so
-%D when you process this file with \TEXEXEC\ and the options
-%D \type {--mode=demo} and \type {--pdf}, you will get a demo
-%D document.
-
-%D We use one of the standard screen \quote {paper} sizes, and
-%D map it onto the same size, so that we get a nicely cropped
-%D page.
-
-\setuppapersize
-  [S6][S6]
-
-%D Like in the \METAFUN\ manual, we use the Palatino as main
-%D bodyfont. This font is quite readable on even low
-%D resolution screens, although I admit that this style is
-%D developed using an $1400\times1050$ pixel LCD screen, so I
-%D may be biased.
-
-%\startmode[asintended] \setupbodyfont[ppl] \stopmode
-
-%D The layout specification sets up a text area and a right
-%D edge area where the menus will go. Watch the rather large
-%D edge distance. By setting the header and footer dimensions
-%D to zero, we automatically get rid of page body ornaments,
-%D like the pagenumber.
-
-\setuplayout
-  [topspace=48pt,
-   backspace=48pt,
-   cutspace=12pt,
-   width=400pt,
-   margin=0cm,
-   rightedge=88pt,
-   rightedgedistance=48pt,
-   header=0cm,
-   footer=0cm,
-   height=middle]
-
-%D We use a moderate, about a line height, interparagraph
-%D white space.
-
-\setupwhitespace
-  [big]
-
-%D Of course we use colors, since on computer displays they
-%D come for free.
-
-\setupcolors
-  [state=start]
-
-\definecolor [red]    [r=.75]
-\definecolor [yellow] [r=.75,g=.75]
-\definecolor [gray]   [s=.50]
-\definecolor [white]  [s=.85]
-
-\definecolor [PageColor]        [yellow]
-\definecolor [TextColor]        [white]
-\definecolor [OrnamentColor]    [red]
-\definecolor [InteractionColor] [red]
-\definecolor [ContrastColor]    [gray]
-
-%D This is an interactive document, so we enable interaction.
-%D In this style, we disable the viewer's \quote {highlight a
-%D hyperlink when it's clicked on} feature. We will use a
-%D menu, so we enable menus. Later we will see the contract
-%D color |<|hyperlinks gets that color when we are already on
-%D the location|>| in action.
-
-\setupinteraction
-  [state=start,
-   click=off,
-   color=InteractionColor,
-   contrastcolor=ContrastColor,
-   menu=on]
-
-%D The menu itself is set up as follows. Because we will
-%D calculate menubuttons based on their position on the page,
-%D we have to keep track of the positions. Therefore, we set
-%D the \type {position} variable to \type {yes}.
-
-\setupinteractionmenu
-  [right]
-  [frame=off,
-   position=yes,
-   align=middle,
-   topoffset=-.75cm,
-   bottomoffset=-.75cm,
-   color=gray,
-   contrastcolor=gray,
-   style=bold,
-   before=,
-   after=]
-
-%D The menu content is rather sober: a list of topics (later
-%D we will define the command that generates topic entries),
-%D and a close button.
-
-\startinteractionmenu[right]
-  \placelist[Topic][alternative=right]
-  \vfill
-  \but [CloseDocument] close \\
-\stopinteractionmenu
-
-%D We have now arived at the more interesting part of the style
-%D definition: the graphic that goes in the page background.
-%D Because this graphic will change, we define a usable
-%D \METAPOST\ graphic. Page backgrounds are recalculated each
-%D page, opposite to the other backgrounds that are calculated
-%D when a new background is defined, or when repetitive
-%D calculation is turned on.
-
-\setupbackgrounds
-  [page]
-  [background=page]
-
-\defineoverlay
-  [page]
-  [\useMPgraphic{page}]
-
-\setupMPvariables
-  [page]
-  [alternative=3]
-
-\startuseMPgraphic{page}
-
-  \includeMPgraphic{rightsuperbutton}
-
-  StartPage ;
-
-    path p, q ; pickup pencircle scaled 3pt ;
-
-    p := Field[Text][Text] enlarged 36pt superellipsed .90 ;
-
-    fill Page withcolor \MPcolor{PageColor} ;
-    fill p    withcolor \MPcolor{TextColor} ;
-    draw p    withcolor \MPcolor{OrnamentColor} ;
-
-    p := Field[Text][Text] enlarged 48pt superellipsed .90 ;
-
-    def right_menu_button (expr nn, rr, pp, xx, yy, ww, hh, dd) =
-      if (pp>0) and (rr>0) :
-        q := rightsuperbutton(p,xx,yy,RightEdgeWidth,hh) ;
-        fill q withcolor \MPcolor{TextColor} ;
-        draw q withcolor if rr=2 : \MPcolor{ContrastColor}
-                            else : \MPcolor{InteractionColor} fi ;
-      fi ;
-    enddef ;
-
-    \MPmenubuttons{right}
-
-  StopPage ;
-\stopuseMPgraphic
-
-\startuseMPgraphic{page}
-
-  \includeMPgraphic{rightsuperbutton}
-
-  StartPage ;
-
-    numeric alternative, seed, superness, squeezeness, randomness ;
-    path p, q ; transform t ;
-
-    alternative := \MPvar{alternative} ;
-    seed        := uniformdeviate 100 ;
-
-    if alternative > 10 :
-      superness   := .85  + ((\realfolio-1)/\lastpage) * .15 ;
-      squeezeness := 12pt - ((\realfolio-1)/\lastpage) * 10pt ;
-    else :
-      superness   := .90 ;
-      squeezeness := 12pt ;
-    fi ;
-
-    randomness := squeezeness ;
-
-    alternative := alternative mod 10 ;
-
-    t := identity if alternative=3: shifted (9pt,-9pt) fi ;
-
-    % first we draw the shape that surrounds the text
-
-    randomseed := seed ;
-
-    p := Field[Text][Text] enlarged if
-      alternative = 1 : 36pt superellipsed superness   elseif
-      alternative = 2 : 36pt squeezed      squeezeness elseif
-      alternative = 3 : 36pt randomized    randomness  else
-                      : 36pt                           fi ;
-    pickup pencircle scaled 3pt ;
-
-    fill Page withcolor \MPcolor{PageColor} ;
-    fill p    withcolor \MPcolor{TextColor} ;
-    draw p    withcolor \MPcolor{OrnamentColor} ;
-
-    % we set p to the wider shape from which we will chip off pieces
-
-    randomseed := seed ;
-
-    p := ( Field[Text][Text] enlarged if
-      alternative = 1 : 48pt superellipsed superness   elseif
-      alternative = 2 : 48pt squeezed      squeezeness elseif
-      alternative = 3 : 36pt randomized    randomness  else
-                      : 48pt                           fi ) transformed t ;
-
-    % calls to *_menu_button are generated automatically ...
-
-    vardef right_menu_button (expr nn, rr, pp, xx, yy, ww, hh, dd) =
-      save q ; path q ;
-      if (pp>0) and (rr>0) :
-        q := rightsuperbutton(p,xx,yy,RightEdgeWidth,hh) ; % \MPw{menu:right:\realfolio}
-        fill q withcolor \MPcolor{TextColor} ;
-        draw q withcolor if rr=2 : \MPcolor{ContrastColor}
-                            else : \MPcolor{InteractionColor} fi ;
-      fi ;
-    enddef ;
-
-    % ... and inserted when the graphic data is flushed here ...
-
-    \MPmenubuttons{right}
-
-  StopPage ;
-\stopuseMPgraphic
-
-\startuseMPgraphic{rightsuperbutton}
-
-vardef rightsuperbutton (expr pat, xpos, ypos, wid, hei) =
-
-  save p, ptop, pbot, t, b, edge, shift, width, height ;
-  path p, ptop, pbot ; pair t, b ; numeric edge, shift, width, height ;
-
-  edge  := xpos + wid ; shift := ypos + hei ;
-
-  p := rightpath pat ;
-
-  ptop := ((-infinity,shift)--(edge,shift)) ;
-  pbot := ((-infinity,shift-hei)--(edge,shift-hei)) ;
-
-  t := p intersection_point ptop ;
-  b := p intersection_point pbot ;
-
-  p := subpath(0,xpart (p intersectiontimes ptop)) of p ;
-  p := subpath(xpart (p intersectiontimes pbot),length(p)) of p ;
-
-  (p --               t -- point 1 of ptop &
-        point 1 of ptop -- point 1 of pbot &
-        point 1 of pbot -- b
-     -- cycle)
-
-enddef ;
-
-\stopuseMPgraphic
-
-%D Topics are identified with \type {\Topic}, which is an
-%D instance of chapter headings. The number is made invisible.
-%D Since it still is a numbered section header, \CONTEXT\ will
-%D write the header to the table of contents.
-
-\definehead
-  [Topic]
-  [chapter]
-
-\setuphead
-  [Topic]
-  [number=no]
-
-%D We will use a bold font in the table of contents. We also
-%D force a complete list.
-
-\setuplist
-  [Topic]
-  [criterium=all,
-   style=bold,
-   before=,
-   after=]
-
-%D The \type {\TitlePage} macro looks horrible, because we
-%D want to keep the interface simple: a list of small
-%D sentences, separated by \type {\\}.
-
-\def\StartTitlePage
-  {\startstandardmakeup
-     \switchtobodyfont[big]
-     \def\\{\vfill\bfb\let\\=\par}
-     \bfd\setupinterlinespace\gray
-     \vskip.5cm}
-
-\def\StopTitlePage
-  {\\\vskip.5cm  % the \\ is really needed
-   \stopstandardmakeup}
-
-\def\TitlePage#1%
-  {\StartTitlePage#1\StopTitlePage}
-
-%D A couple of goodies:
-
-\def\Subject   {\Topic}
-\def\Topics  #1{}
-\def\Subjects  {}
-
-%D For those who want to test:
-
-\doifnotmode{demo}{\endinput}
-
-\starttext
-
-\setupMPvariables[page][alternative=3]
-
-\TitlePage
-  {A Few Nice Quotes\\
-   A Simple Style Demo\\
-   Hans Hagen, August 2000}
-
-
-\Topic {Douglas R. Hofstadter} \input douglas \page
-\Topic {Donald  E. Knuth}      \input knuth   \page
-\Topic {Edward  R. Tufte}      \input tufte   \page
-\Topic {Hermann    Zapf}       \input zapf    \page
-%Topic {David   F. Stork}      \input stork   \page
-
-\stoptext
diff --git a/tex/context/modules/mkii/s-pre-14.mkii b/tex/context/modules/mkii/s-pre-14.mkii
new file mode 100644
index 000000000..c137df863
--- /dev/null
+++ b/tex/context/modules/mkii/s-pre-14.mkii
@@ -0,0 +1,263 @@
+%D \module
+%D   [      file=s-pre-14,
+%D        version=1999.08.20,
+%D          title=\CONTEXT\ Style File,
+%D       subtitle=Presentation Environment 14,
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D In the process of making a couple of simple styles for
+%D \EUROTEX\ 99, I came to this one. The joke is in the
+%D pagenumber. This style can be used for short presentations
+%D with much text.
+
+\startmode[asintended] \setupbodyfont[lbr] \stopmode
+
+\setupbodyfont[14.4pt]
+
+%D Since we expect text, we can best be very tolerant.
+
+\setuptolerance
+  [verytolerant,stretch]
+
+%D As most styles we choose a large screen page size.
+
+\setuppapersize
+  [S6][S6]
+
+\setuplayout
+  [width=fit,
+   rightedge=3cm,
+   margin=0pt,
+   rightedgedistance=2cm,
+   height=middle,
+   header=0pt,
+   footer=0pt,
+   topspace=1cm,
+   backspace=1cm]
+
+%D We only use two colors, named \type {One} and \type
+%D {Two}:
+
+\setupcolors
+  [state=start]
+
+\definecolor [One] [r=.6,g=.4,b=.4]
+\definecolor [Two] [r=.4,g=.6,b=.6]
+
+%D If you've looked at the demo file, you will have noticed
+%D that the background consists of four pieces: two filled
+%D rectangles and two half numbers. These are put on th epage
+%D using four overlays:
+
+\setupbackgrounds
+  [page]
+  [background={one,two,three,four}]
+
+%D When we code this in \TEX, we get the following
+%D definitions. As an alternative we coudl have used layers
+%D but I'm afraid that it would not have led to less code.
+
+\defineoverlay
+  [one]
+  [{\framed
+     [frame=off,background=color,backgroundcolor=Two,
+      width=\overlaywidth,height=\overlayheight]
+     {}}]
+
+\defineoverlay
+  [three]
+  [{\hbox to \overlaywidth
+      {\hfill\SetOverlayWidth
+       \framed
+         [frame=off,background=color,backgroundcolor=One,
+          width=\overlaywidth,height=\overlayheight]
+         {}}}]
+
+%D We could have used the main backgroundcolor instead of
+%D overlay \type {one}.
+
+\definefont[NumberFont][RegularBold at 3cm]
+
+\defineoverlay
+  [two]
+  [{\framed
+     [frame=off,width=\overlaywidth,height=\overlayheight,
+      offset=overlay]
+     {\vfill
+      \NumberFont\setstrut\SetOverlayWidth
+      \hbox to \hsize
+         {\hfill
+          \setupinteraction[style=,color=]%
+          \setbox0=\hbox{\strut\One\pagenumber}%
+          \hbox to 0pt{\hss\gotobox{\box0}[previouspage]\hss}%
+          \hskip\overlaywidth}}}]
+
+\defineoverlay
+  [four]
+  [{\framed
+     [frame=off,width=\overlaywidth,height=\overlayheight,offset=overlay]
+     {\vfill
+      \hbox to \hsize
+        {\hfill
+         \SetOverlayWidth
+         \framed
+           [frame=off,width=\overlaywidth,height=\overlayheight,offset=overlay]
+           {\vfill\NumberFont\setstrut
+            \setbox0=\hbox{\strut\Two\pagenumber}%
+            \setbox2=\hbox{\clip[nx=2,ny=1,x=2,y=1]{\copy0}}%
+            \dp2=\dp0
+            \hbox to \hsize{\hbox to 0pt{\hss\hskip.5\wd0\box2\hss}\hfill}}}}}]
+
+\def\SetOverlayWidth%
+  {\scratchdimen         =  \rightedgedistance
+   \divide\scratchdimen  by 2
+   \advance\scratchdimen by \rightedgewidth
+   \advance\scratchdimen by \backspace
+   \edef\overlaywidth{\the\scratchdimen}}
+
+%D A much cleaner implementation is the following. If you hate
+%D \METAPOST, you can run this style in the specified mode:
+
+\startnotmode[no-metapost]
+
+\setupbackgrounds
+  [page]
+  [background={number}]
+
+\defineoverlay[number][\useMPgraphic{number}]
+
+\startuseMPgraphic{number}
+  StartPage ;
+    path Vage ; picture Left, Right ;
+    x1 = x2 = xpart (llcorner Field[Text][RightEdge] shifted (-RightEdgeDistance/2,0)) ;
+    y1 = ypart llcorner Page ;
+    y2 = ypart ulcorner Page ;
+    Vage := llcorner Page -- z1 -- z2 -- ulcorner Page -- cycle ;
+    fill Page withcolor \MPcolor {One} ;
+    fill Vage withcolor \MPcolor {Two} ;
+    if PageNumber>0 :
+      defaultfont  := "\truefontname{RegularBold}" ;
+      Left := Right := thelabel("\folio",origin) ysized 3cm ;
+      clip Right to boundingbox Right shifted (bbwidth(Right)/2,0) ;
+      draw Left  shifted z1 shifted (0,2.25cm) withcolor \MPcolor {One} ;
+      draw Right shifted z1 shifted (0,2.25cm) withcolor \MPcolor {Two} ;
+    fi ;
+  StopPage ;
+\stopuseMPgraphic
+
+\stopnotmode
+
+%D We use the simple label typesetting present in \METAPOST\
+%D because digits are seldom kerned so real \TEX ing is not
+%D needed. As in the previous method, we let the graphics
+%D overlap so that we don't get white lines due to rounding
+%D problems in viewers.
+%D
+%D We put a  button behind the text (this overlay is calculated
+%D each page).
+
+\defineoverlay
+  [nextpage]
+  [\overlaybutton{nextpage}]
+
+\setupbackgrounds
+  [text]
+  [backgroundoffset=.5cm,
+   background=nextpage]
+
+%D We still have to turn on interaction mode.
+
+\setupinteraction
+  [state=start,
+   display=new,
+   menu=on]
+
+\setupinteraction
+  [color=,
+   contrastcolor=]
+
+%D Next we define structuring commands.
+
+\definehead[Topic]  [chapter] \setuphead[Topic]  [style=\bfc]
+\definehead[Subject][section] \setuphead[Subject][style=\bfa]
+
+\setuphead
+  [Topic,Subject]
+  [number=no,
+   after={\blank[big]}]
+
+%D Because we will provide a menu, we don't offer lists.
+
+\let\Topics  \gobbleoneargument
+\let\Subjects\relax
+
+%D The table of contents goes to the right edge.
+
+\startinteractionmenu[right]
+  \setupinteraction
+    [color=black,
+     contrastcolor=Two]
+  \placelist
+    [Topic]
+    [alternative=e,
+     frame=off,
+     criterium=all]
+  \vfill
+\stopinteractionmenu
+
+\setuplist
+  [Topic]
+  [width=\rightedgewidth,
+   maxwidth=\rightedgewidth,
+   style=\bfa]
+
+%D We safe some space:
+
+\setupwhitespace
+  [medium]
+
+\setupblank
+  [medium]
+
+%D In the titlepage, we still use the \TEX\ overlays,
+%D so that we don't have to define a second graphic.
+
+\def\TitlePage#1%
+  {\StartTitlePage#1\StopTitlePage}
+
+\def\StartTitlePage%
+  {\bgroup
+   \setupbackgrounds[page][background={one,three}]
+   \startstandardmakeup
+     \setupalign[middle]
+     \def\\{\vfil\bfb\setupinterlinespace}
+     \bfd\setupinterlinespace
+     \vfil}
+
+\def\StopTitlePage%
+  {\vfil\vfil\vfil
+   \stopstandardmakeup
+   \egroup}
+
+%D This is it.
+
+\doifnotmode{demo}{\endinput}
+
+\starttext
+
+\TitlePage{Some Quotes\\(that you probably know by now)}
+
+\Topic{Tufte}   \input tufte
+\Topic{Knuth}   \input knuth
+\Topic{Reich}   \input reich
+\Topic{Zapf}    \input zapf
+\Topic{Materie} \input materie
+%Topic{Stork}   \input stork
+
+\stoptext
diff --git a/tex/context/modules/mkii/s-pre-15.mkii b/tex/context/modules/mkii/s-pre-15.mkii
new file mode 100644
index 000000000..d1d8053b6
--- /dev/null
+++ b/tex/context/modules/mkii/s-pre-15.mkii
@@ -0,0 +1,186 @@
+%D \module
+%D   [      file=s-pre-15,
+%D        version=1999.09.01,
+%D          title=\CONTEXT\ Style File,
+%D       subtitle=Presentation Environment 15,
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This is one of the styles I made for the presentation on
+%D the \NTS\ project at Euro\TeX\ 1998. You need balls to let
+%D \TEX\ typeset graphics, but this style demonstrates that it
+%D can be done.
+%D
+%D This presentation is meant for presentations that build up
+%D an idea stepwise.
+%D
+%D \starttyping
+%D \TitlePage{Do you know \TEX ?}
+%D
+%D \StartIdea
+%D   \StartItem We use \TEX\ for typesetting       \unknown \StopItem
+%D   \StartItem mathematical text                  \unknown \StopItem
+%D   \StartItem but also for text that has no math \unknown \StopItem
+%D   \StartItem or presentations like this         \unknown \StopItem
+%D   \StartItem and whatever you can come up with!          \StopItem
+%D \StopIdea
+%D \stoptyping
+
+%D The basic layout is rather simple and used as much of the
+%D screen as possible.
+
+\setuppapersize
+  [S6][S6]
+
+\setuplayout
+  [backspace=25pt,
+   topspace=25pt,
+   width=middle,
+   height=middle,
+   header=0pt,
+   footer=0pt]
+
+\setupinteraction
+  [state=start,
+   display=new,
+   color=LineColor,
+   contrastcolor=LineColor,
+   click=no]
+
+\setupinteractionscreen
+  [option=max]
+
+\startmode[asintended] \setupbodyfont[lbr] \stopmode
+
+\setupbodyfont[14.4pt]
+
+%D We use a lot of color. You can remap them if you want
+%D different ones. The ideas circulate over the colors.
+
+\setupcolors
+  [state=start]
+
+\definecolor[TextColor][s=.8]
+\definecolor[PageColor][s=.6]
+\definecolor[LineColor][s=.4]
+
+\definecolor[red]  [r=.4]        \definecolor[cyan]   [g=.4,b=.4]
+\definecolor[green][g=.4]        \definecolor[magenta][r=.4,b=.4]
+\definecolor[blue] [b=.4]        \definecolor[yellow] [r=.4,g=.4]
+
+\definecolor[linecolor 1][red]   \definecolor[linecolor 5][cyan]
+\definecolor[linecolor 2][green] \definecolor[linecolor 6][magenta]
+\definecolor[linecolor 3][blue]  \definecolor[linecolor 4][yellow]
+
+%D We use variables to make sure that the graphics are reused
+%D but unique.
+
+\setupMPvariables[pageframe][pagecolor=PageColor,linecolor=LineColor]
+\setupMPvariables[textframe][textcolor=TextColor,linecolor=LineColor]
+
+\setupbackgrounds
+  [page]
+  [background={pageframe,nextpage}]
+
+\defineoverlay [pageframe] [\uniqueMPgraphic{pageframe}]
+\defineoverlay [textframe] [\uniqueMPgraphic{textframe}]
+\defineoverlay [nextpage]  [\overlaybutton{forward}]
+
+\startuniqueMPgraphic{pageframe}{pagecolor,linecolor}
+  path p ; p := fullsquare xyscaled (OverlayWidth,OverlayHeight) ;
+  pickup pencircle scaled 10pt ;
+  fill p withcolor \MPvar{pagecolor} ;
+  draw p withcolor \MPvar{linecolor} ;
+\stopuniqueMPgraphic
+
+\startuniqueMPgraphic{textframe}{textcolor,linecolor}
+  path p ; p := fullcircle xyscaled (OverlayWidth,OverlayHeight) ;
+  pickup pencircle scaled 10pt ;
+  fill p withcolor \MPvar{textcolor} ;
+  draw p withcolor \MPvar{linecolor} ;
+\stopuniqueMPgraphic
+
+%D The rest of the file implements the nasty part: typesetting
+%D text embedded in a graphic. The text is collected in a box
+%D so that we can reuse it.
+
+\newbox\CollectedIdeas
+\newcounter\CurrentTopic
+
+\def\StartItem%
+  {\setbox\CollectedIdeas=\hbox\bgroup
+     \ifdim\wd\CollectedIdeas>0pt \unhbox\CollectedIdeas\hskip25pt \fi
+     \setbox\scratchbox=\hbox\bgroup
+       \framed
+         [width=160pt,height=160pt,align=middle,frame=off,
+          background=textframe,offset=15pt,top=\vfill,bottom=\vfill]
+        \bgroup}
+
+\def\StopItem%
+  {\egroup
+   \egroup
+   \setbox\scratchbox=\hbox{\lower.5\ht\scratchbox\box\scratchbox}%
+   \ht\scratchbox=.5\ht\scratchbox
+   \dp\scratchbox=  \ht\scratchbox
+   \box\scratchbox
+   \egroup
+   \startstandardmakeup
+     \dontcomplain
+     \leftskip       0pt plus 50pt
+     \rightskip      0pt plus 50pt
+     \parfillskip    0pt
+     \baselineskip 100pt
+     \unhcopy\CollectedIdeas
+   \stopstandardmakeup}
+
+\def\StartIdea%
+  {\ifnum\CurrentTopic=6 \doglobal\newcounter\CurrentTopic \fi
+   \doglobal\increment\CurrentTopic
+   \definecolor[LineColor][linecolor \CurrentTopic]
+   \setbox\CollectedIdeas=\null}
+
+\def\StopIdea%
+  {}
+
+\def\StartTitlePage%
+  {\startstandardmakeup
+   \setupalign[middle]
+   \def\\{\vfil\bfb\setupinterlinespace}
+   \bfd\setupinterlinespace
+   \vfil}
+
+\def\StopTitlePage%
+  {\vfil\vfil
+   \stopstandardmakeup}
+
+\def\TitlePage#1%
+  {\StartTitlePage#1\StopTitlePage}
+
+\doifnotmode{demo}{\endinput}
+
+%D A simple test on functionality.
+
+\setupoutput[pdftex]
+
+\starttext
+
+\TitlePage{Do you know \TEX ?}
+
+\startbuffer
+\StartIdea
+  \StartItem We use \TEX\ for typesetting       \unknown \StopItem
+  \StartItem mathematical text                  \unknown \StopItem
+  \StartItem but also for text that has no math \unknown \StopItem
+  \StartItem or presentations like this         \unknown \StopItem
+  \StartItem and whatever you can come up with!          \StopItem
+\StopIdea
+\stopbuffer
+
+\dorecurse{6}{\getbuffer}
+
+\stoptext
diff --git a/tex/context/modules/mkii/s-pre-19.mkii b/tex/context/modules/mkii/s-pre-19.mkii
new file mode 100644
index 000000000..991d311ce
--- /dev/null
+++ b/tex/context/modules/mkii/s-pre-19.mkii
@@ -0,0 +1,347 @@
+%D \module
+%D   [      file=s-pre-19,
+%D        version=2000.07.31,
+%D          title=\CONTEXT\ Style File,
+%D       subtitle=Presentation Environment 19,
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This style is made in the process or writing the \METAFUN\
+%D manual. It exploits a few tricks, like graphics calculated
+%D using positional information. It also uses the (at that
+%D moment) new menu list placement alternative. If you forget
+%D about the definition of the button shapes, which is
+%D complicated in any system, this style is not even that hard
+%D to follow. Watch how the left side of the buttons follow
+%D the right side of the text graphic.
+%D
+%D While playing bit with this style, the random alternative
+%D made me think of those organic building with non equal
+%D windows (we have a few in The Netherlands), so I decided to
+%D label this style as \type {pre-organic}.
+%D
+%D At the end of this file, there is a small test file, so
+%D when you process this file with \TEXEXEC\ and the options
+%D \type {--mode=demo} and \type {--pdf}, you will get a demo
+%D document.
+
+%D We use one of the standard screen \quote {paper} sizes, and
+%D map it onto the same size, so that we get a nicely cropped
+%D page.
+
+\setuppapersize
+  [S6][S6]
+
+%D Like in the \METAFUN\ manual, we use the Palatino as main
+%D bodyfont. This font is quite readable on even low
+%D resolution screens, although I admit that this style is
+%D developed using an $1400\times1050$ pixel LCD screen, so I
+%D may be biased.
+
+%\startmode[asintended] \setupbodyfont[ppl] \stopmode
+
+%D The layout specification sets up a text area and a right
+%D edge area where the menus will go. Watch the rather large
+%D edge distance. By setting the header and footer dimensions
+%D to zero, we automatically get rid of page body ornaments,
+%D like the pagenumber.
+
+\setuplayout
+  [topspace=48pt,
+   backspace=48pt,
+   cutspace=12pt,
+   width=400pt,
+   margin=0cm,
+   rightedge=88pt,
+   rightedgedistance=48pt,
+   header=0cm,
+   footer=0cm,
+   height=middle]
+
+%D We use a moderate, about a line height, interparagraph
+%D white space.
+
+\setupwhitespace
+  [big]
+
+%D Of course we use colors, since on computer displays they
+%D come for free.
+
+\setupcolors
+  [state=start]
+
+\definecolor [red]    [r=.75]
+\definecolor [yellow] [r=.75,g=.75]
+\definecolor [gray]   [s=.50]
+\definecolor [white]  [s=.85]
+
+\definecolor [PageColor]        [yellow]
+\definecolor [TextColor]        [white]
+\definecolor [OrnamentColor]    [red]
+\definecolor [InteractionColor] [red]
+\definecolor [ContrastColor]    [gray]
+
+%D This is an interactive document, so we enable interaction.
+%D In this style, we disable the viewer's \quote {highlight a
+%D hyperlink when it's clicked on} feature. We will use a
+%D menu, so we enable menus. Later we will see the contract
+%D color |<|hyperlinks gets that color when we are already on
+%D the location|>| in action.
+
+\setupinteraction
+  [state=start,
+   click=off,
+   color=InteractionColor,
+   contrastcolor=ContrastColor,
+   menu=on]
+
+%D The menu itself is set up as follows. Because we will
+%D calculate menubuttons based on their position on the page,
+%D we have to keep track of the positions. Therefore, we set
+%D the \type {position} variable to \type {yes}.
+
+\setupinteractionmenu
+  [right]
+  [frame=off,
+   position=yes,
+   align=middle,
+   topoffset=-.75cm,
+   bottomoffset=-.75cm,
+   color=gray,
+   contrastcolor=gray,
+   style=bold,
+   before=,
+   after=]
+
+%D The menu content is rather sober: a list of topics (later
+%D we will define the command that generates topic entries),
+%D and a close button.
+
+\startinteractionmenu[right]
+  \placelist[Topic][alternative=right]
+  \vfill
+  \but [CloseDocument] close \\
+\stopinteractionmenu
+
+%D We have now arived at the more interesting part of the style
+%D definition: the graphic that goes in the page background.
+%D Because this graphic will change, we define a usable
+%D \METAPOST\ graphic. Page backgrounds are recalculated each
+%D page, opposite to the other backgrounds that are calculated
+%D when a new background is defined, or when repetitive
+%D calculation is turned on.
+
+\setupbackgrounds
+  [page]
+  [background=page]
+
+\defineoverlay
+  [page]
+  [\useMPgraphic{page}]
+
+\setupMPvariables
+  [page]
+  [alternative=3]
+
+\startuseMPgraphic{page}
+
+  \includeMPgraphic{rightsuperbutton}
+
+  StartPage ;
+
+    path p, q ; pickup pencircle scaled 3pt ;
+
+    p := Field[Text][Text] enlarged 36pt superellipsed .90 ;
+
+    fill Page withcolor \MPcolor{PageColor} ;
+    fill p    withcolor \MPcolor{TextColor} ;
+    draw p    withcolor \MPcolor{OrnamentColor} ;
+
+    p := Field[Text][Text] enlarged 48pt superellipsed .90 ;
+
+    def right_menu_button (expr nn, rr, pp, xx, yy, ww, hh, dd) =
+      if (pp>0) and (rr>0) :
+        q := rightsuperbutton(p,xx,yy,RightEdgeWidth,hh) ;
+        fill q withcolor \MPcolor{TextColor} ;
+        draw q withcolor if rr=2 : \MPcolor{ContrastColor}
+                            else : \MPcolor{InteractionColor} fi ;
+      fi ;
+    enddef ;
+
+    \MPmenubuttons{right}
+
+  StopPage ;
+\stopuseMPgraphic
+
+\startuseMPgraphic{page}
+
+  \includeMPgraphic{rightsuperbutton}
+
+  StartPage ;
+
+    numeric alternative, seed, superness, squeezeness, randomness ;
+    path p, q ; transform t ;
+
+    alternative := \MPvar{alternative} ;
+    seed        := uniformdeviate 100 ;
+
+    if alternative > 10 :
+      superness   := .85  + ((\realfolio-1)/\lastpage) * .15 ;
+      squeezeness := 12pt - ((\realfolio-1)/\lastpage) * 10pt ;
+    else :
+      superness   := .90 ;
+      squeezeness := 12pt ;
+    fi ;
+
+    randomness := squeezeness ;
+
+    alternative := alternative mod 10 ;
+
+    t := identity if alternative=3: shifted (9pt,-9pt) fi ;
+
+    % first we draw the shape that surrounds the text
+
+    randomseed := seed ;
+
+    p := Field[Text][Text] enlarged if
+      alternative = 1 : 36pt superellipsed superness   elseif
+      alternative = 2 : 36pt squeezed      squeezeness elseif
+      alternative = 3 : 36pt randomized    randomness  else
+                      : 36pt                           fi ;
+    pickup pencircle scaled 3pt ;
+
+    fill Page withcolor \MPcolor{PageColor} ;
+    fill p    withcolor \MPcolor{TextColor} ;
+    draw p    withcolor \MPcolor{OrnamentColor} ;
+
+    % we set p to the wider shape from which we will chip off pieces
+
+    randomseed := seed ;
+
+    p := ( Field[Text][Text] enlarged if
+      alternative = 1 : 48pt superellipsed superness   elseif
+      alternative = 2 : 48pt squeezed      squeezeness elseif
+      alternative = 3 : 36pt randomized    randomness  else
+                      : 48pt                           fi ) transformed t ;
+
+    % calls to *_menu_button are generated automatically ...
+
+    vardef right_menu_button (expr nn, rr, pp, xx, yy, ww, hh, dd) =
+      save q ; path q ;
+      if (pp>0) and (rr>0) :
+        q := rightsuperbutton(p,xx,yy,RightEdgeWidth,hh) ; % \MPw{menu:right:\realfolio}
+        fill q withcolor \MPcolor{TextColor} ;
+        draw q withcolor if rr=2 : \MPcolor{ContrastColor}
+                            else : \MPcolor{InteractionColor} fi ;
+      fi ;
+    enddef ;
+
+    % ... and inserted when the graphic data is flushed here ...
+
+    \MPmenubuttons{right}
+
+  StopPage ;
+\stopuseMPgraphic
+
+\startuseMPgraphic{rightsuperbutton}
+
+vardef rightsuperbutton (expr pat, xpos, ypos, wid, hei) =
+
+  save p, ptop, pbot, t, b, edge, shift, width, height ;
+  path p, ptop, pbot ; pair t, b ; numeric edge, shift, width, height ;
+
+  edge  := xpos + wid ; shift := ypos + hei ;
+
+  p := rightpath pat ;
+
+  ptop := ((-infinity,shift)--(edge,shift)) ;
+  pbot := ((-infinity,shift-hei)--(edge,shift-hei)) ;
+
+  t := p intersection_point ptop ;
+  b := p intersection_point pbot ;
+
+  p := subpath(0,xpart (p intersectiontimes ptop)) of p ;
+  p := subpath(xpart (p intersectiontimes pbot),length(p)) of p ;
+
+  (p --               t -- point 1 of ptop &
+        point 1 of ptop -- point 1 of pbot &
+        point 1 of pbot -- b
+     -- cycle)
+
+enddef ;
+
+\stopuseMPgraphic
+
+%D Topics are identified with \type {\Topic}, which is an
+%D instance of chapter headings. The number is made invisible.
+%D Since it still is a numbered section header, \CONTEXT\ will
+%D write the header to the table of contents.
+
+\definehead
+  [Topic]
+  [chapter]
+
+\setuphead
+  [Topic]
+  [number=no]
+
+%D We will use a bold font in the table of contents. We also
+%D force a complete list.
+
+\setuplist
+  [Topic]
+  [criterium=all,
+   style=bold,
+   before=,
+   after=]
+
+%D The \type {\TitlePage} macro looks horrible, because we
+%D want to keep the interface simple: a list of small
+%D sentences, separated by \type {\\}.
+
+\def\StartTitlePage
+  {\startstandardmakeup
+     \switchtobodyfont[big]
+     \def\\{\vfill\bfb\let\\=\par}
+     \bfd\setupinterlinespace\gray
+     \vskip.5cm}
+
+\def\StopTitlePage
+  {\\\vskip.5cm  % the \\ is really needed
+   \stopstandardmakeup}
+
+\def\TitlePage#1%
+  {\StartTitlePage#1\StopTitlePage}
+
+%D A couple of goodies:
+
+\def\Subject   {\Topic}
+\def\Topics  #1{}
+\def\Subjects  {}
+
+%D For those who want to test:
+
+\doifnotmode{demo}{\endinput}
+
+\starttext
+
+\setupMPvariables[page][alternative=3]
+
+\TitlePage
+  {A Few Nice Quotes\\
+   A Simple Style Demo\\
+   Hans Hagen, August 2000}
+
+
+\Topic {Douglas R. Hofstadter} \input douglas \page
+\Topic {Donald  E. Knuth}      \input knuth   \page
+\Topic {Edward  R. Tufte}      \input tufte   \page
+\Topic {Hermann    Zapf}       \input zapf    \page
+%Topic {David   F. Stork}      \input stork   \page
+
+\stoptext
diff --git a/tex/context/modules/mkiv/s-present-balls.mkiv b/tex/context/modules/mkiv/s-present-balls.mkiv
new file mode 100644
index 000000000..6774b8340
--- /dev/null
+++ b/tex/context/modules/mkiv/s-present-balls.mkiv
@@ -0,0 +1,194 @@
+%D \module
+%D   [      file=s-present-balls, % s-pre-15,
+%D        version=1999.09.01,
+%D          title=\CONTEXT\ Style File,
+%D       subtitle=Presentation Environment Balls,
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\startmodule[present-balls]
+
+%D This is one of the styles I made for the presentation on the \NTS\ project at
+%D Euro\TeX\ 1998. You need balls to let \TEX\ typeset graphics, but this style
+%D demonstrates that it can be done.
+%D
+%D This presentation is meant for presentations that build up an idea stepwise.
+%D
+%D \starttyping
+%D \TitlePage{Do you know \TEX ?}
+%D
+%D \StartIdea
+%D   \StartItem We use \TEX\ for typesetting       \unknown \StopItem
+%D   \StartItem mathematical text                  \unknown \StopItem
+%D   \StartItem but also for text that has no math \unknown \StopItem
+%D   \StartItem or presentations like this         \unknown \StopItem
+%D   \StartItem and whatever you can come up with!          \StopItem
+%D \StopIdea
+%D \stoptyping
+%D
+%D The basic layout is rather simple and used as much of the screen as possible.
+
+\setuppapersize
+  [S6][S6]
+
+\setuplayout
+  [backspace=25pt,
+   topspace=25pt,
+   width=middle,
+   height=middle,
+   header=0pt,
+   footer=0pt]
+
+\setupinteraction
+  [state=start,
+   display=new,
+   color=LineColor,
+   contrastcolor=LineColor,
+   click=no]
+
+\setupinteractionscreen
+  [option=max]
+
+\startmode[asintended,atpragma] \setupbodyfont[lucidaot] \stopmode
+
+\setupbodyfont[14.4pt]
+
+%D We use a lot of color. You can remap them if you want different ones. The ideas
+%D circulate over the colors.
+
+\definecolor[TextColor][s=.8]
+\definecolor[PageColor][s=.6]
+\definecolor[LineColor][s=.4]
+
+\definecolor[red]  [r=.4]        \definecolor[cyan]   [g=.4,b=.4]
+\definecolor[green][g=.4]        \definecolor[magenta][r=.4,b=.4]
+\definecolor[blue] [b=.4]        \definecolor[yellow] [r=.4,g=.4]
+
+\definecolor[linecolor 1][red]   \definecolor[linecolor 5][cyan]
+\definecolor[linecolor 2][green] \definecolor[linecolor 6][magenta]
+\definecolor[linecolor 3][blue]  \definecolor[linecolor 4][yellow]
+
+%D We use variables to make sure that the graphics are reused but unique.
+
+\setupMPvariables[pageframe][pagecolor=PageColor,linecolor=LineColor]
+\setupMPvariables[textframe][textcolor=TextColor,linecolor=LineColor]
+
+\setupbackgrounds
+  [page]
+  [background={pageframe,nextpage}]
+
+\defineoverlay [pageframe] [\uniqueMPgraphic{pageframe}]
+\defineoverlay [textframe] [\uniqueMPgraphic{textframe}]
+\defineoverlay [nextpage]  [\overlaybutton{forward}]
+
+\startuniqueMPgraphic{pageframe}{pagecolor,linecolor}
+    path p ; p := fullsquare xyscaled (OverlayWidth,OverlayHeight) ;
+    pickup pencircle scaled 10pt ;
+    fill p withcolor \MPvar{pagecolor} ;
+    draw p withcolor \MPvar{linecolor} ;
+\stopuniqueMPgraphic
+
+\startuniqueMPgraphic{textframe}{textcolor,linecolor}
+    path p ; p := fullcircle xyscaled (OverlayWidth,OverlayHeight) ;
+    pickup pencircle scaled 10pt ;
+    fill p withcolor \MPvar{textcolor} ;
+    draw p withcolor \MPvar{linecolor} ;
+\stopuniqueMPgraphic
+
+%D The rest of the file implements the nasty part: typesetting text embedded in a
+%D graphic. The text is collected in a box so that we can reuse it.
+
+\newbox  \CollectedIdeas
+\newcount\CurrentTopic
+
+\unexpanded\def\StartItem
+  {\setbox\CollectedIdeas=\hbox\bgroup
+     \ifdim\wd\CollectedIdeas>\zeropoint
+        \unhbox\CollectedIdeas
+        \hskip25pt
+     \fi
+     \setbox\scratchbox=\hbox\bgroup
+       \framed
+         [width=160pt,
+          height=160pt,
+          align=middle,
+          frame=off,
+          background=textframe,
+          offset=15pt,
+          top=\vfill,
+          bottom=\vfill]
+        \bgroup}
+
+\unexpanded\def\StopItem
+  {\egroup
+   \egroup
+   \setbox\scratchbox=\hbox{\lower.5\ht\scratchbox\box\scratchbox}%
+   \ht\scratchbox=.5\ht\scratchbox
+   \dp\scratchbox=  \ht\scratchbox
+   \box\scratchbox
+   \egroup
+   \startstandardmakeup
+     \dontcomplain
+     \leftskip       0pt plus 50pt
+     \rightskip      0pt plus 50pt
+     \parfillskip    0pt
+     \baselineskip 100pt
+     \unhcopy\CollectedIdeas
+   \stopstandardmakeup}
+
+\unexpanded\def\StartIdea
+  {\ifnum\CurrentTopic=6
+     \global\CurrentTopic\plusone
+   \else
+     \global\advance\CurrentTopic\plusone
+   \fi
+   \definecolor[LineColor][linecolor \number\CurrentTopic]
+   \setbox\CollectedIdeas\null}
+
+\unexpanded\def\StopIdea
+  {}
+
+\unexpanded\def\StartTitlePage
+  {\startstandardmakeup
+   \setupalign[middle]
+   \unexpanded\def\\{\vfil\bfb\setupinterlinespace}
+   \bfd\setupinterlinespace
+   \vfil}
+
+\unexpanded\def\StopTitlePage
+  {\vfil\vfil
+   \stopstandardmakeup}
+
+\unexpanded\def\TitlePage#1%
+  {\StartTitlePage#1\StopTitlePage}
+
+\startsetups document:start
+    \StartTitlePage
+        \documentvariable{title}
+        \doifsomething {\documentvariable{subtitle}} {
+            \\
+            \documentvariable{subtitle}
+        }
+        \doifsomething {\documentvariable{location}} {
+            \\
+            \documentvariable{location}
+        }
+    \StopTitlePage
+\stopsetups
+
+\startsetups document:stop
+    %
+\stopsetups
+
+\stopmodule
+
+\continueifinputfile{s-present-balls.mkiv}
+
+\usemodule[present-common]
+
+\inputpresentationfile{examples/present-balls-001.tex}
diff --git a/tex/context/modules/mkiv/s-present-organic.mkiv b/tex/context/modules/mkiv/s-present-organic.mkiv
new file mode 100644
index 000000000..f45a5f53e
--- /dev/null
+++ b/tex/context/modules/mkiv/s-present-organic.mkiv
@@ -0,0 +1,335 @@
+%D \module
+%D   [      file=s-present-organic, % s-pre-19,
+%D        version=2000.07.31,
+%D          title=\CONTEXT\ Style File,
+%D       subtitle=Presentation Environment Organic,
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\startmodule[present-organic]
+
+%D This style is made in the process or writing the \METAFUN\ manual. It exploits a
+%D few tricks, like graphics calculated using positional information. It also uses
+%D the (at that moment) new menu list placement alternative. If you forget about the
+%D definition of the button shapes, which is complicated in any system, this style
+%D is not even that hard to follow. Watch how the left side of the buttons follow
+%D the right side of the text graphic.
+%D
+%D While playing bit with this style, the random alternative made me think of those
+%D organic building with non equal windows (we have a few in The Netherlands), so I
+%D decided to label this style as \type {pre-organic}.
+%D
+%D At the end of this file, there is a small test file, so when you process this
+%D file with \TEXEXEC\ and the options \type {--mode=demo} and \type {--pdf}, you
+%D will get a demo document.
+%D
+%D We use one of the standard screen \quote {paper} sizes, and map it onto the same
+%D size, so that we get a nicely cropped page.
+
+\setuppapersize
+  [S6][S6]
+
+%D Like in the \METAFUN\ manual, we use the Palatino as main bodyfont. This font is
+%D quite readable on even low resolution screens, although I admit that this style
+%D is developed using an $1400\times1050$ pixel LCD screen, so I may be biased.
+
+\setupbodyfont[pagella]
+
+%D The layout specification sets up a text area and a right edge area where the
+%D menus will go. Watch the rather large edge distance. By setting the header and
+%D footer dimensions to zero, we automatically get rid of page body ornaments, like
+%D the pagenumber.
+
+\setuplayout
+  [topspace=48pt,
+   backspace=48pt,
+   cutspace=12pt,
+   width=400pt,
+   margin=0cm,
+   rightedge=88pt,
+   rightedgedistance=48pt,
+   header=0cm,
+   footer=0cm,
+   height=middle]
+
+%D We use a moderate, about a line height, interparagraph white space.
+
+\setupwhitespace
+  [big]
+
+%D Of course we use colors, since on computer displays they come for free.
+
+\definecolor [red]              [r=.75]
+\definecolor [yellow]           [r=.75,g=.75]
+\definecolor [gray]             [s=.50]
+\definecolor [white]            [s=.85]
+
+\definecolor [PageColor]        [yellow]
+\definecolor [TextColor]        [white]
+\definecolor [OrnamentColor]    [red]
+\definecolor [InteractionColor] [red]
+\definecolor [ContrastColor]    [gray]
+
+%D This is an interactive document, so we enable interaction. In this style, we
+%D disable the viewer's \quote {highlight a hyperlink when it's clicked on} feature.
+%D We will use a menu, so we enable menus. Later we will see the contract color
+%D |<|hyperlinks gets that color when we are already on the location|>| in action.
+
+\setupinteraction
+  [state=start,
+   click=off,
+   color=InteractionColor,
+   contrastcolor=ContrastColor,
+   menu=on]
+
+%D The menu itself is set up as follows. Because we will calculate menubuttons based
+%D on their position on the page, we have to keep track of the positions. Therefore,
+%D we set the \type {position} variable to \type {yes}.
+
+\setupinteractionmenu
+  [right]
+  [frame=off,
+   position=yes,
+   align=middle,
+   topoffset=.75cm,    % watch out, these are negative in mkii
+   bottomoffset=.75cm, % watch out, these are negative in mkii
+   color=gray,
+   contrastcolor=gray,
+   style=bold,
+   before=,
+   after=]
+
+%D The menu content is rather sober: a list of topics (later we will define the
+%D command that generates topic entries), and a close button.
+
+\startinteractionmenu[right]
+    \placelist[Topic][alternative=right]
+    \vfill
+    \but [CloseDocument] close \\
+\stopinteractionmenu
+
+%D We have now arived at the more interesting part of the style definition: the
+%D graphic that goes in the page background. Because this graphic will change, we
+%D define a usable \METAPOST\ graphic. Page backgrounds are recalculated each page,
+%D opposite to the other backgrounds that are calculated when a new background is
+%D defined, or when repetitive calculation is turned on.
+
+\setupbackgrounds
+  [page]
+  [background=page]
+
+\defineoverlay
+  [page]
+  [\useMPgraphic{page}]
+
+\setupMPvariables
+  [page]
+  [alternative=3]
+
+\startuseMPgraphic{page}
+
+    \includeMPgraphic{rightsuperbutton}
+
+    StartPage ;
+
+        path p, q ; pickup pencircle scaled 3pt ;
+
+        p := Field[Text][Text] enlarged 36pt superellipsed .90 ;
+
+        fill Page withcolor \MPcolor{PageColor} ;
+        fill p    withcolor \MPcolor{TextColor} ;
+        draw p    withcolor \MPcolor{OrnamentColor} ;
+
+        p := Field[Text][Text] enlarged 48pt superellipsed .90 ;
+
+        def right_menu_button (expr nn, rr, pp, xx, yy, ww, hh, dd) =
+            if (pp>0) and (rr>0) :
+                q := rightsuperbutton(p,xx,yy,RightEdgeWidth,hh) ;
+                fill q withcolor \MPcolor{TextColor} ;
+                draw q withcolor if rr=2 : \MPcolor{ContrastColor}
+                                    else : \MPcolor{InteractionColor} fi ;
+            fi ;
+        enddef ;
+
+        \MPmenubuttons{right}
+
+    StopPage ;
+\stopuseMPgraphic
+
+\startuseMPgraphic{page}
+
+    \includeMPgraphic{rightsuperbutton}
+
+    StartPage ;
+
+        numeric alternative, seed, superness, squeezeness, randomness ;
+        path p, q ; transform t ;
+
+        alternative := \MPvar{alternative} ;
+        seed        := uniformdeviate 100 ;
+
+        if alternative > 10 :
+            superness   := .85  + ((\realfolio-1)/\lastpage) * .15 ;
+            squeezeness := 12pt - ((\realfolio-1)/\lastpage) * 10pt ;
+        else :
+            superness   := .90 ;
+            squeezeness := 12pt ;
+        fi ;
+
+        randomness := squeezeness ;
+
+        alternative := alternative mod 10 ;
+
+        t := identity if alternative=3: shifted (9pt,-9pt) fi ;
+
+        % first we draw the shape that surrounds the text
+
+        randomseed := seed ;
+
+        p := Field[Text][Text] enlarged if
+            alternative = 1 : 36pt superellipsed superness   elseif
+            alternative = 2 : 36pt squeezed      squeezeness elseif
+            alternative = 3 : 36pt randomized    randomness  else
+                            : 36pt                           fi ;
+
+        pickup pencircle scaled 3pt ;
+
+        fill Page withcolor \MPcolor{PageColor} ;
+        fill p    withcolor \MPcolor{TextColor} ;
+        draw p    withcolor \MPcolor{OrnamentColor} ;
+
+        % we set p to the wider shape from which we will chip off pieces
+
+        randomseed := seed ;
+
+        p := ( Field[Text][Text] enlarged if
+            alternative = 1 : 48pt superellipsed superness   elseif
+            alternative = 2 : 48pt squeezed      squeezeness elseif
+            alternative = 3 : 36pt randomized    randomness  else
+                            : 48pt                           fi ) transformed t ;
+
+        % calls to *_menu_button are generated automatically ...
+
+        vardef right_menu_button (expr nn, rr, pp, xx, yy, ww, hh, dd) =
+            save q ; path q ;
+            if (pp>0) and (rr>0) :
+                q := rightsuperbutton(p,xx,yy,RightEdgeWidth,hh) ; % \MPw{menu:right:\realfolio}
+                fill q withcolor \MPcolor{TextColor} ;
+                draw q withcolor if rr=2 : \MPcolor{ContrastColor}
+                                    else : \MPcolor{InteractionColor} fi ;
+            fi ;
+        enddef ;
+
+        % ... and inserted when the graphic data is flushed here ...
+
+        \MPmenubuttons{right}
+
+  StopPage ;
+\stopuseMPgraphic
+
+\startuseMPgraphic{rightsuperbutton}
+
+    vardef rightsuperbutton (expr pat, xpos, ypos, wid, hei) =
+
+        save p, ptop, pbot, t, b, edge, shift, width, height ;
+        path p, ptop, pbot ; pair t, b ; numeric edge, shift, width, height ;
+
+        edge  := xpos + wid ; shift := ypos + hei ;
+
+        p := rightpath pat ;
+
+        ptop := ((-infinity,shift)--(edge,shift)) ;
+        pbot := ((-infinity,shift-hei)--(edge,shift-hei)) ;
+
+        t := p intersection_point ptop ;
+        b := p intersection_point pbot ;
+
+        p := subpath(0,xpart (p intersectiontimes ptop)) of p ;
+        p := subpath(xpart (p intersectiontimes pbot),length(p)) of p ;
+
+        (p --               t -- point 1 of ptop &
+              point 1 of ptop -- point 1 of pbot &
+              point 1 of pbot -- b
+           -- cycle)
+
+    enddef ;
+
+\stopuseMPgraphic
+
+%D Topics are identified with \type {\Topic}, which is an instance of chapter
+%D headings. The number is made invisible. Since it still is a numbered section
+%D header, \CONTEXT\ will write the header to the table of contents.
+
+\definehead
+  [Topic]
+  [chapter]
+
+\setuphead
+  [Topic]
+  [number=no]
+
+%D We will use a bold font in the table of contents. We also force a complete
+%D list.
+
+\setuplist
+  [Topic]
+  [criterium=all,
+   style=bold,
+   before=,
+   after=]
+
+%D The \type {\TitlePage} macro looks horrible, because we want to keep the
+%D interface simple: a list of small sentences, separated by \type {\\}.
+
+\unexpanded\def\StartTitlePage
+  {\startstandardmakeup
+     \switchtobodyfont[big]
+     \def\\{\vfill\bfb\let\\=\par}
+     \bfd\setupinterlinespace\gray
+     \vskip.5cm\relax}
+
+\unexpanded\def\StopTitlePage
+  {\\ % the \\ is really needed
+   \vskip.5cm\relax
+   \stopstandardmakeup}
+
+\unexpanded\def\TitlePage#1%
+  {\StartTitlePage#1\StopTitlePage}
+
+%D A couple of goodies:
+
+\unexpanded\def\Subject   {\Topic}
+\unexpanded\def\Topics  #1{}
+\unexpanded\def\Subjects  {}
+
+\startsetups document:start
+    \StartTitlePage
+        \documentvariable{title}
+        \doifsomething {\documentvariable{subtitle}} {
+            \\
+            \documentvariable{subtitle}
+        }
+        \doifsomething {\documentvariable{location}} {
+            \\
+            \documentvariable{location}
+        }
+    \StopTitlePage
+\stopsetups
+
+\startsetups document:stop
+    %
+\stopsetups
+
+\stopmodule
+
+\continueifinputfile{s-present-organic.mkiv}
+
+\usemodule[present-common]
+
+\inputpresentationfile{examples/present-organic-001.tex}
+
diff --git a/tex/context/modules/mkiv/s-present-split.mkiv b/tex/context/modules/mkiv/s-present-split.mkiv
new file mode 100644
index 000000000..48be7ca81
--- /dev/null
+++ b/tex/context/modules/mkiv/s-present-split.mkiv
@@ -0,0 +1,191 @@
+%D \module
+%D   [      file=s-present-split, % s-pre-14,
+%D        version=1999.08.20,
+%D          title=\CONTEXT\ Style File,
+%D       subtitle=Presentation Environment Split,
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D In the process of making a couple of simple styles for \EUROTEX\ 99, I came to
+%D this one. The joke is in the pagenumber. This style can be used for short
+%D presentations with much text.
+
+\startmodule[present-split]
+
+\startmode[asintended,atpragma] \setupbodyfont[lucidaot] \stopmode
+
+\setupbodyfont[14.4pt]
+
+%D Since we expect text, we can best be very tolerant.
+
+\setuptolerance
+  [verytolerant,stretch]
+
+%D As most styles we choose a large screen page size.
+
+\setuppapersize
+  [S6][S6]
+
+\setuplayout
+  [width=fit,
+   rightedge=3cm,
+   margin=0pt,
+   rightedgedistance=2cm,
+   height=middle,
+   header=0pt,
+   footer=0pt,
+   topspace=1cm,
+   backspace=1cm]
+
+%D We only use two colors, named \type {ColorOne} and \type {ColorTwo}:
+
+\definecolor [ColorOne] [r=.6,g=.4,b=.4]
+\definecolor [ColorTwo] [r=.4,g=.6,b=.6]
+
+%D If you've looked at the demo file, you will have noticed that the background
+%D consists of four pieces: two filled rectangles and two half numbers. In older
+%D versions these are put on the page using four overlays, here we use a much
+%D cleaner implementation is the following. If you hate \METAPOST, you can run
+%D this style in the specified mode:
+
+\setupbackgrounds
+  [page]
+  [background={number}]
+
+\defineoverlay[number][\useMPgraphic{number}]
+
+\startuseMPgraphic{number}
+    StartPage ;
+        picture Left, Right ;
+        numeric Shift ; Shift := -TextWidth - BackSpace - RightEdgeDistance/2 ;
+        fill Page withcolor "ColorOne" ;
+        fill Page leftenlarged Shift withcolor "ColorTwo" ;
+        if RealPageNumber > 1 :
+            Left := Right := textext("\bf\folio") ysized 3cm ;
+            clip Right to boundingbox Right shifted ( bbwidth(Right)/2,0) ;
+            clip Left  to boundingbox Left  shifted (-bbwidth(Left) /2,0) ;
+            draw Left  shifted (-Shift,2.25cm) withcolor "ColorTwo" ;
+            draw Right shifted (-Shift,2.25cm) withcolor "ColorOne" ;
+        fi ;
+    StopPage ;
+\stopuseMPgraphic
+
+%D We use the simple label typesetting present in \METAPOST\ because digits are
+%D seldom kerned so real \TEX ing is not needed. As in the previous method, we let
+%D the graphics overlap so that we don't get white lines due to rounding problems in
+%D viewers.
+%D
+%D We put a button behind the text (this overlay is calculated each page).
+
+\defineoverlay
+  [nextpage]
+  [\overlaybutton{nextpage}]
+
+\setupbackgrounds
+  [text]
+  [backgroundoffset=.5cm,
+   background=nextpage]
+
+%D We still have to turn on interaction mode.
+
+\setupinteraction
+  [state=start,
+   display=new,
+   menu=on]
+
+\setupinteraction
+  [color=,
+   contrastcolor=]
+
+%D Next we define structuring commands.
+
+\definehead[Topic]  [chapter] \setuphead[Topic]  [style=\bfc]
+\definehead[Subject][section] \setuphead[Subject][style=\bfa]
+
+\setuphead
+  [Topic,Subject]
+  [number=no,
+   after={\blank[big]}]
+
+%D Because we will provide a menu, we don't offer lists.
+
+\let\Topics  \gobbleoneargument
+\let\Subjects\relax
+
+%D The table of contents goes to the right edge.
+
+\startinteractionmenu[right]
+  \setupinteraction
+    [color=black,
+     contrastcolor=Two]
+  \placelist
+    [Topic]
+    [alternative=e,
+     frame=off,
+     criterium=all]
+  \vfill
+\stopinteractionmenu
+
+\setuplist
+  [Topic]
+  [width=\rightedgewidth,
+   maxwidth=\rightedgewidth,
+   style=\bfa]
+
+%D We safe some space:
+
+\setupwhitespace
+  [medium]
+
+\setupblank
+  [medium]
+
+%D In the titlepage, we still use the \TEX\ overlays, so that we don't have to
+%D define a second graphic.
+
+\unexpanded\def\TitlePage#1%
+  {\StartTitlePage#1\StopTitlePage}
+
+\unexpanded\def\StartTitlePage
+  {\startstandardmakeup
+   \setupalign[middle]
+   \unexpanded\def\\{\vfil\bfb\setupinterlinespace}
+   \bfd\setupinterlinespace
+   \vfil}
+
+\unexpanded\def\StopTitlePage
+  {\vfil\vfil\vfil
+   \stopstandardmakeup}
+
+\startsetups document:start
+    \StartTitlePage
+        \documentvariable{title}
+        \doifsomething {\documentvariable{subtitle}} {
+            \\
+            \documentvariable{subtitle}
+        }
+        \doifsomething {\documentvariable{location}} {
+            \\
+            \documentvariable{location}
+        }
+    \StopTitlePage
+\stopsetups
+
+\startsetups document:stop
+    %
+\stopsetups
+
+\stopmodule
+
+%D This is it.
+
+\continueifinputfile{s-present-split.mkiv}
+
+\usemodule[present-common]
+
+\inputpresentationfile{examples/present-split-001.tex}
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index b3dee6347..b4f4937bb 100644
--- a/tex/generic/context/luatex/luatex-fonts-merged.lua
+++ b/tex/generic/context/luatex/luatex-fonts-merged.lua
@@ -1,6 +1,6 @@
 -- merged file : c:/data/develop/context/sources/luatex-fonts-merged.lua
 -- parent file : c:/data/develop/context/sources/luatex-fonts.lua
--- merge date  : 11/04/16 20:50:34
+-- merge date  : 11/17/16 14:19:30
 
 do -- begin closure to overcome local limits and interference
 
-- 
cgit v1.2.3