xmmath 1.0.8 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"xmmath.es.js","sources":["../src/symbols.json?raw","../src/main.ts"],"sourcesContent":["export default \"{\\n \\\"wj\\\": \\\"⁠\\\",\\n \\\"zwj\\\": \\\"‍\\\",\\n \\\"zwnj\\\": \\\"‌\\\",\\n \\\"zws\\\": \\\"​\\\",\\n \\\"lrm\\\": \\\"\\\\u200E\\\",\\n \\\"rlm\\\": \\\"\\\\u200F\\\",\\n \\\"space\\\": [\\n \\\" \\\",\\n {\\n \\\"nobreak\\\": \\\" \\\",\\n \\\"nobreak.narrow\\\": \\\"\\\\u202F\\\",\\n \\\"en\\\": \\\"\\\\u2002\\\",\\n \\\"quad\\\": \\\"\\\\u2003\\\",\\n \\\"third\\\": \\\"\\\\u2004\\\",\\n \\\"quarter\\\": \\\"\\\\u2005\\\",\\n \\\"sixth\\\": \\\"\\\\u2006\\\",\\n \\\"med\\\": \\\"\\\\u205f\\\",\\n \\\"fig\\\": \\\"\\\\u2007\\\",\\n \\\"punct\\\": \\\"\\\\u2008\\\",\\n \\\"thin\\\": \\\"\\\\u2009\\\",\\n \\\"hair\\\": \\\"\\\\u200a\\\"\\n }\\n ],\\n \\\"paren\\\": [{ \\\"l\\\": \\\"(\\\", \\\"r\\\": \\\")\\\", \\\"t\\\": \\\"⏜\\\", \\\"b\\\": \\\"⏝\\\" }],\\n \\\"brace\\\": [{ \\\"l\\\": \\\"{\\\", \\\"r\\\": \\\"}\\\", \\\"t\\\": \\\"⏞\\\", \\\"b\\\": \\\"⏟\\\" }],\\n \\\"bracket\\\": [{ \\\"l\\\": \\\"[\\\", \\\"l.double\\\": \\\"⟦\\\", \\\"r\\\": \\\"]\\\", \\\"r.double\\\": \\\"⟧\\\", \\\"t\\\": \\\"⎴\\\", \\\"b\\\": \\\"⎵\\\" }],\\n \\\"turtle\\\": [{ \\\"l\\\": \\\"〔\\\", \\\"r\\\": \\\"〕\\\", \\\"t\\\": \\\"⏠\\\", \\\"b\\\": \\\"⏡\\\" }],\\n \\\"bar\\\": [{ \\\"v\\\": \\\"|\\\", \\\"v.double\\\": \\\"‖\\\", \\\"v.triple\\\": \\\"⦀\\\", \\\"v.broken\\\": \\\"¦\\\", \\\"v.circle\\\": \\\"⦶\\\", \\\"h\\\": \\\"―\\\" }],\\n \\\"fence\\\": [{ \\\"l\\\": \\\"⧘\\\", \\\"l.double\\\": \\\"⧚\\\", \\\"r\\\": \\\"⧙\\\", \\\"r.double\\\": \\\"⧛\\\", \\\"dotted\\\": \\\"⦙\\\" }],\\n \\\"angle\\\": [\\n \\\"∠\\\",\\n {\\n \\\"l\\\": \\\"⟨\\\",\\n \\\"r\\\": \\\"⟩\\\",\\n \\\"l.double\\\": \\\"《\\\",\\n \\\"r.double\\\": \\\"》\\\",\\n \\\"acute\\\": \\\"⦟\\\",\\n \\\"arc\\\": \\\"∡\\\",\\n \\\"arc.rev\\\": \\\"⦛\\\",\\n \\\"rev\\\": \\\"⦣\\\",\\n \\\"right\\\": \\\"∟\\\",\\n \\\"right.rev\\\": \\\"⯾\\\",\\n \\\"right.arc\\\": \\\"⊾\\\",\\n \\\"right.dot\\\": \\\"⦝\\\",\\n \\\"right.sq\\\": \\\"⦜\\\",\\n \\\"spatial\\\": \\\"⟀\\\",\\n \\\"spheric\\\": \\\"∢\\\",\\n \\\"spheric.rev\\\": \\\"⦠\\\",\\n \\\"spheric.top\\\": \\\"⦡\\\"\\n }\\n ],\\n \\\"amp\\\": [\\\"&\\\", { \\\"inv\\\": \\\"⅋\\\" }],\\n \\\"ast\\\": [\\n {\\n \\\"op\\\": \\\"∗\\\",\\n \\\"basic\\\": \\\"*\\\",\\n \\\"low\\\": \\\"⁎\\\",\\n \\\"double\\\": \\\"⁑\\\",\\n \\\"triple\\\": \\\"⁂\\\",\\n \\\"small\\\": \\\"﹡\\\",\\n \\\"circle\\\": \\\"⊛\\\",\\n \\\"square\\\": \\\"⧆\\\"\\n }\\n ],\\n \\\"at\\\": \\\"@\\\",\\n \\\"backslash\\\": [\\\"\\\\\\\\\\\\\\\\\\\", { \\\"circle\\\": \\\"⦸\\\", \\\"not\\\": \\\"⧷\\\" }],\\n \\\"co\\\": \\\"℅\\\",\\n \\\"colon\\\": [\\\":\\\", { \\\"double\\\": \\\"∷\\\", \\\"eq\\\": \\\"≔\\\", \\\"double.eq\\\": \\\"⩴\\\" }],\\n \\\"comma\\\": \\\",\\\",\\n \\\"dagger\\\": [\\\"†\\\", { \\\"double\\\": \\\"‡\\\" }],\\n \\\"dash\\\": [{ \\\"en\\\": \\\"–\\\", \\\"em\\\": \\\"—\\\", \\\"fig\\\": \\\"‒\\\", \\\"wave\\\": \\\"〜\\\", \\\"colon\\\": \\\"∹\\\", \\\"circle\\\": \\\"⊝\\\", \\\"wave.double\\\": \\\"〰\\\" }],\\n \\\"dot\\\": [\\n {\\n \\\"op\\\": \\\"⋅\\\",\\n \\\"basic\\\": \\\".\\\",\\n \\\"c\\\": \\\"·\\\",\\n \\\"circle\\\": \\\"⊙\\\",\\n \\\"circle.big\\\": \\\"⨀\\\",\\n \\\"square\\\": \\\"⊡\\\",\\n \\\"double\\\": \\\"¨\\\",\\n \\\"triple\\\": \\\"⃛\\\",\\n \\\"quad\\\": \\\"⃜\\\"\\n }\\n ],\\n \\\"excl\\\": [\\\"!\\\", { \\\"double\\\": \\\"‼\\\", \\\"inv\\\": \\\"¡\\\", \\\"quest\\\": \\\"⁉\\\" }],\\n \\\"quest\\\": [\\\"?\\\", { \\\"double\\\": \\\"⁇\\\", \\\"excl\\\": \\\"⁈\\\", \\\"inv\\\": \\\"¿\\\" }],\\n \\\"interrobang\\\": \\\"‽\\\",\\n \\\"hash\\\": \\\"#\\\",\\n \\\"hyph\\\": [\\\"‐\\\", { \\\"minus\\\": \\\"-\\\", \\\"nobreak\\\": \\\"‑\\\", \\\"point\\\": \\\"‧\\\", \\\"soft\\\": \\\"­\\\" }],\\n \\\"percent\\\": \\\"%\\\",\\n \\\"copyright\\\": [\\\"©\\\", { \\\"sound\\\": \\\"℗\\\" }],\\n \\\"permille\\\": \\\"‰\\\",\\n \\\"pilcrow\\\": [\\\"¶\\\", { \\\"rev\\\": \\\"⁋\\\" }],\\n \\\"section\\\": \\\"§\\\",\\n \\\"semi\\\": [\\\";\\\", { \\\"rev\\\": \\\"⁏\\\" }],\\n \\\"slash\\\": [\\\"/\\\", { \\\"double\\\": \\\"⫽\\\", \\\"triple\\\": \\\"⫻\\\", \\\"big\\\": \\\"⧸\\\" }],\\n \\\"dots\\\": [{ \\\"h.c\\\": \\\"⋯\\\", \\\"h\\\": \\\"…\\\", \\\"v\\\": \\\"⋮\\\", \\\"down\\\": \\\"⋱\\\", \\\"up\\\": \\\"⋰\\\" }],\\n \\\"tilde\\\": [\\n {\\n \\\"op\\\": \\\"∼\\\",\\n \\\"basic\\\": \\\"~\\\",\\n \\\"dot\\\": \\\"⩪\\\",\\n \\\"eq\\\": \\\"≃\\\",\\n \\\"eq.not\\\": \\\"≄\\\",\\n \\\"eq.rev\\\": \\\"⋍\\\",\\n \\\"equiv\\\": \\\"≅\\\",\\n \\\"equiv.not\\\": \\\"≇\\\",\\n \\\"nequiv\\\": \\\"≆\\\",\\n \\\"not\\\": \\\"≁\\\",\\n \\\"rev\\\": \\\"∽\\\",\\n \\\"rev.equiv\\\": \\\"≌\\\",\\n \\\"triple\\\": \\\"≋\\\"\\n }\\n ],\\n \\\"acute\\\": [\\\"´\\\", { \\\"double\\\": \\\"˝\\\" }],\\n \\\"breve\\\": \\\"˘\\\",\\n \\\"caret\\\": \\\"‸\\\",\\n \\\"caron\\\": \\\"ˇ\\\",\\n \\\"hat\\\": \\\"^\\\",\\n \\\"diaer\\\": \\\"¨\\\",\\n \\\"grave\\\": \\\"`\\\",\\n \\\"macron\\\": \\\"¯\\\",\\n \\\"quote\\\": [\\n {\\n \\\"double\\\": \\\"\\\\\\\"\\\",\\n \\\"single\\\": \\\"'\\\",\\n \\\"l.double\\\": \\\"“\\\",\\n \\\"l.single\\\": \\\"‘\\\",\\n \\\"r.double\\\": \\\"”\\\",\\n \\\"r.single\\\": \\\"’\\\",\\n \\\"angle.l.double\\\": \\\"«\\\",\\n \\\"angle.l.single\\\": \\\"‹\\\",\\n \\\"angle.r.double\\\": \\\"»\\\",\\n \\\"angle.r.single\\\": \\\"›\\\",\\n \\\"high.double\\\": \\\"‟\\\",\\n \\\"high.single\\\": \\\"‛\\\",\\n \\\"low.double\\\": \\\"„\\\",\\n \\\"low.single\\\": \\\"‚\\\"\\n }\\n ],\\n \\\"prime\\\": [\\\"′\\\", { \\\"rev\\\": \\\"‵\\\", \\\"double\\\": \\\"″\\\", \\\"double.rev\\\": \\\"‶\\\", \\\"triple\\\": \\\"‴\\\", \\\"triple.rev\\\": \\\"‷\\\", \\\"quad\\\": \\\"⁗\\\" }],\\n \\\"plus\\\": [\\n \\\"+\\\",\\n {\\n \\\"circle\\\": \\\"⊕\\\",\\n \\\"circle.arrow\\\": \\\"⟴\\\",\\n \\\"circle.big\\\": \\\"⨁\\\",\\n \\\"dot\\\": \\\"∔\\\",\\n \\\"minus\\\": \\\"±\\\",\\n \\\"small\\\": \\\"﹢\\\",\\n \\\"square\\\": \\\"⊞\\\",\\n \\\"triangle\\\": \\\"⨹\\\"\\n }\\n ],\\n \\\"minus\\\": [\\\"−\\\", { \\\"circle\\\": \\\"⊖\\\", \\\"dot\\\": \\\"∸\\\", \\\"plus\\\": \\\"∓\\\", \\\"square\\\": \\\"⊟\\\", \\\"tilde\\\": \\\"≂\\\", \\\"triangle\\\": \\\"⨺\\\" }],\\n \\\"div\\\": [\\\"÷\\\", { \\\"circle\\\": \\\"⨸\\\" }],\\n \\\"times\\\": [\\n \\\"×\\\",\\n {\\n \\\"big\\\": \\\"⨉\\\",\\n \\\"circle\\\": \\\"⊗\\\",\\n \\\"circle.big\\\": \\\"⨂\\\",\\n \\\"div\\\": \\\"⋇\\\",\\n \\\"three.l\\\": \\\"⋋\\\",\\n \\\"three.r\\\": \\\"⋌\\\",\\n \\\"l\\\": \\\"⋉\\\",\\n \\\"r\\\": \\\"⋊\\\",\\n \\\"square\\\": \\\"⊠\\\",\\n \\\"triangle\\\": \\\"⨻\\\"\\n }\\n ],\\n \\\"ratio\\\": \\\"∶\\\",\\n \\\"eq\\\": [\\n \\\"=\\\",\\n {\\n \\\"star\\\": \\\"≛\\\",\\n \\\"circle\\\": \\\"⊜\\\",\\n \\\"colon\\\": \\\"≕\\\",\\n \\\"def\\\": \\\"≝\\\",\\n \\\"delta\\\": \\\"≜\\\",\\n \\\"equi\\\": \\\"≚\\\",\\n \\\"est\\\": \\\"≙\\\",\\n \\\"gt\\\": \\\"⋝\\\",\\n \\\"lt\\\": \\\"⋜\\\",\\n \\\"m\\\": \\\"≞\\\",\\n \\\"not\\\": \\\"≠\\\",\\n \\\"prec\\\": \\\"⋞\\\",\\n \\\"quest\\\": \\\"≟\\\",\\n \\\"small\\\": \\\"﹦\\\",\\n \\\"succ\\\": \\\"⋟\\\",\\n \\\"triple\\\": \\\"≡\\\",\\n \\\"quad\\\": \\\"≣\\\"\\n }\\n ],\\n \\\"gt\\\": [\\n \\\">\\\",\\n {\\n \\\"circle\\\": \\\"⧁\\\",\\n \\\"curly\\\": \\\"≻\\\",\\n \\\"curly.approx\\\": \\\"⪸\\\",\\n \\\"curly.double\\\": \\\"⪼\\\",\\n \\\"curly.eq\\\": \\\"≽\\\",\\n \\\"curly.eq.not\\\": \\\"⋡\\\",\\n \\\"curly.equiv\\\": \\\"⪴\\\",\\n \\\"curly.napprox\\\": \\\"⪺\\\",\\n \\\"curly.nequiv\\\": \\\"⪶\\\",\\n \\\"curly.not\\\": \\\"⊁\\\",\\n \\\"curly.ntilde\\\": \\\"⋩\\\",\\n \\\"curly.tilde\\\": \\\"≿\\\",\\n \\\"dot\\\": \\\"⋗\\\",\\n \\\"approx\\\": \\\"⪆\\\",\\n \\\"double\\\": \\\"≫\\\",\\n \\\"eq\\\": \\\"≥\\\",\\n \\\"eq.slant\\\": \\\"⩾\\\",\\n \\\"eq.lt\\\": \\\"⋛\\\",\\n \\\"eq.not\\\": \\\"≱\\\",\\n \\\"equiv\\\": \\\"≧\\\",\\n \\\"lt\\\": \\\"≷\\\",\\n \\\"lt.not\\\": \\\"≹\\\",\\n \\\"napprox\\\": \\\"⪊\\\",\\n \\\"nequiv\\\": \\\"≩\\\",\\n \\\"not\\\": \\\"≯\\\",\\n \\\"ntilde\\\": \\\"⋧\\\",\\n \\\"small\\\": \\\"﹥\\\",\\n \\\"tilde\\\": \\\"≳\\\",\\n \\\"tilde.not\\\": \\\"≵\\\",\\n \\\"tri\\\": \\\"⊳\\\",\\n \\\"tri.eq\\\": \\\"⊵\\\",\\n \\\"tri.eq.not\\\": \\\"⋭\\\",\\n \\\"tri.not\\\": \\\"⋫\\\",\\n \\\"triple\\\": \\\"⋙\\\",\\n \\\"triple.nested\\\": \\\"⫸\\\"\\n }\\n ],\\n \\\"lt\\\": [\\n \\\"<\\\",\\n {\\n \\\"circle\\\": \\\"⧀\\\",\\n \\\"curly\\\": \\\"≺\\\",\\n \\\"curly.approx\\\": \\\"⪷\\\",\\n \\\"curly.double\\\": \\\"⪻\\\",\\n \\\"curly.eq\\\": \\\"≼\\\",\\n \\\"curly.eq.not\\\": \\\"⋠\\\",\\n \\\"curly.equiv\\\": \\\"⪳\\\",\\n \\\"curly.napprox\\\": \\\"⪹\\\",\\n \\\"curly.nequiv\\\": \\\"⪵\\\",\\n \\\"curly.not\\\": \\\"⊀\\\",\\n \\\"curly.ntilde\\\": \\\"⋨\\\",\\n \\\"curly.tilde\\\": \\\"≾\\\",\\n \\\"dot\\\": \\\"⋖\\\",\\n \\\"approx\\\": \\\"⪅\\\",\\n \\\"double\\\": \\\"≪\\\",\\n \\\"eq\\\": \\\"≤\\\",\\n \\\"eq.slant\\\": \\\"⩽\\\",\\n \\\"eq.gt\\\": \\\"⋚\\\",\\n \\\"eq.not\\\": \\\"≰\\\",\\n \\\"equiv\\\": \\\"≦\\\",\\n \\\"gt\\\": \\\"≶\\\",\\n \\\"gt.not\\\": \\\"≸\\\",\\n \\\"napprox\\\": \\\"⪉\\\",\\n \\\"nequiv\\\": \\\"≨\\\",\\n \\\"not\\\": \\\"≮\\\",\\n \\\"ntilde\\\": \\\"⋦\\\",\\n \\\"small\\\": \\\"﹤\\\",\\n \\\"tilde\\\": \\\"≲\\\",\\n \\\"tilde.not\\\": \\\"≴\\\",\\n \\\"tri\\\": \\\"⊲\\\",\\n \\\"tri.eq\\\": \\\"⊴\\\",\\n \\\"tri.eq.not\\\": \\\"⋬\\\",\\n \\\"tri.not\\\": \\\"⋪\\\",\\n \\\"triple\\\": \\\"⋘\\\",\\n \\\"triple.nested\\\": \\\"⫷\\\"\\n }\\n ],\\n \\\"approx\\\": [\\\"≈\\\", { \\\"eq\\\": \\\"≊\\\", \\\"not\\\": \\\"≉\\\" }],\\n \\\"prec\\\": [\\n \\\"≺\\\",\\n {\\n \\\"approx\\\": \\\"⪷\\\",\\n \\\"double\\\": \\\"⪻\\\",\\n \\\"eq\\\": \\\"≼\\\",\\n \\\"eq.not\\\": \\\"⋠\\\",\\n \\\"equiv\\\": \\\"⪳\\\",\\n \\\"napprox\\\": \\\"⪹\\\",\\n \\\"nequiv\\\": \\\"⪵\\\",\\n \\\"not\\\": \\\"⊀\\\",\\n \\\"ntilde\\\": \\\"⋨\\\",\\n \\\"tilde\\\": \\\"≾\\\"\\n }\\n ],\\n \\\"succ\\\": [\\n \\\"≻\\\",\\n {\\n \\\"approx\\\": \\\"⪸\\\",\\n \\\"double\\\": \\\"⪼\\\",\\n \\\"eq\\\": \\\"≽\\\",\\n \\\"eq.not\\\": \\\"⋡\\\",\\n \\\"equiv\\\": \\\"⪴\\\",\\n \\\"napprox\\\": \\\"⪺\\\",\\n \\\"nequiv\\\": \\\"⪶\\\",\\n \\\"not\\\": \\\"⊁\\\",\\n \\\"ntilde\\\": \\\"⋩\\\",\\n \\\"tilde\\\": \\\"≿\\\"\\n }\\n ],\\n \\\"equiv\\\": [\\\"≡\\\", { \\\"not\\\": \\\"≢\\\" }],\\n \\\"prop\\\": \\\"∝\\\",\\n \\\"emptyset\\\": [\\\"∅\\\", { \\\"rev\\\": \\\"⦰\\\" }],\\n \\\"nothing\\\": [\\\"∅\\\", { \\\"rev\\\": \\\"⦰\\\" }],\\n \\\"without\\\": \\\"∖\\\",\\n \\\"complement\\\": \\\"∁\\\",\\n \\\"in\\\": [\\\"∈\\\", { \\\"not\\\": \\\"∉\\\", \\\"rev\\\": \\\"∋\\\", \\\"rev.not\\\": \\\"∌\\\", \\\"rev.small\\\": \\\"∍\\\", \\\"small\\\": \\\"∊\\\" }],\\n \\\"subset\\\": [\\n \\\"⊂\\\",\\n {\\n \\\"dot\\\": \\\"⪽\\\",\\n \\\"double\\\": \\\"⋐\\\",\\n \\\"eq\\\": \\\"⊆\\\",\\n \\\"eq.not\\\": \\\"⊈\\\",\\n \\\"eq.sq\\\": \\\"⊑\\\",\\n \\\"eq.sq.not\\\": \\\"⋢\\\",\\n \\\"neq\\\": \\\"⊊\\\",\\n \\\"not\\\": \\\"⊄\\\",\\n \\\"sq\\\": \\\"⊏\\\",\\n \\\"sq.neq\\\": \\\"⋤\\\"\\n }\\n ],\\n \\\"supset\\\": [\\n \\\"⊃\\\",\\n {\\n \\\"dot\\\": \\\"⪾\\\",\\n \\\"double\\\": \\\"⋑\\\",\\n \\\"eq\\\": \\\"⊇\\\",\\n \\\"eq.not\\\": \\\"⊉\\\",\\n \\\"eq.sq\\\": \\\"⊒\\\",\\n \\\"eq.sq.not\\\": \\\"⋣\\\",\\n \\\"neq\\\": \\\"⊋\\\",\\n \\\"not\\\": \\\"⊅\\\",\\n \\\"sq\\\": \\\"⊐\\\",\\n \\\"sq.neq\\\": \\\"⋥\\\"\\n }\\n ],\\n \\\"union\\\": [\\n \\\"∪\\\",\\n {\\n \\\"arrow\\\": \\\"⊌\\\",\\n \\\"big\\\": \\\"⋃\\\",\\n \\\"dot\\\": \\\"⊍\\\",\\n \\\"dot.big\\\": \\\"⨃\\\",\\n \\\"double\\\": \\\"⋓\\\",\\n \\\"minus\\\": \\\"⩁\\\",\\n \\\"or\\\": \\\"⩅\\\",\\n \\\"plus\\\": \\\"⊎\\\",\\n \\\"plus.big\\\": \\\"⨄\\\",\\n \\\"sq\\\": \\\"⊔\\\",\\n \\\"sq.big\\\": \\\"⨆\\\",\\n \\\"sq.double\\\": \\\"⩏\\\"\\n }\\n ],\\n \\\"sect\\\": [\\\"∩\\\", { \\\"and\\\": \\\"⩄\\\", \\\"big\\\": \\\"⋂\\\", \\\"dot\\\": \\\"⩀\\\", \\\"double\\\": \\\"⋒\\\", \\\"sq\\\": \\\"⊓\\\", \\\"sq.big\\\": \\\"⨅\\\", \\\"sq.double\\\": \\\"⩎\\\" }],\\n \\\"infinity\\\": \\\"∞\\\",\\n \\\"oo\\\": \\\"∞\\\",\\n \\\"diff\\\": \\\"∂\\\",\\n \\\"partial\\\": \\\"∂\\\",\\n \\\"gradient\\\": \\\"∇\\\",\\n \\\"nabla\\\": \\\"∇\\\",\\n \\\"sum\\\": [\\\"∑\\\", { \\\"integral\\\": \\\"⨋\\\" }],\\n \\\"product\\\": [\\\"∏\\\", { \\\"co\\\": \\\"∐\\\" }],\\n \\\"integral\\\": [\\n \\\"∫\\\",\\n {\\n \\\"arrow.hook\\\": \\\"⨗\\\",\\n \\\"ccw\\\": \\\"⨑\\\",\\n \\\"cont\\\": \\\"∮\\\",\\n \\\"cont.ccw\\\": \\\"∳\\\",\\n \\\"cont.cw\\\": \\\"∲\\\",\\n \\\"cw\\\": \\\"∱\\\",\\n \\\"dash\\\": \\\"⨍\\\",\\n \\\"dash.double\\\": \\\"⨎\\\",\\n \\\"double\\\": \\\"∬\\\",\\n \\\"quad\\\": \\\"⨌\\\",\\n \\\"sect\\\": \\\"⨙\\\",\\n \\\"slash\\\": \\\"⨏\\\",\\n \\\"square\\\": \\\"⨖\\\",\\n \\\"surf\\\": \\\"∯\\\",\\n \\\"times\\\": \\\"⨘\\\",\\n \\\"triple\\\": \\\"∭\\\",\\n \\\"union\\\": \\\"⨚\\\",\\n \\\"vol\\\": \\\"∰\\\"\\n }\\n ],\\n \\\"laplace\\\": \\\"∆\\\",\\n \\\"forall\\\": \\\"∀\\\",\\n \\\"exists\\\": [\\\"∃\\\", { \\\"not\\\": \\\"∄\\\" }],\\n \\\"top\\\": \\\"⊤\\\",\\n \\\"bot\\\": \\\"⊥\\\",\\n \\\"not\\\": \\\"¬\\\",\\n \\\"and\\\": [\\\"∧\\\", { \\\"big\\\": \\\"⋀\\\", \\\"curly\\\": \\\"⋏\\\", \\\"dot\\\": \\\"⟑\\\", \\\"double\\\": \\\"⩓\\\" }],\\n \\\"or\\\": [\\\"∨\\\", { \\\"big\\\": \\\"⋁\\\", \\\"curly\\\": \\\"⋎\\\", \\\"dot\\\": \\\"⟇\\\", \\\"double\\\": \\\"⩔\\\" }],\\n \\\"xor\\\": [\\\"⊕\\\", { \\\"big\\\": \\\"⨁\\\" }],\\n \\\"models\\\": \\\"⊧\\\",\\n \\\"forces\\\": [\\\"⊩\\\", { \\\"not\\\": \\\"⊮\\\" }],\\n \\\"therefore\\\": \\\"∴\\\",\\n \\\"because\\\": \\\"∵\\\",\\n \\\"qed\\\": \\\"∎\\\",\\n \\\"compose\\\": \\\"∘\\\",\\n \\\"convolve\\\": \\\"∗\\\",\\n \\\"multimap\\\": \\\"⊸\\\",\\n \\\"divides\\\": [\\\"∣\\\", { \\\"not\\\": \\\"∤\\\" }],\\n \\\"wreath\\\": \\\"≀\\\",\\n \\\"parallel\\\": [\\\"∥\\\", { \\\"circle\\\": \\\"⦷\\\", \\\"not\\\": \\\"∦\\\" }],\\n \\\"perp\\\": [\\\"⟂\\\", { \\\"circle\\\": \\\"⦹\\\" }],\\n \\\"diameter\\\": \\\"⌀\\\",\\n \\\"join\\\": [\\\"⨝\\\", { \\\"r\\\": \\\"⟖\\\", \\\"l\\\": \\\"⟕\\\", \\\"l.r\\\": \\\"⟗\\\" }],\\n \\\"degree\\\": [\\\"°\\\", { \\\"c\\\": \\\"℃\\\", \\\"f\\\": \\\"℉\\\" }],\\n \\\"smash\\\": \\\"⨳\\\",\\n \\\"bitcoin\\\": \\\"₿\\\",\\n \\\"dollar\\\": \\\"$\\\",\\n \\\"euro\\\": \\\"€\\\",\\n \\\"franc\\\": \\\"₣\\\",\\n \\\"lira\\\": \\\"₺\\\",\\n \\\"peso\\\": \\\"₱\\\",\\n \\\"pound\\\": \\\"£\\\",\\n \\\"ruble\\\": \\\"₽\\\",\\n \\\"rupee\\\": \\\"₹\\\",\\n \\\"won\\\": \\\"₩\\\",\\n \\\"yen\\\": \\\"¥\\\",\\n \\\"ballot\\\": [\\\"☐\\\", { \\\"x\\\": \\\"☒\\\" }],\\n \\\"checkmark\\\": [\\\"✓\\\", { \\\"light\\\": \\\"🗸\\\" }],\\n \\\"floral\\\": [\\\"❦\\\", { \\\"l\\\": \\\"☙\\\", \\\"r\\\": \\\"❧\\\" }],\\n \\\"notes\\\": [{ \\\"up\\\": \\\"🎜\\\", \\\"down\\\": \\\"🎝\\\" }],\\n \\\"refmark\\\": \\\"※\\\",\\n \\\"servicemark\\\": \\\"℠\\\",\\n \\\"maltese\\\": \\\"✠\\\",\\n \\\"suit\\\": [{ \\\"club\\\": \\\"♣\\\", \\\"diamond\\\": \\\"♦\\\", \\\"heart\\\": \\\"♥\\\", \\\"spade\\\": \\\"♠\\\" }],\\n \\\"bullet\\\": \\\"•\\\",\\n \\\"circle\\\": [\\n {\\n \\\"stroked\\\": \\\"○\\\",\\n \\\"stroked.tiny\\\": \\\"∘\\\",\\n \\\"stroked.small\\\": \\\"⚬\\\",\\n \\\"stroked.big\\\": \\\"◯\\\",\\n \\\"filled\\\": \\\"●\\\",\\n \\\"filled.tiny\\\": \\\"⦁\\\",\\n \\\"filled.small\\\": \\\"∙\\\",\\n \\\"filled.big\\\": \\\"⬤\\\",\\n \\\"dotted\\\": \\\"◌\\\",\\n \\\"nested\\\": \\\"⊚\\\"\\n }\\n ],\\n \\\"ellipse\\\": [{ \\\"stroked.h\\\": \\\"⬭\\\", \\\"stroked.v\\\": \\\"⬯\\\", \\\"filled.h\\\": \\\"⬬\\\", \\\"filled.v\\\": \\\"⬮\\\" }],\\n \\\"triangle\\\": [\\n {\\n \\\"stroked.r\\\": \\\"▷\\\",\\n \\\"stroked.l\\\": \\\"◁\\\",\\n \\\"stroked.t\\\": \\\"△\\\",\\n \\\"stroked.b\\\": \\\"▽\\\",\\n \\\"stroked.bl\\\": \\\"◺\\\",\\n \\\"stroked.br\\\": \\\"◿\\\",\\n \\\"stroked.tl\\\": \\\"◸\\\",\\n \\\"stroked.tr\\\": \\\"◹\\\",\\n \\\"stroked.small.r\\\": \\\"▹\\\",\\n \\\"stroked.small.b\\\": \\\"▿\\\",\\n \\\"stroked.small.l\\\": \\\"◃\\\",\\n \\\"stroked.small.t\\\": \\\"▵\\\",\\n \\\"stroked.rounded\\\": \\\"🛆\\\",\\n \\\"stroked.nested\\\": \\\"⟁\\\",\\n \\\"stroked.dot\\\": \\\"◬\\\",\\n \\\"filled.r\\\": \\\"▶\\\",\\n \\\"filled.l\\\": \\\"◀\\\",\\n \\\"filled.t\\\": \\\"▲\\\",\\n \\\"filled.b\\\": \\\"▼\\\",\\n \\\"filled.bl\\\": \\\"◣\\\",\\n \\\"filled.br\\\": \\\"◢\\\",\\n \\\"filled.tl\\\": \\\"◤\\\",\\n \\\"filled.tr\\\": \\\"◥\\\",\\n \\\"filled.small.r\\\": \\\"▸\\\",\\n \\\"filled.small.b\\\": \\\"▾\\\",\\n \\\"filled.small.l\\\": \\\"◂\\\",\\n \\\"filled.small.t\\\": \\\"▴\\\"\\n }\\n ],\\n \\\"square\\\": [\\n {\\n \\\"stroked\\\": \\\"□\\\",\\n \\\"stroked.tiny\\\": \\\"▫\\\",\\n \\\"stroked.small\\\": \\\"◽\\\",\\n \\\"stroked.medium\\\": \\\"◻\\\",\\n \\\"stroked.big\\\": \\\"⬜\\\",\\n \\\"stroked.dotted\\\": \\\"⬚\\\",\\n \\\"stroked.rounded\\\": \\\"▢\\\",\\n \\\"filled\\\": \\\"■\\\",\\n \\\"filled.tiny\\\": \\\"▪\\\",\\n \\\"filled.small\\\": \\\"◾\\\",\\n \\\"filled.medium\\\": \\\"◼\\\",\\n \\\"filled.big\\\": \\\"⬛\\\"\\n }\\n ],\\n \\\"rect\\\": [{ \\\"stroked.h\\\": \\\"▭\\\", \\\"stroked.v\\\": \\\"▯\\\", \\\"filled.h\\\": \\\"▬\\\", \\\"filled.v\\\": \\\"▮\\\" }],\\n \\\"penta\\\": [{ \\\"stroked\\\": \\\"⬠\\\", \\\"filled\\\": \\\"⬟\\\" }],\\n \\\"hexa\\\": [{ \\\"stroked\\\": \\\"⬡\\\", \\\"filled\\\": \\\"⬢\\\" }],\\n \\\"diamond\\\": [\\n {\\n \\\"stroked\\\": \\\"◇\\\",\\n \\\"stroked.small\\\": \\\"⋄\\\",\\n \\\"stroked.medium\\\": \\\"⬦\\\",\\n \\\"stroked.dot\\\": \\\"⟐\\\",\\n \\\"filled\\\": \\\"◆\\\",\\n \\\"filled.medium\\\": \\\"⬥\\\",\\n \\\"filled.small\\\": \\\"⬩\\\"\\n }\\n ],\\n \\\"lozenge\\\": [\\n {\\n \\\"stroked\\\": \\\"◊\\\",\\n \\\"stroked.small\\\": \\\"⬫\\\",\\n \\\"stroked.medium\\\": \\\"⬨\\\",\\n \\\"filled\\\": \\\"⧫\\\",\\n \\\"filled.small\\\": \\\"⬪\\\",\\n \\\"filled.medium\\\": \\\"⬧\\\"\\n }\\n ],\\n \\\"star\\\": [{ \\\"op\\\": \\\"⋆\\\", \\\"stroked\\\": \\\"☆\\\", \\\"filled\\\": \\\"★\\\" }],\\n \\\"arrow\\\": [\\n {\\n \\\"r\\\": \\\"→\\\",\\n \\\"r.long.bar\\\": \\\"⟼\\\",\\n \\\"r.bar\\\": \\\"↦\\\",\\n \\\"r.curve\\\": \\\"⤷\\\",\\n \\\"r.dashed\\\": \\\"⇢\\\",\\n \\\"r.dotted\\\": \\\"⤑\\\",\\n \\\"r.double\\\": \\\"⇒\\\",\\n \\\"r.double.bar\\\": \\\"⤇\\\",\\n \\\"r.double.long\\\": \\\"⟹\\\",\\n \\\"r.double.long.bar\\\": \\\"⟾\\\",\\n \\\"r.double.not\\\": \\\"⇏\\\",\\n \\\"r.filled\\\": \\\"➡\\\",\\n \\\"r.hook\\\": \\\"↪\\\",\\n \\\"r.long\\\": \\\"⟶\\\",\\n \\\"r.long.squiggly\\\": \\\"⟿\\\",\\n \\\"r.loop\\\": \\\"↬\\\",\\n \\\"r.not\\\": \\\"↛\\\",\\n \\\"r.quad\\\": \\\"⭆\\\",\\n \\\"r.squiggly\\\": \\\"⇝\\\",\\n \\\"r.stop\\\": \\\"⇥\\\",\\n \\\"r.stroked\\\": \\\"⇨\\\",\\n \\\"r.tail\\\": \\\"↣\\\",\\n \\\"r.tilde\\\": \\\"⥲\\\",\\n \\\"r.triple\\\": \\\"⇛\\\",\\n \\\"r.twohead.bar\\\": \\\"⤅\\\",\\n \\\"r.twohead\\\": \\\"↠\\\",\\n \\\"r.wave\\\": \\\"↝\\\",\\n \\\"l\\\": \\\"←\\\",\\n \\\"l.bar\\\": \\\"↤\\\",\\n \\\"l.curve\\\": \\\"⤶\\\",\\n \\\"l.dashed\\\": \\\"⇠\\\",\\n \\\"l.dotted\\\": \\\"⬸\\\",\\n \\\"l.double\\\": \\\"⇐\\\",\\n \\\"l.double.bar\\\": \\\"⤆\\\",\\n \\\"l.double.long\\\": \\\"⟸\\\",\\n \\\"l.double.long.bar\\\": \\\"⟽\\\",\\n \\\"l.double.not\\\": \\\"⇍\\\",\\n \\\"l.filled\\\": \\\"⬅\\\",\\n \\\"l.hook\\\": \\\"↩\\\",\\n \\\"l.long\\\": \\\"⟵\\\",\\n \\\"l.long.bar\\\": \\\"⟻\\\",\\n \\\"l.long.squiggly\\\": \\\"⬳\\\",\\n \\\"l.loop\\\": \\\"↫\\\",\\n \\\"l.not\\\": \\\"↚\\\",\\n \\\"l.quad\\\": \\\"⭅\\\",\\n \\\"l.squiggly\\\": \\\"⇜\\\",\\n \\\"l.stop\\\": \\\"⇤\\\",\\n \\\"l.stroked\\\": \\\"⇦\\\",\\n \\\"l.tail\\\": \\\"↢\\\",\\n \\\"l.tilde\\\": \\\"⭉\\\",\\n \\\"l.triple\\\": \\\"⇚\\\",\\n \\\"l.twohead.bar\\\": \\\"⬶\\\",\\n \\\"l.twohead\\\": \\\"↞\\\",\\n \\\"l.wave\\\": \\\"↜\\\",\\n \\\"t\\\": \\\"↑\\\",\\n \\\"t.bar\\\": \\\"↥\\\",\\n \\\"t.curve\\\": \\\"⤴\\\",\\n \\\"t.dashed\\\": \\\"⇡\\\",\\n \\\"t.double\\\": \\\"⇑\\\",\\n \\\"t.filled\\\": \\\"⬆\\\",\\n \\\"t.quad\\\": \\\"⟰\\\",\\n \\\"t.stop\\\": \\\"⤒\\\",\\n \\\"t.stroked\\\": \\\"⇧\\\",\\n \\\"t.triple\\\": \\\"⤊\\\",\\n \\\"t.twohead\\\": \\\"↟\\\",\\n \\\"b\\\": \\\"↓\\\",\\n \\\"b.bar\\\": \\\"↧\\\",\\n \\\"b.curve\\\": \\\"⤵\\\",\\n \\\"b.dashed\\\": \\\"⇣\\\",\\n \\\"b.double\\\": \\\"⇓\\\",\\n \\\"b.filled\\\": \\\"⬇\\\",\\n \\\"b.quad\\\": \\\"⟱\\\",\\n \\\"b.stop\\\": \\\"⤓\\\",\\n \\\"b.stroked\\\": \\\"⇩\\\",\\n \\\"b.triple\\\": \\\"⤋\\\",\\n \\\"b.twohead\\\": \\\"↡\\\",\\n \\\"l.r\\\": \\\"↔\\\",\\n \\\"l.r.double\\\": \\\"⇔\\\",\\n \\\"l.r.double.long\\\": \\\"⟺\\\",\\n \\\"l.r.double.not\\\": \\\"⇎\\\",\\n \\\"l.r.filled\\\": \\\"⬌\\\",\\n \\\"l.r.long\\\": \\\"⟷\\\",\\n \\\"l.r.not\\\": \\\"↮\\\",\\n \\\"l.r.stroked\\\": \\\"⬄\\\",\\n \\\"l.r.wave\\\": \\\"↭\\\",\\n \\\"t.b\\\": \\\"↕\\\",\\n \\\"t.b.double\\\": \\\"⇕\\\",\\n \\\"t.b.filled\\\": \\\"⬍\\\",\\n \\\"t.b.stroked\\\": \\\"⇳\\\",\\n \\\"tr\\\": \\\"↗\\\",\\n \\\"tr.double\\\": \\\"⇗\\\",\\n \\\"tr.filled\\\": \\\"⬈\\\",\\n \\\"tr.hook\\\": \\\"⤤\\\",\\n \\\"tr.stroked\\\": \\\"⬀\\\",\\n \\\"br\\\": \\\"↘\\\",\\n \\\"br.double\\\": \\\"⇘\\\",\\n \\\"br.filled\\\": \\\"⬊\\\",\\n \\\"br.hook\\\": \\\"⤥\\\",\\n \\\"br.stroked\\\": \\\"⬂\\\",\\n \\\"tl\\\": \\\"↖\\\",\\n \\\"tl.double\\\": \\\"⇖\\\",\\n \\\"tl.filled\\\": \\\"⬉\\\",\\n \\\"tl.hook\\\": \\\"⤣\\\",\\n \\\"tl.stroked\\\": \\\"⬁\\\",\\n \\\"bl\\\": \\\"↙\\\",\\n \\\"bl.double\\\": \\\"⇙\\\",\\n \\\"bl.filled\\\": \\\"⬋\\\",\\n \\\"bl.hook\\\": \\\"⤦\\\",\\n \\\"bl.stroked\\\": \\\"⬃\\\",\\n \\\"tl.br\\\": \\\"⤡\\\",\\n \\\"tr.bl\\\": \\\"⤢\\\",\\n \\\"ccw\\\": \\\"↺\\\",\\n \\\"ccw.half\\\": \\\"↶\\\",\\n \\\"cw\\\": \\\"↻\\\",\\n \\\"cw.half\\\": \\\"↷\\\",\\n \\\"zigzag\\\": \\\"↯\\\"\\n }\\n ],\\n \\\"arrows\\\": [\\n {\\n \\\"rr\\\": \\\"⇉\\\",\\n \\\"ll\\\": \\\"⇇\\\",\\n \\\"tt\\\": \\\"⇈\\\",\\n \\\"bb\\\": \\\"⇊\\\",\\n \\\"lr\\\": \\\"⇆\\\",\\n \\\"lr.stop\\\": \\\"↹\\\",\\n \\\"rl\\\": \\\"⇄\\\",\\n \\\"tb\\\": \\\"⇅\\\",\\n \\\"bt\\\": \\\"⇵\\\",\\n \\\"rrr\\\": \\\"⇶\\\",\\n \\\"lll\\\": \\\"⬱\\\"\\n }\\n ],\\n \\\"arrowhead\\\": [{ \\\"t\\\": \\\"⌃\\\", \\\"b\\\": \\\"⌄\\\" }],\\n \\\"harpoon\\\": [\\n {\\n \\\"rt\\\": \\\"⇀\\\",\\n \\\"rt.bar\\\": \\\"⥛\\\",\\n \\\"rt.stop\\\": \\\"⥓\\\",\\n \\\"rb\\\": \\\"⇁\\\",\\n \\\"rb.bar\\\": \\\"⥟\\\",\\n \\\"rb.stop\\\": \\\"⥗\\\",\\n \\\"lt\\\": \\\"↼\\\",\\n \\\"lt.bar\\\": \\\"⥚\\\",\\n \\\"lt.stop\\\": \\\"⥒\\\",\\n \\\"lb\\\": \\\"↽\\\",\\n \\\"lb.bar\\\": \\\"⥞\\\",\\n \\\"lb.stop\\\": \\\"⥖\\\",\\n \\\"tl\\\": \\\"↿\\\",\\n \\\"tl.bar\\\": \\\"⥠\\\",\\n \\\"tl.stop\\\": \\\"⥘\\\",\\n \\\"tr\\\": \\\"↾\\\",\\n \\\"tr.bar\\\": \\\"⥜\\\",\\n \\\"tr.stop\\\": \\\"⥔\\\",\\n \\\"bl\\\": \\\"⇃\\\",\\n \\\"bl.bar\\\": \\\"⥡\\\",\\n \\\"bl.stop\\\": \\\"⥙\\\",\\n \\\"br\\\": \\\"⇂\\\",\\n \\\"br.bar\\\": \\\"⥝\\\",\\n \\\"br.stop\\\": \\\"⥕\\\",\\n \\\"lt.rt\\\": \\\"⥎\\\",\\n \\\"lb.rb\\\": \\\"⥐\\\",\\n \\\"lb.rt\\\": \\\"⥋\\\",\\n \\\"lt.rb\\\": \\\"⥊\\\",\\n \\\"tl.bl\\\": \\\"⥑\\\",\\n \\\"tr.br\\\": \\\"⥏\\\",\\n \\\"tl.br\\\": \\\"⥍\\\",\\n \\\"tr.bl\\\": \\\"⥌\\\"\\n }\\n ],\\n \\\"harpoons\\\": [\\n {\\n \\\"rtrb\\\": \\\"⥤\\\",\\n \\\"blbr\\\": \\\"⥥\\\",\\n \\\"bltr\\\": \\\"⥯\\\",\\n \\\"lbrb\\\": \\\"⥧\\\",\\n \\\"ltlb\\\": \\\"⥢\\\",\\n \\\"ltrb\\\": \\\"⇋\\\",\\n \\\"ltrt\\\": \\\"⥦\\\",\\n \\\"rblb\\\": \\\"⥩\\\",\\n \\\"rtlb\\\": \\\"⇌\\\",\\n \\\"rtlt\\\": \\\"⥨\\\",\\n \\\"tlbr\\\": \\\"⥮\\\",\\n \\\"tltr\\\": \\\"⥣\\\"\\n }\\n ],\\n \\\"tack\\\": [\\n {\\n \\\"r\\\": \\\"⊢\\\",\\n \\\"r.not\\\": \\\"⊬\\\",\\n \\\"r.long\\\": \\\"⟝\\\",\\n \\\"r.short\\\": \\\"⊦\\\",\\n \\\"r.double\\\": \\\"⊨\\\",\\n \\\"r.double.not\\\": \\\"⊭\\\",\\n \\\"l\\\": \\\"⊣\\\",\\n \\\"l.long\\\": \\\"⟞\\\",\\n \\\"l.short\\\": \\\"⫞\\\",\\n \\\"l.double\\\": \\\"⫤\\\",\\n \\\"t\\\": \\\"⊥\\\",\\n \\\"t.big\\\": \\\"⟘\\\",\\n \\\"t.double\\\": \\\"⫫\\\",\\n \\\"t.short\\\": \\\"⫠\\\",\\n \\\"b\\\": \\\"⊤\\\",\\n \\\"b.big\\\": \\\"⟙\\\",\\n \\\"b.double\\\": \\\"⫪\\\",\\n \\\"b.short\\\": \\\"⫟\\\",\\n \\\"l.r\\\": \\\"⟛\\\"\\n }\\n ],\\n \\\"alpha\\\": \\\"α\\\",\\n \\\"beta\\\": [\\\"β\\\", { \\\"alt\\\": \\\"ϐ\\\" }],\\n \\\"chi\\\": \\\"χ\\\",\\n \\\"delta\\\": \\\"δ\\\",\\n \\\"epsilon\\\": [\\\"ε\\\", { \\\"alt\\\": \\\"ϵ\\\" }],\\n \\\"eta\\\": \\\"η\\\",\\n \\\"gamma\\\": \\\"γ\\\",\\n \\\"iota\\\": \\\"ι\\\",\\n \\\"kai\\\": \\\"ϗ\\\",\\n \\\"kappa\\\": [\\\"κ\\\", { \\\"alt\\\": \\\"ϰ\\\" }],\\n \\\"lambda\\\": \\\"λ\\\",\\n \\\"mu\\\": \\\"μ\\\",\\n \\\"nu\\\": \\\"ν\\\",\\n \\\"ohm\\\": [\\\"Ω\\\", { \\\"inv\\\": \\\"℧\\\" }],\\n \\\"omega\\\": \\\"ω\\\",\\n \\\"omicron\\\": \\\"ο\\\",\\n \\\"phi\\\": [\\\"φ\\\", { \\\"alt\\\": \\\"ϕ\\\" }],\\n \\\"pi\\\": [\\\"π\\\", { \\\"alt\\\": \\\"ϖ\\\" }],\\n \\\"psi\\\": \\\"ψ\\\",\\n \\\"rho\\\": [\\\"ρ\\\", { \\\"alt\\\": \\\"ϱ\\\" }],\\n \\\"sigma\\\": [\\\"σ\\\", { \\\"alt\\\": \\\"ς\\\" }],\\n \\\"tau\\\": \\\"τ\\\",\\n \\\"theta\\\": [\\\"θ\\\", { \\\"alt\\\": \\\"ϑ\\\" }],\\n \\\"upsilon\\\": \\\"υ\\\",\\n \\\"xi\\\": \\\"ξ\\\",\\n \\\"zeta\\\": \\\"ζ\\\",\\n \\\"Alpha\\\": \\\"Α\\\",\\n \\\"Beta\\\": \\\"Β\\\",\\n \\\"Chi\\\": \\\"Χ\\\",\\n \\\"Delta\\\": \\\"Δ\\\",\\n \\\"Epsilon\\\": \\\"Ε\\\",\\n \\\"Eta\\\": \\\"Η\\\",\\n \\\"Gamma\\\": \\\"Γ\\\",\\n \\\"Iota\\\": \\\"Ι\\\",\\n \\\"Kai\\\": \\\"Ϗ\\\",\\n \\\"Kappa\\\": \\\"Κ\\\",\\n \\\"Lambda\\\": \\\"Λ\\\",\\n \\\"Mu\\\": \\\"Μ\\\",\\n \\\"Nu\\\": \\\"Ν\\\",\\n \\\"Omega\\\": \\\"Ω\\\",\\n \\\"Omicron\\\": \\\"Ο\\\",\\n \\\"Phi\\\": \\\"Φ\\\",\\n \\\"Pi\\\": \\\"Π\\\",\\n \\\"Psi\\\": \\\"Ψ\\\",\\n \\\"Rho\\\": \\\"Ρ\\\",\\n \\\"Sigma\\\": \\\"Σ\\\",\\n \\\"Tau\\\": \\\"Τ\\\",\\n \\\"Theta\\\": \\\"Θ\\\",\\n \\\"Upsilon\\\": \\\"Υ\\\",\\n \\\"Xi\\\": \\\"Ξ\\\",\\n \\\"Zeta\\\": \\\"Ζ\\\",\\n \\\"aleph\\\": \\\"א\\\",\\n \\\"alef\\\": \\\"א\\\",\\n \\\"beth\\\": \\\"ב\\\",\\n \\\"bet\\\": \\\"ב\\\",\\n \\\"gimmel\\\": \\\"ג\\\",\\n \\\"gimel\\\": \\\"ג\\\",\\n \\\"daleth\\\": \\\"ד\\\",\\n \\\"dalet\\\": \\\"ד\\\",\\n \\\"shin\\\": \\\"ש\\\",\\n \\\"AA\\\": \\\"𝔸\\\",\\n \\\"BB\\\": \\\"𝔹\\\",\\n \\\"CC\\\": \\\"ℂ\\\",\\n \\\"DD\\\": \\\"𝔻\\\",\\n \\\"EE\\\": \\\"𝔼\\\",\\n \\\"FF\\\": \\\"𝔽\\\",\\n \\\"GG\\\": \\\"𝔾\\\",\\n \\\"HH\\\": \\\"ℍ\\\",\\n \\\"II\\\": \\\"𝕀\\\",\\n \\\"JJ\\\": \\\"𝕁\\\",\\n \\\"KK\\\": \\\"𝕂\\\",\\n \\\"LL\\\": \\\"𝕃\\\",\\n \\\"MM\\\": \\\"𝕄\\\",\\n \\\"NN\\\": \\\"ℕ\\\",\\n \\\"OO\\\": \\\"𝕆\\\",\\n \\\"PP\\\": \\\"ℙ\\\",\\n \\\"QQ\\\": \\\"ℚ\\\",\\n \\\"RR\\\": \\\"ℝ\\\",\\n \\\"SS\\\": \\\"𝕊\\\",\\n \\\"TT\\\": \\\"𝕋\\\",\\n \\\"UU\\\": \\\"𝕌\\\",\\n \\\"VV\\\": \\\"𝕍\\\",\\n \\\"WW\\\": \\\"𝕎\\\",\\n \\\"XX\\\": \\\"𝕏\\\",\\n \\\"YY\\\": \\\"𝕐\\\",\\n \\\"ZZ\\\": \\\"ℤ\\\",\\n \\\"ell\\\": \\\"ℓ\\\",\\n \\\"planck\\\": [\\\"ℎ\\\", { \\\"reduce\\\": \\\"ℏ\\\" }],\\n \\\"angstrom\\\": \\\"Å\\\",\\n \\\"kelvin\\\": \\\"K\\\",\\n \\\"Re\\\": \\\"ℜ\\\",\\n \\\"Im\\\": \\\"ℑ\\\",\\n \\\"dotless\\\": [{ \\\"i\\\": \\\"𝚤\\\", \\\"j\\\": \\\"𝚥\\\" }]\\n}\\n\"","/// <reference types=\"vite/client\" />\n\nfunction createEl<K extends keyof HTMLElementTagNameMap>(tagName: K): HTMLElementTagNameMap[K];\nfunction createEl<K extends keyof HTMLElementDeprecatedTagNameMap>(tagName: K): HTMLElementDeprecatedTagNameMap[K];\nfunction createEl(tagName: string): HTMLElement;\nfunction createEl(tagname: string) {\n return document.createElement(tagname);\n}\n\nfunction createMath<K extends keyof MathMLElementTagNameMap>(\n tagname: K,\n innerText?: string,\n attr?: { [name: string]: string }\n) {\n let el = document.createElementNS(\"http://www.w3.org/1998/Math/MathML\", tagname);\n if (innerText) el.textContent = innerText;\n if (attr) {\n for (let i in attr) {\n el.setAttribute(i, attr[i]);\n }\n }\n return el;\n}\n\nconst mathvariant = \"mathvariant\";\n\nconst Segmenter = Intl.Segmenter;\nconst segmenter = new Segmenter(\"emoji\", { granularity: \"grapheme\" });\n\ntype vtype = \"\" | \"str\" | \"v\" | \"f\" | \"blank\" | \"group\" | \"group1\" | \"sharp\"; // group1组合基本类型,提高优先级\ntype tree = { type: vtype; value: string; children?: tree; esc?: boolean }[];\n\nfunction ast(str: string) {\n let v = /[a-zA-Z]/;\n let kh = /[\\(\\)]/;\n let blank = /[ \\t\\n\\r]+/;\n let type: vtype = \"\";\n let o: tree = [];\n let p_tree: { tree: tree; close: boolean }[] = [];\n let now_tree = o;\n let tmp_str = \"\";\n\n str = str.replace(/(\\\\u\\{[\\dA-Fa-f]+\\})/g, (v) => {\n const codePoint = parseInt(v.slice(3, -1), 16);\n return String.fromCodePoint(codePoint);\n });\n\n let lkh_stack: number[] = [];\n let rkh_stack: number[] = [];\n for (let i = 0; i < str.length; i++) {\n const t = str[i];\n // 字符\n if (t == '\"' && str[i - 1] != \"\\\\\") {\n if (type != \"str\") {\n type = \"str\";\n } else {\n type = \"\";\n }\n continue;\n }\n if (type == \"str\") {\n continue;\n }\n\n if (t == \"(\") {\n lkh_stack.push(i);\n }\n if (t == \")\") {\n if (lkh_stack.length == 0) {\n rkh_stack.push(i);\n } else {\n if (str[i - 1] != \"\\\\\") lkh_stack.pop();\n }\n }\n }\n\n let strl = init_c.emoji\n ? typeof init_c.emoji === \"boolean\"\n ? Array.from(segmenter.segment(str)).map((w) => w.segment)\n : init_c.emoji(str)\n : [...str];\n for (let i = 0; i < strl.length; i++) {\n const t = strl[i];\n // 字符\n if (t == '\"' && strl[i - 1] != \"\\\\\") {\n if (type != \"str\") {\n type = \"str\";\n } else {\n now_tree.push({ type, value: tmp_str });\n type = \"\";\n tmp_str = \"\";\n }\n continue;\n }\n if (type == \"str\") {\n tmp_str += t;\n continue;\n }\n\n // 空白\n if (t.match(blank)) {\n type = \"blank\";\n }\n if (type == \"blank\" && !t.match(blank)) {\n now_tree.push({ type, value: \"\" });\n type = \"\";\n }\n\n if (t === \"#\") {\n now_tree.push({ type: \"sharp\", value: t });\n continue;\n }\n\n // 原始值(字母变量、数字、符号)\n if (\n type == \"\" &&\n (!strl[i - 1] || !strl[i - 1].match(v)) &&\n (!strl[i + 1] || !strl[i + 1].match(v)) &&\n !t.match(kh)\n ) {\n now_tree.push({ type: \"v\", value: t });\n continue;\n }\n if (type == \"\" && !t.match(v) && !t.match(kh)) {\n now_tree.push({ type: \"v\", value: t });\n continue;\n }\n\n // 函数名\n if (((strl[i - 1] && strl[i - 1].match(v)) || (strl[i + 1] && strl[i + 1].match(v))) && t.match(v)) {\n type = \"f\";\n }\n if (type == \"f\") {\n tmp_str += t;\n }\n if (type == \"f\" && (!strl[i + 1] || !strl[i + 1].match(v))) {\n now_tree.push({ type, value: tmp_str });\n type = \"\";\n tmp_str = \"\";\n }\n\n if (t == \"(\") {\n if (lkh_stack.includes(i) || strl[i - 1] == \"\\\\\") {\n now_tree.push({ type: \"v\", value: t });\n } else {\n p_tree.push({ tree: now_tree, close: false });\n now_tree.push({ type: \"group\", value: tmp_str, children: [] });\n now_tree = now_tree.at(-1).children;\n tmp_str = \"\";\n continue;\n }\n }\n if (t == \")\") {\n if (p_tree.at(-1)) {\n if (p_tree.at(-1).close == false) {\n p_tree.at(-1).close = true;\n now_tree = p_tree.at(-1).tree;\n p_tree.pop();\n continue;\n }\n } else {\n now_tree.push({ type: \"v\", value: t });\n }\n }\n }\n\n return o;\n}\n\nimport symbols from \"./symbols.json?raw\";\n/** @see https://github.com/typst/typst/blob/v0.11.1/crates/typst/src/symbols/sym.rs */\nlet s = JSON.parse(symbols);\n\n// symbols路径简写\nlet ss: { [id: string]: string } = {};\nfor (let i in s) {\n if (typeof s[i] == \"string\") {\n ss[i] = s[i];\n } else {\n for (let objOrStr of s[i]) {\n // 第二层的array\n if (typeof objOrStr == \"string\") {\n ss[i] = objOrStr;\n } else {\n if (!ss[i]) ss[i] = objOrStr[Object.keys(objOrStr)[0]];\n for (let j in objOrStr) {\n // 第三层的obj\n ss[`${i}.${j}`] = objOrStr[j];\n // 允许部分索引,但要保证唯一\n let l = j.split(\".\");\n for (let n = 1; n < l.length; n++) {\n let shotKey = l.slice(0, n).join(\".\");\n if (!objOrStr[shotKey]) {\n ss[`${i}.${shotKey}`] = objOrStr[j];\n }\n }\n }\n }\n }\n }\n}\n\nlet shorthand = {\n \"->\": \"arrow.r\",\n \"|->\": \"arrow.r.bar\",\n \"=>\": \"arrow.r.double\",\n \"|=>\": \"arrow.r.double.bar\",\n \"==>\": \"arrow.r.double.long\",\n \"-->\": \"arrow.r.long\",\n \"~~>\": \"arrow.r.long.squiggly\",\n \"~>\": \"arrow.r.squiggly\",\n \">->\": \"arrow.r.tail\",\n \"->>\": \"arrow.r.twohead\",\n \"<-\": \"arrow.l\",\n \"<==\": \"arrow.l.double.long\",\n \"<--\": \"arrow.l.long\",\n \"<~~\": \"arrow.l.long.squiggly\",\n \"<~\": \"arrow.l.squiggly\",\n \"<-<\": \"arrow.l.tail\",\n \"<<-\": \"arrow.l.twohead\",\n \"<->\": \"arrow.l.r\",\n \"<=>\": \"arrow.l.r.double\",\n \"<==>\": \"arrow.l.r.double.long\",\n \"<-->\": \"arrow.l.r.long\",\n \"*\": \"convolve\",\n \"||\": \"bar.v.double\",\n \"[|\": \"bracket.l.double\",\n \"|]\": \"bracket.r.double\",\n \":=\": \"colon.eq\",\n \"::=\": \"colon.double.eq\",\n \"--\": \"dash.en\",\n \"---\": \"dash.em\",\n \"...\": \"dots.h\",\n \"=:\": \"eq.colon\",\n \"!=\": \"eq.not\",\n \">>\": \"gt.double\",\n \">=\": \"gt.eq\",\n \">>>\": \"gt.triple\",\n \"-?\": \"hyph.soft\",\n \"<<\": \"lt.double\",\n \"<=\": \"lt.eq\",\n \"<<<\": \"lt.triple\",\n \"-\": \"minus\",\n \"'\": \"prime\",\n \"~\": \"space.nobreak\",\n};\nlet max_shorthand_len = 0;\nfor (let i in shorthand) {\n if (i.length > max_shorthand_len) {\n max_shorthand_len = i.length;\n }\n}\n\nconst delimPair = { \"(\": [\"(\", \")\"], \"[\": [\"[\", \"]\"], \"{\": [\"{\", \"}\"], \"|\": [\"|\", \"|\"], \"||\": [\"‖\", \"‖\"] };\n\nlet f: {\n [name: string]: (attr?: tree[], dic?: fdic, array?: tree[][], e?: fonts) => MathMLElement | DocumentFragment;\n} = {\n accent: (attr: tree[], dic: fdic) => {\n let base = createMath(\"mrow\");\n base.append(render(attr[0]));\n let a = createMath(\"mrow\");\n a.append(render(attr[1]));\n let over = createMath(\"mover\");\n over.setAttribute(\"accent\", \"true\");\n over.append(base, a);\n return over;\n },\n attach: (attr: tree[], dic: fdic) => {\n let base = createMath(\"mrow\");\n base.append(render(attr[0]));\n let el: MathMLElement;\n let tl = createMath(\"mrow\");\n if (dic.tl) tl.append(render(dic.tl));\n let bl = createMath(\"mrow\");\n if (dic.bl) bl.append(render(dic.bl));\n let tr = createMath(\"mrow\");\n if (dic.tr) tr.append(render(dic.tr));\n let br = createMath(\"mrow\");\n if (dic.br) br.append(render(dic.br));\n if (dic.tl || dic.bl || dic.tr || dic.br) {\n if (dic.tl || dic.bl) {\n el = createMath(\"mmultiscripts\");\n el.append(base, br, tr, createMath(\"mprescripts\"), bl, tl);\n } else if (dic.tr && dic.br) {\n el = createMath(\"msubsup\");\n el.append(base, br, tr);\n } else if (dic.tr) {\n el = createMath(\"msup\");\n el.append(base, tr);\n } else {\n el = createMath(\"msub\");\n el.append(base, br);\n }\n }\n if (dic.t || dic.b) {\n let uo = createMath(\"munderover\");\n if (!el) {\n uo.append(base);\n } else {\n uo.append(el);\n }\n let t = createMath(\"mrow\");\n if (dic.t) t.append(render(dic.t));\n let b = createMath(\"mrow\");\n if (dic.b) b.append(render(dic.b));\n uo.append(b, t);\n el = uo;\n }\n return el;\n },\n scripts: (attr: tree[], dic: fdic) => {\n return render(attr[0]);\n },\n limits: (attr: tree[], dic: fdic) => {\n return render(attr[0]);\n },\n binom: (attr: tree[], dic: fdic) => {\n let row = createMath(\"mrow\");\n let a = createMath(\"mrow\");\n a.append(render(attr[0]));\n let b = createMath(\"mrow\");\n const s: tree = [];\n for (let x of attr.slice(1)) s.push(...x, dh);\n b.append(render(s.slice(0, -1)));\n let f = createMath(\"mfrac\", null, { linethickness: \"0\" });\n f.append(a, b);\n let l = createMath(\"mo\", \"(\");\n let r = createMath(\"mo\", \")\");\n row.append(l, f, r);\n return row;\n },\n cancel: (attr: tree[], dic: fdic) => {\n let r = createMath(\"mrow\");\n const bg = (x: boolean) =>\n `linear-gradient(to ${\n x ? \"left\" : \"right\"\n } top, transparent 47.75%, currentColor 49.5%, currentColor 50.5%, transparent 52.25%)`;\n let s = \"\";\n if (is_true(dic.cross)) {\n s = bg(true) + \",\" + bg(false);\n } else if (is_true(dic.inverted)) {\n s = bg(false);\n } else {\n s = bg(true);\n }\n r.style.backgroundImage = s;\n r.append(render(attr[0]));\n return r;\n },\n cases: (attr: tree[], dic: fdic) => {\n let r = createMath(\"mrow\");\n const d = dic?.delim?.[0]?.value || \"{\";\n let t = f.x_table(attr, { cases: [] }) as MathMLElement;\n const gap = dic?.gap?.[0]?.value || \"0.5em\";\n t.setAttribute(\"rowspacing\", gap);\n if (is_true(dic?.reverse)) {\n const l = createMath(\"mo\", delimPair[d][1]);\n r.append(t, l);\n } else {\n const l = createMath(\"mo\", d);\n r.append(l, t);\n }\n return r;\n },\n frac: (attr: tree[], dic: fdic) => {\n console.log(attr);\n\n let a = createMath(\"mrow\");\n a.append(render(attr[0]));\n let b = createMath(\"mrow\");\n b.append(render(attr[1]));\n let f = createMath(\"mfrac\");\n f.append(a, b);\n return f;\n },\n lr: (attr: tree[], dic: fdic) => {\n let list = attr[0];\n let start: { c: tree; n: number }, end: { c: tree; n: number };\n for (let i = 0; i < list.length; i++) {\n const el = list[i];\n if (el.type == \"blank\") continue;\n start = { c: [el], n: i };\n break;\n }\n for (let i = list.length - 1; i >= 0; i--) {\n const el = list[i];\n if (el.type == \"blank\") continue;\n end = { c: [el], n: i };\n break;\n }\n const size = dic?.size?.[0]?.value;\n const l = render(start.c);\n const r = render(end.c);\n if (size && size != \"auto\") {\n const lm = l.querySelector(\"mo\");\n const rm = r.querySelector(\"mo\");\n lm.setAttribute(\"maxsize\", size);\n lm.setAttribute(\"minsize\", size);\n rm.setAttribute(\"maxsize\", size);\n rm.setAttribute(\"minsize\", size);\n }\n const c = render(list.slice(start.n + 1, end.n));\n const row = createMath(\"mrow\");\n row.append(l, c, r);\n return row;\n },\n mid: (attr: tree[], dic: fdic) => {\n const o = createMath(\"mo\", attr?.[0]?.[0]?.value, { stretchy: \"true\" });\n return o;\n },\n mat: (attr: tree[], dic: fdic, array: tree[][]) => {\n let d = dic?.delim?.[0]?.value || \"(\";\n let o = { \"(\": [\"(\", \")\"], \"[\": [\"[\", \"]\"], \"{\": [\"{\", \"}\"], \"|\": [\"|\", \"|\"], \"||\": [\"‖\", \"‖\"] };\n let row = createMath(\"mrow\");\n let l = createMath(\"mo\", o[d][0]);\n let r = createMath(\"mo\", o[d][1]);\n let t = createMath(\"mtable\");\n let augment = lan_dic(dic?.augment?.[0].children);\n if (augment) {\n let xa = NaN;\n let ya = NaN;\n if (Array.isArray(augment)) {\n xa = Number((augment as tree).map((i) => i.value).join(\"\"));\n } else {\n ya = Number((augment[\"hline\"] as tree).map((i) => i.value).join(\"\"));\n }\n if (xa < 0) xa = array[0].length + xa;\n if (ya < 0) ya = array.length + ya;\n\n if (ya) {\n let l: boolean[] = [];\n for (let i = 1; i < array.length; i++) l.push(i === ya);\n t.setAttribute(\"rowlines\", l.map((i) => (i ? \"solid\" : \"none\")).join(\" \"));\n }\n if (xa) {\n let l: boolean[] = [];\n for (let i = 1; i < array[0].length; i++) l.push(i === xa);\n t.setAttribute(\"columnlines\", l.map((i) => (i ? \"solid\" : \"none\")).join(\" \"));\n }\n }\n const gap = dic?.gap?.[0]?.value;\n const rowgap = dic?.[\"row-gap\"]?.[0]?.value;\n const colgap = dic?.[\"column-gap\"]?.[0]?.value;\n t.setAttribute(\"columnspacing\", colgap || gap || \"0.5em\");\n t.setAttribute(\"rowspacing\", rowgap || gap || \"0.5em\");\n\n for (let i of array) {\n let tr = createMath(\"mtr\");\n if (!i.length) continue;\n for (let j of i) {\n let td = createMath(\"mtd\");\n td.append(render(j));\n tr.append(td);\n }\n t.append(tr);\n }\n row.append(l, t, r);\n return row;\n },\n root: (attr: tree[], dic: fdic) => {\n let row = createMath(\"mrow\");\n row.append(render(attr[0]));\n let base = createMath(\"mrow\");\n base.append(render(attr[1]));\n let root = createMath(\"mroot\");\n root.append(base, row);\n return root;\n },\n sqrt: (attr: tree[], dic: fdic) => {\n return f.root([[], attr[0]], null);\n },\n display: (attr: tree[], dic: fdic) => {\n let m = createMath(\"mrow\", null, { displaystyle: \"true\" });\n m.append(render(attr[0]));\n return m;\n },\n inline: (attr: tree[], dic: fdic) => {\n let m = createMath(\"mrow\", null, { displaystyle: \"false\", scriptlevel: \"0\" });\n m.append(render(attr[0]));\n return m;\n },\n script: (attr: tree[], dic: fdic) => {\n let m = createMath(\"mrow\", null, { displaystyle: \"false\", scriptlevel: \"1\" });\n m.append(render(attr[0]));\n return m;\n },\n sscript: (attr: tree[], dic: fdic) => {\n let m = createMath(\"mrow\", null, { displaystyle: \"false\", scriptlevel: \"2\" });\n m.append(render(attr[0]));\n return m;\n },\n upright: (attr: tree[], dic: fdic) => {\n let r = createMath(\"mrow\");\n r.append(render(attr[0]));\n r.querySelectorAll(\"mi\").forEach((el) => {\n if (!el.getAttribute(mathvariant)) el.setAttribute(mathvariant, \"normal\");\n });\n r.querySelectorAll(\"ms\").forEach((el) => {\n if (!el.getAttribute(mathvariant)) el.setAttribute(mathvariant, \"normal\");\n });\n return r;\n },\n italic: (attr: tree[], dic: fdic) => {\n let r = createMath(\"mrow\");\n r.querySelectorAll(\"mi\").forEach((el) => {\n if (!el.getAttribute(mathvariant)) el.setAttribute(mathvariant, \"italic\");\n });\n r.querySelectorAll(\"ms\").forEach((el) => {\n if (!el.getAttribute(mathvariant)) el.setAttribute(mathvariant, \"italic\");\n });\n r.append(render(attr[0]));\n return r;\n },\n bold: (attr: tree[], dic: fdic) => {\n let r = createMath(\"mrow\");\n r.style.fontWeight = \"bold\";\n r.append(render(attr[0]));\n return r;\n },\n op: (attr: tree[], dic: fdic, a, e) => {\n let f = createMath(\"mrow\");\n let str = createMath(\"ms\");\n str.append(render(attr[0], e));\n f.append(str);\n return f;\n },\n underline: (attr: tree[], dic: fdic) => {\n return underover_f(\"under\", attr[0], \"_\", attr?.[1]);\n },\n overline: (attr: tree[], dic: fdic) => {\n return underover_f(\"over\", attr[0], \"‾\", attr?.[1]);\n },\n underbrace: (attr: tree[], dic: fdic) => {\n return underover_f(\"under\", attr[0], \"⏟\", attr?.[1]);\n },\n overbrace: (attr: tree[], dic: fdic) => {\n return underover_f(\"over\", attr[0], \"⏞\", attr?.[1]);\n },\n underbracket: (attr: tree[], dic: fdic) => {\n return underover_f(\"under\", attr[0], \"⎵\", attr?.[1]);\n },\n overbracket: (attr: tree[], dic: fdic) => {\n return underover_f(\"over\", attr[0], \"⎴\", attr?.[1]);\n },\n serif: (attr: tree[], dic: fdic) => {\n return render(attr[0], \"serif\");\n },\n sans: (attr: tree[], dic: fdic) => {\n return render(attr[0], \"sans\");\n },\n frak: (attr: tree[], dic: fdic) => {\n return render(attr[0], \"frak\");\n },\n mono: (attr: tree[], dic: fdic) => {\n return render(attr[0], \"mono\");\n },\n bb: (attr: tree[], dic: fdic) => {\n return render(attr[0], \"bb\");\n },\n cal: (attr: tree[], dic: fdic) => {\n return render(attr[0], \"cal\");\n },\n vec: (attr: tree[], dic: fdic) => {\n let d = dic?.delim?.[0]?.value || \"(\";\n let o = delimPair;\n let row = createMath(\"mrow\");\n let l = createMath(\"mo\", o[d][0]);\n let r = createMath(\"mo\", o[d][1]);\n let t = createMath(\"mtable\");\n const gap = dic?.gap?.[0]?.value || \"0.5em\";\n t.setAttribute(\"rowspacing\", gap);\n for (let i of attr) {\n let tr = createMath(\"mtr\");\n tr.append(render(i));\n t.append(tr);\n }\n row.append(l, t, r);\n return row;\n },\n h: (attr: tree[], dic: fdic) => {\n return createMath(\"mspace\", \"\", { width: attr[0][0].value });\n },\n // 额外\n //\n x_table: (attr: tree[], dic: fdic) => {\n let max = 0;\n let t = createMath(\"mtable\");\n for (let i of attr) {\n let r = createMath(\"mtr\");\n\n // 按&拆分\n let result: tree[] = [];\n let tmp_group: tree = [];\n for (let n = 0; n < i.length; n++) {\n if (!i[n].esc && i[n].value == \"&\") {\n if (tmp_group.length > 0) {\n result.push(tmp_group);\n tmp_group = [];\n }\n } else {\n tmp_group.push(i[n]);\n }\n }\n if (tmp_group.length > 0) {\n result.push(tmp_group);\n }\n\n if (result.length > max) max = result.length;\n\n for (let i of result) {\n let d = createMath(\"mtd\");\n r.append(d);\n d.append(render(i));\n }\n\n t.append(r);\n }\n let al = [];\n if (dic.cases) {\n // cases\n al.push(\"left\");\n } else {\n // 其他换行对齐 交替\n for (let i = 0; i < max; i++) {\n if (i % 2 == 0) {\n al.push(\"right\");\n } else {\n al.push(\"left\");\n }\n }\n }\n t.setAttribute(\"columnalign\", al.join(\" \"));\n return t;\n },\n};\n\nlet opl: { id: string; str?: string; limits?: boolean }[] = [\n { id: \"arccos\" },\n { id: \"arcsin\" },\n { id: \"arctan\" },\n { id: \"arg\" },\n { id: \"cos\" },\n { id: \"cosh\" },\n { id: \"cot\" },\n { id: \"ctg\" },\n { id: \"coth\" },\n { id: \"csc\" },\n { id: \"csch\" },\n { id: \"deg\" },\n { id: \"det\", limits: true },\n { id: \"dim\" },\n { id: \"exp\" },\n { id: \"gcd\", limits: true },\n { id: \"hom\" },\n { id: \"mod\" },\n { id: \"id\" },\n { id: \"im\" },\n { id: \"inf\", limits: true },\n { id: \"ker\" },\n { id: \"lg\" },\n { id: \"lim\", limits: true },\n { id: \"ln\" },\n { id: \"log\" },\n { id: \"max\", limits: true },\n { id: \"min\", limits: true },\n { id: \"Pr\", limits: true },\n { id: \"sec\" },\n { id: \"sech\" },\n { id: \"sin\" },\n { id: \"sinc\" },\n { id: \"sinh\" },\n { id: \"sup\", limits: true },\n { id: \"tan\" },\n { id: \"tg\" },\n { id: \"tr\" },\n { id: \"tanh\" },\n { id: \"liminf\", str: \"lim inf\", limits: true },\n { id: \"limsup\", str: \"lim sup\", limits: true },\n];\nfunction op_f() {\n for (let i of opl) {\n f[i.id] = (attr: tree[], a, b, e) => {\n let s = f.op([[{ type: \"str\", value: i.str || i.id }]], {}, null, e);\n if (attr) {\n let f = document.createDocumentFragment();\n f.append(s, kh(attr[0]));\n return f;\n } else {\n return s;\n }\n };\n }\n}\nop_f();\n\nconst spaceConst = {\n quad: \"1em\",\n med: \"0.222em\",\n thin: \"0.17em\",\n thick: \"0.28em\",\n wide: \"2em\",\n};\n\nfor (let i in spaceConst) {\n f[i] = () => {\n return f.h([[{ type: \"str\", value: spaceConst[i] }]]);\n };\n}\n\nlet limits_f = [];\nlet limits_sy = [\"∏\", \"∐\", \"∑\", \"⋀\", \"⋁\", \"⋂\", \"⋃\", \"⨀\", \"⨁\", \"⨂\", \"⨃\", \"⨄\", \"⨅\", \"⨆\"];\nfor (let i in ss) {\n for (let j of limits_sy) {\n if (ss[i] == j) {\n limits_f.push(i);\n }\n }\n}\n\nfunction accent_f() {\n const l = [\n \"grave\",\n \"acute\",\n \"acute.double\",\n \"hat\",\n \"tilde\",\n \"macron\",\n \"breve\",\n \"dot\",\n \"dot.double\",\n \"dot.triple\",\n \"dot.quad\",\n \"diaer\",\n \"circle\",\n \"arrow\",\n \"arrow.r\",\n \"arrow.l\",\n \"arrow.l.r\",\n \"caron\",\n \"harpoon\",\n \"harpoon.rt\",\n \"harpoon.lt\",\n ];\n for (let i of l) {\n f[i] = (attr: tree[]) => {\n let s = f.accent([attr[0], [{ type: \"f\", value: i }]], {});\n return s;\n };\n }\n}\naccent_f();\n\nfunction lr_f() {\n let l: { name: string; l: tree[0]; r: tree[0] }[] = [\n { name: \"abs\", l: v_f(\"|\"), r: v_f(\"|\") },\n { name: \"norm\", l: v_f(\"‖\"), r: v_f(\"‖\") },\n { name: \"floor\", l: v_f(\"⌊\"), r: v_f(\"⌋\") },\n { name: \"ceil\", l: v_f(\"⌈\"), r: v_f(\"⌉\") },\n { name: \"round\", l: v_f(\"⌊\"), r: v_f(\"⌉\") },\n ];\n for (let i of l) {\n f[i.name] = (attr: tree[], dic) => {\n let s = f.lr([[i.l, ...attr[0], i.r]], dic);\n return s;\n };\n }\n}\nlr_f();\n\nfunction underover_f(type: \"under\" | \"over\", tree: tree, x: string, str?: tree) {\n let m =\n type == \"under\"\n ? createMath(\"munder\", null, { accentunder: \"true\" })\n : createMath(\"mover\", null, { accent: \"true\" });\n let base = createMath(\"mrow\");\n base.append(render(tree));\n if (str) {\n let s = createMath(\"mrow\");\n s.append(render(str));\n let mm = type == \"under\" ? createMath(\"munder\") : createMath(\"mover\");\n let xx = createMath(\"mo\", x);\n mm.append(xx, s);\n m.append(base, mm);\n } else {\n let xx = createMath(\"mo\", x);\n m.append(base, xx);\n }\n return m;\n}\n\nfunction kh(tree: tree) {\n let f = createMath(\"mrow\");\n let l = createMath(\"mo\");\n l.textContent = \"(\";\n let c = render(tree);\n let r = createMath(\"mo\");\n r.textContent = \")\";\n f.append(l, c, r);\n return f;\n}\n\nfunction out_kh(x: tree[0]) {\n if (x.type == \"group\") {\n return x.children;\n } else {\n return [x];\n }\n}\n\nfunction in_kh(x: tree) {\n let k: tree = [{ type: \"group\", value: \"\", children: x }];\n return k;\n}\n\nfunction is_sup(x: tree[0]) {\n return eqq(x, { type: \"v\", value: \"^\" });\n}\n\nfunction is_sub(x: tree[0]) {\n return eqq(x, { type: \"v\", value: \"_\" });\n}\n\nfunction is_frac(x: tree[0]) {\n return eqq(x, { type: \"v\", value: \"/\" });\n}\n\nfunction is_br(x: tree[0]) {\n return x && x.value == \"br\" && x.esc;\n}\n\nfunction is_limit(tree: tree) {\n if (tree.length == 1) {\n let x = tree[0];\n if (x.type == \"f\") {\n if (limits_f.includes(x.value)) {\n return true;\n }\n if (x.value.split(\".\").at(0) === \"arrow\") return true;\n for (let i of opl) {\n if (i.limits && x.value == i.id) {\n return true;\n }\n }\n if (x.value == \"scripts\") return false;\n if (x.value == \"op\") {\n let { dic } = f_attr(x);\n return is_true(dic.limits);\n }\n }\n if (x.type == \"v\" && limits_sy.includes(x.value)) {\n return true;\n }\n } else {\n return false;\n }\n}\n\nfunction is_f_mark(x: tree[0], str: string) {\n return x.value == str && x.type == \"v\" && !x.esc;\n}\n\nfunction is_dot(x: tree[0]) {\n return eq(x, { type: \"v\", value: \".\" });\n}\n\nfunction is_dot_f(x: tree[0]) {\n return x && (x.type == \"f\" || (x.type == \"v\" && x.value.match(/[a-z]/)));\n}\n\nfunction is_factorial(x: tree[0]) {\n return x && x.type == \"v\" && x.value == \"!\" && !x.esc;\n}\n\nlet dh: tree[0] = { type: \"v\", value: \",\" };\n\nfunction v_f(str: string): tree[0] {\n return { type: \"v\", value: str };\n}\n\nfunction eq(x0: tree[0], x1: tree[0]) {\n if (!x0 || !x1) return false;\n return x0.type === x1.type && x0.value === x1.value;\n}\n\nfunction eqq(x0: tree[0], x1: tree[0]) {\n if (!x0 || !x1) return false;\n return x0.type === x1.type && x0.value === x1.value && x0?.esc === x1?.esc;\n}\n\nfunction trim(tree: tree) {\n if (!tree) return [];\n while (tree.length > 0 && tree[0].type === \"blank\") {\n tree.shift();\n }\n while (tree.length > 0 && tree.at(-1).type === \"blank\") {\n tree.pop();\n }\n return tree;\n}\n\ntype fdic = { [id: string]: tree };\n\nfunction dic_to_ast(dic: { [id: string]: tree }) {\n let l: tree = [];\n for (let i in dic) {\n l.push({ type: \"f\", value: i });\n l.push({ type: \"v\", value: \":\" });\n for (let x of dic[i]) {\n if (eq(x, dh)) x.esc = true;\n }\n l.push(...dic[i]);\n if (Number(i) + 1 != Object.keys(dic).length) {\n l.push(dh);\n }\n }\n return l;\n}\n\nfunction lan_dic(tree: tree) {\n tree = trim(tree);\n if (!tree.find((v) => eqq(v, v_f(\":\")))) return tree;\n const o = new Object();\n let key = \"\";\n let value: tree = [];\n tree.push(dh);\n for (let i = 0; i < tree.length; i++) {\n if (!key && tree[i].type != \"blank\") {\n key = tree[i].value;\n } else {\n if (value.length) {\n if (eqq(tree[i], dh)) {\n o[key] = trim(value);\n key = \"\";\n value = [];\n } else value.push(tree[i]);\n } else {\n if (eqq(tree[i], v_f(\":\"))) {\n value.push(tree[i + 1]);\n }\n }\n }\n }\n return o;\n}\n\nfunction is_true(t: tree) {\n return eqq(trim(t)?.[0], { type: \"sharp\", value: \"true\" });\n}\n\nfunction ast2(tree: tree) {\n // 处理数字和小数\n {\n let t: tree = [];\n let num = /[0-9]/;\n let number = \"\";\n for (let n = 0; n < tree.length; n++) {\n let x = tree[n];\n if (x.value.match(num) || (tree[n - 1]?.value.match(num) && is_dot(x) && tree[n + 1]?.value.match(num))) {\n number += x.value;\n } else {\n t.push(x);\n }\n if (\n x.value.match(num) &&\n (!tree[n + 1] || !tree[n + 1].value.match(num)) &&\n !(is_dot(tree[n + 1]) && tree[n + 2]?.value.match(num))\n ) {\n t.push({ type: \"v\", value: number });\n number = \"\";\n }\n }\n tree = t;\n }\n\n // 处理\\转义\n {\n let t: tree = [];\n for (let n = 0; n < tree.length; n++) {\n let x = tree[n];\n\n if (x.value == \"\\\\\" && x.type == \"v\") {\n if (tree?.[n + 1]) {\n let next = tree[n + 1];\n if (next.value == \"\\\\\" && next.type == \"v\") {\n t.push({ type: \"v\", value: \"\\\\\" });\n n++;\n } else if (next.type == \"blank\") {\n t.push({ type: \"v\", value: \"br\", esc: true });\n n++;\n } else if (next.type == \"f\") {\n let v = next.value;\n t.push({ type: \"v\", value: v[0] });\n t.push({ type: v.length == 2 ? \"v\" : \"f\", value: v.slice(1) });\n n++;\n } else if (next.type === \"sharp\") {\n t.push({ type: \"v\", value: \"#\" });\n n++;\n } else {\n let v = next;\n v.esc = true;\n t.push(v);\n n++;\n }\n }\n } else {\n t.push(x);\n }\n }\n tree = t;\n }\n\n // 处理#\n {\n const t: tree = [];\n for (let n = 0; n < tree.length; n++) {\n const x = tree[n];\n if (x.type === \"sharp\") {\n if (tree[n + 1]?.type === \"group\") {\n x.children = tree[n + 1].children;\n for (let i in x.children) {\n if (x.children[i].value === \"\\\\\" && x.children[i].type === \"v\") {\n if (x.children[Number(i) + 1]) {\n x.children[Number(i) + 1][\"esc\"] = true;\n }\n }\n }\n const v = x.children.map((i) => i.value).join(\"\");\n if (v.match(/^[0-9\\+\\-\\*\\/()]+$/)) {\n x.value = v; // todo 数学运算\n } else {\n x.value = v;\n }\n } else {\n x.value = tree[n + 1]?.value;\n if (tree[n + 2]?.type === \"f\") {\n x.value += tree[n + 2].value;\n n++;\n }\n }\n t.push(x);\n n++;\n continue;\n } else {\n t.push(x);\n }\n }\n tree = t;\n }\n\n // 处理符号简写(shorthand)\n {\n let t: tree = [];\n for (let n = 0; n < tree.length; n++) {\n let x = tree[n];\n\n if (!x.esc) {\n if (x.type == \"v\") {\n let nn = n;\n let shortkey = x.value;\n let l = [];\n if (shorthand[shortkey]) l.push(shortkey);\n // 连起来的字符\n while (tree?.[nn + 1]?.type == \"v\" && shortkey.length <= max_shorthand_len) {\n shortkey += tree[nn + 1].value;\n if (shorthand[shortkey]) l.push(shortkey);\n nn++;\n }\n if (l.length) {\n let nx: tree[0] = { type: \"f\", value: shorthand[l.at(-1)] };\n t.push(nx);\n\n // 不处理已经后面连起来的字符\n n += l.at(-1).length - 1;\n } else {\n t.push(x);\n }\n } else {\n t.push(x);\n }\n } else {\n t.push(x);\n }\n }\n tree = t;\n }\n\n // 处理字符与v之间空格\n {\n let t: tree = [];\n for (let n = 0; n < tree.length; n++) {\n let x = tree[n];\n\n if (x.type == \"v\" && tree?.[n + 1]?.type == \"blank\" && tree?.[n + 2]?.type == \"str\") {\n t.push(x);\n t.push({ type: \"f\", value: \"space\" });\n } else if (x.type == \"str\" && tree?.[n + 1]?.type == \"blank\" && tree?.[n + 2]?.type == \"v\") {\n t.push(x);\n t.push({ type: \"f\", value: \"space\" });\n } else {\n t.push(x);\n }\n }\n tree = t;\n }\n\n // 处理!\n {\n let t: tree = [];\n let tmpx: tree = [];\n for (let n = 0; n < tree.length; n++) {\n let x = tree[n];\n\n if (is_factorial(tree?.[n + 1]) && !is_sup(x) && !is_sub(x) && !is_frac(x)) {\n tmpx.push(x);\n } else {\n if (tmpx.length) {\n tmpx.push(x);\n t.push({ type: \"group1\", value: \"\", children: tmpx });\n tmpx = [];\n } else {\n t.push(x);\n }\n }\n }\n\n tree = t;\n }\n\n // 处理带.的f\n {\n let t: tree = [];\n let f = \"\";\n for (let n = 0; n < tree.length; n++) {\n let x = tree[n];\n\n if (is_dot_f(x) && is_dot(tree[n + 1])) {\n if (f || (!f && x.type == \"f\")) {\n f += x.value + \".\";\n n++;\n continue;\n } else {\n t.push(x);\n }\n } else if (f && is_dot_f(x)) {\n f += x.value;\n if (!is_dot(tree[n + 1])) {\n t.push({ type: \"f\", value: f });\n f = \"\";\n }\n } else {\n t.push(x);\n }\n }\n tree = t;\n }\n // 处理f\n {\n let t: tree = [];\n for (let n = 0; n < tree.length; n++) {\n let x = tree[n];\n\n // 带有括号(参数)的函数\n if (x.type == \"f\" && tree[n + 1] && tree[n + 1].type == \"group\") {\n x.children = tree[n + 1].children;\n for (let i in x.children) {\n if (x.children[i].value == \"\\\\\" && x.children[i].type == \"v\") {\n if (x.children[Number(i) + 1]) {\n x.children[Number(i) + 1][\"esc\"] = true;\n }\n }\n }\n t.push(x);\n\n // 不处理group\n n++;\n continue;\n } else {\n t.push(x);\n }\n }\n tree = t;\n }\n\n // '->^'\n {\n let t: tree = [];\n for (let n = 0; n < tree.length; n++) {\n let x = tree[n];\n let nn = n;\n if (eqq(x, { type: \"f\", value: \"prime\" })) {\n while (tree[nn] && eqq(tree[nn], { type: \"f\", value: \"prime\" })) {\n nn++;\n }\n const primes = nn - n;\n if (\n tree[n - 1] &&\n !is_sup(tree[n - 1]) &&\n !is_sub(tree[n - 1]) &&\n !eq(tree[n - 1], { type: \"f\", value: \"prime\" }) &&\n tree[n - 1].type != \"blank\"\n ) {\n t.push({ type: \"v\", value: \"^\" });\n }\n t.push({ type: \"v\", value: \"'\".repeat(primes), children: [{ type: \"v\", value: String(primes) }] });\n n += primes - 1;\n continue;\n }\n t.push(x);\n }\n tree = t;\n }\n\n // 移除blank\n {\n let t: tree = [];\n for (let i of tree) {\n if (i.type == \"blank\") continue;\n t.push(i);\n }\n tree = t;\n }\n\n // 处理^_\n {\n // 获取^_嵌套索引\n let index: [number, number][] = [];\n let start = NaN;\n for (let n = 0; n < tree.length; n++) {\n const x = tree[n];\n if (!is_sup(x) && !is_sub(x)) {\n if ((is_sup(tree[n + 1]) || is_sub(tree[n + 1])) && !(is_sup(tree[n - 1]) || is_sub(tree[n - 1]))) {\n if (!start) start = n;\n }\n if ((is_sup(tree[n - 1]) || is_sub(tree[n - 1])) && !(is_sup(tree[n + 1]) || is_sub(tree[n + 1]))) {\n index.push([start, n]);\n start = NaN;\n }\n }\n }\n\n let t: tree = [];\n for (let n = 0; n < tree.length; n++) {\n if (n == index?.[0]?.[0]) {\n {\n let tmp: tree[0] = tree[index[0][1]];\n for (let i = index[0][1]; i >= index[0][0]; i--) {\n if (is_sup(tree[i - 1]) && is_sub(tree[i - 3])) {\n let o = is_limit([tree[i - 4]])\n ? { t: out_kh(tmp), b: out_kh(tree[i - 2]) }\n : { tr: out_kh(tmp), br: out_kh(tree[i - 2]) };\n tmp = {\n type: \"f\",\n value: \"attach\",\n children: [tree[i - 4], dh, ...dic_to_ast(o)],\n };\n i -= 4 - 1;\n continue;\n }\n if (is_sub(tree[i - 1]) && is_sup(tree[i - 3])) {\n let o = is_limit([tree[i - 4]])\n ? { t: out_kh(tree[i - 2]), b: out_kh(tmp) }\n : { tr: out_kh(tree[i - 2]), br: out_kh(tmp) };\n tmp = {\n type: \"f\",\n value: \"attach\",\n children: [tree[i - 4], dh, ...dic_to_ast(o)],\n };\n i -= 4 - 1;\n continue;\n }\n if (is_sup(tree[i - 1])) {\n let o = is_limit([tree[i - 2]]) ? { t: out_kh(tmp) } : { tr: out_kh(tmp) };\n tmp = {\n type: \"f\",\n value: \"attach\",\n children: [tree[i - 2], dh, ...dic_to_ast(o)],\n };\n i -= 2 - 1;\n continue;\n }\n if (is_sub(tree[i - 1])) {\n let o = is_limit([tree[i - 2]]) ? { b: out_kh(tmp) } : { br: out_kh(tmp) };\n tmp = {\n type: \"f\",\n value: \"attach\",\n children: [tree[i - 2], dh, ...dic_to_ast(o)],\n };\n i -= 2 - 1;\n continue;\n }\n }\n t.push(tmp);\n }\n n += index[0][1] - index[0][0];\n index = index.slice(1);\n continue;\n }\n\n t.push(tree[n]);\n }\n tree = t;\n }\n\n // 处理/\n {\n // 获取/嵌套索引\n let index: [number, number][] = [];\n let start = NaN;\n for (let n = 0; n < tree.length; n++) {\n const x = tree[n];\n if (!is_frac(x)) {\n if (is_frac(tree[n + 1]) && !is_frac(tree[n - 1])) {\n if (!start) start = n;\n }\n if (is_frac(tree[n - 1]) && !is_frac(tree[n + 1])) {\n index.push([start, n]);\n start = NaN;\n }\n }\n }\n\n let t: tree = [];\n for (let n = 0; n < tree.length; n++) {\n if (n == index?.[0]?.[0]) {\n {\n let tmp: tree[0] = tree[index[0][0]];\n for (let i = index[0][0]; i <= index[0][1]; i++) {\n if (is_frac(tree[i + 1])) {\n tmp = {\n type: \"f\",\n value: \"frac\",\n children: [...out_kh(tmp), dh, ...out_kh(tree[i + 2])],\n };\n i += 2 - 1;\n continue;\n }\n }\n console.log(1, tmp);\n\n t.push(tmp);\n }\n n += index[0][1] - index[0][0];\n index.splice(0, 1);\n continue;\n }\n\n t.push(tree[n]);\n }\n tree = t;\n }\n return tree;\n}\n\nfunction f_attr(x: tree[0]) {\n let type: \"dic\" | \"array\" | \"attr\" = \"array\";\n let attr: tree[] = [];\n let dicl: tree[] = [];\n let array: tree[][] = [];\n let l: tree = [];\n for (let i in x.children) {\n const t = x.children[i];\n if (Number(i) + 1 == x.children.length) {\n if (t.type == \"blank\" && x.children[Number(i) - 1].value.match(/[,;]/)) break;\n if (!is_f_mark(t, \",\") && !is_f_mark(t, \";\")) l.push(t);\n if (type == \"dic\") {\n dicl.push(l);\n l = [];\n } else {\n attr.push(l);\n }\n if (array.length) {\n array.push(attr);\n attr = [];\n }\n l = [];\n } else {\n if (is_f_mark(t, \",\")) {\n if (type == \"dic\") {\n dicl.push(l);\n type = \"array\";\n } else {\n attr.push(l);\n }\n l = [];\n } else if (is_f_mark(t, \";\")) {\n // 存在; 则存好的attr为array的一个子元素\n type == \"array\";\n attr.push(l);\n l = [];\n array.push(attr);\n attr = [];\n } else {\n // 按,拆分成段\n l.push(t);\n // 段中有: 为dic\n if (is_f_mark(t, \":\")) {\n type = \"dic\";\n }\n }\n }\n }\n\n // 将dicl的tree转为键对\n let dic: fdic = {};\n for (let i of dicl) {\n let x = false;\n let n = \"\";\n let t: tree = [];\n for (let el of i) {\n if (el.value === \":\") {\n x = true;\n continue;\n }\n if (!x) {\n n += el.value;\n } else {\n t.push(el);\n }\n }\n dic[n] = ast2(t);\n }\n return { attr, dic, array };\n}\n\ntype fonts = \"serif\" | \"sans\" | \"frak\" | \"mono\" | \"bb\" | \"cal\";\nfunction font(str: string, type: fonts = \"serif\") {\n function index_c(c: string) {\n const l = \"abcdefghijklmnopqrstuvwxyz\";\n return l.indexOf(c.toLowerCase());\n }\n switch (type) {\n case \"serif\":\n return str;\n case \"sans\":\n const s0 = [...\"𝟢𝟣𝟤𝟥𝟦𝟧𝟨𝟩𝟪𝟫\"];\n const s1 = [...\"𝖺𝖻𝖼𝖽𝖾𝖿𝗀𝗁𝗂𝗃𝗄𝗅𝗆𝗇𝗈𝗉𝗊𝗋𝗌𝗍𝗎𝗏𝗐𝗑𝗒𝗓\"];\n const s2 = [...\"𝖠𝖡𝖢𝖣𝖤𝖥𝖦𝖧𝖨𝖩𝖪𝖫𝖬𝖭𝖮𝖯𝖰𝖱𝖲𝖳𝖴𝖵𝖶𝖷𝖸𝖹\"];\n str = str.replace(/[0-9]+/g, (s) => s0[s]);\n str = str.replace(/[a-z]/g, (s) => s1[index_c(s)]);\n str = str.replace(/[A-Z]/g, (s) => s2[index_c(s)]);\n return str;\n case \"frak\":\n const frak1 = [...\"𝔞𝔟𝔠𝔡𝔢𝔣𝔤𝔥𝔦𝔧𝔨𝔩𝔪𝔫𝔬𝔭𝔮𝔯𝔰𝔱𝔲𝔳𝔴𝔵𝔶𝔷\"];\n const frak2 = [...\"𝔄𝔅ℭ𝔇𝔈𝔉𝔊ℌℑ𝔍𝔎𝔏𝔐𝔑𝔒𝔓𝔔ℜ𝔖𝔗𝔘𝔙𝔚𝔛𝔜ℨ\"];\n str = str.replace(/[a-z]/g, (s) => frak1[index_c(s)]);\n str = str.replace(/[A-Z]/g, (s) => frak2[index_c(s)]);\n return str;\n case \"mono\":\n const m0 = [...\"0𝟷𝟸𝟹𝟺𝟻𝟼𝟽𝟾𝟿\"];\n const m1 = [...\"𝚊𝚋𝚌𝚍𝚎𝚏𝚐𝚑𝚒𝚓𝚔𝚕𝚖𝚗𝚘𝚙𝚚𝚛𝚜𝚝𝚞𝚟𝚠𝚡𝚢𝚣\"];\n const m2 = [...\"𝙰𝙱𝙲𝙳𝙴𝙵𝙶𝙷𝙸𝙹𝙺𝙻𝙼𝙽𝙾𝙿𝚀𝚁𝚂𝚃𝚄𝚅𝚆𝚇𝚈𝚉\"];\n str = str.replace(/[0-9]+/g, (s) => m0[s]);\n str = str.replace(/[a-z]/g, (s) => m1[index_c(s)]);\n str = str.replace(/[A-Z]/g, (s) => m2[index_c(s)]);\n return str;\n case \"bb\":\n const bb0 = [...\"𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡\"];\n const bb1 = [...\"𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫\"];\n const bb2 = [...\"𝔸𝔹ℂ𝔻𝔼𝔽𝔾ℍ𝕀𝕁𝕂𝕃𝕄ℕ𝕆ℙℚℝ𝕊𝕋𝕌𝕍𝕎𝕏𝕐ℤ\"];\n str = str.replace(/[0-9]+/g, (s) => bb0[s]);\n str = str.replace(/[a-z]/g, (s) => bb1[index_c(s)]);\n str = str.replace(/[A-Z]/g, (s) => bb2[index_c(s)]);\n return str;\n case \"cal\":\n const c1 = [...\"𝒶𝒷𝒸𝒹ℯ𝒻ℊ𝒽𝒾𝒿𝓀𝓁𝓂𝓃ℴ𝓅𝓆𝓇𝓈𝓉𝓊𝓋𝓌𝓍𝓎𝓏\"];\n const c2 = [...\"𝒜ℬ𝒞𝒟ℰℱ𝒢ℋℐ𝒥𝒦ℒℳ𝒩𝒪𝒫𝒬ℛ𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵\"];\n str = str.replace(/[a-z]/g, (s) => c1[index_c(s)]);\n str = str.replace(/[A-Z]/g, (s) => c2[index_c(s)]);\n return str;\n }\n}\n\nfunction render(tree: tree, e?: fonts) {\n let fragment = document.createDocumentFragment();\n\n tree = ast2(tree);\n\n // 处理\\ 换行\n {\n let xx = false;\n let w = (tree: tree) => {\n for (let i of tree) {\n if (is_br(i)) {\n xx = true;\n return;\n }\n if (i.type == \"group\") {\n w(i.children);\n }\n }\n };\n w(tree);\n if (xx) {\n // 移除group\n {\n let t: tree = [];\n for (let i in tree) {\n let x = tree[i];\n // 不作为group,只是数学上显示的括号对\n if (x.type == \"group\") {\n t.push(v_f(\"(\"));\n t.push(...ast2(x.children));\n t.push(v_f(\")\"));\n } else {\n t.push(x);\n }\n }\n tree = t;\n }\n // 将换行替换成逗号传入函数\n for (let n = 0; n < tree.length; n++) {\n const x = tree[n];\n if (is_br(x)) {\n tree[n] = dh;\n }\n }\n\n let t: tree = [];\n t.push({ type: \"f\", value: \"x_table\", children: tree });\n tree = t;\n } else {\n let t: tree = [];\n for (let x of tree) {\n // 移除&\n if (!(x.type == \"v\" && x.value == \"&\" && !x.esc)) {\n t.push(x);\n }\n }\n tree = t;\n }\n }\n\n // 移除group1\n {\n let t: tree = [];\n for (let x of tree) {\n if (x.type == \"group1\") {\n t.push(...x.children);\n } else {\n t.push(x);\n }\n }\n tree = t;\n }\n\n for (let i in tree) {\n let n = Number(i);\n let x = tree[n];\n\n // 带有括号(参数)的函数\n if (x.type == \"f\" && x.children) {\n let { attr, dic, array }: { attr: tree[]; dic: fdic; array: tree[][] } = f_attr(x);\n\n if (f[x.value]) {\n console.log(attr, dic, array);\n let el = f[x.value](attr, dic, array, e);\n fragment.append(el);\n } else if (ss[x.value]) {\n let el = createMath(\"mi\", ss[x.value]);\n fragment.append(el, render(in_kh(x.children)));\n }\n }\n\n if (x.type == \"f\" && !x.children) {\n if (ss[x.value]) {\n let tag: keyof MathMLElementTagNameMap;\n let space_w = null;\n const space_width = {\n \" \": \"0.36em\",\n \"\\u2002\": \"0.5em\",\n \"\\u2003\": \"1em\",\n \"\\u2004\": \"0.333em\",\n \"\\u2005\": \"0.25em\",\n \"\\u2006\": \"0.166em\",\n \"\\u205f\": \"0.222em\",\n \"\\u2007\": \"1ch\",\n \"\\u2008\": \"0.27em\",\n \"\\u2009\": \"0.17em\",\n \"\\u200a\": \"0.09em\",\n };\n if (ss[x.value].match(/[a-zA-Z\\u0391-\\u03C9]/)) {\n tag = \"mi\";\n } else if (space_width[ss[x.value]]) {\n tag = \"mspace\";\n space_w = { width: space_width[ss[x.value]] };\n } else {\n tag = \"mo\";\n }\n let el = createMath(tag, ss[x.value], space_w);\n fragment.append(el);\n } else {\n if (f[x.value]) {\n let el = f[x.value](null, null, null, e);\n fragment.append(el);\n }\n }\n }\n\n if (x.type == \"str\") {\n let el = createMath(\"ms\", font(x.value, e));\n fragment.append(el);\n }\n\n if (x.type === \"v\" || x.type === \"sharp\") {\n let tag: keyof MathMLElementTagNameMap;\n if (x.value.match(/[0-9.]+/)) {\n tag = \"mn\";\n } else if (x.value.match(/[a-zA-Z\\u0391-\\u03C9]/)) {\n tag = \"mi\";\n } else if (x.value.match(/^'+$/)) {\n if (x.value.length > 1) x.value = x.value.replaceAll(\"'\", ss[\"prime\"]);\n tag = \"mo\";\n } else {\n tag = \"mo\";\n }\n let el = createMath(tag, font(x.value, e));\n fragment.append(el);\n }\n\n if (x.type == \"group\") {\n fragment.append(kh(x.children));\n }\n }\n\n return fragment;\n}\n\nvar init_c: { emoji: boolean | ((str: string) => string) } = {\n emoji: false,\n};\n\nfunction init(p: { emoji: boolean }) {\n for (let i in p) {\n if (init_c[i]) init_c[i] = p[i];\n }\n}\n\nfunction toMML(str: string) {\n let obj = ast(str);\n console.log(obj);\n\n let mathEl = createMath(\"math\");\n mathEl.setAttribute(\"display\", \"block\");\n let f = render(obj);\n mathEl.append(f);\n return mathEl;\n}\n\nfunction toMMLHTML(str: string) {\n return toMML(str).outerHTML;\n}\n\nconst version = {\n lan: \"0.11.1\",\n symbol: \"0.11.1\",\n};\n\nexport { init, toMML, toMMLHTML, version };\n"],"names":["symbols","createMath","tagname","innerText","attr","el","i","mathvariant","Segmenter","segmenter","ast","str","v","kh","blank","type","p_tree","now_tree","tmp_str","codePoint","lkh_stack","t","strl","init_c","w","s","ss","objOrStr","j","l","n","shotKey","shorthand","max_shorthand_len","delimPair","f","dic","base","render","a","over","tl","bl","tr","br","uo","b","row","x","dh","r","bg","is_true","_a","_b","_c","_d","d","gap","list","start","end","size","lm","rm","array","_e","_f","_g","_h","_i","o","augment","lan_dic","xa","ya","rowgap","colgap","td","root","m","e","underover_f","max","result","tmp_group","al","opl","op_f","spaceConst","limits_f","limits_sy","accent_f","lr_f","v_f","tree","mm","xx","c","out_kh","in_kh","is_sup","eqq","is_sub","is_frac","is_br","is_limit","f_attr","is_f_mark","is_dot","eq","is_dot_f","is_factorial","x0","x1","trim","dic_to_ast","key","value","ast2","_j","_k","_l","_m","num","number","next","nn","shortkey","nx","tmpx","primes","index","tmp","dicl","font","index_c","s0","s1","s2","frak1","frak2","m0","m1","m2","bb0","bb1","bb2","c1","c2","fragment","tag","space_w","space_width","init","p","toMML","obj","mathEl","toMMLHTML","version"],"mappings":"AAAA,MAAeA,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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"}
1
+ {"version":3,"file":"xmmath.es.js","sources":["../src/symbols.json?raw","../src/emoji.json?raw","../src/main.ts"],"sourcesContent":["export default \"{\\n \\\"wj\\\": \\\"⁠\\\",\\n \\\"zwj\\\": \\\"‍\\\",\\n \\\"zwnj\\\": \\\"‌\\\",\\n \\\"zws\\\": \\\"​\\\",\\n \\\"lrm\\\": \\\"\\\\u200E\\\",\\n \\\"rlm\\\": \\\"\\\\u200F\\\",\\n \\\"space\\\": [\\n \\\" \\\",\\n {\\n \\\"nobreak\\\": \\\" \\\",\\n \\\"nobreak.narrow\\\": \\\"\\\\u202F\\\",\\n \\\"en\\\": \\\"\\\\u2002\\\",\\n \\\"quad\\\": \\\"\\\\u2003\\\",\\n \\\"third\\\": \\\"\\\\u2004\\\",\\n \\\"quarter\\\": \\\"\\\\u2005\\\",\\n \\\"sixth\\\": \\\"\\\\u2006\\\",\\n \\\"med\\\": \\\"\\\\u205f\\\",\\n \\\"fig\\\": \\\"\\\\u2007\\\",\\n \\\"punct\\\": \\\"\\\\u2008\\\",\\n \\\"thin\\\": \\\"\\\\u2009\\\",\\n \\\"hair\\\": \\\"\\\\u200a\\\"\\n }\\n ],\\n \\\"paren\\\": [{ \\\"l\\\": \\\"(\\\", \\\"r\\\": \\\")\\\", \\\"t\\\": \\\"⏜\\\", \\\"b\\\": \\\"⏝\\\" }],\\n \\\"brace\\\": [{ \\\"l\\\": \\\"{\\\", \\\"r\\\": \\\"}\\\", \\\"t\\\": \\\"⏞\\\", \\\"b\\\": \\\"⏟\\\" }],\\n \\\"bracket\\\": [{ \\\"l\\\": \\\"[\\\", \\\"l.double\\\": \\\"⟦\\\", \\\"r\\\": \\\"]\\\", \\\"r.double\\\": \\\"⟧\\\", \\\"t\\\": \\\"⎴\\\", \\\"b\\\": \\\"⎵\\\" }],\\n \\\"turtle\\\": [{ \\\"l\\\": \\\"〔\\\", \\\"r\\\": \\\"〕\\\", \\\"t\\\": \\\"⏠\\\", \\\"b\\\": \\\"⏡\\\" }],\\n \\\"bar\\\": [{ \\\"v\\\": \\\"|\\\", \\\"v.double\\\": \\\"‖\\\", \\\"v.triple\\\": \\\"⦀\\\", \\\"v.broken\\\": \\\"¦\\\", \\\"v.circle\\\": \\\"⦶\\\", \\\"h\\\": \\\"―\\\" }],\\n \\\"fence\\\": [{ \\\"l\\\": \\\"⧘\\\", \\\"l.double\\\": \\\"⧚\\\", \\\"r\\\": \\\"⧙\\\", \\\"r.double\\\": \\\"⧛\\\", \\\"dotted\\\": \\\"⦙\\\" }],\\n \\\"angle\\\": [\\n \\\"∠\\\",\\n {\\n \\\"l\\\": \\\"⟨\\\",\\n \\\"r\\\": \\\"⟩\\\",\\n \\\"l.double\\\": \\\"《\\\",\\n \\\"r.double\\\": \\\"》\\\",\\n \\\"acute\\\": \\\"⦟\\\",\\n \\\"arc\\\": \\\"∡\\\",\\n \\\"arc.rev\\\": \\\"⦛\\\",\\n \\\"rev\\\": \\\"⦣\\\",\\n \\\"right\\\": \\\"∟\\\",\\n \\\"right.rev\\\": \\\"⯾\\\",\\n \\\"right.arc\\\": \\\"⊾\\\",\\n \\\"right.dot\\\": \\\"⦝\\\",\\n \\\"right.sq\\\": \\\"⦜\\\",\\n \\\"spatial\\\": \\\"⟀\\\",\\n \\\"spheric\\\": \\\"∢\\\",\\n \\\"spheric.rev\\\": \\\"⦠\\\",\\n \\\"spheric.top\\\": \\\"⦡\\\"\\n }\\n ],\\n \\\"amp\\\": [\\\"&\\\", { \\\"inv\\\": \\\"⅋\\\" }],\\n \\\"ast\\\": [\\n {\\n \\\"op\\\": \\\"∗\\\",\\n \\\"basic\\\": \\\"*\\\",\\n \\\"low\\\": \\\"⁎\\\",\\n \\\"double\\\": \\\"⁑\\\",\\n \\\"triple\\\": \\\"⁂\\\",\\n \\\"small\\\": \\\"﹡\\\",\\n \\\"circle\\\": \\\"⊛\\\",\\n \\\"square\\\": \\\"⧆\\\"\\n }\\n ],\\n \\\"at\\\": \\\"@\\\",\\n \\\"backslash\\\": [\\\"\\\\\\\\\\\\\\\\\\\", { \\\"circle\\\": \\\"⦸\\\", \\\"not\\\": \\\"⧷\\\" }],\\n \\\"co\\\": \\\"℅\\\",\\n \\\"colon\\\": [\\\":\\\", { \\\"double\\\": \\\"∷\\\", \\\"eq\\\": \\\"≔\\\", \\\"double.eq\\\": \\\"⩴\\\" }],\\n \\\"comma\\\": \\\",\\\",\\n \\\"dagger\\\": [\\\"†\\\", { \\\"double\\\": \\\"‡\\\" }],\\n \\\"dash\\\": [{ \\\"en\\\": \\\"–\\\", \\\"em\\\": \\\"—\\\", \\\"fig\\\": \\\"‒\\\", \\\"wave\\\": \\\"〜\\\", \\\"colon\\\": \\\"∹\\\", \\\"circle\\\": \\\"⊝\\\", \\\"wave.double\\\": \\\"〰\\\" }],\\n \\\"dot\\\": [\\n {\\n \\\"op\\\": \\\"⋅\\\",\\n \\\"basic\\\": \\\".\\\",\\n \\\"c\\\": \\\"·\\\",\\n \\\"circle\\\": \\\"⊙\\\",\\n \\\"circle.big\\\": \\\"⨀\\\",\\n \\\"square\\\": \\\"⊡\\\",\\n \\\"double\\\": \\\"¨\\\",\\n \\\"triple\\\": \\\"⃛\\\",\\n \\\"quad\\\": \\\"⃜\\\"\\n }\\n ],\\n \\\"excl\\\": [\\\"!\\\", { \\\"double\\\": \\\"‼\\\", \\\"inv\\\": \\\"¡\\\", \\\"quest\\\": \\\"⁉\\\" }],\\n \\\"quest\\\": [\\\"?\\\", { \\\"double\\\": \\\"⁇\\\", \\\"excl\\\": \\\"⁈\\\", \\\"inv\\\": \\\"¿\\\" }],\\n \\\"interrobang\\\": \\\"‽\\\",\\n \\\"hash\\\": \\\"#\\\",\\n \\\"hyph\\\": [\\\"‐\\\", { \\\"minus\\\": \\\"-\\\", \\\"nobreak\\\": \\\"‑\\\", \\\"point\\\": \\\"‧\\\", \\\"soft\\\": \\\"­\\\" }],\\n \\\"percent\\\": \\\"%\\\",\\n \\\"copyright\\\": [\\\"©\\\", { \\\"sound\\\": \\\"℗\\\" }],\\n \\\"permille\\\": \\\"‰\\\",\\n \\\"pilcrow\\\": [\\\"¶\\\", { \\\"rev\\\": \\\"⁋\\\" }],\\n \\\"section\\\": \\\"§\\\",\\n \\\"semi\\\": [\\\";\\\", { \\\"rev\\\": \\\"⁏\\\" }],\\n \\\"slash\\\": [\\\"/\\\", { \\\"double\\\": \\\"⫽\\\", \\\"triple\\\": \\\"⫻\\\", \\\"big\\\": \\\"⧸\\\" }],\\n \\\"dots\\\": [{ \\\"h.c\\\": \\\"⋯\\\", \\\"h\\\": \\\"…\\\", \\\"v\\\": \\\"⋮\\\", \\\"down\\\": \\\"⋱\\\", \\\"up\\\": \\\"⋰\\\" }],\\n \\\"tilde\\\": [\\n {\\n \\\"op\\\": \\\"∼\\\",\\n \\\"basic\\\": \\\"~\\\",\\n \\\"dot\\\": \\\"⩪\\\",\\n \\\"eq\\\": \\\"≃\\\",\\n \\\"eq.not\\\": \\\"≄\\\",\\n \\\"eq.rev\\\": \\\"⋍\\\",\\n \\\"equiv\\\": \\\"≅\\\",\\n \\\"equiv.not\\\": \\\"≇\\\",\\n \\\"nequiv\\\": \\\"≆\\\",\\n \\\"not\\\": \\\"≁\\\",\\n \\\"rev\\\": \\\"∽\\\",\\n \\\"rev.equiv\\\": \\\"≌\\\",\\n \\\"triple\\\": \\\"≋\\\"\\n }\\n ],\\n \\\"acute\\\": [\\\"´\\\", { \\\"double\\\": \\\"˝\\\" }],\\n \\\"breve\\\": \\\"˘\\\",\\n \\\"caret\\\": \\\"‸\\\",\\n \\\"caron\\\": \\\"ˇ\\\",\\n \\\"hat\\\": \\\"^\\\",\\n \\\"diaer\\\": \\\"¨\\\",\\n \\\"grave\\\": \\\"`\\\",\\n \\\"macron\\\": \\\"¯\\\",\\n \\\"quote\\\": [\\n {\\n \\\"double\\\": \\\"\\\\\\\"\\\",\\n \\\"single\\\": \\\"'\\\",\\n \\\"l.double\\\": \\\"“\\\",\\n \\\"l.single\\\": \\\"‘\\\",\\n \\\"r.double\\\": \\\"”\\\",\\n \\\"r.single\\\": \\\"’\\\",\\n \\\"angle.l.double\\\": \\\"«\\\",\\n \\\"angle.l.single\\\": \\\"‹\\\",\\n \\\"angle.r.double\\\": \\\"»\\\",\\n \\\"angle.r.single\\\": \\\"›\\\",\\n \\\"high.double\\\": \\\"‟\\\",\\n \\\"high.single\\\": \\\"‛\\\",\\n \\\"low.double\\\": \\\"„\\\",\\n \\\"low.single\\\": \\\"‚\\\"\\n }\\n ],\\n \\\"prime\\\": [\\\"′\\\", { \\\"rev\\\": \\\"‵\\\", \\\"double\\\": \\\"″\\\", \\\"double.rev\\\": \\\"‶\\\", \\\"triple\\\": \\\"‴\\\", \\\"triple.rev\\\": \\\"‷\\\", \\\"quad\\\": \\\"⁗\\\" }],\\n \\\"plus\\\": [\\n \\\"+\\\",\\n {\\n \\\"circle\\\": \\\"⊕\\\",\\n \\\"circle.arrow\\\": \\\"⟴\\\",\\n \\\"circle.big\\\": \\\"⨁\\\",\\n \\\"dot\\\": \\\"∔\\\",\\n \\\"minus\\\": \\\"±\\\",\\n \\\"small\\\": \\\"﹢\\\",\\n \\\"square\\\": \\\"⊞\\\",\\n \\\"triangle\\\": \\\"⨹\\\"\\n }\\n ],\\n \\\"minus\\\": [\\\"−\\\", { \\\"circle\\\": \\\"⊖\\\", \\\"dot\\\": \\\"∸\\\", \\\"plus\\\": \\\"∓\\\", \\\"square\\\": \\\"⊟\\\", \\\"tilde\\\": \\\"≂\\\", \\\"triangle\\\": \\\"⨺\\\" }],\\n \\\"div\\\": [\\\"÷\\\", { \\\"circle\\\": \\\"⨸\\\" }],\\n \\\"times\\\": [\\n \\\"×\\\",\\n {\\n \\\"big\\\": \\\"⨉\\\",\\n \\\"circle\\\": \\\"⊗\\\",\\n \\\"circle.big\\\": \\\"⨂\\\",\\n \\\"div\\\": \\\"⋇\\\",\\n \\\"three.l\\\": \\\"⋋\\\",\\n \\\"three.r\\\": \\\"⋌\\\",\\n \\\"l\\\": \\\"⋉\\\",\\n \\\"r\\\": \\\"⋊\\\",\\n \\\"square\\\": \\\"⊠\\\",\\n \\\"triangle\\\": \\\"⨻\\\"\\n }\\n ],\\n \\\"ratio\\\": \\\"∶\\\",\\n \\\"eq\\\": [\\n \\\"=\\\",\\n {\\n \\\"star\\\": \\\"≛\\\",\\n \\\"circle\\\": \\\"⊜\\\",\\n \\\"colon\\\": \\\"≕\\\",\\n \\\"def\\\": \\\"≝\\\",\\n \\\"delta\\\": \\\"≜\\\",\\n \\\"equi\\\": \\\"≚\\\",\\n \\\"est\\\": \\\"≙\\\",\\n \\\"gt\\\": \\\"⋝\\\",\\n \\\"lt\\\": \\\"⋜\\\",\\n \\\"m\\\": \\\"≞\\\",\\n \\\"not\\\": \\\"≠\\\",\\n \\\"prec\\\": \\\"⋞\\\",\\n \\\"quest\\\": \\\"≟\\\",\\n \\\"small\\\": \\\"﹦\\\",\\n \\\"succ\\\": \\\"⋟\\\",\\n \\\"triple\\\": \\\"≡\\\",\\n \\\"quad\\\": \\\"≣\\\"\\n }\\n ],\\n \\\"gt\\\": [\\n \\\">\\\",\\n {\\n \\\"circle\\\": \\\"⧁\\\",\\n \\\"curly\\\": \\\"≻\\\",\\n \\\"curly.approx\\\": \\\"⪸\\\",\\n \\\"curly.double\\\": \\\"⪼\\\",\\n \\\"curly.eq\\\": \\\"≽\\\",\\n \\\"curly.eq.not\\\": \\\"⋡\\\",\\n \\\"curly.equiv\\\": \\\"⪴\\\",\\n \\\"curly.napprox\\\": \\\"⪺\\\",\\n \\\"curly.nequiv\\\": \\\"⪶\\\",\\n \\\"curly.not\\\": \\\"⊁\\\",\\n \\\"curly.ntilde\\\": \\\"⋩\\\",\\n \\\"curly.tilde\\\": \\\"≿\\\",\\n \\\"dot\\\": \\\"⋗\\\",\\n \\\"approx\\\": \\\"⪆\\\",\\n \\\"double\\\": \\\"≫\\\",\\n \\\"eq\\\": \\\"≥\\\",\\n \\\"eq.slant\\\": \\\"⩾\\\",\\n \\\"eq.lt\\\": \\\"⋛\\\",\\n \\\"eq.not\\\": \\\"≱\\\",\\n \\\"equiv\\\": \\\"≧\\\",\\n \\\"lt\\\": \\\"≷\\\",\\n \\\"lt.not\\\": \\\"≹\\\",\\n \\\"napprox\\\": \\\"⪊\\\",\\n \\\"nequiv\\\": \\\"≩\\\",\\n \\\"not\\\": \\\"≯\\\",\\n \\\"ntilde\\\": \\\"⋧\\\",\\n \\\"small\\\": \\\"﹥\\\",\\n \\\"tilde\\\": \\\"≳\\\",\\n \\\"tilde.not\\\": \\\"≵\\\",\\n \\\"tri\\\": \\\"⊳\\\",\\n \\\"tri.eq\\\": \\\"⊵\\\",\\n \\\"tri.eq.not\\\": \\\"⋭\\\",\\n \\\"tri.not\\\": \\\"⋫\\\",\\n \\\"triple\\\": \\\"⋙\\\",\\n \\\"triple.nested\\\": \\\"⫸\\\"\\n }\\n ],\\n \\\"lt\\\": [\\n \\\"<\\\",\\n {\\n \\\"circle\\\": \\\"⧀\\\",\\n \\\"curly\\\": \\\"≺\\\",\\n \\\"curly.approx\\\": \\\"⪷\\\",\\n \\\"curly.double\\\": \\\"⪻\\\",\\n \\\"curly.eq\\\": \\\"≼\\\",\\n \\\"curly.eq.not\\\": \\\"⋠\\\",\\n \\\"curly.equiv\\\": \\\"⪳\\\",\\n \\\"curly.napprox\\\": \\\"⪹\\\",\\n \\\"curly.nequiv\\\": \\\"⪵\\\",\\n \\\"curly.not\\\": \\\"⊀\\\",\\n \\\"curly.ntilde\\\": \\\"⋨\\\",\\n \\\"curly.tilde\\\": \\\"≾\\\",\\n \\\"dot\\\": \\\"⋖\\\",\\n \\\"approx\\\": \\\"⪅\\\",\\n \\\"double\\\": \\\"≪\\\",\\n \\\"eq\\\": \\\"≤\\\",\\n \\\"eq.slant\\\": \\\"⩽\\\",\\n \\\"eq.gt\\\": \\\"⋚\\\",\\n \\\"eq.not\\\": \\\"≰\\\",\\n \\\"equiv\\\": \\\"≦\\\",\\n \\\"gt\\\": \\\"≶\\\",\\n \\\"gt.not\\\": \\\"≸\\\",\\n \\\"napprox\\\": \\\"⪉\\\",\\n \\\"nequiv\\\": \\\"≨\\\",\\n \\\"not\\\": \\\"≮\\\",\\n \\\"ntilde\\\": \\\"⋦\\\",\\n \\\"small\\\": \\\"﹤\\\",\\n \\\"tilde\\\": \\\"≲\\\",\\n \\\"tilde.not\\\": \\\"≴\\\",\\n \\\"tri\\\": \\\"⊲\\\",\\n \\\"tri.eq\\\": \\\"⊴\\\",\\n \\\"tri.eq.not\\\": \\\"⋬\\\",\\n \\\"tri.not\\\": \\\"⋪\\\",\\n \\\"triple\\\": \\\"⋘\\\",\\n \\\"triple.nested\\\": \\\"⫷\\\"\\n }\\n ],\\n \\\"approx\\\": [\\\"≈\\\", { \\\"eq\\\": \\\"≊\\\", \\\"not\\\": \\\"≉\\\" }],\\n \\\"prec\\\": [\\n \\\"≺\\\",\\n {\\n \\\"approx\\\": \\\"⪷\\\",\\n \\\"double\\\": \\\"⪻\\\",\\n \\\"eq\\\": \\\"≼\\\",\\n \\\"eq.not\\\": \\\"⋠\\\",\\n \\\"equiv\\\": \\\"⪳\\\",\\n \\\"napprox\\\": \\\"⪹\\\",\\n \\\"nequiv\\\": \\\"⪵\\\",\\n \\\"not\\\": \\\"⊀\\\",\\n \\\"ntilde\\\": \\\"⋨\\\",\\n \\\"tilde\\\": \\\"≾\\\"\\n }\\n ],\\n \\\"succ\\\": [\\n \\\"≻\\\",\\n {\\n \\\"approx\\\": \\\"⪸\\\",\\n \\\"double\\\": \\\"⪼\\\",\\n \\\"eq\\\": \\\"≽\\\",\\n \\\"eq.not\\\": \\\"⋡\\\",\\n \\\"equiv\\\": \\\"⪴\\\",\\n \\\"napprox\\\": \\\"⪺\\\",\\n \\\"nequiv\\\": \\\"⪶\\\",\\n \\\"not\\\": \\\"⊁\\\",\\n \\\"ntilde\\\": \\\"⋩\\\",\\n \\\"tilde\\\": \\\"≿\\\"\\n }\\n ],\\n \\\"equiv\\\": [\\\"≡\\\", { \\\"not\\\": \\\"≢\\\" }],\\n \\\"prop\\\": \\\"∝\\\",\\n \\\"emptyset\\\": [\\\"∅\\\", { \\\"rev\\\": \\\"⦰\\\" }],\\n \\\"nothing\\\": [\\\"∅\\\", { \\\"rev\\\": \\\"⦰\\\" }],\\n \\\"without\\\": \\\"∖\\\",\\n \\\"complement\\\": \\\"∁\\\",\\n \\\"in\\\": [\\\"∈\\\", { \\\"not\\\": \\\"∉\\\", \\\"rev\\\": \\\"∋\\\", \\\"rev.not\\\": \\\"∌\\\", \\\"rev.small\\\": \\\"∍\\\", \\\"small\\\": \\\"∊\\\" }],\\n \\\"subset\\\": [\\n \\\"⊂\\\",\\n {\\n \\\"dot\\\": \\\"⪽\\\",\\n \\\"double\\\": \\\"⋐\\\",\\n \\\"eq\\\": \\\"⊆\\\",\\n \\\"eq.not\\\": \\\"⊈\\\",\\n \\\"eq.sq\\\": \\\"⊑\\\",\\n \\\"eq.sq.not\\\": \\\"⋢\\\",\\n \\\"neq\\\": \\\"⊊\\\",\\n \\\"not\\\": \\\"⊄\\\",\\n \\\"sq\\\": \\\"⊏\\\",\\n \\\"sq.neq\\\": \\\"⋤\\\"\\n }\\n ],\\n \\\"supset\\\": [\\n \\\"⊃\\\",\\n {\\n \\\"dot\\\": \\\"⪾\\\",\\n \\\"double\\\": \\\"⋑\\\",\\n \\\"eq\\\": \\\"⊇\\\",\\n \\\"eq.not\\\": \\\"⊉\\\",\\n \\\"eq.sq\\\": \\\"⊒\\\",\\n \\\"eq.sq.not\\\": \\\"⋣\\\",\\n \\\"neq\\\": \\\"⊋\\\",\\n \\\"not\\\": \\\"⊅\\\",\\n \\\"sq\\\": \\\"⊐\\\",\\n \\\"sq.neq\\\": \\\"⋥\\\"\\n }\\n ],\\n \\\"union\\\": [\\n \\\"∪\\\",\\n {\\n \\\"arrow\\\": \\\"⊌\\\",\\n \\\"big\\\": \\\"⋃\\\",\\n \\\"dot\\\": \\\"⊍\\\",\\n \\\"dot.big\\\": \\\"⨃\\\",\\n \\\"double\\\": \\\"⋓\\\",\\n \\\"minus\\\": \\\"⩁\\\",\\n \\\"or\\\": \\\"⩅\\\",\\n \\\"plus\\\": \\\"⊎\\\",\\n \\\"plus.big\\\": \\\"⨄\\\",\\n \\\"sq\\\": \\\"⊔\\\",\\n \\\"sq.big\\\": \\\"⨆\\\",\\n \\\"sq.double\\\": \\\"⩏\\\"\\n }\\n ],\\n \\\"sect\\\": [\\\"∩\\\", { \\\"and\\\": \\\"⩄\\\", \\\"big\\\": \\\"⋂\\\", \\\"dot\\\": \\\"⩀\\\", \\\"double\\\": \\\"⋒\\\", \\\"sq\\\": \\\"⊓\\\", \\\"sq.big\\\": \\\"⨅\\\", \\\"sq.double\\\": \\\"⩎\\\" }],\\n \\\"infinity\\\": \\\"∞\\\",\\n \\\"oo\\\": \\\"∞\\\",\\n \\\"diff\\\": \\\"∂\\\",\\n \\\"partial\\\": \\\"∂\\\",\\n \\\"gradient\\\": \\\"∇\\\",\\n \\\"nabla\\\": \\\"∇\\\",\\n \\\"sum\\\": [\\\"∑\\\", { \\\"integral\\\": \\\"⨋\\\" }],\\n \\\"product\\\": [\\\"∏\\\", { \\\"co\\\": \\\"∐\\\" }],\\n \\\"integral\\\": [\\n \\\"∫\\\",\\n {\\n \\\"arrow.hook\\\": \\\"⨗\\\",\\n \\\"ccw\\\": \\\"⨑\\\",\\n \\\"cont\\\": \\\"∮\\\",\\n \\\"cont.ccw\\\": \\\"∳\\\",\\n \\\"cont.cw\\\": \\\"∲\\\",\\n \\\"cw\\\": \\\"∱\\\",\\n \\\"dash\\\": \\\"⨍\\\",\\n \\\"dash.double\\\": \\\"⨎\\\",\\n \\\"double\\\": \\\"∬\\\",\\n \\\"quad\\\": \\\"⨌\\\",\\n \\\"sect\\\": \\\"⨙\\\",\\n \\\"slash\\\": \\\"⨏\\\",\\n \\\"square\\\": \\\"⨖\\\",\\n \\\"surf\\\": \\\"∯\\\",\\n \\\"times\\\": \\\"⨘\\\",\\n \\\"triple\\\": \\\"∭\\\",\\n \\\"union\\\": \\\"⨚\\\",\\n \\\"vol\\\": \\\"∰\\\"\\n }\\n ],\\n \\\"laplace\\\": \\\"∆\\\",\\n \\\"forall\\\": \\\"∀\\\",\\n \\\"exists\\\": [\\\"∃\\\", { \\\"not\\\": \\\"∄\\\" }],\\n \\\"top\\\": \\\"⊤\\\",\\n \\\"bot\\\": \\\"⊥\\\",\\n \\\"not\\\": \\\"¬\\\",\\n \\\"and\\\": [\\\"∧\\\", { \\\"big\\\": \\\"⋀\\\", \\\"curly\\\": \\\"⋏\\\", \\\"dot\\\": \\\"⟑\\\", \\\"double\\\": \\\"⩓\\\" }],\\n \\\"or\\\": [\\\"∨\\\", { \\\"big\\\": \\\"⋁\\\", \\\"curly\\\": \\\"⋎\\\", \\\"dot\\\": \\\"⟇\\\", \\\"double\\\": \\\"⩔\\\" }],\\n \\\"xor\\\": [\\\"⊕\\\", { \\\"big\\\": \\\"⨁\\\" }],\\n \\\"models\\\": \\\"⊧\\\",\\n \\\"forces\\\": [\\\"⊩\\\", { \\\"not\\\": \\\"⊮\\\" }],\\n \\\"therefore\\\": \\\"∴\\\",\\n \\\"because\\\": \\\"∵\\\",\\n \\\"qed\\\": \\\"∎\\\",\\n \\\"compose\\\": \\\"∘\\\",\\n \\\"convolve\\\": \\\"∗\\\",\\n \\\"multimap\\\": \\\"⊸\\\",\\n \\\"divides\\\": [\\\"∣\\\", { \\\"not\\\": \\\"∤\\\" }],\\n \\\"wreath\\\": \\\"≀\\\",\\n \\\"parallel\\\": [\\\"∥\\\", { \\\"circle\\\": \\\"⦷\\\", \\\"not\\\": \\\"∦\\\" }],\\n \\\"perp\\\": [\\\"⟂\\\", { \\\"circle\\\": \\\"⦹\\\" }],\\n \\\"diameter\\\": \\\"⌀\\\",\\n \\\"join\\\": [\\\"⨝\\\", { \\\"r\\\": \\\"⟖\\\", \\\"l\\\": \\\"⟕\\\", \\\"l.r\\\": \\\"⟗\\\" }],\\n \\\"degree\\\": [\\\"°\\\", { \\\"c\\\": \\\"℃\\\", \\\"f\\\": \\\"℉\\\" }],\\n \\\"smash\\\": \\\"⨳\\\",\\n \\\"bitcoin\\\": \\\"₿\\\",\\n \\\"dollar\\\": \\\"$\\\",\\n \\\"euro\\\": \\\"€\\\",\\n \\\"franc\\\": \\\"₣\\\",\\n \\\"lira\\\": \\\"₺\\\",\\n \\\"peso\\\": \\\"₱\\\",\\n \\\"pound\\\": \\\"£\\\",\\n \\\"ruble\\\": \\\"₽\\\",\\n \\\"rupee\\\": \\\"₹\\\",\\n \\\"won\\\": \\\"₩\\\",\\n \\\"yen\\\": \\\"¥\\\",\\n \\\"ballot\\\": [\\\"☐\\\", { \\\"x\\\": \\\"☒\\\" }],\\n \\\"checkmark\\\": [\\\"✓\\\", { \\\"light\\\": \\\"🗸\\\" }],\\n \\\"floral\\\": [\\\"❦\\\", { \\\"l\\\": \\\"☙\\\", \\\"r\\\": \\\"❧\\\" }],\\n \\\"notes\\\": [{ \\\"up\\\": \\\"🎜\\\", \\\"down\\\": \\\"🎝\\\" }],\\n \\\"refmark\\\": \\\"※\\\",\\n \\\"servicemark\\\": \\\"℠\\\",\\n \\\"maltese\\\": \\\"✠\\\",\\n \\\"suit\\\": [{ \\\"club\\\": \\\"♣\\\", \\\"diamond\\\": \\\"♦\\\", \\\"heart\\\": \\\"♥\\\", \\\"spade\\\": \\\"♠\\\" }],\\n \\\"bullet\\\": \\\"•\\\",\\n \\\"circle\\\": [\\n {\\n \\\"stroked\\\": \\\"○\\\",\\n \\\"stroked.tiny\\\": \\\"∘\\\",\\n \\\"stroked.small\\\": \\\"⚬\\\",\\n \\\"stroked.big\\\": \\\"◯\\\",\\n \\\"filled\\\": \\\"●\\\",\\n \\\"filled.tiny\\\": \\\"⦁\\\",\\n \\\"filled.small\\\": \\\"∙\\\",\\n \\\"filled.big\\\": \\\"⬤\\\",\\n \\\"dotted\\\": \\\"◌\\\",\\n \\\"nested\\\": \\\"⊚\\\"\\n }\\n ],\\n \\\"ellipse\\\": [{ \\\"stroked.h\\\": \\\"⬭\\\", \\\"stroked.v\\\": \\\"⬯\\\", \\\"filled.h\\\": \\\"⬬\\\", \\\"filled.v\\\": \\\"⬮\\\" }],\\n \\\"triangle\\\": [\\n {\\n \\\"stroked.r\\\": \\\"▷\\\",\\n \\\"stroked.l\\\": \\\"◁\\\",\\n \\\"stroked.t\\\": \\\"△\\\",\\n \\\"stroked.b\\\": \\\"▽\\\",\\n \\\"stroked.bl\\\": \\\"◺\\\",\\n \\\"stroked.br\\\": \\\"◿\\\",\\n \\\"stroked.tl\\\": \\\"◸\\\",\\n \\\"stroked.tr\\\": \\\"◹\\\",\\n \\\"stroked.small.r\\\": \\\"▹\\\",\\n \\\"stroked.small.b\\\": \\\"▿\\\",\\n \\\"stroked.small.l\\\": \\\"◃\\\",\\n \\\"stroked.small.t\\\": \\\"▵\\\",\\n \\\"stroked.rounded\\\": \\\"🛆\\\",\\n \\\"stroked.nested\\\": \\\"⟁\\\",\\n \\\"stroked.dot\\\": \\\"◬\\\",\\n \\\"filled.r\\\": \\\"▶\\\",\\n \\\"filled.l\\\": \\\"◀\\\",\\n \\\"filled.t\\\": \\\"▲\\\",\\n \\\"filled.b\\\": \\\"▼\\\",\\n \\\"filled.bl\\\": \\\"◣\\\",\\n \\\"filled.br\\\": \\\"◢\\\",\\n \\\"filled.tl\\\": \\\"◤\\\",\\n \\\"filled.tr\\\": \\\"◥\\\",\\n \\\"filled.small.r\\\": \\\"▸\\\",\\n \\\"filled.small.b\\\": \\\"▾\\\",\\n \\\"filled.small.l\\\": \\\"◂\\\",\\n \\\"filled.small.t\\\": \\\"▴\\\"\\n }\\n ],\\n \\\"square\\\": [\\n {\\n \\\"stroked\\\": \\\"□\\\",\\n \\\"stroked.tiny\\\": \\\"▫\\\",\\n \\\"stroked.small\\\": \\\"◽\\\",\\n \\\"stroked.medium\\\": \\\"◻\\\",\\n \\\"stroked.big\\\": \\\"⬜\\\",\\n \\\"stroked.dotted\\\": \\\"⬚\\\",\\n \\\"stroked.rounded\\\": \\\"▢\\\",\\n \\\"filled\\\": \\\"■\\\",\\n \\\"filled.tiny\\\": \\\"▪\\\",\\n \\\"filled.small\\\": \\\"◾\\\",\\n \\\"filled.medium\\\": \\\"◼\\\",\\n \\\"filled.big\\\": \\\"⬛\\\"\\n }\\n ],\\n \\\"rect\\\": [{ \\\"stroked.h\\\": \\\"▭\\\", \\\"stroked.v\\\": \\\"▯\\\", \\\"filled.h\\\": \\\"▬\\\", \\\"filled.v\\\": \\\"▮\\\" }],\\n \\\"penta\\\": [{ \\\"stroked\\\": \\\"⬠\\\", \\\"filled\\\": \\\"⬟\\\" }],\\n \\\"hexa\\\": [{ \\\"stroked\\\": \\\"⬡\\\", \\\"filled\\\": \\\"⬢\\\" }],\\n \\\"diamond\\\": [\\n {\\n \\\"stroked\\\": \\\"◇\\\",\\n \\\"stroked.small\\\": \\\"⋄\\\",\\n \\\"stroked.medium\\\": \\\"⬦\\\",\\n \\\"stroked.dot\\\": \\\"⟐\\\",\\n \\\"filled\\\": \\\"◆\\\",\\n \\\"filled.medium\\\": \\\"⬥\\\",\\n \\\"filled.small\\\": \\\"⬩\\\"\\n }\\n ],\\n \\\"lozenge\\\": [\\n {\\n \\\"stroked\\\": \\\"◊\\\",\\n \\\"stroked.small\\\": \\\"⬫\\\",\\n \\\"stroked.medium\\\": \\\"⬨\\\",\\n \\\"filled\\\": \\\"⧫\\\",\\n \\\"filled.small\\\": \\\"⬪\\\",\\n \\\"filled.medium\\\": \\\"⬧\\\"\\n }\\n ],\\n \\\"star\\\": [{ \\\"op\\\": \\\"⋆\\\", \\\"stroked\\\": \\\"☆\\\", \\\"filled\\\": \\\"★\\\" }],\\n \\\"arrow\\\": [\\n {\\n \\\"r\\\": \\\"→\\\",\\n \\\"r.long.bar\\\": \\\"⟼\\\",\\n \\\"r.bar\\\": \\\"↦\\\",\\n \\\"r.curve\\\": \\\"⤷\\\",\\n \\\"r.dashed\\\": \\\"⇢\\\",\\n \\\"r.dotted\\\": \\\"⤑\\\",\\n \\\"r.double\\\": \\\"⇒\\\",\\n \\\"r.double.bar\\\": \\\"⤇\\\",\\n \\\"r.double.long\\\": \\\"⟹\\\",\\n \\\"r.double.long.bar\\\": \\\"⟾\\\",\\n \\\"r.double.not\\\": \\\"⇏\\\",\\n \\\"r.filled\\\": \\\"➡\\\",\\n \\\"r.hook\\\": \\\"↪\\\",\\n \\\"r.long\\\": \\\"⟶\\\",\\n \\\"r.long.squiggly\\\": \\\"⟿\\\",\\n \\\"r.loop\\\": \\\"↬\\\",\\n \\\"r.not\\\": \\\"↛\\\",\\n \\\"r.quad\\\": \\\"⭆\\\",\\n \\\"r.squiggly\\\": \\\"⇝\\\",\\n \\\"r.stop\\\": \\\"⇥\\\",\\n \\\"r.stroked\\\": \\\"⇨\\\",\\n \\\"r.tail\\\": \\\"↣\\\",\\n \\\"r.tilde\\\": \\\"⥲\\\",\\n \\\"r.triple\\\": \\\"⇛\\\",\\n \\\"r.twohead.bar\\\": \\\"⤅\\\",\\n \\\"r.twohead\\\": \\\"↠\\\",\\n \\\"r.wave\\\": \\\"↝\\\",\\n \\\"l\\\": \\\"←\\\",\\n \\\"l.bar\\\": \\\"↤\\\",\\n \\\"l.curve\\\": \\\"⤶\\\",\\n \\\"l.dashed\\\": \\\"⇠\\\",\\n \\\"l.dotted\\\": \\\"⬸\\\",\\n \\\"l.double\\\": \\\"⇐\\\",\\n \\\"l.double.bar\\\": \\\"⤆\\\",\\n \\\"l.double.long\\\": \\\"⟸\\\",\\n \\\"l.double.long.bar\\\": \\\"⟽\\\",\\n \\\"l.double.not\\\": \\\"⇍\\\",\\n \\\"l.filled\\\": \\\"⬅\\\",\\n \\\"l.hook\\\": \\\"↩\\\",\\n \\\"l.long\\\": \\\"⟵\\\",\\n \\\"l.long.bar\\\": \\\"⟻\\\",\\n \\\"l.long.squiggly\\\": \\\"⬳\\\",\\n \\\"l.loop\\\": \\\"↫\\\",\\n \\\"l.not\\\": \\\"↚\\\",\\n \\\"l.quad\\\": \\\"⭅\\\",\\n \\\"l.squiggly\\\": \\\"⇜\\\",\\n \\\"l.stop\\\": \\\"⇤\\\",\\n \\\"l.stroked\\\": \\\"⇦\\\",\\n \\\"l.tail\\\": \\\"↢\\\",\\n \\\"l.tilde\\\": \\\"⭉\\\",\\n \\\"l.triple\\\": \\\"⇚\\\",\\n \\\"l.twohead.bar\\\": \\\"⬶\\\",\\n \\\"l.twohead\\\": \\\"↞\\\",\\n \\\"l.wave\\\": \\\"↜\\\",\\n \\\"t\\\": \\\"↑\\\",\\n \\\"t.bar\\\": \\\"↥\\\",\\n \\\"t.curve\\\": \\\"⤴\\\",\\n \\\"t.dashed\\\": \\\"⇡\\\",\\n \\\"t.double\\\": \\\"⇑\\\",\\n \\\"t.filled\\\": \\\"⬆\\\",\\n \\\"t.quad\\\": \\\"⟰\\\",\\n \\\"t.stop\\\": \\\"⤒\\\",\\n \\\"t.stroked\\\": \\\"⇧\\\",\\n \\\"t.triple\\\": \\\"⤊\\\",\\n \\\"t.twohead\\\": \\\"↟\\\",\\n \\\"b\\\": \\\"↓\\\",\\n \\\"b.bar\\\": \\\"↧\\\",\\n \\\"b.curve\\\": \\\"⤵\\\",\\n \\\"b.dashed\\\": \\\"⇣\\\",\\n \\\"b.double\\\": \\\"⇓\\\",\\n \\\"b.filled\\\": \\\"⬇\\\",\\n \\\"b.quad\\\": \\\"⟱\\\",\\n \\\"b.stop\\\": \\\"⤓\\\",\\n \\\"b.stroked\\\": \\\"⇩\\\",\\n \\\"b.triple\\\": \\\"⤋\\\",\\n \\\"b.twohead\\\": \\\"↡\\\",\\n \\\"l.r\\\": \\\"↔\\\",\\n \\\"l.r.double\\\": \\\"⇔\\\",\\n \\\"l.r.double.long\\\": \\\"⟺\\\",\\n \\\"l.r.double.not\\\": \\\"⇎\\\",\\n \\\"l.r.filled\\\": \\\"⬌\\\",\\n \\\"l.r.long\\\": \\\"⟷\\\",\\n \\\"l.r.not\\\": \\\"↮\\\",\\n \\\"l.r.stroked\\\": \\\"⬄\\\",\\n \\\"l.r.wave\\\": \\\"↭\\\",\\n \\\"t.b\\\": \\\"↕\\\",\\n \\\"t.b.double\\\": \\\"⇕\\\",\\n \\\"t.b.filled\\\": \\\"⬍\\\",\\n \\\"t.b.stroked\\\": \\\"⇳\\\",\\n \\\"tr\\\": \\\"↗\\\",\\n \\\"tr.double\\\": \\\"⇗\\\",\\n \\\"tr.filled\\\": \\\"⬈\\\",\\n \\\"tr.hook\\\": \\\"⤤\\\",\\n \\\"tr.stroked\\\": \\\"⬀\\\",\\n \\\"br\\\": \\\"↘\\\",\\n \\\"br.double\\\": \\\"⇘\\\",\\n \\\"br.filled\\\": \\\"⬊\\\",\\n \\\"br.hook\\\": \\\"⤥\\\",\\n \\\"br.stroked\\\": \\\"⬂\\\",\\n \\\"tl\\\": \\\"↖\\\",\\n \\\"tl.double\\\": \\\"⇖\\\",\\n \\\"tl.filled\\\": \\\"⬉\\\",\\n \\\"tl.hook\\\": \\\"⤣\\\",\\n \\\"tl.stroked\\\": \\\"⬁\\\",\\n \\\"bl\\\": \\\"↙\\\",\\n \\\"bl.double\\\": \\\"⇙\\\",\\n \\\"bl.filled\\\": \\\"⬋\\\",\\n \\\"bl.hook\\\": \\\"⤦\\\",\\n \\\"bl.stroked\\\": \\\"⬃\\\",\\n \\\"tl.br\\\": \\\"⤡\\\",\\n \\\"tr.bl\\\": \\\"⤢\\\",\\n \\\"ccw\\\": \\\"↺\\\",\\n \\\"ccw.half\\\": \\\"↶\\\",\\n \\\"cw\\\": \\\"↻\\\",\\n \\\"cw.half\\\": \\\"↷\\\",\\n \\\"zigzag\\\": \\\"↯\\\"\\n }\\n ],\\n \\\"arrows\\\": [\\n {\\n \\\"rr\\\": \\\"⇉\\\",\\n \\\"ll\\\": \\\"⇇\\\",\\n \\\"tt\\\": \\\"⇈\\\",\\n \\\"bb\\\": \\\"⇊\\\",\\n \\\"lr\\\": \\\"⇆\\\",\\n \\\"lr.stop\\\": \\\"↹\\\",\\n \\\"rl\\\": \\\"⇄\\\",\\n \\\"tb\\\": \\\"⇅\\\",\\n \\\"bt\\\": \\\"⇵\\\",\\n \\\"rrr\\\": \\\"⇶\\\",\\n \\\"lll\\\": \\\"⬱\\\"\\n }\\n ],\\n \\\"arrowhead\\\": [{ \\\"t\\\": \\\"⌃\\\", \\\"b\\\": \\\"⌄\\\" }],\\n \\\"harpoon\\\": [\\n {\\n \\\"rt\\\": \\\"⇀\\\",\\n \\\"rt.bar\\\": \\\"⥛\\\",\\n \\\"rt.stop\\\": \\\"⥓\\\",\\n \\\"rb\\\": \\\"⇁\\\",\\n \\\"rb.bar\\\": \\\"⥟\\\",\\n \\\"rb.stop\\\": \\\"⥗\\\",\\n \\\"lt\\\": \\\"↼\\\",\\n \\\"lt.bar\\\": \\\"⥚\\\",\\n \\\"lt.stop\\\": \\\"⥒\\\",\\n \\\"lb\\\": \\\"↽\\\",\\n \\\"lb.bar\\\": \\\"⥞\\\",\\n \\\"lb.stop\\\": \\\"⥖\\\",\\n \\\"tl\\\": \\\"↿\\\",\\n \\\"tl.bar\\\": \\\"⥠\\\",\\n \\\"tl.stop\\\": \\\"⥘\\\",\\n \\\"tr\\\": \\\"↾\\\",\\n \\\"tr.bar\\\": \\\"⥜\\\",\\n \\\"tr.stop\\\": \\\"⥔\\\",\\n \\\"bl\\\": \\\"⇃\\\",\\n \\\"bl.bar\\\": \\\"⥡\\\",\\n \\\"bl.stop\\\": \\\"⥙\\\",\\n \\\"br\\\": \\\"⇂\\\",\\n \\\"br.bar\\\": \\\"⥝\\\",\\n \\\"br.stop\\\": \\\"⥕\\\",\\n \\\"lt.rt\\\": \\\"⥎\\\",\\n \\\"lb.rb\\\": \\\"⥐\\\",\\n \\\"lb.rt\\\": \\\"⥋\\\",\\n \\\"lt.rb\\\": \\\"⥊\\\",\\n \\\"tl.bl\\\": \\\"⥑\\\",\\n \\\"tr.br\\\": \\\"⥏\\\",\\n \\\"tl.br\\\": \\\"⥍\\\",\\n \\\"tr.bl\\\": \\\"⥌\\\"\\n }\\n ],\\n \\\"harpoons\\\": [\\n {\\n \\\"rtrb\\\": \\\"⥤\\\",\\n \\\"blbr\\\": \\\"⥥\\\",\\n \\\"bltr\\\": \\\"⥯\\\",\\n \\\"lbrb\\\": \\\"⥧\\\",\\n \\\"ltlb\\\": \\\"⥢\\\",\\n \\\"ltrb\\\": \\\"⇋\\\",\\n \\\"ltrt\\\": \\\"⥦\\\",\\n \\\"rblb\\\": \\\"⥩\\\",\\n \\\"rtlb\\\": \\\"⇌\\\",\\n \\\"rtlt\\\": \\\"⥨\\\",\\n \\\"tlbr\\\": \\\"⥮\\\",\\n \\\"tltr\\\": \\\"⥣\\\"\\n }\\n ],\\n \\\"tack\\\": [\\n {\\n \\\"r\\\": \\\"⊢\\\",\\n \\\"r.not\\\": \\\"⊬\\\",\\n \\\"r.long\\\": \\\"⟝\\\",\\n \\\"r.short\\\": \\\"⊦\\\",\\n \\\"r.double\\\": \\\"⊨\\\",\\n \\\"r.double.not\\\": \\\"⊭\\\",\\n \\\"l\\\": \\\"⊣\\\",\\n \\\"l.long\\\": \\\"⟞\\\",\\n \\\"l.short\\\": \\\"⫞\\\",\\n \\\"l.double\\\": \\\"⫤\\\",\\n \\\"t\\\": \\\"⊥\\\",\\n \\\"t.big\\\": \\\"⟘\\\",\\n \\\"t.double\\\": \\\"⫫\\\",\\n \\\"t.short\\\": \\\"⫠\\\",\\n \\\"b\\\": \\\"⊤\\\",\\n \\\"b.big\\\": \\\"⟙\\\",\\n \\\"b.double\\\": \\\"⫪\\\",\\n \\\"b.short\\\": \\\"⫟\\\",\\n \\\"l.r\\\": \\\"⟛\\\"\\n }\\n ],\\n \\\"alpha\\\": \\\"α\\\",\\n \\\"beta\\\": [\\\"β\\\", { \\\"alt\\\": \\\"ϐ\\\" }],\\n \\\"chi\\\": \\\"χ\\\",\\n \\\"delta\\\": \\\"δ\\\",\\n \\\"epsilon\\\": [\\\"ε\\\", { \\\"alt\\\": \\\"ϵ\\\" }],\\n \\\"eta\\\": \\\"η\\\",\\n \\\"gamma\\\": \\\"γ\\\",\\n \\\"iota\\\": \\\"ι\\\",\\n \\\"kai\\\": \\\"ϗ\\\",\\n \\\"kappa\\\": [\\\"κ\\\", { \\\"alt\\\": \\\"ϰ\\\" }],\\n \\\"lambda\\\": \\\"λ\\\",\\n \\\"mu\\\": \\\"μ\\\",\\n \\\"nu\\\": \\\"ν\\\",\\n \\\"ohm\\\": [\\\"Ω\\\", { \\\"inv\\\": \\\"℧\\\" }],\\n \\\"omega\\\": \\\"ω\\\",\\n \\\"omicron\\\": \\\"ο\\\",\\n \\\"phi\\\": [\\\"φ\\\", { \\\"alt\\\": \\\"ϕ\\\" }],\\n \\\"pi\\\": [\\\"π\\\", { \\\"alt\\\": \\\"ϖ\\\" }],\\n \\\"psi\\\": \\\"ψ\\\",\\n \\\"rho\\\": [\\\"ρ\\\", { \\\"alt\\\": \\\"ϱ\\\" }],\\n \\\"sigma\\\": [\\\"σ\\\", { \\\"alt\\\": \\\"ς\\\" }],\\n \\\"tau\\\": \\\"τ\\\",\\n \\\"theta\\\": [\\\"θ\\\", { \\\"alt\\\": \\\"ϑ\\\" }],\\n \\\"upsilon\\\": \\\"υ\\\",\\n \\\"xi\\\": \\\"ξ\\\",\\n \\\"zeta\\\": \\\"ζ\\\",\\n \\\"Alpha\\\": \\\"Α\\\",\\n \\\"Beta\\\": \\\"Β\\\",\\n \\\"Chi\\\": \\\"Χ\\\",\\n \\\"Delta\\\": \\\"Δ\\\",\\n \\\"Epsilon\\\": \\\"Ε\\\",\\n \\\"Eta\\\": \\\"Η\\\",\\n \\\"Gamma\\\": \\\"Γ\\\",\\n \\\"Iota\\\": \\\"Ι\\\",\\n \\\"Kai\\\": \\\"Ϗ\\\",\\n \\\"Kappa\\\": \\\"Κ\\\",\\n \\\"Lambda\\\": \\\"Λ\\\",\\n \\\"Mu\\\": \\\"Μ\\\",\\n \\\"Nu\\\": \\\"Ν\\\",\\n \\\"Omega\\\": \\\"Ω\\\",\\n \\\"Omicron\\\": \\\"Ο\\\",\\n \\\"Phi\\\": \\\"Φ\\\",\\n \\\"Pi\\\": \\\"Π\\\",\\n \\\"Psi\\\": \\\"Ψ\\\",\\n \\\"Rho\\\": \\\"Ρ\\\",\\n \\\"Sigma\\\": \\\"Σ\\\",\\n \\\"Tau\\\": \\\"Τ\\\",\\n \\\"Theta\\\": \\\"Θ\\\",\\n \\\"Upsilon\\\": \\\"Υ\\\",\\n \\\"Xi\\\": \\\"Ξ\\\",\\n \\\"Zeta\\\": \\\"Ζ\\\",\\n \\\"aleph\\\": \\\"א\\\",\\n \\\"alef\\\": \\\"א\\\",\\n \\\"beth\\\": \\\"ב\\\",\\n \\\"bet\\\": \\\"ב\\\",\\n \\\"gimmel\\\": \\\"ג\\\",\\n \\\"gimel\\\": \\\"ג\\\",\\n \\\"daleth\\\": \\\"ד\\\",\\n \\\"dalet\\\": \\\"ד\\\",\\n \\\"shin\\\": \\\"ש\\\",\\n \\\"AA\\\": \\\"𝔸\\\",\\n \\\"BB\\\": \\\"𝔹\\\",\\n \\\"CC\\\": \\\"ℂ\\\",\\n \\\"DD\\\": \\\"𝔻\\\",\\n \\\"EE\\\": \\\"𝔼\\\",\\n \\\"FF\\\": \\\"𝔽\\\",\\n \\\"GG\\\": \\\"𝔾\\\",\\n \\\"HH\\\": \\\"ℍ\\\",\\n \\\"II\\\": \\\"𝕀\\\",\\n \\\"JJ\\\": \\\"𝕁\\\",\\n \\\"KK\\\": \\\"𝕂\\\",\\n \\\"LL\\\": \\\"𝕃\\\",\\n \\\"MM\\\": \\\"𝕄\\\",\\n \\\"NN\\\": \\\"ℕ\\\",\\n \\\"OO\\\": \\\"𝕆\\\",\\n \\\"PP\\\": \\\"ℙ\\\",\\n \\\"QQ\\\": \\\"ℚ\\\",\\n \\\"RR\\\": \\\"ℝ\\\",\\n \\\"SS\\\": \\\"𝕊\\\",\\n \\\"TT\\\": \\\"𝕋\\\",\\n \\\"UU\\\": \\\"𝕌\\\",\\n \\\"VV\\\": \\\"𝕍\\\",\\n \\\"WW\\\": \\\"𝕎\\\",\\n \\\"XX\\\": \\\"𝕏\\\",\\n \\\"YY\\\": \\\"𝕐\\\",\\n \\\"ZZ\\\": \\\"ℤ\\\",\\n \\\"ell\\\": \\\"ℓ\\\",\\n \\\"planck\\\": [\\\"ℎ\\\", { \\\"reduce\\\": \\\"ℏ\\\" }],\\n \\\"angstrom\\\": \\\"Å\\\",\\n \\\"kelvin\\\": \\\"K\\\",\\n \\\"Re\\\": \\\"ℜ\\\",\\n \\\"Im\\\": \\\"ℑ\\\",\\n \\\"dotless\\\": [{ \\\"i\\\": \\\"𝚤\\\", \\\"j\\\": \\\"𝚥\\\" }]\\n}\\n\"","export default \"{\\n \\\"abacus\\\": \\\"🧮\\\",\\n \\\"abc\\\": \\\"🔤\\\",\\n \\\"abcd\\\": \\\"🔡\\\",\\n \\\"ABCD\\\": \\\"🔠\\\",\\n \\\"accordion\\\": \\\"🪗\\\",\\n \\\"aesculapius\\\": \\\"⚕\\\",\\n \\\"airplane\\\": [\\n \\\"✈\\\",\\n {\\n \\\"landing\\\": \\\"🛬\\\",\\n \\\"small\\\": \\\"🛩\\\",\\n \\\"takeoff\\\": \\\"🛫\\\"\\n }\\n ],\\n \\\"alembic\\\": \\\"⚗\\\",\\n \\\"alien\\\": [\\\"👽\\\", { \\\"monster\\\": \\\"👾\\\" }],\\n \\\"ambulance\\\": \\\"🚑\\\",\\n \\\"amphora\\\": \\\"🏺\\\",\\n \\\"anchor\\\": \\\"⚓\\\",\\n \\\"anger\\\": \\\"💢\\\",\\n \\\"ant\\\": \\\"🐜\\\",\\n \\\"apple\\\": [{ \\\"green\\\": \\\"🍏\\\", \\\"red\\\": \\\"🍎\\\" }],\\n \\\"arm\\\": [{ \\\"mech\\\": \\\"🦾\\\", \\\"muscle\\\": \\\"💪\\\", \\\"selfie\\\": \\\"🤳\\\" }],\\n \\\"arrow\\\": [\\n {\\n \\\"r.filled\\\": \\\"➡\\\",\\n \\\"r.hook\\\": \\\"↪\\\",\\n \\\"r.soon\\\": \\\"🔜\\\",\\n \\\"l.filled\\\": \\\"⬅\\\",\\n \\\"l.hook\\\": \\\"↩\\\",\\n \\\"l.back\\\": \\\"🔙\\\",\\n \\\"l.end\\\": \\\"🔚\\\",\\n \\\"t.filled\\\": \\\"⬆\\\",\\n \\\"t.curve\\\": \\\"⤴\\\",\\n \\\"t.top\\\": \\\"🔝\\\",\\n \\\"b.filled\\\": \\\"⬇\\\",\\n \\\"b.curve\\\": \\\"⤵\\\",\\n \\\"l.r\\\": \\\"↔\\\",\\n \\\"l.r.on\\\": \\\"🔛\\\",\\n \\\"t.b\\\": \\\"↕\\\",\\n \\\"bl\\\": \\\"↙\\\",\\n \\\"br\\\": \\\"↘\\\",\\n \\\"tl\\\": \\\"↖\\\",\\n \\\"tr\\\": \\\"↗\\\"\\n }\\n ],\\n \\\"arrows\\\": [{ \\\"cycle\\\": \\\"🔄\\\" }],\\n \\\"ast\\\": [\\\"*\\\", { \\\"box\\\": \\\"✳\\\" }],\\n \\\"atm\\\": \\\"🏧\\\",\\n \\\"atom\\\": \\\"⚛\\\",\\n \\\"aubergine\\\": \\\"🍆\\\",\\n \\\"avocado\\\": \\\"🥑\\\",\\n \\\"axe\\\": \\\"🪓\\\",\\n \\\"baby\\\": [\\\"👶\\\", { \\\"angel\\\": \\\"👼\\\", \\\"box\\\": \\\"🚼\\\" }],\\n \\\"babybottle\\\": \\\"🍼\\\",\\n \\\"backpack\\\": \\\"🎒\\\",\\n \\\"bacon\\\": \\\"🥓\\\",\\n \\\"badger\\\": \\\"🦡\\\",\\n \\\"badminton\\\": \\\"🏸\\\",\\n \\\"bagel\\\": \\\"🥯\\\",\\n \\\"baggageclaim\\\": \\\"🛄\\\",\\n \\\"baguette\\\": \\\"🥖\\\",\\n \\\"balloon\\\": \\\"🎈\\\",\\n \\\"ballot\\\": [{ \\\"check\\\": \\\"☑\\\" }],\\n \\\"ballotbox\\\": \\\"🗳\\\",\\n \\\"banana\\\": \\\"🍌\\\",\\n \\\"banjo\\\": \\\"🪕\\\",\\n \\\"bank\\\": \\\"🏦\\\",\\n \\\"barberpole\\\": \\\"💈\\\",\\n \\\"baseball\\\": \\\"⚾\\\",\\n \\\"basecap\\\": \\\"🧢\\\",\\n \\\"basket\\\": \\\"🧺\\\",\\n \\\"basketball\\\": [\\\"⛹\\\", { \\\"ball\\\": \\\"🏀\\\" }],\\n \\\"bat\\\": \\\"🦇\\\",\\n \\\"bathtub\\\": [\\\"🛀\\\", { \\\"foam\\\": \\\"🛁\\\" }],\\n \\\"battery\\\": [\\\"🔋\\\", { \\\"low\\\": \\\"🪫\\\" }],\\n \\\"beach\\\": [{ \\\"palm\\\": \\\"🏝\\\", \\\"umbrella\\\": \\\"🏖\\\" }],\\n \\\"beads\\\": \\\"📿\\\",\\n \\\"beans\\\": \\\"🫘\\\",\\n \\\"bear\\\": \\\"🐻\\\",\\n \\\"beaver\\\": \\\"🦫\\\",\\n \\\"bed\\\": [\\\"🛏\\\", { \\\"person\\\": \\\"🛌\\\" }],\\n \\\"bee\\\": \\\"🐝\\\",\\n \\\"beer\\\": [\\\"🍺\\\", { \\\"clink\\\": \\\"🍻\\\" }],\\n \\\"beetle\\\": [\\\"🪲\\\", { \\\"lady\\\": \\\"🐞\\\" }],\\n \\\"bell\\\": [\\\"🔔\\\", { \\\"ding\\\": \\\"🛎\\\", \\\"not\\\": \\\"🔕\\\" }],\\n \\\"bento\\\": \\\"🍱\\\",\\n \\\"bicyclist\\\": [\\\"🚴\\\", { \\\"mountain\\\": \\\"🚵\\\" }],\\n \\\"bike\\\": [\\\"🚲\\\", { \\\"not\\\": \\\"🚳\\\" }],\\n \\\"bikini\\\": \\\"👙\\\",\\n \\\"billiards\\\": \\\"🎱\\\",\\n \\\"bin\\\": \\\"🗑\\\",\\n \\\"biohazard\\\": \\\"☣\\\",\\n \\\"bird\\\": \\\"🐦\\\",\\n \\\"bison\\\": \\\"🦬\\\",\\n \\\"blood\\\": \\\"🩸\\\",\\n \\\"blouse\\\": \\\"👚\\\",\\n \\\"blowfish\\\": \\\"🐡\\\",\\n \\\"blueberries\\\": \\\"🫐\\\",\\n \\\"boar\\\": \\\"🐗\\\",\\n \\\"boat\\\": [\\n {\\n \\\"sail\\\": \\\"⛵\\\",\\n \\\"row\\\": \\\"🚣\\\",\\n \\\"motor\\\": \\\"🛥\\\",\\n \\\"speed\\\": \\\"🚤\\\",\\n \\\"canoe\\\": \\\"🛶\\\"\\n }\\n ],\\n \\\"bolt\\\": \\\"🔩\\\",\\n \\\"bomb\\\": \\\"💣\\\",\\n \\\"bone\\\": \\\"🦴\\\",\\n \\\"book\\\": [\\n {\\n \\\"red\\\": \\\"📕\\\",\\n \\\"blue\\\": \\\"📘\\\",\\n \\\"green\\\": \\\"📗\\\",\\n \\\"orange\\\": \\\"📙\\\",\\n \\\"spiral\\\": \\\"📒\\\",\\n \\\"open\\\": \\\"📖\\\"\\n }\\n ],\\n \\\"bookmark\\\": \\\"🔖\\\",\\n \\\"books\\\": \\\"📚\\\",\\n \\\"boomerang\\\": \\\"🪃\\\",\\n \\\"bordercontrol\\\": \\\"🛂\\\",\\n \\\"bouquet\\\": \\\"💐\\\",\\n \\\"bow\\\": \\\"🏹\\\",\\n \\\"bowl\\\": [{ \\\"spoon\\\": \\\"🥣\\\", \\\"steam\\\": \\\"🍜\\\" }],\\n \\\"bowling\\\": \\\"🎳\\\",\\n \\\"boxing\\\": \\\"🥊\\\",\\n \\\"boy\\\": \\\"👦\\\",\\n \\\"brain\\\": \\\"🧠\\\",\\n \\\"bread\\\": \\\"🍞\\\",\\n \\\"brick\\\": \\\"🧱\\\",\\n \\\"bride\\\": \\\"👰\\\",\\n \\\"bridge\\\": [{ \\\"fog\\\": \\\"🌁\\\", \\\"night\\\": \\\"🌉\\\" }],\\n \\\"briefcase\\\": \\\"💼\\\",\\n \\\"briefs\\\": \\\"🩲\\\",\\n \\\"brightness\\\": [{ \\\"high\\\": \\\"🔆\\\", \\\"low\\\": \\\"🔅\\\" }],\\n \\\"broccoli\\\": \\\"🥦\\\",\\n \\\"broom\\\": \\\"🧹\\\",\\n \\\"brush\\\": \\\"🖌\\\",\\n \\\"bubble\\\": [\\n {\\n \\\"speech.r\\\": \\\"💬\\\",\\n \\\"speech.l\\\": \\\"🗨\\\",\\n \\\"thought\\\": \\\"💭\\\",\\n \\\"anger.r\\\": \\\"🗯\\\"\\n }\\n ],\\n \\\"bubbles\\\": \\\"🫧\\\",\\n \\\"bubbletea\\\": \\\"🧋\\\",\\n \\\"bucket\\\": \\\"🪣\\\",\\n \\\"buffalo\\\": [{ \\\"water\\\": \\\"🐃\\\" }],\\n \\\"bug\\\": \\\"🐛\\\",\\n \\\"builder\\\": \\\"👷\\\",\\n \\\"burger\\\": \\\"🍔\\\",\\n \\\"burrito\\\": \\\"🌯\\\",\\n \\\"bus\\\": [\\n \\\"🚌\\\",\\n {\\n \\\"front\\\": \\\"🚍\\\",\\n \\\"small\\\": \\\"🚐\\\",\\n \\\"stop\\\": \\\"🚏\\\",\\n \\\"trolley\\\": \\\"🚎\\\"\\n }\\n ],\\n \\\"butter\\\": \\\"🧈\\\",\\n \\\"butterfly\\\": \\\"🦋\\\",\\n \\\"button\\\": [\\\"🔲\\\", { \\\"alt\\\": \\\"🔳\\\", \\\"radio\\\": \\\"🔘\\\" }],\\n \\\"cabinet\\\": [{ \\\"file\\\": \\\"🗄\\\" }],\\n \\\"cablecar\\\": [\\\"🚠\\\", { \\\"small\\\": \\\"🚡\\\" }],\\n \\\"cactus\\\": \\\"🌵\\\",\\n \\\"cake\\\": [\\n \\\"🎂\\\",\\n {\\n \\\"fish\\\": \\\"🍥\\\",\\n \\\"moon\\\": \\\"🥮\\\",\\n \\\"slice\\\": \\\"🍰\\\"\\n }\\n ],\\n \\\"calendar\\\": [\\\"📅\\\", { \\\"spiral\\\": \\\"🗓\\\", \\\"tearoff\\\": \\\"📆\\\" }],\\n \\\"camel\\\": [\\\"🐫\\\", { \\\"dromedar\\\": \\\"🐪\\\" }],\\n \\\"camera\\\": [\\n \\\"📷\\\",\\n {\\n \\\"flash\\\": \\\"📸\\\",\\n \\\"movie\\\": \\\"🎥\\\",\\n \\\"movie.box\\\": \\\"🎦\\\",\\n \\\"video\\\": \\\"📹\\\"\\n }\\n ],\\n \\\"camping\\\": \\\"🏕\\\",\\n \\\"can\\\": \\\"🥫\\\",\\n \\\"candle\\\": \\\"🕯\\\",\\n \\\"candy\\\": \\\"🍬\\\",\\n \\\"cane\\\": \\\"🦯\\\",\\n \\\"car\\\": [\\n \\\"🚗\\\",\\n {\\n \\\"front\\\": \\\"🚘\\\",\\n \\\"pickup\\\": \\\"🛻\\\",\\n \\\"police\\\": \\\"🚓\\\",\\n \\\"police.front\\\": \\\"🚔\\\",\\n \\\"racing\\\": \\\"🏎\\\",\\n \\\"rickshaw\\\": \\\"🛺\\\",\\n \\\"suv\\\": \\\"🚙\\\"\\n }\\n ],\\n \\\"card\\\": [{ \\\"credit\\\": \\\"💳\\\", \\\"id\\\": \\\"🪪\\\" }],\\n \\\"cardindex\\\": \\\"📇\\\",\\n \\\"carrot\\\": \\\"🥕\\\",\\n \\\"cart\\\": \\\"🛒\\\",\\n \\\"cassette\\\": \\\"📼\\\",\\n \\\"castle\\\": [{ \\\"eu\\\": \\\"🏰\\\", \\\"jp\\\": \\\"🏯\\\" }],\\n \\\"cat\\\": [\\n \\\"🐈\\\",\\n {\\n \\\"face\\\": \\\"🐱\\\",\\n \\\"face.angry\\\": \\\"😾\\\",\\n \\\"face.cry\\\": \\\"😿\\\",\\n \\\"face.heart\\\": \\\"😻\\\",\\n \\\"face.joy\\\": \\\"😹\\\",\\n \\\"face.kiss\\\": \\\"😽\\\",\\n \\\"face.laugh\\\": \\\"😸\\\",\\n \\\"face.shock\\\": \\\"🙀\\\",\\n \\\"face.smile\\\": \\\"😺\\\",\\n \\\"face.smirk\\\": \\\"😼\\\"\\n }\\n ],\\n \\\"chain\\\": \\\"🔗\\\",\\n \\\"chains\\\": \\\"⛓\\\",\\n \\\"chair\\\": \\\"🪑\\\",\\n \\\"champagne\\\": \\\"🍾\\\",\\n \\\"chart\\\": [\\n {\\n \\\"bar\\\": \\\"📊\\\",\\n \\\"up\\\": \\\"📈\\\",\\n \\\"down\\\": \\\"📉\\\",\\n \\\"yen.up\\\": \\\"💹\\\"\\n }\\n ],\\n \\\"checkmark\\\": [{ \\\"heavy\\\": \\\"✔\\\", \\\"box\\\": \\\"✅\\\" }],\\n \\\"cheese\\\": \\\"🧀\\\",\\n \\\"cherries\\\": \\\"🍒\\\",\\n \\\"chess\\\": \\\"♟\\\",\\n \\\"chestnut\\\": \\\"🌰\\\",\\n \\\"chicken\\\": [\\n \\\"🐔\\\",\\n {\\n \\\"baby\\\": \\\"🐥\\\",\\n \\\"baby.egg\\\": \\\"🐣\\\",\\n \\\"baby.head\\\": \\\"🐤\\\",\\n \\\"leg\\\": \\\"🍗\\\",\\n \\\"male\\\": \\\"🐓\\\"\\n }\\n ],\\n \\\"child\\\": \\\"🧒\\\",\\n \\\"chipmunk\\\": \\\"🐿\\\",\\n \\\"chocolate\\\": \\\"🍫\\\",\\n \\\"chopsticks\\\": \\\"🥢\\\",\\n \\\"church\\\": [\\\"⛪\\\", { \\\"love\\\": \\\"💒\\\" }],\\n \\\"cigarette\\\": [\\\"🚬\\\", { \\\"not\\\": \\\"🚭\\\" }],\\n \\\"circle\\\": [\\n {\\n \\\"black\\\": \\\"⚫\\\",\\n \\\"blue\\\": \\\"🔵\\\",\\n \\\"brown\\\": \\\"🟤\\\",\\n \\\"green\\\": \\\"🟢\\\",\\n \\\"orange\\\": \\\"🟠\\\",\\n \\\"purple\\\": \\\"🟣\\\",\\n \\\"white\\\": \\\"⚪\\\",\\n \\\"red\\\": \\\"🔴\\\",\\n \\\"yellow\\\": \\\"🟡\\\",\\n \\\"stroked\\\": \\\"⭕\\\"\\n }\\n ],\\n \\\"circus\\\": \\\"🎪\\\",\\n \\\"city\\\": [\\n \\\"🏙\\\",\\n {\\n \\\"dusk\\\": \\\"🌆\\\",\\n \\\"night\\\": \\\"🌃\\\",\\n \\\"sunset\\\": \\\"🌇\\\"\\n }\\n ],\\n \\\"clamp\\\": \\\"🗜\\\",\\n \\\"clapperboard\\\": \\\"🎬\\\",\\n \\\"climbing\\\": \\\"🧗\\\",\\n \\\"clip\\\": \\\"📎\\\",\\n \\\"clipboard\\\": \\\"📋\\\",\\n \\\"clips\\\": \\\"🖇\\\",\\n \\\"clock\\\": [\\n {\\n \\\"one\\\": \\\"🕐\\\",\\n \\\"one.thirty\\\": \\\"🕜\\\",\\n \\\"two\\\": \\\"🕑\\\",\\n \\\"two.thirty\\\": \\\"🕝\\\",\\n \\\"three\\\": \\\"🕒\\\",\\n \\\"three.thirty\\\": \\\"🕞\\\",\\n \\\"four\\\": \\\"🕓\\\",\\n \\\"four.thirty\\\": \\\"🕟\\\",\\n \\\"five\\\": \\\"🕔\\\",\\n \\\"five.thirty\\\": \\\"🕠\\\",\\n \\\"six\\\": \\\"🕕\\\",\\n \\\"six.thirty\\\": \\\"🕡\\\",\\n \\\"seven\\\": \\\"🕖\\\",\\n \\\"seven.thirty\\\": \\\"🕢\\\",\\n \\\"eight\\\": \\\"🕗\\\",\\n \\\"eight.thirty\\\": \\\"🕣\\\",\\n \\\"nine\\\": \\\"🕘\\\",\\n \\\"nine.thirty\\\": \\\"🕤\\\",\\n \\\"ten\\\": \\\"🕙\\\",\\n \\\"ten.thirty\\\": \\\"🕥\\\",\\n \\\"eleven\\\": \\\"🕚\\\",\\n \\\"eleven.thirty\\\": \\\"🕦\\\",\\n \\\"twelve\\\": \\\"🕛\\\",\\n \\\"twelve.thirty\\\": \\\"🕧\\\",\\n \\\"alarm\\\": \\\"⏰\\\",\\n \\\"old\\\": \\\"🕰\\\",\\n \\\"timer\\\": \\\"⏲\\\"\\n }\\n ],\\n \\\"cloud\\\": [\\n \\\"☁\\\",\\n {\\n \\\"dust\\\": \\\"💨\\\",\\n \\\"rain\\\": \\\"🌧\\\",\\n \\\"snow\\\": \\\"🌨\\\",\\n \\\"storm\\\": \\\"⛈\\\",\\n \\\"sun\\\": \\\"⛅\\\",\\n \\\"sun.hidden\\\": \\\"🌥\\\",\\n \\\"sun.rain\\\": \\\"🌦\\\",\\n \\\"thunder\\\": \\\"🌩\\\"\\n }\\n ],\\n \\\"coat\\\": [\\\"🧥\\\", { \\\"lab\\\": \\\"🥼\\\" }],\\n \\\"cockroach\\\": \\\"🪳\\\",\\n \\\"cocktail\\\": [{ \\\"martini\\\": \\\"🍸\\\", \\\"tropical\\\": \\\"🍹\\\" }],\\n \\\"coconut\\\": \\\"🥥\\\",\\n \\\"coffee\\\": \\\"☕\\\",\\n \\\"coffin\\\": \\\"⚰\\\",\\n \\\"coin\\\": \\\"🪙\\\",\\n \\\"comet\\\": \\\"☄\\\",\\n \\\"compass\\\": \\\"🧭\\\",\\n \\\"computer\\\": \\\"🖥\\\",\\n \\\"computermouse\\\": \\\"🖱\\\",\\n \\\"confetti\\\": \\\"🎊\\\",\\n \\\"construction\\\": \\\"🚧\\\",\\n \\\"controller\\\": \\\"🎮\\\",\\n \\\"cookie\\\": [\\\"🍪\\\", { \\\"fortune\\\": \\\"🥠\\\" }],\\n \\\"cooking\\\": \\\"🍳\\\",\\n \\\"cool\\\": \\\"🆒\\\",\\n \\\"copyright\\\": \\\"©\\\",\\n \\\"coral\\\": \\\"🪸\\\",\\n \\\"corn\\\": \\\"🌽\\\",\\n \\\"couch\\\": \\\"🛋\\\",\\n \\\"couple\\\": \\\"💑\\\",\\n \\\"cow\\\": [\\\"🐄\\\", { \\\"face\\\": \\\"🐮\\\" }],\\n \\\"crab\\\": \\\"🦀\\\",\\n \\\"crane\\\": \\\"🏗\\\",\\n \\\"crayon\\\": \\\"🖍\\\",\\n \\\"cricket\\\": \\\"🦗\\\",\\n \\\"cricketbat\\\": \\\"🏏\\\",\\n \\\"crocodile\\\": \\\"🐊\\\",\\n \\\"croissant\\\": \\\"🥐\\\",\\n \\\"crossmark\\\": [\\\"❌\\\", { \\\"box\\\": \\\"❎\\\" }],\\n \\\"crown\\\": \\\"👑\\\",\\n \\\"crutch\\\": \\\"🩼\\\",\\n \\\"crystal\\\": \\\"🔮\\\",\\n \\\"cucumber\\\": \\\"🥒\\\",\\n \\\"cup\\\": [{ \\\"straw\\\": \\\"🥤\\\" }],\\n \\\"cupcake\\\": \\\"🧁\\\",\\n \\\"curling\\\": \\\"🥌\\\",\\n \\\"curry\\\": \\\"🍛\\\",\\n \\\"custard\\\": \\\"🍮\\\",\\n \\\"customs\\\": \\\"🛃\\\",\\n \\\"cutlery\\\": \\\"🍴\\\",\\n \\\"cyclone\\\": \\\"🌀\\\",\\n \\\"dancing\\\": [{ \\\"man\\\": \\\"🕺\\\", \\\"woman\\\": \\\"💃\\\", \\\"women.bunny\\\": \\\"👯\\\" }],\\n \\\"darts\\\": \\\"🎯\\\",\\n \\\"dash\\\": [{ \\\"wave.double\\\": \\\"〰\\\" }],\\n \\\"deer\\\": \\\"🦌\\\",\\n \\\"desert\\\": \\\"🏜\\\",\\n \\\"detective\\\": \\\"🕵\\\",\\n \\\"diamond\\\": [\\n {\\n \\\"blue\\\": \\\"🔷\\\",\\n \\\"blue.small\\\": \\\"🔹\\\",\\n \\\"orange\\\": \\\"🔶\\\",\\n \\\"orange.small\\\": \\\"🔸\\\",\\n \\\"dot\\\": \\\"💠\\\"\\n }\\n ],\\n \\\"die\\\": \\\"🎲\\\",\\n \\\"dino\\\": [{ \\\"pod\\\": \\\"🦕\\\", \\\"rex\\\": \\\"🦖\\\" }],\\n \\\"disc\\\": [{ \\\"cd\\\": \\\"💿\\\", \\\"dvd\\\": \\\"📀\\\", \\\"mini\\\": \\\"💽\\\" }],\\n \\\"discoball\\\": \\\"🪩\\\",\\n \\\"diving\\\": \\\"🤿\\\",\\n \\\"dodo\\\": \\\"🦤\\\",\\n \\\"dog\\\": [\\n \\\"🐕\\\",\\n {\\n \\\"face\\\": \\\"🐶\\\",\\n \\\"guide\\\": \\\"🦮\\\",\\n \\\"poodle\\\": \\\"🐩\\\"\\n }\\n ],\\n \\\"dollar\\\": \\\"💲\\\",\\n \\\"dolphin\\\": \\\"🐬\\\",\\n \\\"donut\\\": \\\"🍩\\\",\\n \\\"door\\\": \\\"🚪\\\",\\n \\\"dove\\\": [{ \\\"peace\\\": \\\"🕊\\\" }],\\n \\\"dragon\\\": [\\\"🐉\\\", { \\\"face\\\": \\\"🐲\\\" }],\\n \\\"dress\\\": [\\\"👗\\\", { \\\"kimono\\\": \\\"👘\\\", \\\"sari\\\": \\\"🥻\\\" }],\\n \\\"drop\\\": \\\"💧\\\",\\n \\\"drops\\\": \\\"💦\\\",\\n \\\"drum\\\": [\\\"🥁\\\", { \\\"big\\\": \\\"🪘\\\" }],\\n \\\"duck\\\": \\\"🦆\\\",\\n \\\"dumpling\\\": \\\"🥟\\\",\\n \\\"eagle\\\": \\\"🦅\\\",\\n \\\"ear\\\": [\\\"👂\\\", { \\\"aid\\\": \\\"🦻\\\" }],\\n \\\"egg\\\": \\\"🥚\\\",\\n \\\"eighteen\\\": [{ \\\"not\\\": \\\"🔞\\\" }],\\n \\\"elephant\\\": \\\"🐘\\\",\\n \\\"elevator\\\": \\\"🛗\\\",\\n \\\"elf\\\": \\\"🧝\\\",\\n \\\"email\\\": \\\"📧\\\",\\n \\\"excl\\\": [\\n \\\"❗\\\",\\n {\\n \\\"white\\\": \\\"❕\\\",\\n \\\"double\\\": \\\"‼\\\",\\n \\\"quest\\\": \\\"⁉\\\"\\n }\\n ],\\n \\\"explosion\\\": \\\"💥\\\",\\n \\\"extinguisher\\\": \\\"🧯\\\",\\n \\\"eye\\\": \\\"👁\\\",\\n \\\"eyes\\\": \\\"👀\\\",\\n \\\"face\\\": [\\n {\\n \\\"grin\\\": \\\"😀\\\",\\n \\\"angry\\\": \\\"😠\\\",\\n \\\"angry.red\\\": \\\"😡\\\",\\n \\\"anguish\\\": \\\"😧\\\",\\n \\\"astonish\\\": \\\"😲\\\",\\n \\\"bandage\\\": \\\"🤕\\\",\\n \\\"beam\\\": \\\"😁\\\",\\n \\\"blank\\\": \\\"😶\\\",\\n \\\"clown\\\": \\\"🤡\\\",\\n \\\"cold\\\": \\\"🥶\\\",\\n \\\"concern\\\": \\\"😦\\\",\\n \\\"cool\\\": \\\"😎\\\",\\n \\\"cover\\\": \\\"🤭\\\",\\n \\\"cowboy\\\": \\\"🤠\\\",\\n \\\"cry\\\": \\\"😭\\\",\\n \\\"devil.smile\\\": \\\"😈\\\",\\n \\\"devil.frown\\\": \\\"👿\\\",\\n \\\"diagonal\\\": \\\"🫤\\\",\\n \\\"disguise\\\": \\\"🥸\\\",\\n \\\"dizzy\\\": \\\"😵\\\",\\n \\\"dotted\\\": \\\"🫥\\\",\\n \\\"down\\\": \\\"😞\\\",\\n \\\"down.sweat\\\": \\\"😓\\\",\\n \\\"drool\\\": \\\"🤤\\\",\\n \\\"explode\\\": \\\"🤯\\\",\\n \\\"eyeroll\\\": \\\"🙄\\\",\\n \\\"friendly\\\": \\\"☺\\\",\\n \\\"fear\\\": \\\"😨\\\",\\n \\\"fear.sweat\\\": \\\"😰\\\",\\n \\\"fever\\\": \\\"🤒\\\",\\n \\\"flush\\\": \\\"😳\\\",\\n \\\"frown\\\": \\\"☹\\\",\\n \\\"frown.slight\\\": \\\"🙁\\\",\\n \\\"frust\\\": \\\"😣\\\",\\n \\\"goofy\\\": \\\"🤪\\\",\\n \\\"halo\\\": \\\"😇\\\",\\n \\\"happy\\\": \\\"😊\\\",\\n \\\"heart\\\": \\\"😍\\\",\\n \\\"hearts\\\": \\\"🥰\\\",\\n \\\"heat\\\": \\\"🥵\\\",\\n \\\"hug\\\": \\\"🤗\\\",\\n \\\"inv\\\": \\\"🙃\\\",\\n \\\"joy\\\": \\\"😂\\\",\\n \\\"kiss\\\": \\\"😗\\\",\\n \\\"kiss.smile\\\": \\\"😙\\\",\\n \\\"kiss.heart\\\": \\\"😘\\\",\\n \\\"kiss.blush\\\": \\\"😚\\\",\\n \\\"lick\\\": \\\"😋\\\",\\n \\\"lie\\\": \\\"🤥\\\",\\n \\\"mask\\\": \\\"😷\\\",\\n \\\"meh\\\": \\\"😒\\\",\\n \\\"melt\\\": \\\"🫠\\\",\\n \\\"money\\\": \\\"🤑\\\",\\n \\\"monocle\\\": \\\"🧐\\\",\\n \\\"nausea\\\": \\\"🤢\\\",\\n \\\"nerd\\\": \\\"🤓\\\",\\n \\\"neutral\\\": \\\"😐\\\",\\n \\\"open\\\": \\\"😃\\\",\\n \\\"party\\\": \\\"🥳\\\",\\n \\\"peek\\\": \\\"🫣\\\",\\n \\\"plead\\\": \\\"🥺\\\",\\n \\\"relief\\\": \\\"😌\\\",\\n \\\"rofl\\\": \\\"🤣\\\",\\n \\\"sad\\\": \\\"😔\\\",\\n \\\"salute\\\": \\\"🫡\\\",\\n \\\"shock\\\": \\\"😱\\\",\\n \\\"shush\\\": \\\"🤫\\\",\\n \\\"skeptic\\\": \\\"🤨\\\",\\n \\\"sleep\\\": \\\"😴\\\",\\n \\\"sleepy\\\": \\\"😪\\\",\\n \\\"smile\\\": \\\"😄\\\",\\n \\\"smile.slight\\\": \\\"🙂\\\",\\n \\\"smile.sweat\\\": \\\"😅\\\",\\n \\\"smile.tear\\\": \\\"🥲\\\",\\n \\\"smirk\\\": \\\"😏\\\",\\n \\\"sneeze\\\": \\\"🤧\\\",\\n \\\"speak.not\\\": \\\"🫢\\\",\\n \\\"squint\\\": \\\"😆\\\",\\n \\\"stars\\\": \\\"🤩\\\",\\n \\\"straight\\\": \\\"😑\\\",\\n \\\"suffer\\\": \\\"😖\\\",\\n \\\"surprise\\\": \\\"😯\\\",\\n \\\"symbols\\\": \\\"🤬\\\",\\n \\\"tear\\\": \\\"😢\\\",\\n \\\"tear.relief\\\": \\\"😥\\\",\\n \\\"tear.withheld\\\": \\\"🥹\\\",\\n \\\"teeth\\\": \\\"😬\\\",\\n \\\"think\\\": \\\"🤔\\\",\\n \\\"tired\\\": \\\"😫\\\",\\n \\\"tongue\\\": \\\"😛\\\",\\n \\\"tongue.squint\\\": \\\"😝\\\",\\n \\\"tongue.wink\\\": \\\"😜\\\",\\n \\\"triumph\\\": \\\"😤\\\",\\n \\\"unhappy\\\": \\\"😕\\\",\\n \\\"vomit\\\": \\\"🤮\\\",\\n \\\"weary\\\": \\\"😩\\\",\\n \\\"wink\\\": \\\"😉\\\",\\n \\\"woozy\\\": \\\"🥴\\\",\\n \\\"worry\\\": \\\"😟\\\",\\n \\\"wow\\\": \\\"😮\\\",\\n \\\"yawn\\\": \\\"🥱\\\",\\n \\\"zip\\\": \\\"🤐\\\"\\n }\\n ],\\n \\\"factory\\\": \\\"🏭\\\",\\n \\\"fairy\\\": \\\"🧚\\\",\\n \\\"faith\\\": [\\n {\\n \\\"christ\\\": \\\"✝\\\",\\n \\\"dharma\\\": \\\"☸\\\",\\n \\\"islam\\\": \\\"☪\\\",\\n \\\"judaism\\\": \\\"✡\\\",\\n \\\"menorah\\\": \\\"🕎\\\",\\n \\\"om\\\": \\\"🕉\\\",\\n \\\"orthodox\\\": \\\"☦\\\",\\n \\\"peace\\\": \\\"☮\\\",\\n \\\"star.dot\\\": \\\"🔯\\\",\\n \\\"worship\\\": \\\"🛐\\\",\\n \\\"yinyang\\\": \\\"☯\\\"\\n }\\n ],\\n \\\"falafel\\\": \\\"🧆\\\",\\n \\\"family\\\": \\\"👪\\\",\\n \\\"fax\\\": \\\"📠\\\",\\n \\\"feather\\\": \\\"🪶\\\",\\n \\\"feeding\\\": [{ \\\"breast\\\": \\\"🤱\\\" }],\\n \\\"fencing\\\": \\\"🤺\\\",\\n \\\"ferriswheel\\\": \\\"🎡\\\",\\n \\\"filebox\\\": \\\"🗃\\\",\\n \\\"filedividers\\\": \\\"🗂\\\",\\n \\\"film\\\": \\\"🎞\\\",\\n \\\"finger\\\": [\\n {\\n \\\"r\\\": \\\"👉\\\",\\n \\\"l\\\": \\\"👈\\\",\\n \\\"t\\\": \\\"👆\\\",\\n \\\"t.alt\\\": \\\"☝\\\",\\n \\\"b\\\": \\\"👇\\\",\\n \\\"front\\\": \\\"🫵\\\",\\n \\\"m\\\": \\\"🖕\\\"\\n }\\n ],\\n \\\"fingers\\\": [{ \\\"cross\\\": \\\"🤞\\\", \\\"pinch\\\": \\\"🤌\\\", \\\"snap\\\": \\\"🫰\\\" }],\\n \\\"fire\\\": \\\"🔥\\\",\\n \\\"firecracker\\\": \\\"🧨\\\",\\n \\\"fireengine\\\": \\\"🚒\\\",\\n \\\"fireworks\\\": \\\"🎆\\\",\\n \\\"fish\\\": [\\\"🐟\\\", { \\\"tropical\\\": \\\"🐠\\\" }],\\n \\\"fishing\\\": \\\"🎣\\\",\\n \\\"fist\\\": [\\n {\\n \\\"front\\\": \\\"👊\\\",\\n \\\"r\\\": \\\"🤜\\\",\\n \\\"l\\\": \\\"🤛\\\",\\n \\\"raised\\\": \\\"✊\\\"\\n }\\n ],\\n \\\"flag\\\": [\\n {\\n \\\"black\\\": \\\"🏴\\\",\\n \\\"white\\\": \\\"🏳\\\",\\n \\\"goal\\\": \\\"🏁\\\",\\n \\\"golf\\\": \\\"⛳\\\",\\n \\\"red\\\": \\\"🚩\\\"\\n }\\n ],\\n \\\"flags\\\": [{ \\\"jp.crossed\\\": \\\"🎌\\\" }],\\n \\\"flamingo\\\": \\\"🦩\\\",\\n \\\"flashlight\\\": \\\"🔦\\\",\\n \\\"flatbread\\\": \\\"🫓\\\",\\n \\\"fleur\\\": \\\"⚜\\\",\\n \\\"floppy\\\": \\\"💾\\\",\\n \\\"flower\\\": [\\n {\\n \\\"hibiscus\\\": \\\"🌺\\\",\\n \\\"lotus\\\": \\\"🪷\\\",\\n \\\"pink\\\": \\\"🌸\\\",\\n \\\"rose\\\": \\\"🌹\\\",\\n \\\"sun\\\": \\\"🌻\\\",\\n \\\"tulip\\\": \\\"🌷\\\",\\n \\\"white\\\": \\\"💮\\\",\\n \\\"wilted\\\": \\\"🥀\\\",\\n \\\"yellow\\\": \\\"🌼\\\"\\n }\\n ],\\n \\\"fly\\\": \\\"🪰\\\",\\n \\\"fog\\\": \\\"🌫\\\",\\n \\\"folder\\\": [\\\"📁\\\", { \\\"open\\\": \\\"📂\\\" }],\\n \\\"fondue\\\": \\\"🫕\\\",\\n \\\"foot\\\": \\\"🦶\\\",\\n \\\"football\\\": [\\\"⚽\\\", { \\\"am\\\": \\\"🏈\\\" }],\\n \\\"forex\\\": \\\"💱\\\",\\n \\\"fountain\\\": \\\"⛲\\\",\\n \\\"fox\\\": \\\"🦊\\\",\\n \\\"free\\\": \\\"🆓\\\",\\n \\\"fries\\\": \\\"🍟\\\",\\n \\\"frisbee\\\": \\\"🥏\\\",\\n \\\"frog\\\": [{ \\\"face\\\": \\\"🐸\\\" }],\\n \\\"fuelpump\\\": \\\"⛽\\\",\\n \\\"garlic\\\": \\\"🧄\\\",\\n \\\"gear\\\": \\\"⚙\\\",\\n \\\"gem\\\": \\\"💎\\\",\\n \\\"genie\\\": \\\"🧞\\\",\\n \\\"ghost\\\": \\\"👻\\\",\\n \\\"giraffe\\\": \\\"🦒\\\",\\n \\\"girl\\\": \\\"👧\\\",\\n \\\"glass\\\": [\\n {\\n \\\"clink\\\": \\\"🥂\\\",\\n \\\"milk\\\": \\\"🥛\\\",\\n \\\"pour\\\": \\\"🫗\\\",\\n \\\"tumbler\\\": \\\"🥃\\\"\\n }\\n ],\\n \\\"glasses\\\": [\\\"👓\\\", { \\\"sun\\\": \\\"🕶\\\" }],\\n \\\"globe\\\": [\\n {\\n \\\"am\\\": \\\"🌎\\\",\\n \\\"as.au\\\": \\\"🌏\\\",\\n \\\"eu.af\\\": \\\"🌍\\\",\\n \\\"meridian\\\": \\\"🌐\\\"\\n }\\n ],\\n \\\"gloves\\\": \\\"🧤\\\",\\n \\\"goal\\\": \\\"🥅\\\",\\n \\\"goat\\\": \\\"🐐\\\",\\n \\\"goggles\\\": \\\"🥽\\\",\\n \\\"golfing\\\": \\\"🏌\\\",\\n \\\"gorilla\\\": \\\"🦍\\\",\\n \\\"grapes\\\": \\\"🍇\\\",\\n \\\"guard\\\": [{ \\\"man\\\": \\\"💂\\\" }],\\n \\\"guitar\\\": \\\"🎸\\\",\\n \\\"gymnastics\\\": \\\"🤸\\\",\\n \\\"haircut\\\": \\\"💇\\\",\\n \\\"hammer\\\": [\\\"🔨\\\", { \\\"pick\\\": \\\"⚒\\\", \\\"wrench\\\": \\\"🛠\\\" }],\\n \\\"hamsa\\\": \\\"🪬\\\",\\n \\\"hamster\\\": [{ \\\"face\\\": \\\"🐹\\\" }],\\n \\\"hand\\\": [\\n {\\n \\\"raised\\\": \\\"✋\\\",\\n \\\"raised.alt\\\": \\\"🤚\\\",\\n \\\"r\\\": \\\"🫱\\\",\\n \\\"l\\\": \\\"🫲\\\",\\n \\\"t\\\": \\\"🫴\\\",\\n \\\"b\\\": \\\"🫳\\\",\\n \\\"ok\\\": \\\"👌\\\",\\n \\\"call\\\": \\\"🤙\\\",\\n \\\"love\\\": \\\"🤟\\\",\\n \\\"part\\\": \\\"🖖\\\",\\n \\\"peace\\\": \\\"✌\\\",\\n \\\"pinch\\\": \\\"🤏\\\",\\n \\\"rock\\\": \\\"🤘\\\",\\n \\\"splay\\\": \\\"🖐\\\",\\n \\\"wave\\\": \\\"👋\\\",\\n \\\"write\\\": \\\"✍\\\"\\n }\\n ],\\n \\\"handbag\\\": \\\"👜\\\",\\n \\\"handball\\\": \\\"🤾\\\",\\n \\\"handholding\\\": [{ \\\"man.man\\\": \\\"👬\\\", \\\"woman.man\\\": \\\"👫\\\", \\\"woman.woman\\\": \\\"👭\\\" }],\\n \\\"hands\\\": [\\n {\\n \\\"folded\\\": \\\"🙏\\\",\\n \\\"palms\\\": \\\"🤲\\\",\\n \\\"clap\\\": \\\"👏\\\",\\n \\\"heart\\\": \\\"🫶\\\",\\n \\\"open\\\": \\\"👐\\\",\\n \\\"raised\\\": \\\"🙌\\\",\\n \\\"shake\\\": \\\"🤝\\\"\\n }\\n ],\\n \\\"hash\\\": \\\"#\\\",\\n \\\"hat\\\": [{ \\\"ribbon\\\": \\\"👒\\\", \\\"top\\\": \\\"🎩\\\" }],\\n \\\"headphone\\\": \\\"🎧\\\",\\n \\\"heart\\\": [\\n \\\"❤\\\",\\n {\\n \\\"arrow\\\": \\\"💘\\\",\\n \\\"beat\\\": \\\"💓\\\",\\n \\\"black\\\": \\\"🖤\\\",\\n \\\"blue\\\": \\\"💙\\\",\\n \\\"box\\\": \\\"💟\\\",\\n \\\"broken\\\": \\\"💔\\\",\\n \\\"brown\\\": \\\"🤎\\\",\\n \\\"double\\\": \\\"💕\\\",\\n \\\"excl\\\": \\\"❣\\\",\\n \\\"green\\\": \\\"💚\\\",\\n \\\"grow\\\": \\\"💗\\\",\\n \\\"orange\\\": \\\"🧡\\\",\\n \\\"purple\\\": \\\"💜\\\",\\n \\\"real\\\": \\\"🫀\\\",\\n \\\"revolve\\\": \\\"💞\\\",\\n \\\"ribbon\\\": \\\"💝\\\",\\n \\\"spark\\\": \\\"💖\\\",\\n \\\"white\\\": \\\"🤍\\\",\\n \\\"yellow\\\": \\\"💛\\\"\\n }\\n ],\\n \\\"hedgehog\\\": \\\"🦔\\\",\\n \\\"helicopter\\\": \\\"🚁\\\",\\n \\\"helix\\\": \\\"🧬\\\",\\n \\\"helmet\\\": [{ \\\"cross\\\": \\\"⛑\\\", \\\"military\\\": \\\"🪖\\\" }],\\n \\\"hippo\\\": \\\"🦛\\\",\\n \\\"hockey\\\": \\\"🏑\\\",\\n \\\"hole\\\": \\\"🕳\\\",\\n \\\"honey\\\": \\\"🍯\\\",\\n \\\"hongbao\\\": \\\"🧧\\\",\\n \\\"hook\\\": \\\"🪝\\\",\\n \\\"horn\\\": [{ \\\"postal\\\": \\\"📯\\\" }],\\n \\\"horse\\\": [\\n \\\"🐎\\\",\\n {\\n \\\"carousel\\\": \\\"🎠\\\",\\n \\\"face\\\": \\\"🐴\\\",\\n \\\"race\\\": \\\"🏇\\\"\\n }\\n ],\\n \\\"hospital\\\": \\\"🏥\\\",\\n \\\"hotdog\\\": \\\"🌭\\\",\\n \\\"hotel\\\": [\\\"🏨\\\", { \\\"love\\\": \\\"🏩\\\" }],\\n \\\"hotspring\\\": \\\"♨\\\",\\n \\\"hourglass\\\": [\\\"⌛\\\", { \\\"flow\\\": \\\"⏳\\\" }],\\n \\\"house\\\": [\\n \\\"🏠\\\",\\n {\\n \\\"derelict\\\": \\\"🏚\\\",\\n \\\"garden\\\": \\\"🏡\\\",\\n \\\"multiple\\\": \\\"🏘\\\"\\n }\\n ],\\n \\\"hundred\\\": \\\"💯\\\",\\n \\\"hut\\\": \\\"🛖\\\",\\n \\\"ice\\\": \\\"🧊\\\",\\n \\\"icecream\\\": [\\\"🍨\\\", { \\\"shaved\\\": \\\"🍧\\\", \\\"soft\\\": \\\"🍦\\\" }],\\n \\\"icehockey\\\": \\\"🏒\\\",\\n \\\"id\\\": \\\"🆔\\\",\\n \\\"info\\\": \\\"ℹ\\\",\\n \\\"izakaya\\\": \\\"🏮\\\",\\n \\\"jar\\\": \\\"🫙\\\",\\n \\\"jeans\\\": \\\"👖\\\",\\n \\\"jigsaw\\\": \\\"🧩\\\",\\n \\\"joystick\\\": \\\"🕹\\\",\\n \\\"juggling\\\": \\\"🤹\\\",\\n \\\"juice\\\": \\\"🧃\\\",\\n \\\"kaaba\\\": \\\"🕋\\\",\\n \\\"kadomatsu\\\": \\\"🎍\\\",\\n \\\"kangaroo\\\": \\\"🦘\\\",\\n \\\"gachi\\\": \\\"🈷\\\",\\n \\\"go\\\": \\\"🈴\\\",\\n \\\"hi\\\": \\\"㊙\\\",\\n \\\"ka\\\": \\\"🉑\\\",\\n \\\"kachi\\\": \\\"🈹\\\",\\n \\\"kara\\\": \\\"🈳\\\",\\n \\\"kon\\\": \\\"🈲\\\",\\n \\\"man1\\\": \\\"🈵\\\",\\n \\\"muryo\\\": \\\"🈚\\\",\\n \\\"shin\\\": \\\"🈸\\\",\\n \\\"shuku\\\": \\\"㊗\\\",\\n \\\"toku\\\": \\\"🉐\\\",\\n \\\"yo\\\": \\\"🈺\\\",\\n \\\"yubi\\\": \\\"🈯\\\",\\n \\\"yuryo\\\": \\\"🈶\\\",\\n \\\"koko\\\": \\\"🈁\\\",\\n \\\"sa\\\": \\\"🈂\\\",\\n \\\"kebab\\\": \\\"🥙\\\",\\n \\\"key\\\": [\\\"🔑\\\", { \\\"old\\\": \\\"🗝\\\" }],\\n \\\"keyboard\\\": \\\"⌨\\\",\\n \\\"kiss\\\": \\\"💏\\\",\\n \\\"kissmark\\\": \\\"💋\\\",\\n \\\"kite\\\": \\\"🪁\\\",\\n \\\"kiwi\\\": \\\"🥝\\\",\\n \\\"knife\\\": [\\\"🔪\\\", { \\\"dagger\\\": \\\"🗡\\\" }],\\n \\\"knot\\\": \\\"🪢\\\",\\n \\\"koala\\\": \\\"🐨\\\",\\n \\\"koinobori\\\": \\\"🎏\\\",\\n \\\"label\\\": \\\"🏷\\\",\\n \\\"lacrosse\\\": \\\"🥍\\\",\\n \\\"ladder\\\": \\\"🪜\\\",\\n \\\"lamp\\\": [{ \\\"diya\\\": \\\"🪔\\\" }],\\n \\\"laptop\\\": \\\"💻\\\",\\n \\\"a\\\": \\\"🅰\\\",\\n \\\"ab\\\": \\\"🆎\\\",\\n \\\"b\\\": \\\"🅱\\\",\\n \\\"cl\\\": \\\"🆑\\\",\\n \\\"o\\\": \\\"🅾\\\",\\n \\\"leaf\\\": [\\n {\\n \\\"clover.three\\\": \\\"☘\\\",\\n \\\"clover.four\\\": \\\"🍀\\\",\\n \\\"fall\\\": \\\"🍂\\\",\\n \\\"herb\\\": \\\"🌿\\\",\\n \\\"maple\\\": \\\"🍁\\\",\\n \\\"wind\\\": \\\"🍃\\\"\\n }\\n ],\\n \\\"leftluggage\\\": \\\"🛅\\\",\\n \\\"leg\\\": [\\\"🦵\\\", { \\\"mech\\\": \\\"🦿\\\" }],\\n \\\"lemon\\\": \\\"🍋\\\",\\n \\\"leopard\\\": \\\"🐆\\\",\\n \\\"letter\\\": [{ \\\"love\\\": \\\"💌\\\" }],\\n \\\"liberty\\\": \\\"🗽\\\",\\n \\\"lightbulb\\\": \\\"💡\\\",\\n \\\"lightning\\\": \\\"⚡\\\",\\n \\\"lion\\\": \\\"🦁\\\",\\n \\\"lipstick\\\": \\\"💄\\\",\\n \\\"litter\\\": [\\\"🚮\\\", { \\\"not\\\": \\\"🚯\\\" }],\\n \\\"lizard\\\": \\\"🦎\\\",\\n \\\"llama\\\": \\\"🦙\\\",\\n \\\"lobster\\\": \\\"🦞\\\",\\n \\\"lock\\\": [\\n \\\"🔒\\\",\\n {\\n \\\"key\\\": \\\"🔐\\\",\\n \\\"open\\\": \\\"🔓\\\",\\n \\\"pen\\\": \\\"🔏\\\"\\n }\\n ],\\n \\\"lollipop\\\": \\\"🍭\\\",\\n \\\"lotion\\\": \\\"🧴\\\",\\n \\\"luggage\\\": \\\"🧳\\\",\\n \\\"lungs\\\": \\\"🫁\\\",\\n \\\"mage\\\": \\\"🧙\\\",\\n \\\"magnet\\\": \\\"🧲\\\",\\n \\\"magnify\\\": [{ \\\"r\\\": \\\"🔎\\\", \\\"l\\\": \\\"🔍\\\" }],\\n \\\"mahjong\\\": [{ \\\"dragon.red\\\": \\\"🀄\\\" }],\\n \\\"mail\\\": [\\\"✉\\\", { \\\"arrow\\\": \\\"📩\\\" }],\\n \\\"mailbox\\\": [\\n {\\n \\\"closed.empty\\\": \\\"📪\\\",\\n \\\"closed.full\\\": \\\"📫\\\",\\n \\\"open.empty\\\": \\\"📭\\\",\\n \\\"open.full\\\": \\\"📬\\\"\\n }\\n ],\\n \\\"mammoth\\\": \\\"🦣\\\",\\n \\\"man\\\": [\\n \\\"👨\\\",\\n {\\n \\\"box\\\": \\\"🚹\\\",\\n \\\"crown\\\": \\\"🤴\\\",\\n \\\"guapimao\\\": \\\"👲\\\",\\n \\\"levitate\\\": \\\"🕴\\\",\\n \\\"old\\\": \\\"👴\\\",\\n \\\"pregnant\\\": \\\"🫃\\\",\\n \\\"turban\\\": \\\"👳\\\",\\n \\\"tuxedo\\\": \\\"🤵\\\"\\n }\\n ],\\n \\\"mango\\\": \\\"🥭\\\",\\n \\\"map\\\": [{ \\\"world\\\": \\\"🗺\\\", \\\"jp\\\": \\\"🗾\\\" }],\\n \\\"martialarts\\\": \\\"🥋\\\",\\n \\\"masks\\\": \\\"🎭\\\",\\n \\\"mate\\\": \\\"🧉\\\",\\n \\\"matryoshka\\\": \\\"🪆\\\",\\n \\\"meat\\\": [\\\"🥩\\\", { \\\"bone\\\": \\\"🍖\\\" }],\\n \\\"medal\\\": [\\n {\\n \\\"first\\\": \\\"🥇\\\",\\n \\\"second\\\": \\\"🥈\\\",\\n \\\"third\\\": \\\"🥉\\\",\\n \\\"sports\\\": \\\"🏅\\\",\\n \\\"military\\\": \\\"🎖\\\"\\n }\\n ],\\n \\\"megaphone\\\": [\\\"📢\\\", { \\\"simple\\\": \\\"📣\\\" }],\\n \\\"melon\\\": \\\"🍈\\\",\\n \\\"merperson\\\": \\\"🧜\\\",\\n \\\"metro\\\": \\\"Ⓜ\\\",\\n \\\"microbe\\\": \\\"🦠\\\",\\n \\\"microphone\\\": [\\\"🎤\\\", { \\\"studio\\\": \\\"🎙\\\" }],\\n \\\"microscope\\\": \\\"🔬\\\",\\n \\\"milkyway\\\": \\\"🌌\\\",\\n \\\"mirror\\\": \\\"🪞\\\",\\n \\\"mixer\\\": \\\"🎛\\\",\\n \\\"money\\\": [\\n {\\n \\\"bag\\\": \\\"💰\\\",\\n \\\"dollar\\\": \\\"💵\\\",\\n \\\"euro\\\": \\\"💶\\\",\\n \\\"pound\\\": \\\"💷\\\",\\n \\\"yen\\\": \\\"💴\\\",\\n \\\"wings\\\": \\\"💸\\\"\\n }\\n ],\\n \\\"monkey\\\": [\\n \\\"🐒\\\",\\n {\\n \\\"face\\\": \\\"🐵\\\",\\n \\\"hear.not\\\": \\\"🙉\\\",\\n \\\"see.not\\\": \\\"🙈\\\",\\n \\\"speak.not\\\": \\\"🙊\\\"\\n }\\n ],\\n \\\"moon\\\": [\\n {\\n \\\"crescent\\\": \\\"🌙\\\",\\n \\\"full\\\": \\\"🌕\\\",\\n \\\"full.face\\\": \\\"🌝\\\",\\n \\\"new\\\": \\\"🌑\\\",\\n \\\"new.face\\\": \\\"🌚\\\",\\n \\\"wane.one\\\": \\\"🌖\\\",\\n \\\"wane.two\\\": \\\"🌗\\\",\\n \\\"wane.three.face\\\": \\\"🌜\\\",\\n \\\"wane.three\\\": \\\"🌘\\\",\\n \\\"wax.one\\\": \\\"🌒\\\",\\n \\\"wax.two\\\": \\\"🌓\\\",\\n \\\"wax.two.face\\\": \\\"🌛\\\",\\n \\\"wax.three\\\": \\\"🌔\\\"\\n }\\n ],\\n \\\"mortarboard\\\": \\\"🎓\\\",\\n \\\"mosque\\\": \\\"🕌\\\",\\n \\\"mosquito\\\": \\\"🦟\\\",\\n \\\"motorcycle\\\": \\\"🏍\\\",\\n \\\"motorway\\\": \\\"🛣\\\",\\n \\\"mountain\\\": [\\n \\\"⛰\\\",\\n {\\n \\\"fuji\\\": \\\"🗻\\\",\\n \\\"snow\\\": \\\"🏔\\\",\\n \\\"sunrise\\\": \\\"🌄\\\"\\n }\\n ],\\n \\\"mouse\\\": [\\\"🐁\\\", { \\\"face\\\": \\\"🐭\\\" }],\\n \\\"mousetrap\\\": \\\"🪤\\\",\\n \\\"mouth\\\": [\\\"👄\\\", { \\\"bite\\\": \\\"🫦\\\" }],\\n \\\"moyai\\\": \\\"🗿\\\",\\n \\\"museum\\\": \\\"🏛\\\",\\n \\\"mushroom\\\": \\\"🍄\\\",\\n \\\"musicalscore\\\": \\\"🎼\\\",\\n \\\"nails\\\": [{ \\\"polish\\\": \\\"💅\\\" }],\\n \\\"namebadge\\\": \\\"📛\\\",\\n \\\"nazar\\\": \\\"🧿\\\",\\n \\\"necktie\\\": \\\"👔\\\",\\n \\\"needle\\\": \\\"🪡\\\",\\n \\\"nest\\\": [{ \\\"empty\\\": \\\"🪹\\\", \\\"eggs\\\": \\\"🪺\\\" }],\\n \\\"new\\\": \\\"🆕\\\",\\n \\\"newspaper\\\": [\\\"📰\\\", { \\\"rolled\\\": \\\"🗞\\\" }],\\n \\\"ng\\\": \\\"🆖\\\",\\n \\\"ningyo\\\": \\\"🎎\\\",\\n \\\"ninja\\\": \\\"🥷\\\",\\n \\\"noentry\\\": \\\"⛔\\\",\\n \\\"nose\\\": \\\"👃\\\",\\n \\\"notebook\\\": [\\\"📓\\\", { \\\"deco\\\": \\\"📔\\\" }],\\n \\\"notepad\\\": \\\"🗒\\\",\\n \\\"notes\\\": [\\\"🎵\\\", { \\\"triple\\\": \\\"🎶\\\" }],\\n \\\"numbers\\\": \\\"🔢\\\",\\n \\\"octopus\\\": \\\"🐙\\\",\\n \\\"office\\\": \\\"🏢\\\",\\n \\\"oil\\\": \\\"🛢\\\",\\n \\\"ok\\\": \\\"🆗\\\",\\n \\\"olive\\\": \\\"🫒\\\",\\n \\\"oni\\\": \\\"👹\\\",\\n \\\"onion\\\": \\\"🧅\\\",\\n \\\"orangutan\\\": \\\"🦧\\\",\\n \\\"otter\\\": \\\"🦦\\\",\\n \\\"owl\\\": \\\"🦉\\\",\\n \\\"ox\\\": \\\"🐂\\\",\\n \\\"oyster\\\": \\\"🦪\\\",\\n \\\"package\\\": \\\"📦\\\",\\n \\\"paella\\\": \\\"🥘\\\",\\n \\\"page\\\": [\\\"📄\\\", { \\\"curl\\\": \\\"📃\\\", \\\"pencil\\\": \\\"📝\\\" }],\\n \\\"pager\\\": \\\"📟\\\",\\n \\\"pages\\\": [{ \\\"tabs\\\": \\\"📑\\\" }],\\n \\\"painting\\\": \\\"🖼\\\",\\n \\\"palette\\\": \\\"🎨\\\",\\n \\\"pancakes\\\": \\\"🥞\\\",\\n \\\"panda\\\": \\\"🐼\\\",\\n \\\"parachute\\\": \\\"🪂\\\",\\n \\\"park\\\": \\\"🏞\\\",\\n \\\"parking\\\": \\\"🅿\\\",\\n \\\"parrot\\\": \\\"🦜\\\",\\n \\\"partalteration\\\": \\\"〽\\\",\\n \\\"party\\\": \\\"🎉\\\",\\n \\\"peach\\\": \\\"🍑\\\",\\n \\\"peacock\\\": \\\"🦚\\\",\\n \\\"peanuts\\\": \\\"🥜\\\",\\n \\\"pear\\\": \\\"🍐\\\",\\n \\\"pedestrian\\\": [\\\"🚶\\\", { \\\"not\\\": \\\"🚷\\\" }],\\n \\\"pen\\\": [{ \\\"ball\\\": \\\"🖊\\\", \\\"fountain\\\": \\\"🖋\\\" }],\\n \\\"pencil\\\": \\\"✏\\\",\\n \\\"penguin\\\": \\\"🐧\\\",\\n \\\"pepper\\\": [\\\"🫑\\\", { \\\"hot\\\": \\\"🌶\\\" }],\\n \\\"person\\\": [\\n \\\"🧑\\\",\\n {\\n \\\"angry\\\": \\\"🙎\\\",\\n \\\"beard\\\": \\\"🧔\\\",\\n \\\"blonde\\\": \\\"👱\\\",\\n \\\"bow\\\": \\\"🙇\\\",\\n \\\"crown\\\": \\\"🫅\\\",\\n \\\"deaf\\\": \\\"🧏\\\",\\n \\\"facepalm\\\": \\\"🤦\\\",\\n \\\"frown\\\": \\\"🙍\\\",\\n \\\"hijab\\\": \\\"🧕\\\",\\n \\\"kneel\\\": \\\"🧎\\\",\\n \\\"lotus\\\": \\\"🧘\\\",\\n \\\"massage\\\": \\\"💆\\\",\\n \\\"no\\\": \\\"🙅\\\",\\n \\\"ok\\\": \\\"🙆\\\",\\n \\\"old\\\": \\\"🧓\\\",\\n \\\"pregnant\\\": \\\"🫄\\\",\\n \\\"raise\\\": \\\"🙋\\\",\\n \\\"sassy\\\": \\\"💁\\\",\\n \\\"shrug\\\": \\\"🤷\\\",\\n \\\"stand\\\": \\\"🧍\\\",\\n \\\"steam\\\": \\\"🧖\\\"\\n }\\n ],\\n \\\"petri\\\": \\\"🧫\\\",\\n \\\"phone\\\": [\\n \\\"📱\\\",\\n {\\n \\\"arrow\\\": \\\"📲\\\",\\n \\\"classic\\\": \\\"☎\\\",\\n \\\"not\\\": \\\"📵\\\",\\n \\\"off\\\": \\\"📴\\\",\\n \\\"receiver\\\": \\\"📞\\\",\\n \\\"signal\\\": \\\"📶\\\",\\n \\\"vibrate\\\": \\\"📳\\\"\\n }\\n ],\\n \\\"piano\\\": \\\"🎹\\\",\\n \\\"pick\\\": \\\"⛏\\\",\\n \\\"pie\\\": \\\"🥧\\\",\\n \\\"pig\\\": [\\\"🐖\\\", { \\\"face\\\": \\\"🐷\\\", \\\"nose\\\": \\\"🐽\\\" }],\\n \\\"pill\\\": \\\"💊\\\",\\n \\\"pin\\\": [\\\"📌\\\", { \\\"round\\\": \\\"📍\\\" }],\\n \\\"pinata\\\": \\\"🪅\\\",\\n \\\"pineapple\\\": \\\"🍍\\\",\\n \\\"pingpong\\\": \\\"🏓\\\",\\n \\\"pistol\\\": \\\"🔫\\\",\\n \\\"pizza\\\": \\\"🍕\\\",\\n \\\"placard\\\": \\\"🪧\\\",\\n \\\"planet\\\": \\\"🪐\\\",\\n \\\"plant\\\": \\\"🪴\\\",\\n \\\"plaster\\\": \\\"🩹\\\",\\n \\\"plate\\\": [{ \\\"cutlery\\\": \\\"🍽\\\" }],\\n \\\"playback\\\": [\\n {\\n \\\"down\\\": \\\"⏬\\\",\\n \\\"eject\\\": \\\"⏏\\\",\\n \\\"forward\\\": \\\"⏩\\\",\\n \\\"pause\\\": \\\"⏸\\\",\\n \\\"record\\\": \\\"⏺\\\",\\n \\\"repeat\\\": \\\"🔁\\\",\\n \\\"repeat.once\\\": \\\"🔂\\\",\\n \\\"repeat.v\\\": \\\"🔃\\\",\\n \\\"restart\\\": \\\"⏮\\\",\\n \\\"rewind\\\": \\\"⏪\\\",\\n \\\"shuffle\\\": \\\"🔀\\\",\\n \\\"skip\\\": \\\"⏭\\\",\\n \\\"stop\\\": \\\"⏹\\\",\\n \\\"toggle\\\": \\\"⏯\\\",\\n \\\"up\\\": \\\"⏫\\\"\\n }\\n ],\\n \\\"playingcard\\\": [{ \\\"flower\\\": \\\"🎴\\\", \\\"joker\\\": \\\"🃏\\\" }],\\n \\\"plunger\\\": \\\"🪠\\\",\\n \\\"policeofficer\\\": \\\"👮\\\",\\n \\\"poo\\\": \\\"💩\\\",\\n \\\"popcorn\\\": \\\"🍿\\\",\\n \\\"post\\\": [{ \\\"eu\\\": \\\"🏤\\\", \\\"jp\\\": \\\"🏣\\\" }],\\n \\\"postbox\\\": \\\"📮\\\",\\n \\\"potato\\\": [\\\"🥔\\\", { \\\"sweet\\\": \\\"🍠\\\" }],\\n \\\"pouch\\\": \\\"👝\\\",\\n \\\"powerplug\\\": \\\"🔌\\\",\\n \\\"present\\\": \\\"🎁\\\",\\n \\\"pretzel\\\": \\\"🥨\\\",\\n \\\"printer\\\": \\\"🖨\\\",\\n \\\"prints\\\": [{ \\\"foot\\\": \\\"👣\\\", \\\"paw\\\": \\\"🐾\\\" }],\\n \\\"prohibited\\\": \\\"🚫\\\",\\n \\\"projector\\\": \\\"📽\\\",\\n \\\"pumpkin\\\": [{ \\\"lantern\\\": \\\"🎃\\\" }],\\n \\\"purse\\\": \\\"👛\\\",\\n \\\"quest\\\": [\\\"❓\\\", { \\\"white\\\": \\\"❔\\\" }],\\n \\\"rabbit\\\": [\\\"🐇\\\", { \\\"face\\\": \\\"🐰\\\" }],\\n \\\"raccoon\\\": \\\"🦝\\\",\\n \\\"radio\\\": \\\"📻\\\",\\n \\\"radioactive\\\": \\\"☢\\\",\\n \\\"railway\\\": \\\"🛤\\\",\\n \\\"rainbow\\\": \\\"🌈\\\",\\n \\\"ram\\\": \\\"🐏\\\",\\n \\\"rat\\\": \\\"🐀\\\",\\n \\\"razor\\\": \\\"🪒\\\",\\n \\\"receipt\\\": \\\"🧾\\\",\\n \\\"recycling\\\": \\\"♻\\\",\\n \\\"reg\\\": \\\"®\\\",\\n \\\"restroom\\\": \\\"🚻\\\",\\n \\\"rhino\\\": \\\"🦏\\\",\\n \\\"ribbon\\\": [\\\"🎀\\\", { \\\"remind\\\": \\\"🎗\\\" }],\\n \\\"rice\\\": [\\n \\\"🍚\\\",\\n {\\n \\\"cracker\\\": \\\"🍘\\\",\\n \\\"ear\\\": \\\"🌾\\\",\\n \\\"onigiri\\\": \\\"🍙\\\"\\n }\\n ],\\n \\\"ring\\\": \\\"💍\\\",\\n \\\"ringbuoy\\\": \\\"🛟\\\",\\n \\\"robot\\\": \\\"🤖\\\",\\n \\\"rock\\\": \\\"🪨\\\",\\n \\\"rocket\\\": \\\"🚀\\\",\\n \\\"rollercoaster\\\": \\\"🎢\\\",\\n \\\"rosette\\\": \\\"🏵\\\",\\n \\\"rugby\\\": \\\"🏉\\\",\\n \\\"ruler\\\": [\\\"📏\\\", { \\\"triangle\\\": \\\"📐\\\" }],\\n \\\"running\\\": \\\"🏃\\\",\\n \\\"safetypin\\\": \\\"🧷\\\",\\n \\\"safetyvest\\\": \\\"🦺\\\",\\n \\\"sake\\\": \\\"🍶\\\",\\n \\\"salad\\\": \\\"🥗\\\",\\n \\\"salt\\\": \\\"🧂\\\",\\n \\\"sandwich\\\": \\\"🥪\\\",\\n \\\"santa\\\": [{ \\\"man\\\": \\\"🎅\\\", \\\"woman\\\": \\\"🤶\\\" }],\\n \\\"satdish\\\": \\\"📡\\\",\\n \\\"satellite\\\": \\\"🛰\\\",\\n \\\"saw\\\": \\\"🪚\\\",\\n \\\"saxophone\\\": \\\"🎷\\\",\\n \\\"scales\\\": \\\"⚖\\\",\\n \\\"scarf\\\": \\\"🧣\\\",\\n \\\"school\\\": \\\"🏫\\\",\\n \\\"scissors\\\": \\\"✂\\\",\\n \\\"scooter\\\": [\\\"🛴\\\", { \\\"motor\\\": \\\"🛵\\\" }],\\n \\\"scorpion\\\": \\\"🦂\\\",\\n \\\"screwdriver\\\": \\\"🪛\\\",\\n \\\"scroll\\\": \\\"📜\\\",\\n \\\"seal\\\": \\\"🦭\\\",\\n \\\"seat\\\": \\\"💺\\\",\\n \\\"seedling\\\": \\\"🌱\\\",\\n \\\"shark\\\": \\\"🦈\\\",\\n \\\"sheep\\\": \\\"🐑\\\",\\n \\\"shell\\\": [{ \\\"spiral\\\": \\\"🐚\\\" }],\\n \\\"shield\\\": \\\"🛡\\\",\\n \\\"ship\\\": [\\\"🚢\\\", { \\\"cruise\\\": \\\"🛳\\\", \\\"ferry\\\": \\\"⛴\\\" }],\\n \\\"shirt\\\": [{ \\\"sports\\\": \\\"🎽\\\", \\\"t\\\": \\\"👕\\\" }],\\n \\\"shoe\\\": [\\n \\\"👞\\\",\\n {\\n \\\"ballet\\\": \\\"🩰\\\",\\n \\\"flat\\\": \\\"🥿\\\",\\n \\\"heel\\\": \\\"👠\\\",\\n \\\"hike\\\": \\\"🥾\\\",\\n \\\"ice\\\": \\\"⛸\\\",\\n \\\"roller\\\": \\\"🛼\\\",\\n \\\"sandal.heel\\\": \\\"👡\\\",\\n \\\"ski\\\": \\\"🎿\\\",\\n \\\"sneaker\\\": \\\"👟\\\",\\n \\\"tall\\\": \\\"👢\\\",\\n \\\"thong\\\": \\\"🩴\\\"\\n }\\n ],\\n \\\"shopping\\\": \\\"🛍\\\",\\n \\\"shorts\\\": \\\"🩳\\\",\\n \\\"shoshinsha\\\": \\\"🔰\\\",\\n \\\"shower\\\": \\\"🚿\\\",\\n \\\"shrimp\\\": [\\\"🦐\\\", { \\\"fried\\\": \\\"🍤\\\" }],\\n \\\"shrine\\\": \\\"⛩\\\",\\n \\\"sign\\\": [{ \\\"crossing\\\": \\\"🚸\\\", \\\"stop\\\": \\\"🛑\\\" }],\\n \\\"silhouette\\\": [\\n \\\"👤\\\",\\n {\\n \\\"double\\\": \\\"👥\\\",\\n \\\"hug\\\": \\\"🫂\\\",\\n \\\"speak\\\": \\\"🗣\\\"\\n }\\n ],\\n \\\"siren\\\": \\\"🚨\\\",\\n \\\"skateboard\\\": \\\"🛹\\\",\\n \\\"skewer\\\": [{ \\\"dango\\\": \\\"🍡\\\", \\\"oden\\\": \\\"🍢\\\" }],\\n \\\"skiing\\\": \\\"⛷\\\",\\n \\\"skull\\\": [\\\"💀\\\", { \\\"bones\\\": \\\"☠\\\" }],\\n \\\"skunk\\\": \\\"🦨\\\",\\n \\\"sled\\\": \\\"🛷\\\",\\n \\\"slide\\\": \\\"🛝\\\",\\n \\\"slider\\\": \\\"🎚\\\",\\n \\\"sloth\\\": \\\"🦥\\\",\\n \\\"slots\\\": \\\"🎰\\\",\\n \\\"snail\\\": \\\"🐌\\\",\\n \\\"snake\\\": \\\"🐍\\\",\\n \\\"snowboarding\\\": \\\"🏂\\\",\\n \\\"snowflake\\\": \\\"❄\\\",\\n \\\"snowman\\\": [\\\"⛄\\\", { \\\"snow\\\": \\\"☃\\\" }],\\n \\\"soap\\\": \\\"🧼\\\",\\n \\\"socks\\\": \\\"🧦\\\",\\n \\\"softball\\\": \\\"🥎\\\",\\n \\\"sos\\\": \\\"🆘\\\",\\n \\\"soup\\\": \\\"🍲\\\",\\n \\\"spaghetti\\\": \\\"🍝\\\",\\n \\\"sparkle\\\": [{ \\\"box\\\": \\\"❇\\\" }],\\n \\\"sparkler\\\": \\\"🎇\\\",\\n \\\"sparkles\\\": \\\"✨\\\",\\n \\\"speaker\\\": [\\n \\\"🔈\\\",\\n {\\n \\\"not\\\": \\\"🔇\\\",\\n \\\"wave\\\": \\\"🔉\\\",\\n \\\"waves\\\": \\\"🔊\\\"\\n }\\n ],\\n \\\"spider\\\": \\\"🕷\\\",\\n \\\"spiderweb\\\": \\\"🕸\\\",\\n \\\"spinach\\\": \\\"🥬\\\",\\n \\\"sponge\\\": \\\"🧽\\\",\\n \\\"spoon\\\": \\\"🥄\\\",\\n \\\"square\\\": [\\n {\\n \\\"black\\\": \\\"⬛\\\",\\n \\\"black.tiny\\\": \\\"▪\\\",\\n \\\"black.small\\\": \\\"◾\\\",\\n \\\"black.medium\\\": \\\"◼\\\",\\n \\\"white\\\": \\\"⬜\\\",\\n \\\"white.tiny\\\": \\\"▫\\\",\\n \\\"white.small\\\": \\\"◽\\\",\\n \\\"white.medium\\\": \\\"◻\\\",\\n \\\"blue\\\": \\\"🟦\\\",\\n \\\"brown\\\": \\\"🟫\\\",\\n \\\"green\\\": \\\"🟩\\\",\\n \\\"orange\\\": \\\"🟧\\\",\\n \\\"purple\\\": \\\"🟪\\\",\\n \\\"red\\\": \\\"🟥\\\",\\n \\\"yellow\\\": \\\"🟨\\\"\\n }\\n ],\\n \\\"squid\\\": \\\"🦑\\\",\\n \\\"stadium\\\": \\\"🏟\\\",\\n \\\"star\\\": [\\n \\\"⭐\\\",\\n {\\n \\\"arc\\\": \\\"💫\\\",\\n \\\"box\\\": \\\"✴\\\",\\n \\\"glow\\\": \\\"🌟\\\",\\n \\\"shoot\\\": \\\"🌠\\\"\\n }\\n ],\\n \\\"stethoscope\\\": \\\"🩺\\\",\\n \\\"store\\\": [{ \\\"big\\\": \\\"🏬\\\", \\\"small\\\": \\\"🏪\\\" }],\\n \\\"strawberry\\\": \\\"🍓\\\",\\n \\\"suit\\\": [\\n {\\n \\\"club\\\": \\\"♣\\\",\\n \\\"diamond\\\": \\\"♦\\\",\\n \\\"heart\\\": \\\"♥\\\",\\n \\\"spade\\\": \\\"♠\\\"\\n }\\n ],\\n \\\"sun\\\": [\\\"☀\\\", { \\\"cloud\\\": \\\"🌤\\\", \\\"face\\\": \\\"🌞\\\" }],\\n \\\"sunrise\\\": \\\"🌅\\\",\\n \\\"superhero\\\": \\\"🦸\\\",\\n \\\"supervillain\\\": \\\"🦹\\\",\\n \\\"surfing\\\": \\\"🏄\\\",\\n \\\"sushi\\\": \\\"🍣\\\",\\n \\\"swan\\\": \\\"🦢\\\",\\n \\\"swimming\\\": \\\"🏊\\\",\\n \\\"swimsuit\\\": \\\"🩱\\\",\\n \\\"swords\\\": \\\"⚔\\\",\\n \\\"symbols\\\": \\\"🔣\\\",\\n \\\"synagogue\\\": \\\"🕍\\\",\\n \\\"syringe\\\": \\\"💉\\\",\\n \\\"taco\\\": \\\"🌮\\\",\\n \\\"takeout\\\": \\\"🥡\\\",\\n \\\"tamale\\\": \\\"🫔\\\",\\n \\\"tanabata\\\": \\\"🎋\\\",\\n \\\"tangerine\\\": \\\"🍊\\\",\\n \\\"tap\\\": [\\\"🚰\\\", { \\\"not\\\": \\\"🚱\\\" }],\\n \\\"taxi\\\": [\\\"🚕\\\", { \\\"front\\\": \\\"🚖\\\" }],\\n \\\"teacup\\\": \\\"🍵\\\",\\n \\\"teapot\\\": \\\"🫖\\\",\\n \\\"teddy\\\": \\\"🧸\\\",\\n \\\"telescope\\\": \\\"🔭\\\",\\n \\\"temple\\\": \\\"🛕\\\",\\n \\\"ten\\\": \\\"🔟\\\",\\n \\\"tengu\\\": \\\"👺\\\",\\n \\\"tennis\\\": \\\"🎾\\\",\\n \\\"tent\\\": \\\"⛺\\\",\\n \\\"testtube\\\": \\\"🧪\\\",\\n \\\"thermometer\\\": \\\"🌡\\\",\\n \\\"thread\\\": \\\"🧵\\\",\\n \\\"thumb\\\": [{ \\\"up\\\": \\\"👍\\\", \\\"down\\\": \\\"👎\\\" }],\\n \\\"ticket\\\": [{ \\\"event\\\": \\\"🎟\\\", \\\"travel\\\": \\\"🎫\\\" }],\\n \\\"tiger\\\": [\\\"🐅\\\", { \\\"face\\\": \\\"🐯\\\" }],\\n \\\"tm\\\": \\\"™\\\",\\n \\\"toilet\\\": \\\"🚽\\\",\\n \\\"toiletpaper\\\": \\\"🧻\\\",\\n \\\"tomato\\\": \\\"🍅\\\",\\n \\\"tombstone\\\": \\\"🪦\\\",\\n \\\"tongue\\\": \\\"👅\\\",\\n \\\"toolbox\\\": \\\"🧰\\\",\\n \\\"tooth\\\": \\\"🦷\\\",\\n \\\"toothbrush\\\": \\\"🪥\\\",\\n \\\"tornado\\\": \\\"🌪\\\",\\n \\\"tower\\\": [{ \\\"tokyo\\\": \\\"🗼\\\" }],\\n \\\"trackball\\\": \\\"🖲\\\",\\n \\\"tractor\\\": \\\"🚜\\\",\\n \\\"trafficlight\\\": [{ \\\"v\\\": \\\"🚦\\\", \\\"h\\\": \\\"🚥\\\" }],\\n \\\"train\\\": [\\n \\\"🚆\\\",\\n {\\n \\\"car\\\": \\\"🚃\\\",\\n \\\"light\\\": \\\"🚈\\\",\\n \\\"metro\\\": \\\"🚇\\\",\\n \\\"mono\\\": \\\"🚝\\\",\\n \\\"mountain\\\": \\\"🚞\\\",\\n \\\"speed\\\": \\\"🚄\\\",\\n \\\"speed.bullet\\\": \\\"🚅\\\",\\n \\\"steam\\\": \\\"🚂\\\",\\n \\\"stop\\\": \\\"🚉\\\",\\n \\\"suspend\\\": \\\"🚟\\\",\\n \\\"tram\\\": \\\"🚊\\\",\\n \\\"tram.car\\\": \\\"🚋\\\"\\n }\\n ],\\n \\\"transgender\\\": \\\"⚧\\\",\\n \\\"tray\\\": [{ \\\"inbox\\\": \\\"📥\\\", \\\"mail\\\": \\\"📨\\\", \\\"outbox\\\": \\\"📤\\\" }],\\n \\\"tree\\\": [\\n {\\n \\\"deciduous\\\": \\\"🌳\\\",\\n \\\"evergreen\\\": \\\"🌲\\\",\\n \\\"palm\\\": \\\"🌴\\\",\\n \\\"xmas\\\": \\\"🎄\\\"\\n }\\n ],\\n \\\"triangle\\\": [\\n {\\n \\\"r\\\": \\\"▶\\\",\\n \\\"l\\\": \\\"◀\\\",\\n \\\"t\\\": \\\"🔼\\\",\\n \\\"b\\\": \\\"🔽\\\",\\n \\\"t.red\\\": \\\"🔺\\\",\\n \\\"b.red\\\": \\\"🔻\\\"\\n }\\n ],\\n \\\"trident\\\": \\\"🔱\\\",\\n \\\"troll\\\": \\\"🧌\\\",\\n \\\"trophy\\\": \\\"🏆\\\",\\n \\\"truck\\\": [\\\"🚚\\\", { \\\"trailer\\\": \\\"🚛\\\" }],\\n \\\"trumpet\\\": \\\"🎺\\\",\\n \\\"tsukimi\\\": \\\"🎑\\\",\\n \\\"turkey\\\": \\\"🦃\\\",\\n \\\"turtle\\\": \\\"🐢\\\",\\n \\\"tv\\\": \\\"📺\\\",\\n \\\"ufo\\\": \\\"🛸\\\",\\n \\\"umbrella\\\": [\\n {\\n \\\"open\\\": \\\"☂\\\",\\n \\\"closed\\\": \\\"🌂\\\",\\n \\\"rain\\\": \\\"☔\\\",\\n \\\"sun\\\": \\\"⛱\\\"\\n }\\n ],\\n \\\"unicorn\\\": \\\"🦄\\\",\\n \\\"unknown\\\": \\\"🦳\\\",\\n \\\"up\\\": \\\"🆙\\\",\\n \\\"urn\\\": \\\"⚱\\\",\\n \\\"vampire\\\": \\\"🧛\\\",\\n \\\"violin\\\": \\\"🎻\\\",\\n \\\"volcano\\\": \\\"🌋\\\",\\n \\\"volleyball\\\": \\\"🏐\\\",\\n \\\"vs\\\": \\\"🆚\\\",\\n \\\"waffle\\\": \\\"🧇\\\",\\n \\\"wand\\\": \\\"🪄\\\",\\n \\\"warning\\\": \\\"⚠\\\",\\n \\\"watch\\\": [\\\"⌚\\\", { \\\"stop\\\": \\\"⏱\\\" }],\\n \\\"watermelon\\\": \\\"🍉\\\",\\n \\\"waterpolo\\\": \\\"🤽\\\",\\n \\\"wave\\\": \\\"🌊\\\",\\n \\\"wc\\\": \\\"🚾\\\",\\n \\\"weightlifting\\\": \\\"🏋\\\",\\n \\\"whale\\\": [\\\"🐋\\\", { \\\"spout\\\": \\\"🐳\\\" }],\\n \\\"wheel\\\": \\\"🛞\\\",\\n \\\"wheelchair\\\": [\\\"🦽\\\", { \\\"box\\\": \\\"♿\\\", \\\"motor\\\": \\\"🦼\\\" }],\\n \\\"wind\\\": \\\"🌬\\\",\\n \\\"windchime\\\": \\\"🎐\\\",\\n \\\"window\\\": \\\"🪟\\\",\\n \\\"wine\\\": \\\"🍷\\\",\\n \\\"wolf\\\": \\\"🐺\\\",\\n \\\"woman\\\": [\\n \\\"👩\\\",\\n {\\n \\\"box\\\": \\\"🚺\\\",\\n \\\"crown\\\": \\\"👸\\\",\\n \\\"old\\\": \\\"👵\\\",\\n \\\"pregnant\\\": \\\"🤰\\\"\\n }\\n ],\\n \\\"wood\\\": \\\"🪵\\\",\\n \\\"worm\\\": \\\"🪱\\\",\\n \\\"wrench\\\": \\\"🔧\\\",\\n \\\"wrestling\\\": \\\"🤼\\\",\\n \\\"xray\\\": \\\"🩻\\\",\\n \\\"yarn\\\": \\\"🧶\\\",\\n \\\"yoyo\\\": \\\"🪀\\\",\\n \\\"zebra\\\": \\\"🦓\\\",\\n \\\"zodiac\\\": [\\n {\\n \\\"aquarius\\\": \\\"♒\\\",\\n \\\"aries\\\": \\\"♈\\\",\\n \\\"cancer\\\": \\\"♋\\\",\\n \\\"capri\\\": \\\"♑\\\",\\n \\\"gemini\\\": \\\"♊\\\",\\n \\\"leo\\\": \\\"♌\\\",\\n \\\"libra\\\": \\\"♎\\\",\\n \\\"ophi\\\": \\\"⛎\\\",\\n \\\"pisces\\\": \\\"♓\\\",\\n \\\"sagit\\\": \\\"♐\\\",\\n \\\"scorpio\\\": \\\"♏\\\",\\n \\\"taurus\\\": \\\"♉\\\",\\n \\\"virgo\\\": \\\"♍\\\"\\n }\\n ],\\n \\\"zombie\\\": \\\"🧟\\\",\\n \\\"zzz\\\": \\\"💤\\\"\\n}\\n\"","/// <reference types=\"vite/client\" />\n\nfunction createEl<K extends keyof HTMLElementTagNameMap>(tagName: K): HTMLElementTagNameMap[K];\nfunction createEl<K extends keyof HTMLElementDeprecatedTagNameMap>(tagName: K): HTMLElementDeprecatedTagNameMap[K];\nfunction createEl(tagName: string): HTMLElement;\nfunction createEl(tagname: string) {\n return document.createElement(tagname);\n}\n\nfunction createMath<K extends keyof MathMLElementTagNameMap>(\n tagname: K,\n innerText?: string,\n attr?: { [name: string]: string }\n) {\n let el = document.createElementNS(\"http://www.w3.org/1998/Math/MathML\", tagname);\n if (innerText) el.textContent = innerText;\n if (attr) {\n for (let i in attr) {\n el.setAttribute(i, attr[i]);\n }\n }\n return el;\n}\n\nconst mathvariant = \"mathvariant\";\n\nconst Segmenter = Intl.Segmenter;\nconst segmenter = new Segmenter(\"emoji\", { granularity: \"grapheme\" });\n\ntype vtype = \"\" | \"str\" | \"v\" | \"f\" | \"blank\" | \"group\" | \"group1\" | \"sharp\"; // group1组合基本类型,提高优先级\ntype tree = { type: vtype; value: string; children?: tree; esc?: boolean; kh?: string; src?: string }[];\n\nfunction ast(str: string) {\n let v = /[a-zA-Z]/;\n let kh = /[\\(\\)\\{\\}\\[\\]]/;\n const khl = /[\\(\\{\\[]/;\n const khr = /[\\)\\}\\]]/;\n let blank = /^[ \\t\\n\\r]+$/;\n let type: vtype = \"\";\n let ignore: false | \"line\" | \"block\" = false;\n let o: tree = [];\n let p_tree: { tree: tree; close: boolean }[] = [];\n let now_tree = o;\n let tmp_str = \"\";\n\n str = str.replace(/(\\\\u\\{[\\dA-Fa-f]+\\})/g, (v) => {\n const codePoint = parseInt(v.slice(3, -1), 16);\n return String.fromCodePoint(codePoint);\n });\n\n let lkh_stack: number[] = [];\n let rkh_stack: number[] = [];\n for (let i = 0; i < str.length; i++) {\n const t = str[i];\n const last = str[i - 1];\n // 字符\n if (t === '\"' && last != \"\\\\\" && !ignore) {\n if (type != \"str\") {\n type = \"str\";\n } else {\n type = \"\";\n }\n continue;\n }\n if (type === \"str\") {\n continue;\n } else {\n const next = str[i + 1];\n if (t === \"/\" && next === \"/\") ignore = \"line\";\n if (ignore === \"line\" && t === \"\\n\") {\n i++;\n ignore = false;\n continue;\n }\n if (t === \"/\" && next === \"*\") ignore = \"block\";\n if (ignore === \"block\" && t === \"*\" && next === \"/\") {\n i++;\n ignore = false;\n continue;\n }\n }\n\n if (t.match(khl) && !ignore && last != \"\\\\\") {\n lkh_stack.push(i);\n }\n if (t.match(khr) && !ignore && last != \"\\\\\") {\n if (lkh_stack.length === 0) {\n rkh_stack.push(i);\n } else {\n lkh_stack.pop();\n }\n }\n }\n ignore = false;\n\n let strl = init_c.emoji ? init_c.emoji(str) : Array.from(segmenter.segment(str)).map((w) => w.segment);\n let strl2 = [];\n for (let i of strl) {\n if (i.length > 1 && i.includes(\",\")) strl2.push(...i);\n else strl2.push(i);\n }\n strl = strl2;\n\n for (let i = 0; i < strl.length; i++) {\n const t = strl[i];\n const next = strl[i + 1];\n // 注释\n if (t === \"/\" && next === \"/\") ignore = \"line\";\n if (ignore === \"line\" && t === \"\\n\") {\n i++;\n ignore = false;\n continue;\n }\n if (t === \"/\" && next === \"*\") ignore = \"block\";\n if (ignore === \"block\" && t === \"*\" && next === \"/\") {\n i++;\n ignore = false;\n continue;\n }\n\n if (ignore) continue;\n\n // 空白\n if (type === \"blank\" && !t.match(blank)) {\n now_tree.push({ type, value: \"\" });\n type = \"\";\n }\n // 字符\n if (t === '\"' && strl[i - 1] != \"\\\\\") {\n if (type != \"str\") {\n type = \"str\";\n } else {\n now_tree.push({ type, value: tmp_str });\n type = \"\";\n tmp_str = \"\";\n }\n continue;\n }\n if (type == \"str\") {\n tmp_str += t;\n continue;\n }\n\n // 空白\n if (t.match(blank)) {\n type = \"blank\";\n }\n\n if (t === \"#\") {\n now_tree.push({ type: \"sharp\", value: \"\" });\n continue;\n }\n\n // 原始值(字母变量、数字、符号)\n if (\n type == \"\" &&\n (!strl[i - 1] || !strl[i - 1].match(v)) &&\n (!strl[i + 1] || !strl[i + 1].match(v)) &&\n !t.match(kh)\n ) {\n now_tree.push({ type: \"v\", value: t });\n continue;\n }\n if (type == \"\" && !t.match(v) && !t.match(kh)) {\n now_tree.push({ type: \"v\", value: t });\n continue;\n }\n\n // 函数名\n if (((strl[i - 1] && strl[i - 1].match(v)) || (strl[i + 1] && strl[i + 1].match(v))) && t.match(v)) {\n type = \"f\";\n }\n if (type == \"f\") {\n tmp_str += t;\n }\n if (type == \"f\" && (!strl[i + 1] || !strl[i + 1].match(v))) {\n now_tree.push({ type, value: tmp_str });\n type = \"\";\n tmp_str = \"\";\n }\n\n if (t.match(khl)) {\n if (strl[i - 1] === \"\\\\\") {\n now_tree.push({ type: \"v\", value: t, esc: true });\n } else if (lkh_stack.includes(i)) {\n now_tree.push({ type: \"v\", value: t });\n } else {\n p_tree.push({ tree: now_tree, close: false });\n now_tree.push({ type: \"group\", value: tmp_str, children: [], kh: t });\n now_tree = now_tree.at(-1).children;\n tmp_str = \"\";\n continue;\n }\n }\n if (t.match(khr)) {\n if (strl[i - 1] === \"\\\\\") {\n now_tree.push({ type: \"v\", value: t, esc: true });\n } else if (p_tree.at(-1)) {\n if (p_tree.at(-1).close === false) {\n p_tree.at(-1).close = true;\n now_tree = p_tree.at(-1).tree;\n now_tree.at(-1).kh += t;\n p_tree.pop();\n continue;\n }\n } else {\n now_tree.push({ type: \"v\", value: t });\n }\n }\n }\n\n return o;\n}\n\nimport symbols from \"./symbols.json?raw\";\n/** @see https://github.com/typst/typst/blob/v0.11.1/crates/typst/src/symbols/sym.rs */\nlet s = JSON.parse(symbols);\n\n// symbols路径简写\n\nfunction simple_dot(s: any) {\n const ss: { [id: string]: string } = {};\n for (let i in s) {\n if (typeof s[i] == \"string\") {\n ss[i] = s[i];\n } else {\n for (let objOrStr of s[i]) {\n // 第二层的array\n if (typeof objOrStr == \"string\") {\n ss[i] = objOrStr;\n } else {\n if (!ss[i]) ss[i] = objOrStr[Object.keys(objOrStr)[0]];\n for (let j in objOrStr) {\n // 第三层的obj\n ss[`${i}.${j}`] = objOrStr[j];\n // 允许部分索引,但要保证唯一\n let l = j.split(\".\");\n for (let n = 1; n < l.length; n++) {\n let shotKey = l.slice(0, n).join(\".\");\n if (!objOrStr[shotKey]) {\n ss[`${i}.${shotKey}`] = objOrStr[j];\n }\n }\n }\n }\n }\n }\n }\n return ss;\n}\nlet ss = simple_dot(s);\n\nimport emoji from \"./emoji.json?raw\";\n/** @see https://github.com/typst/typst/blob/v0.11.1/crates/typst/src/symbols/emoji.rs */\nlet emojix = simple_dot(JSON.parse(emoji));\n\nlet shorthand = {\n \"->\": \"arrow.r\",\n \"|->\": \"arrow.r.bar\",\n \"=>\": \"arrow.r.double\",\n \"|=>\": \"arrow.r.double.bar\",\n \"==>\": \"arrow.r.double.long\",\n \"-->\": \"arrow.r.long\",\n \"~~>\": \"arrow.r.long.squiggly\",\n \"~>\": \"arrow.r.squiggly\",\n \">->\": \"arrow.r.tail\",\n \"->>\": \"arrow.r.twohead\",\n \"<-\": \"arrow.l\",\n \"<==\": \"arrow.l.double.long\",\n \"<--\": \"arrow.l.long\",\n \"<~~\": \"arrow.l.long.squiggly\",\n \"<~\": \"arrow.l.squiggly\",\n \"<-<\": \"arrow.l.tail\",\n \"<<-\": \"arrow.l.twohead\",\n \"<->\": \"arrow.l.r\",\n \"<=>\": \"arrow.l.r.double\",\n \"<==>\": \"arrow.l.r.double.long\",\n \"<-->\": \"arrow.l.r.long\",\n \"*\": \"convolve\",\n \"||\": \"bar.v.double\",\n \"[|\": \"bracket.l.double\",\n \"|]\": \"bracket.r.double\",\n \":=\": \"colon.eq\",\n \"::=\": \"colon.double.eq\",\n \"--\": \"dash.en\",\n \"---\": \"dash.em\",\n \"...\": \"dots.h\",\n \"=:\": \"eq.colon\",\n \"!=\": \"eq.not\",\n \">>\": \"gt.double\",\n \">=\": \"gt.eq\",\n \">>>\": \"gt.triple\",\n \"-?\": \"hyph.soft\",\n \"<<\": \"lt.double\",\n \"<=\": \"lt.eq\",\n \"<<<\": \"lt.triple\",\n \"-\": \"minus\",\n \"'\": \"prime\",\n \"~\": \"space.nobreak\",\n};\nlet max_shorthand_len = 0;\nfor (let i in shorthand) {\n if (i.length > max_shorthand_len) {\n max_shorthand_len = i.length;\n }\n}\n\nconst delimPair = {\n \"(\": [\"(\", \")\"],\n \"[\": [\"[\", \"]\"],\n \"{\": [\"{\", \"}\"],\n \"|\": [\"|\", \"|\"],\n \"||\": [\"‖\", \"‖\"],\n \"\": [\"\", \"\"],\n};\n\nfunction delim(dic: fdic, _default: string) {\n const d = get_value(dic, \"delim\") as string;\n let x = \"\";\n if (d !== null)\n if (d === undefined) x = _default;\n else x = d;\n return delimPair[x] as [string, string];\n}\n\nlet f: {\n [name: string]: (attr: tree[], dic?: fdic, e?: fonts) => MathMLElement | DocumentFragment;\n} = {\n accent: (attr: tree[], dic: fdic, e) => {\n let base = createMath(\"mrow\");\n base.append(render(attr[0], e));\n let a = createMath(\"mrow\");\n a.append(render(attr[1], e));\n a.children[0].innerHTML = accent_match_str(a.children[0].innerHTML);\n let over = createMath(\"mover\");\n over.setAttribute(\"accent\", \"true\");\n over.append(base, a);\n return over;\n },\n attach: (attr: tree[], dic: fdic, e) => {\n let base = createMath(\"mrow\");\n base.append(render(attr[0]));\n let el: MathMLElement;\n let tl = createMath(\"mrow\");\n if (dic.tl) tl.append(render(dic.tl, e));\n let bl = createMath(\"mrow\");\n if (dic.bl) bl.append(render(dic.bl, e));\n let tr = createMath(\"mrow\");\n if (dic.tr) tr.append(render(dic.tr, e));\n let br = createMath(\"mrow\");\n if (dic.br) br.append(render(dic.br, e));\n if (dic.tl || dic.bl || dic.tr || dic.br) {\n if (dic.tl || dic.bl) {\n el = createMath(\"mmultiscripts\");\n el.append(base, br, tr, createMath(\"mprescripts\"), bl, tl);\n } else if (dic.tr && dic.br) {\n el = createMath(\"msubsup\");\n el.append(base, br, tr);\n } else if (dic.tr) {\n el = createMath(\"msup\");\n el.append(base, tr);\n } else {\n el = createMath(\"msub\");\n el.append(base, br);\n }\n }\n if (dic.t || dic.b) {\n let uo = createMath(\"munderover\");\n if (!el) {\n uo.append(base);\n } else {\n uo.append(el);\n }\n let t = createMath(\"mrow\");\n if (dic.t) t.append(render(dic.t, e));\n let b = createMath(\"mrow\");\n if (dic.b) b.append(render(dic.b, e));\n uo.append(b, t);\n el = uo;\n }\n return el;\n },\n scripts: (attr: tree[], dic: fdic, e) => {\n return render(attr[0], e);\n },\n limits: (attr: tree[], dic: fdic, e) => {\n return render(attr[0], e);\n },\n binom: (attr: tree[], dic: fdic, e) => {\n let row = createMath(\"mrow\");\n let a = createMath(\"mrow\");\n a.append(render(attr[0], e));\n let b = createMath(\"mrow\");\n const s: tree = [];\n for (let x of attr.slice(1)) s.push(...x, dh);\n b.append(render(s.slice(0, -1), e));\n let f = createMath(\"mfrac\", null, { linethickness: \"0\" });\n f.append(a, b);\n let l = createMath(\"mo\", \"(\");\n let r = createMath(\"mo\", \")\");\n row.append(l, f, r);\n return row;\n },\n cancel: (attr: tree[], dic: fdic, e) => {\n let r = createMath(\"mrow\");\n const bg = (x: boolean) =>\n `linear-gradient(to ${\n x ? \"left\" : \"right\"\n } top, transparent 47.75%, currentColor 49.5%, currentColor 50.5%, transparent 52.25%)`;\n let s = \"\";\n if (is_true(dic.cross)) {\n s = bg(true) + \",\" + bg(false);\n } else if (is_true(dic.inverted)) {\n s = bg(false);\n } else {\n s = bg(true);\n }\n r.style.backgroundImage = s;\n r.append(render(attr[0], e));\n return r;\n },\n cases: (attr: tree[], dic: fdic, e) => {\n let r = createMath(\"mrow\");\n const d = delim(dic, \"{\");\n let t = f.x_table(attr, { cases: [] }, e) as MathMLElement;\n const gap = (get_value(dic, \"gap\") as string) || \"0.5em\";\n t.setAttribute(\"rowspacing\", gap);\n if (is_true(dic?.reverse)) {\n const l = createMath(\"mo\", d[1]);\n r.append(t, l);\n } else {\n const l = createMath(\"mo\", d[0]);\n r.append(l, t);\n }\n return r;\n },\n frac: (attr: tree[], dic: fdic, e) => {\n let a = createMath(\"mrow\");\n a.append(render(attr[0], e));\n let b = createMath(\"mrow\");\n b.append(render(attr[1], e));\n let f = createMath(\"mfrac\");\n f.append(a, b);\n return f;\n },\n lr: (attr: tree[], dic: fdic, e) => {\n let list = attr_join(attr.map((i) => transfer_kh(i)));\n const tList = trim(list);\n\n const size = get_value(dic, \"size\") as string;\n const c = render(tList, e);\n const row = createMath(\"mrow\");\n row.append(c);\n if (size && size != \"auto\") {\n const lm = row.children[0];\n const rm = row.children[row.children.length - 1];\n lm?.setAttribute(\"maxsize\", size);\n lm?.setAttribute(\"minsize\", size);\n rm?.setAttribute(\"maxsize\", size);\n rm?.setAttribute(\"minsize\", size);\n }\n return row;\n },\n mid: (attr: tree[], dic: fdic) => {\n const o = createMath(\"mo\", attr?.[0]?.[0]?.value, { stretchy: \"true\" });\n return o;\n },\n mat: (attr: tree[] | tree[][], dic: fdic, e) => {\n let d = delim(dic, \"(\");\n let row = createMath(\"mrow\");\n let l = createMath(\"mo\", d[0]);\n let r = createMath(\"mo\", d[1]);\n let t = createMath(\"mtable\");\n let array: tree[][];\n if ((attr[0][0] as tree[0])?.type) array = [attr as tree[]];\n else array = attr as tree[][];\n\n let augment = get_value(dic, \"augment\");\n if (augment) {\n let xa = NaN;\n let ya = NaN;\n if (typeof augment != \"object\") {\n xa = Number(augment);\n } else {\n if (augment[\"hline\"]) ya = Number((augment[\"hline\"] as tree).map((i) => i.value).join(\"\"));\n if (augment[\"vline\"]) xa = Number((augment[\"vline\"] as tree).map((i) => i.value).join(\"\"));\n }\n if (xa < 0) xa = array[0].length + xa;\n if (ya < 0) ya = array.length + ya;\n\n if (ya) {\n let l: boolean[] = [];\n for (let i = 1; i < array.length; i++) l.push(i === ya);\n t.setAttribute(\"rowlines\", l.map((i) => (i ? \"solid\" : \"none\")).join(\" \"));\n }\n if (xa) {\n let l: boolean[] = [];\n for (let i = 1; i < array[0].length; i++) l.push(i === xa);\n t.setAttribute(\"columnlines\", l.map((i) => (i ? \"solid\" : \"none\")).join(\" \"));\n }\n }\n const gap = get_value(dic, \"gap\") as string;\n const rowgap = get_value(dic, \"row-gap\") as string;\n const colgap = get_value(dic, \"column-gap\") as string;\n t.setAttribute(\"columnspacing\", colgap || gap || \"0.5em\");\n t.setAttribute(\"rowspacing\", rowgap || gap || \"0.5em\");\n\n for (let i of array) {\n let tr = createMath(\"mtr\");\n for (let j of i) {\n let td = createMath(\"mtd\");\n td.append(render(j, e));\n tr.append(td);\n }\n t.append(tr);\n }\n row.append(l, t, r);\n return row;\n },\n root: (attr: tree[], dic: fdic, e) => {\n let row = createMath(\"mrow\");\n row.append(render(attr[0], e));\n let base = createMath(\"mrow\");\n base.append(render(attr[1], e));\n let root = createMath(\"mroot\");\n root.append(base, row);\n return root;\n },\n sqrt: (attr: tree[], dic: fdic, e) => {\n return f.root([[], attr[0]], null, e);\n },\n display: (attr: tree[], dic: fdic, e) => {\n let m = createMath(\"mrow\", null, { displaystyle: \"true\" });\n m.append(render(attr[0], e));\n return m;\n },\n inline: (attr: tree[], dic: fdic, e) => {\n let m = createMath(\"mrow\", null, { displaystyle: \"false\", scriptlevel: \"0\" });\n m.append(render(attr[0], e));\n return m;\n },\n script: (attr: tree[], dic: fdic, e) => {\n let m = createMath(\"mrow\", null, { displaystyle: \"false\", scriptlevel: \"1\" });\n m.append(render(attr[0], e));\n return m;\n },\n sscript: (attr: tree[], dic: fdic, e) => {\n let m = createMath(\"mrow\", null, { displaystyle: \"false\", scriptlevel: \"2\" });\n m.append(render(attr[0], e));\n return m;\n },\n upright: (attr: tree[], dic: fdic, e) => {\n let r = createMath(\"mrow\");\n r.append(render(attr[0], e));\n r.querySelectorAll(\"mi\").forEach((el) => {\n if (!el.getAttribute(mathvariant)) el.setAttribute(mathvariant, \"normal\");\n });\n r.querySelectorAll(\"ms\").forEach((el) => {\n if (!el.getAttribute(mathvariant)) el.setAttribute(mathvariant, \"normal\");\n });\n return r;\n },\n italic: (attr: tree[], dic: fdic, e) => {\n let r = createMath(\"mrow\");\n r.append(render(attr[0], e));\n r.querySelectorAll(\"mi\").forEach((el) => {\n if (!el.getAttribute(mathvariant)) el.setAttribute(mathvariant, \"italic\");\n });\n r.querySelectorAll(\"ms\").forEach((el) => {\n if (!el.getAttribute(mathvariant)) el.setAttribute(mathvariant, \"italic\");\n });\n return r;\n },\n bold: (attr: tree[], dic: fdic, e) => {\n let r = createMath(\"mrow\");\n r.style.fontWeight = \"bold\";\n r.append(render(attr[0], e));\n return r;\n },\n op: (attr: tree[], dic: fdic, e) => {\n let f = createMath(\"mrow\");\n let str = createMath(\"ms\");\n str.append(render(attr[0], e));\n f.append(str);\n return f;\n },\n underline: (attr: tree[], dic: fdic, e) => {\n return underover_line_f(\"under\", attr[0], e);\n },\n overline: (attr: tree[], dic: fdic, e) => {\n return underover_line_f(\"over\", attr[0], e);\n },\n underbrace: (attr: tree[], dic: fdic, e) => {\n return underover_f(\"under\", attr[0], \"⏟\", attr?.[1], e);\n },\n overbrace: (attr: tree[], dic: fdic, e) => {\n return underover_f(\"over\", attr[0], \"⏞\", attr?.[1], e);\n },\n underbracket: (attr: tree[], dic: fdic, e) => {\n return underover_f(\"under\", attr[0], \"⎵\", attr?.[1], e);\n },\n overbracket: (attr: tree[], dic: fdic, e) => {\n return underover_f(\"over\", attr[0], \"⎴\", attr?.[1], e);\n },\n serif: (attr: tree[]) => {\n return render(attr[0], \"serif\");\n },\n sans: (attr: tree[]) => {\n return render(attr[0], \"sans\");\n },\n frak: (attr: tree[]) => {\n return render(attr[0], \"frak\");\n },\n mono: (attr: tree[]) => {\n return render(attr[0], \"mono\");\n },\n bb: (attr: tree[]) => {\n return render(attr[0], \"bb\");\n },\n cal: (attr: tree[]) => {\n return render(attr[0], \"cal\");\n },\n vec: (attr: tree[], dic: fdic, e) => {\n let d = delim(dic, \"(\");\n let row = createMath(\"mrow\");\n let l = createMath(\"mo\", d[0]);\n let r = createMath(\"mo\", d[1]);\n let t = x_table(attr, e);\n const gap = (get_value(dic, \"gap\") as string) || \"0.5em\";\n t.setAttribute(\"rowspacing\", gap);\n t.setAttribute(\"columnspacing\", \"0.5em\");\n row.append(l, t, r);\n return row;\n },\n h: (attr: tree[], dic: fdic) => {\n return createMath(\"mspace\", \"\", { width: attr[0][0].value });\n },\n // 额外\n //\n x_table: (attr: tree[], dic: fdic) => {\n let t = x_table(attr);\n if (dic.cases) t.setAttribute(\"columnalign\", \"left\");\n return t;\n },\n};\n\nfunction x_table(trees: tree[], e?: fonts) {\n let max = 0;\n let t = createMath(\"mtable\");\n for (let i of trees) {\n const n = i.filter((x) => eqq(x, v_f(\"&\"))).length;\n if (n > max) max = n;\n }\n for (let i of trees) {\n let r = createMath(\"mtr\");\n\n // 按&拆分\n let result: tree[] = [[]];\n for (let n = 0; n < i.length; n++) {\n if (eqq(i[n], v_f(\"&\"))) {\n result.push([]);\n } else {\n result.at(-1).push(i[n]);\n }\n }\n for (let i of result) {\n let d = createMath(\"mtd\");\n r.append(d);\n d.append(render(i, e));\n }\n\n // 交替对齐\n const al = [];\n for (let i = 0; i <= max; i++) {\n if (i % 2 === 0) {\n al.push(\"right\");\n } else {\n al.push(\"left\");\n }\n }\n t.setAttribute(\"columnalign\", al.join(\" \"));\n t.setAttribute(\"columnspacing\", \"0\");\n t.append(r);\n }\n return t;\n}\n\nlet opl: { id: string; str?: string; limits?: boolean }[] = [\n { id: \"arccos\" },\n { id: \"arcsin\" },\n { id: \"arctan\" },\n { id: \"arg\" },\n { id: \"cos\" },\n { id: \"cosh\" },\n { id: \"cot\" },\n { id: \"ctg\" },\n { id: \"coth\" },\n { id: \"csc\" },\n { id: \"csch\" },\n { id: \"deg\" },\n { id: \"det\", limits: true },\n { id: \"dim\" },\n { id: \"exp\" },\n { id: \"gcd\", limits: true },\n { id: \"hom\" },\n { id: \"mod\" },\n { id: \"id\" },\n { id: \"im\" },\n { id: \"inf\", limits: true },\n { id: \"ker\" },\n { id: \"lg\" },\n { id: \"lim\", limits: true },\n { id: \"ln\" },\n { id: \"log\" },\n { id: \"max\", limits: true },\n { id: \"min\", limits: true },\n { id: \"Pr\", limits: true },\n { id: \"sec\" },\n { id: \"sech\" },\n { id: \"sin\" },\n { id: \"sinc\" },\n { id: \"sinh\" },\n { id: \"sup\", limits: true },\n { id: \"tan\" },\n { id: \"tg\" },\n { id: \"tr\" },\n { id: \"tanh\" },\n { id: \"liminf\", str: \"lim inf\", limits: true },\n { id: \"limsup\", str: \"lim sup\", limits: true },\n { id: \"dif\", str: \"d\" },\n { id: \"Dif\", str: \"D\" },\n];\nfunction op_f() {\n for (let i of opl) {\n f[i.id] = (attr: tree[], a, e) => {\n let s = f.op([[{ type: \"str\", value: i.str || i.id }]], {}, e);\n if (attr) {\n let f = document.createDocumentFragment();\n f.append(s, kh(attr_join(attr)));\n return f;\n } else {\n return s;\n }\n };\n }\n}\nop_f();\n\nconst spaceConst = {\n quad: \"1em\",\n med: \"0.222em\",\n thin: \"0.17em\",\n thick: \"0.28em\",\n wide: \"2em\",\n};\n\nfor (let i in spaceConst) {\n f[i] = () => {\n return f.h([[{ type: \"str\", value: spaceConst[i] }]]);\n };\n}\n\nlet limits_f = [];\nlet limits_sy = [\"∏\", \"∐\", \"∑\", \"⋀\", \"⋁\", \"⋂\", \"⋃\", \"⨀\", \"⨁\", \"⨂\", \"⨃\", \"⨄\", \"⨅\", \"⨆\"];\nfor (let i in ss) {\n for (let j of limits_sy) {\n if (ss[i] == j) {\n limits_f.push(i);\n }\n }\n}\n\nfunction accent_match_str(c: string) {\n switch (c) {\n case \"\\u{0300}\":\n case \"`\":\n return \"\\u{0300}\";\n case \"\\u{0301}\":\n case \"´\":\n return \"\\u{0301}\";\n case \"\\u{0302}\":\n case \"^\":\n case \"ˆ\":\n return \"\\u{0302}\";\n case \"\\u{0303}\":\n case \"~\":\n case \"∼\":\n case \"˜\":\n return \"\\u{0303}\";\n case \"\\u{0304}\":\n case \"¯\":\n return \"\\u{0304}\";\n case \"\\u{0305}\":\n case \"-\":\n case \"‾\":\n case \"−\":\n return \"\\u{0305}\";\n case \"\\u{0306}\":\n case \"˘\":\n return \"\\u{0306}\";\n case \"\\u{0307}\":\n case \".\":\n case \"˙\":\n case \"⋅\":\n return \"\\u{0307}\";\n case \"\\u{0308}\":\n case \"¨\":\n return \"\\u{0308}\";\n case \"\\u{20db}\":\n return \"\\u{20db}\";\n case \"\\u{20dc}\":\n return \"\\u{20dc}\";\n case \"\\u{030a}\":\n case \"∘\":\n case \"○\":\n return \"\\u{030a}\";\n case \"\\u{030b}\":\n case \"˝\":\n return \"\\u{030b}\";\n case \"\\u{030c}\":\n case \"ˇ\":\n return \"\\u{030c}\";\n case \"\\u{20d6}\":\n case \"←\":\n return \"\\u{20d6}\";\n case \"\\u{20d7}\":\n case \"→\":\n case \"⟶\":\n return \"\\u{20d7}\";\n case \"\\u{20e1}\":\n case \"↔\":\n case \"⟷\":\n return \"\\u{20e1}\";\n case \"\\u{20d0}\":\n case \"↼\":\n return \"\\u{20d0}\";\n case \"\\u{20d1}\":\n case \"⇀\":\n return \"\\u{20d1}\";\n default:\n return c;\n }\n}\n\nfunction accent_f() {\n const l = [\n \"grave\",\n \"acute\",\n \"acute.double\",\n \"hat\",\n \"tilde\",\n \"macron\",\n \"breve\",\n \"dot\",\n \"dot.double\",\n \"dot.triple\",\n \"dot.quad\",\n \"diaer\",\n \"circle\",\n \"arrow\",\n \"arrow.r\",\n \"arrow.l\",\n \"arrow.l.r\",\n \"caron\",\n \"harpoon\",\n \"harpoon.rt\",\n \"harpoon.lt\",\n ];\n for (let i of l) {\n f[i] = (attr: tree[], dic, e) => {\n let s = f.accent([attr[0], [{ type: \"f\", value: i }]], {}, e);\n return s;\n };\n }\n}\naccent_f();\n\nfunction lr_f() {\n let l: { name: string; l: tree[0]; r: tree[0] }[] = [\n { name: \"abs\", l: v_f(\"|\"), r: v_f(\"|\") },\n { name: \"norm\", l: v_f(\"‖\"), r: v_f(\"‖\") },\n { name: \"floor\", l: v_f(\"⌊\"), r: v_f(\"⌋\") },\n { name: \"ceil\", l: v_f(\"⌈\"), r: v_f(\"⌉\") },\n { name: \"round\", l: v_f(\"⌊\"), r: v_f(\"⌉\") },\n ];\n for (let i of l) {\n f[i.name] = (attr: tree[], dic, e) => {\n let s = f.lr([[i.l, ...attr[0], i.r]], dic, e);\n return s;\n };\n }\n}\nlr_f();\n\nfunction underover_f(type: \"under\" | \"over\", tree: tree, x: string, str: tree, e: fonts) {\n let m =\n type === \"under\"\n ? createMath(\"munder\", null, { accentunder: \"true\" })\n : createMath(\"mover\", null, { accent: \"true\" });\n let base = createMath(\"mrow\");\n base.append(render(tree, e));\n if (str) {\n let s = createMath(\"mrow\");\n s.append(render(str, e));\n let mm = type === \"under\" ? createMath(\"munder\") : createMath(\"mover\");\n let xx = createMath(\"mo\", x);\n mm.append(xx, s);\n m.append(base, mm);\n } else {\n let xx = createMath(\"mo\", x);\n m.append(base, xx);\n }\n return m;\n}\n\nfunction underover_line_f(type: \"under\" | \"over\", tree: tree, e: fonts) {\n let m =\n type === \"under\"\n ? createMath(\"munder\", null, { accentunder: \"true\" })\n : createMath(\"mover\", null, { accent: \"true\" });\n let base = createMath(\"mrow\");\n base.append(render(tree, e));\n if (type === \"under\") base.style.borderBottom = \"1px solid black\";\n if (type === \"over\") base.style.borderTop = \"1px solid black\";\n m.append(base);\n return m;\n}\n\nconst ff: typeof f = {\n \"√\": f[\"sqrt\"],\n \"∛\": (attr, _, e) => f.root([[v_f(\"3\")], attr[0]], null, e),\n \"∜\": (attr, _, e) => f.root([[v_f(\"4\")], attr[0]], null, e),\n};\n\nfunction kh(tree: tree) {\n let f = createMath(\"mrow\");\n let l = createMath(\"mo\");\n l.textContent = \"(\";\n let c = render(tree);\n let r = createMath(\"mo\");\n r.textContent = \")\";\n f.append(l, c, r);\n return f;\n}\n\nfunction out_kh(x: tree[0]) {\n if (x.type === \"group\") {\n if (x.kh === \"()\") return x.children;\n else return [x];\n } else {\n return [x];\n }\n}\n\nfunction transfer_kh(list: tree) {\n if (list.length === 1 && list[0].type === \"group\")\n list = [v_f(list[0].kh[0]), ...list[0].children, v_f(list[0].kh[1])];\n return list;\n}\n\nfunction in_kh(x: tree) {\n let k: tree = [{ type: \"group\", value: \"\", children: x, kh: \"()\" }];\n return k;\n}\n\nfunction is_sup(x: tree[0]) {\n return eqq(x, { type: \"v\", value: \"^\" });\n}\n\nfunction is_sub(x: tree[0]) {\n return eqq(x, { type: \"v\", value: \"_\" });\n}\n\nfunction is_frac(x: tree[0]) {\n return eqq(x, { type: \"v\", value: \"/\" });\n}\n\nfunction is_br(x: tree[0]) {\n return x && x.value == \"br\" && x.esc;\n}\n\nfunction is_limit(tree: tree) {\n if (tree.length == 1) {\n let x = tree[0];\n if (x.type == \"f\") {\n if (limits_f.includes(x.value)) {\n return true;\n }\n if (x.value.split(\".\").at(0) === \"arrow\") return true;\n for (let i of opl) {\n if (i.limits && x.value == i.id) {\n return true;\n }\n }\n if (x.value === \"scripts\") return false;\n if (x.value === \"limits\") return true;\n if (x.value === \"op\") {\n let { dic } = f_attr(x);\n return is_true(dic.limits);\n }\n }\n if (x.type == \"v\" && limits_sy.includes(x.value)) {\n return true;\n }\n } else {\n return false;\n }\n}\n\nfunction is_f_mark(x: tree[0], str: string) {\n return x.value == str && x.type == \"v\" && !x.esc;\n}\n\nfunction is_dot(x: tree[0]) {\n return eq(x, { type: \"v\", value: \".\" });\n}\n\nfunction is_dot_f(x: tree[0]) {\n return x && (x.type == \"f\" || (x.type == \"v\" && x.value.match(/[a-z]/)));\n}\n\nfunction is_factorial(x: tree[0]) {\n return x && x.type == \"v\" && x.value == \"!\" && !x.esc;\n}\n\nlet dh: tree[0] = { type: \"v\", value: \",\" };\n\nfunction v_f(str: string): tree[0] {\n return { type: \"v\", value: str };\n}\n\nfunction eq(x0: tree[0], x1: tree[0]) {\n if (!x0 || !x1) return false;\n return x0.type === x1.type && x0.value === x1.value;\n}\n\nfunction eqq(x0: tree[0], x1: tree[0]) {\n if (!x0 || !x1) return false;\n return x0.type === x1.type && x0.value === x1.value && x0?.esc === x1?.esc;\n}\n\nfunction is_type(x: tree[0], ...type: vtype[]) {\n return type.includes(x?.type);\n}\n\nfunction trim(tree: tree) {\n if (!tree || !tree[0]) return [];\n let start = 0;\n let end = tree.length;\n if (tree[0].type === \"blank\") start = 1;\n if (tree.at(-1).type === \"blank\") end--;\n return tree.slice(start, end);\n}\n\ntype fdic = { [id: string]: tree };\n\nfunction dic_to_ast(dic: { [id: string]: tree }) {\n let l: tree = [];\n for (let i in dic) {\n l.push({ type: \"f\", value: i });\n l.push({ type: \"v\", value: \":\" });\n for (let x of dic[i]) {\n if (eq(x, dh)) x.esc = true;\n }\n l.push(...dic[i]);\n if (Number(i) + 1 != Object.keys(dic).length) {\n l.push(dh);\n }\n }\n return l;\n}\n\nfunction lan_dic(tree: tree) {\n tree = trim(tree);\n const o = new Object();\n let key = \"\";\n let value: tree = [];\n tree.push(dh);\n for (let i = 0; i < tree.length; i++) {\n if (!key && tree[i].type != \"blank\") {\n key = tree[i].value;\n } else {\n if (value.length) {\n if (eqq(tree[i], dh)) {\n o[key] = trim(value);\n key = \"\";\n value = [];\n } else value.push(tree[i]);\n } else {\n if (eqq(tree[i], v_f(\":\"))) {\n value.push(tree[i + 1]);\n }\n }\n }\n }\n return o;\n}\n\nfunction get_value(dic: fdic, o: string) {\n if (!dic?.[o]?.[0]) return undefined;\n const x = dic[o][0];\n if (x.type === \"sharp\") {\n if (x.value === \"true\") return true;\n if (x.value === \"false\") return false;\n if (x.value === \"none\") return null;\n if (x.children) {\n if (!x.children.find((v) => eqq(v, v_f(\":\")))) return x.children.map((v) => v.value).join(\"\");\n return lan_dic(x.children);\n }\n }\n return dic[o].map((i) => i.value).join(\"\");\n}\n\nfunction is_true(t: tree) {\n return eqq(trim(t)?.[0], { type: \"sharp\", value: \"true\" });\n}\n\nfunction ast2(tree: tree) {\n // 处理数字和小数\n {\n let t: tree = [];\n let num = /[0-9]/;\n let number = \"\";\n for (let n = 0; n < tree.length; n++) {\n let x = tree[n];\n if (x.value.match(num) || (tree[n - 1]?.value.match(num) && is_dot(x) && tree[n + 1]?.value.match(num))) {\n number += x.value;\n } else {\n t.push(x);\n }\n if (\n x.value.match(num) &&\n (!tree[n + 1] || !tree[n + 1].value.match(num)) &&\n !(is_dot(tree[n + 1]) && tree[n + 2]?.value.match(num))\n ) {\n t.push({ type: \"v\", value: number });\n number = \"\";\n }\n }\n tree = t;\n }\n\n // 处理\\转义\n {\n let t: tree = [];\n for (let n = 0; n < tree.length; n++) {\n let x = tree[n];\n\n if (eqq(x, v_f(\"\\\\\"))) {\n if (tree?.[n + 1]) {\n let next = tree[n + 1];\n if (eq(next, v_f(\"\\\\\"))) {\n t.push({ type: \"v\", value: \"\\\\\", esc: true });\n n++;\n } else if (next.type === \"blank\") {\n t.push({ type: \"v\", value: \"br\", esc: true });\n n++;\n } else if (next.type === \"f\") {\n let v = next.value;\n t.push({ type: \"v\", value: v[0] });\n t.push({ type: v.length == 2 ? \"v\" : \"f\", value: v.slice(1) });\n n++;\n } else if (next.type === \"sharp\") {\n t.push({ type: \"v\", value: \"#\" });\n n++;\n } else {\n let v = next;\n v.esc = true;\n t.push(v);\n n++;\n }\n }\n } else {\n t.push(x);\n }\n }\n tree = t;\n }\n\n return tree;\n}\n\nfunction ast3(tree: tree) {\n // 处理符号简写(shorthand)\n {\n let t: tree = [];\n for (let n = 0; n < tree.length; n++) {\n let x = tree[n];\n\n if (!x.esc) {\n if (x.type == \"v\") {\n let nn = n;\n let shortkey = x.value;\n let l = [];\n if (shorthand[shortkey]) l.push(shortkey);\n // 连起来的字符\n while (tree?.[nn + 1]?.type == \"v\" && shortkey.length <= max_shorthand_len) {\n shortkey += tree[nn + 1].value;\n if (shorthand[shortkey]) l.push(shortkey);\n nn++;\n }\n if (l.length) {\n let nx: tree[0] = { type: \"f\", value: shorthand[l.at(-1)], src: l.at(-1) };\n t.push(nx);\n\n // 不处理已经后面连起来的字符\n n += l.at(-1).length - 1;\n } else {\n t.push(x);\n }\n } else {\n t.push(x);\n }\n } else {\n t.push(x);\n }\n }\n tree = t;\n }\n\n // 处理字符与v之间空格\n {\n let t: tree = [];\n for (let n = 0; n < tree.length; n++) {\n let x = tree[n];\n\n if (x.type == \"v\" && tree?.[n + 1]?.type == \"blank\" && tree?.[n + 2]?.type == \"str\") {\n t.push(x);\n t.push({ type: \"f\", value: \"space\" });\n } else if (x.type == \"str\" && tree?.[n + 1]?.type == \"blank\" && tree?.[n + 2]?.type == \"v\") {\n t.push(x);\n t.push({ type: \"f\", value: \"space\" });\n } else {\n t.push(x);\n }\n }\n tree = t;\n }\n\n // 处理!\n {\n let t: tree = [];\n let tmpx: tree = [];\n for (let n = 0; n < tree.length; n++) {\n let x = tree[n];\n\n if (is_factorial(tree?.[n + 1]) && !is_sup(x) && !is_sub(x) && !is_frac(x)) {\n tmpx.push(x);\n } else {\n if (tmpx.length) {\n tmpx.push(x);\n t.push({ type: \"group1\", value: \"\", children: tmpx });\n tmpx = [];\n } else {\n t.push(x);\n }\n }\n }\n\n tree = t;\n }\n\n // 处理带.的f\n {\n let t: tree = [];\n let f = \"\";\n for (let n = 0; n < tree.length; n++) {\n let x = tree[n];\n\n if (is_dot_f(x) && is_dot(tree[n + 1])) {\n if (f || (!f && x.type == \"f\")) {\n f += x.value + \".\";\n n++;\n continue;\n } else {\n t.push(x);\n }\n } else if (f && is_dot_f(x)) {\n f += x.value;\n if (!is_dot(tree[n + 1])) {\n t.push({ type: \"f\", value: f });\n f = \"\";\n }\n } else {\n t.push(x);\n }\n }\n tree = t;\n }\n // 处理后面直接跟参数的f\n {\n const t: tree = [];\n for (let n = 0; n < tree.length; n++) {\n const x = tree[n];\n if (x.type === \"v\" && ff[x.value] && tree[n + 1]) {\n x.type = \"f\";\n if (!(is_type(tree[n + 1], \"group\") && tree[n + 1].kh === \"()\")) {\n t.push(x);\n t.push({ type: \"group\", children: [tree[n + 1]], value: \"\", kh: \"()\" });\n n++;\n continue;\n }\n }\n t.push(x);\n }\n tree = t;\n }\n // 处理f\n {\n let t: tree = [];\n for (let n = 0; n < tree.length; n++) {\n let x = tree[n];\n const next = tree[n + 1];\n\n // 带有括号(参数)的函数\n if (x.type === \"f\" && next && next.type === \"group\") {\n if (next.kh === \"()\") {\n x.children = tree[n + 1].children;\n t.push(x);\n\n // 不处理group\n n++;\n continue;\n } else {\n if (next.kh[0] === \"(\") {\n // 向后找\n const tt: tree = [];\n tt.push(...next.children);\n tt.push(v_f(next.kh[1]));\n for (let i = n + 2; i < tree.length; i++) {\n if (tree[i]) {\n if (eqq(tree[i], v_f(\")\"))) {\n n = i;\n break;\n } else {\n tt.push(tree[i]);\n }\n }\n }\n x.children = tt;\n t.push(x);\n } else {\n t.push(x);\n }\n }\n for (let i in x.children || []) {\n if (x.children[i].value === \"\\\\\" && x.children[i].type === \"v\") {\n if (x.children[Number(i) + 1]) {\n x.children[Number(i) + 1][\"esc\"] = true;\n }\n }\n }\n } else {\n t.push(x);\n }\n }\n tree = t;\n }\n\n // sin[]/2=(sin[])/2 a_i()=a_(i()) 之类的\n {\n const t: tree = [];\n const un_list_str = [\n \"`\",\n \"~\",\n \"!\",\n \"@\",\n \"%\",\n \"*\",\n \"(\",\n \")\",\n \"-\",\n \"+\",\n \"=\",\n \"[\",\n \"]\",\n \"{\",\n \"}\",\n \"|\",\n \":\",\n \";\",\n \"<\",\n \",\",\n \">\",\n \".\",\n \"?\",\n ]; // typst 似乎是直接排除了这些字符,不排除转义,shorthand之类的\n for (let n = 0; n < tree.length; n++) {\n const x = tree[n];\n const next = tree[n + 1];\n if (\n is_type(next, \"group\") &&\n next.kh != \"()\" &&\n is_type(x, \"f\", \"str\", \"v\") &&\n !x.value.match(/[0-9]/) &&\n !is_sub(x) &&\n !is_sup(x) &&\n (!(\n (is_type(x, \"f\") && un_list_str.includes(x.src)) ||\n (is_type(x, \"v\") && un_list_str.includes(x.value))\n ) ||\n x.esc)\n ) {\n t.push({ type: \"group1\", value: \"\", children: [x, next] });\n n++;\n continue;\n }\n t.push(x);\n }\n tree = t;\n }\n\n // 处理#\n {\n const t: tree = [];\n for (let n = 0; n < tree.length; n++) {\n const x = tree[n];\n if (x.type === \"sharp\") {\n if (!x.value)\n if (tree[n + 1]?.type === \"group\") {\n x.children = tree[n + 1].children;\n for (let i in x.children) {\n if (x.children[i].value === \"\\\\\" && x.children[i].type === \"v\") {\n if (x.children[Number(i) + 1]) {\n x.children[Number(i) + 1][\"esc\"] = true;\n }\n }\n }\n const v = x.children.map((i) => i.value).join(\"\");\n if (v.match(/^[0-9\\+\\-\\*\\/()]+$/)) {\n x.value = v; // todo 数学运算\n } else {\n x.value = v;\n }\n } else {\n console.log(\"+1\", tree[n + 1]);\n\n x.value = tree[n + 1]?.value;\n if (tree[n + 2]?.type === \"f\") {\n x.value += tree[n + 2].value;\n n++;\n }\n }\n t.push(x);\n n++;\n continue;\n } else {\n t.push(x);\n }\n }\n tree = t;\n }\n\n // '->^'\n {\n let t: tree = [];\n for (let n = 0; n < tree.length; n++) {\n const next = tree[n + 1];\n const x = tree[n];\n let nn = n + 1;\n if (eqq(next, { type: \"f\", value: \"prime\" })) {\n while (tree[nn] && eqq(tree[nn], { type: \"f\", value: \"prime\" })) nn++;\n const primes = nn - (n + 1);\n if (!is_sup(x) && !is_sub(x) && x.type != \"blank\") {\n t.push({\n type: \"f\",\n value: \"attach\",\n children: [\n x,\n dh,\n ...dic_to_ast({\n tr: [{ type: \"v\", value: \"'\".repeat(primes) }],\n }),\n ],\n });\n } else {\n t.push(x);\n for (let i = 0; i < primes; i++) t.push({ type: \"f\", value: \"prime\" });\n }\n n += primes;\n continue;\n }\n t.push(x);\n }\n tree = t;\n }\n\n // 移除blank\n {\n let t: tree = [];\n for (let i of tree) {\n if (i.type == \"blank\") continue;\n t.push(i);\n }\n tree = t;\n }\n\n // 处理^_\n {\n // 获取^_嵌套索引\n let index: [number, number][] = [];\n let start = NaN;\n for (let n = 0; n < tree.length; n++) {\n const x = tree[n];\n if (!is_sup(x) && !is_sub(x)) {\n if ((is_sup(tree[n + 1]) || is_sub(tree[n + 1])) && !(is_sup(tree[n - 1]) || is_sub(tree[n - 1]))) {\n if (!start) start = n;\n }\n if ((is_sup(tree[n - 1]) || is_sub(tree[n - 1])) && !(is_sup(tree[n + 1]) || is_sub(tree[n + 1]))) {\n index.push([start, n]);\n start = NaN;\n }\n }\n }\n\n let t: tree = [];\n for (let n = 0; n < tree.length; n++) {\n if (n == index?.[0]?.[0]) {\n {\n let tmp: tree[0] = tree[index[0][1]];\n for (let i = index[0][1]; i >= index[0][0]; i--) {\n if (is_sup(tree[i - 1]) && is_sub(tree[i - 3])) {\n let o = is_limit([tree[i - 4]])\n ? { t: out_kh(tmp), b: out_kh(tree[i - 2]) }\n : { tr: out_kh(tmp), br: out_kh(tree[i - 2]) };\n tmp = {\n type: \"f\",\n value: \"attach\",\n children: [tree[i - 4], dh, ...dic_to_ast(o)],\n };\n i -= 4 - 1;\n continue;\n }\n if (is_sub(tree[i - 1]) && is_sup(tree[i - 3])) {\n let o = is_limit([tree[i - 4]])\n ? { t: out_kh(tree[i - 2]), b: out_kh(tmp) }\n : { tr: out_kh(tree[i - 2]), br: out_kh(tmp) };\n tmp = {\n type: \"f\",\n value: \"attach\",\n children: [tree[i - 4], dh, ...dic_to_ast(o)],\n };\n i -= 4 - 1;\n continue;\n }\n if (is_sup(tree[i - 1])) {\n let o = is_limit([tree[i - 2]]) ? { t: out_kh(tmp) } : { tr: out_kh(tmp) };\n tmp = {\n type: \"f\",\n value: \"attach\",\n children: [tree[i - 2], dh, ...dic_to_ast(o)],\n };\n i -= 2 - 1;\n continue;\n }\n if (is_sub(tree[i - 1])) {\n let o = is_limit([tree[i - 2]]) ? { b: out_kh(tmp) } : { br: out_kh(tmp) };\n tmp = {\n type: \"f\",\n value: \"attach\",\n children: [tree[i - 2], dh, ...dic_to_ast(o)],\n };\n i -= 2 - 1;\n continue;\n }\n }\n t.push(tmp);\n }\n n += index[0][1] - index[0][0];\n index = index.slice(1);\n continue;\n }\n\n t.push(tree[n]);\n }\n tree = t;\n }\n\n // 处理/\n {\n // 获取/嵌套索引\n let index: [number, number][] = [];\n let start = NaN;\n for (let n = 0; n < tree.length; n++) {\n const x = tree[n];\n if (!is_frac(x)) {\n if (is_frac(tree[n + 1]) && !is_frac(tree[n - 1])) {\n if (!start) start = n;\n }\n if (is_frac(tree[n - 1]) && !is_frac(tree[n + 1])) {\n index.push([start, n]);\n start = NaN;\n }\n }\n }\n\n let t: tree = [];\n for (let n = 0; n < tree.length; n++) {\n if (n == index?.[0]?.[0]) {\n {\n let tmp: tree[0] = tree[index[0][0]];\n for (let i = index[0][0]; i <= index[0][1]; i++) {\n if (is_frac(tree[i + 1])) {\n tmp = {\n type: \"f\",\n value: \"frac\",\n children: [...out_kh(tmp), dh, ...out_kh(tree[i + 2])],\n };\n i += 2 - 1;\n continue;\n }\n }\n console.log(1, tmp);\n\n t.push(tmp);\n }\n n += index[0][1] - index[0][0];\n index.splice(0, 1);\n continue;\n }\n\n t.push(tree[n]);\n }\n tree = t;\n }\n return tree;\n}\n\nfunction f_attr(x: tree[0]) {\n const list: (tree | \",\" | \";\")[] = [[]];\n for (let i of x.children) {\n if (eqq(i, { type: \"v\", value: \",\" }) || eqq(i, { type: \"v\", value: \";\" })) {\n list.push(i.value as \",\" | \";\");\n list.push([]);\n } else {\n (list.at(-1) as tree).push(i);\n }\n }\n const dicl: tree[] = [];\n const xattr: typeof list = [];\n for (let x of list) {\n if (typeof x === \"string\") {\n xattr.push(x);\n } else {\n if (x.find((v, i) => is_type(x[i - 1], \"f\", \"v\") && eqq(v, { type: \"v\", value: \":\" }))) {\n dicl.push(x);\n } else {\n xattr.push(x);\n }\n }\n }\n\n let nl: typeof xattr = [];\n for (let i = 0; i < xattr.length; i++) {\n const n = xattr[i],\n next = xattr[i + 1];\n if ((n === \",\" && next === \";\") || (n === \";\" && next === \",\")) {\n nl.push(\";\");\n i++;\n } else {\n nl.push(xattr[i]);\n }\n }\n\n let attr: tree[] | tree[][];\n if (typeof nl.at(-1) === \"string\") nl = nl.slice(0, -1);\n const has_fenhao = nl.includes(\";\");\n if (has_fenhao) {\n let x = array_split(nl, (x) => x === \";\");\n if (x.at(-1)[0].length === 0) x = x.slice(0, -1);\n attr = x.map((x) => x.filter((i) => typeof i != \"string\")) as tree[][];\n } else {\n attr = (nl.filter((i) => typeof i != \"string\") as tree[]).map((i) => trim(i));\n }\n\n // 将dicl的tree转为键对\n let dic: fdic = {};\n for (let i of dicl) {\n let x = false;\n let n = \"\";\n let t: tree = [];\n for (let el of i) {\n if (eqq(el, { type: \"v\", value: \":\" })) {\n x = true;\n continue;\n }\n if (!x) {\n n += el.value;\n } else {\n t.push(el);\n }\n }\n dic[n] = ast3(ast2(t));\n }\n return { attr, dic };\n}\n\nfunction array_split<i>(list: i[], f: (i: i) => boolean) {\n const l: i[][] = [[]];\n for (let x of list) {\n if (f(x)) {\n l.push([]);\n } else {\n l.at(-1).push(x);\n }\n }\n return l;\n}\n\nfunction attr_join(attr: tree[]) {\n const t: tree = [];\n for (let i of attr) {\n t.push(...i, v_f(\",\"));\n }\n return t.slice(0, -1);\n}\n\ntype fonts = \"serif\" | \"sans\" | \"frak\" | \"mono\" | \"bb\" | \"cal\";\nfunction font(str: string, type: fonts = \"serif\") {\n function index_c(c: string) {\n const l = \"abcdefghijklmnopqrstuvwxyz\";\n return l.indexOf(c.toLowerCase());\n }\n const map: { [font in \"sans\" | \"frak\" | \"mono\" | \"bb\" | \"cal\"]: { num?: string; up: string; low: string } } = {\n sans: {\n num: \"𝟢𝟣𝟤𝟥𝟦𝟧𝟨𝟩𝟪𝟫\",\n low: \"𝖺𝖻𝖼𝖽𝖾𝖿𝗀𝗁𝗂𝗃𝗄𝗅𝗆𝗇𝗈𝗉𝗊𝗋𝗌𝗍𝗎𝗏𝗐𝗑𝗒𝗓\",\n up: \"𝖠𝖡𝖢𝖣𝖤𝖥𝖦𝖧𝖨𝖩𝖪𝖫𝖬𝖭𝖮𝖯𝖰𝖱𝖲𝖳𝖴𝖵𝖶𝖷𝖸𝖹\",\n },\n frak: {\n low: \"𝔞𝔟𝔠𝔡𝔢𝔣𝔤𝔥𝔦𝔧𝔨𝔩𝔪𝔫𝔬𝔭𝔮𝔯𝔰𝔱𝔲𝔳𝔴𝔵𝔶𝔷\",\n up: \"𝔄𝔅ℭ𝔇𝔈𝔉𝔊ℌℑ𝔍𝔎𝔏𝔐𝔑𝔒𝔓𝔔ℜ𝔖𝔗𝔘𝔙𝔚𝔛𝔜ℨ\",\n },\n mono: {\n num: \"𝟶𝟷𝟸𝟹𝟺𝟻𝟼𝟽𝟾𝟿\",\n low: \"𝚊𝚋𝚌𝚍𝚎𝚏𝚐𝚑𝚒𝚓𝚔𝚕𝚖𝚗𝚘𝚙𝚚𝚛𝚜𝚝𝚞𝚟𝚠𝚡𝚢𝚣\",\n up: \"𝙰𝙱𝙲𝙳𝙴𝙵𝙶𝙷𝙸𝙹𝙺𝙻𝙼𝙽𝙾𝙿𝚀𝚁𝚂𝚃𝚄𝚅𝚆𝚇𝚈𝚉\",\n },\n bb: {\n num: \"𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡\",\n low: \"𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫\",\n up: \"𝔸𝔹ℂ𝔻𝔼𝔽𝔾ℍ𝕀𝕁𝕂𝕃𝕄ℕ𝕆ℙℚℝ𝕊𝕋𝕌𝕍𝕎𝕏𝕐ℤ\",\n },\n cal: {\n low: \"𝒶𝒷𝒸𝒹ℯ𝒻ℊ𝒽𝒾𝒿𝓀𝓁𝓂𝓃ℴ𝓅𝓆𝓇𝓈𝓉𝓊𝓋𝓌𝓍𝓎𝓏\",\n up: \"𝒜ℬ𝒞𝒟ℰℱ𝒢ℋℐ𝒥𝒦ℒℳ𝒩𝒪𝒫𝒬ℛ𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵\",\n },\n };\n if (type === \"serif\") return str;\n else {\n str = str.replace(/[0-9]/g, (s) => [...map[type].num][s]);\n str = str.replace(/[a-z]/g, (s) => [...map[type].low][index_c(s)]);\n str = str.replace(/[A-Z]/g, (s) => [...map[type].up][index_c(s)]);\n }\n return str;\n}\n\nfunction render(tree: tree, e?: fonts) {\n let fragment = document.createDocumentFragment();\n\n tree = ast2(tree);\n\n // 多行\n // 处理\\ 换行\n {\n let xx = false;\n for (let n in tree) {\n const i = tree[n];\n if (is_br(i)) {\n xx = true;\n break;\n }\n }\n if (xx) {\n const trees: tree[] = [[]];\n for (let n = 0; n < tree.length; n++) {\n const i = tree[n];\n if (is_br(i)) {\n trees.push([]);\n } else {\n trees.at(-1).push(i);\n }\n }\n return x_table(trees);\n }\n }\n\n // 单行\n\n tree = ast3(tree);\n\n {\n let t: tree = [];\n for (let x of tree) {\n // 移除&\n if (!(x.type == \"v\" && x.value == \"&\" && !x.esc)) {\n t.push(x);\n }\n }\n tree = t;\n }\n\n // 移除group1\n {\n let t: tree = [];\n for (let x of tree) {\n if (x.type == \"group1\") {\n t.push(...x.children);\n } else {\n t.push(x);\n }\n }\n tree = t;\n }\n\n console.log(\"ast3\", structuredClone(tree));\n for (let i in tree) {\n let n = Number(i);\n let x = tree[n];\n\n // 函数\n if (x.type === \"f\") {\n // 带有括号(参数)的函数\n if (x.children && (x.kh === \"()\" || !x.kh)) {\n let { attr, dic } = f_attr(x);\n\n if (f[x.value]) {\n let el = f[x.value](attr as tree[], dic, e);\n fragment.append(el);\n } else if (ss[x.value]) {\n let el = createMath(\"mi\", ss[x.value]);\n fragment.append(el, render(in_kh(x.children), e));\n } else if (ff[x.value]) {\n let el = ff[x.value](attr as tree[], dic, e);\n fragment.append(el);\n }\n } else {\n if (ss[x.value]) {\n let tag: keyof MathMLElementTagNameMap;\n let space_w = null;\n const space_width = {\n \" \": \"0.36em\",\n \"\\u2002\": \"0.5em\",\n \"\\u2003\": \"1em\",\n \"\\u2004\": \"0.333em\",\n \"\\u2005\": \"0.25em\",\n \"\\u2006\": \"0.166em\",\n \"\\u205f\": \"0.222em\",\n \"\\u2007\": \"1ch\",\n \"\\u2008\": \"0.27em\",\n \"\\u2009\": \"0.17em\",\n \"\\u200a\": \"0.09em\",\n };\n if (ss[x.value].match(/[a-zA-Z\\u0391-\\u03C9]/)) {\n tag = \"mi\";\n } else if (space_width[ss[x.value]]) {\n tag = \"mspace\";\n space_w = { width: space_width[ss[x.value]] };\n } else {\n tag = \"mo\";\n }\n let el = createMath(tag, ss[x.value], space_w);\n fragment.append(el);\n } else if (f[x.value]) {\n let el = f[x.value](null, null, e);\n fragment.append(el);\n } else if (ff[x.value]) {\n let el = ff[x.value]([x.children], null, e);\n fragment.append(el);\n }\n }\n }\n\n if (x.type == \"str\") {\n let el = createMath(\"ms\", font(x.value, e));\n fragment.append(el);\n }\n\n if (x.type === \"v\" || x.type === \"sharp\") {\n let tag: keyof MathMLElementTagNameMap;\n let value = x.value;\n if (x.value.match(/[0-9.]+/)) {\n tag = \"mn\";\n } else if (x.value.match(/[a-zA-Z\\u0391-\\u03C9]/)) {\n tag = \"mi\";\n } else if (x.value.match(/^'+$/)) {\n if (!x.esc) value = x.value.replaceAll(\"'\", ss[\"prime\"]);\n tag = \"mo\";\n } else {\n tag = \"mo\";\n }\n if (x.type === \"sharp\") {\n if (x.value.startsWith(\"emoji.\")) {\n tag = \"mi\";\n value = emojix[x.value.replace(\"emoji.\", \"\")];\n }\n }\n let el = createMath(tag, font(value, e));\n fragment.append(el);\n }\n\n if (x.type === \"group\") {\n fragment.append(f.lr([[x]], null, e));\n }\n }\n\n return fragment;\n}\n\nvar init_c: { emoji: (str: string) => string } = {\n emoji: null,\n};\n\nfunction init(p: { emoji: boolean }) {\n for (let i in p) {\n if (init_c[i]) init_c[i] = p[i];\n }\n}\n\nfunction toMML(str: string, inline?: boolean) {\n let obj = ast(str);\n console.log(\"ast1\", obj);\n\n let mathEl = createMath(\"math\");\n if (!inline) mathEl.setAttribute(\"display\", \"block\");\n let f = render(obj);\n mathEl.append(f);\n return mathEl;\n}\n\nfunction toMMLHTML(str: string) {\n return toMML(str).outerHTML;\n}\n\nconst version = {\n lan: \"0.11.1\",\n symbol: \"0.11.1\",\n};\n\nexport { init, toMML, toMMLHTML, version };\n"],"names":["symbols","emoji","createMath","tagname","innerText","attr","el","i","mathvariant","Segmenter","segmenter","ast","str","v","kh","khl","khr","blank","type","ignore","o","p_tree","now_tree","tmp_str","codePoint","lkh_stack","t","last","next","strl","init_c","w","strl2","s","simple_dot","ss","objOrStr","j","l","n","shotKey","emojix","shorthand","max_shorthand_len","delimPair","delim","dic","_default","d","get_value","x","f","e","base","render","a","accent_match_str","over","tl","bl","tr","br","uo","b","row","dh","r","bg","is_true","gap","list","attr_join","transfer_kh","tList","trim","size","c","lm","rm","_a","_b","array","augment","xa","ya","rowgap","colgap","td","root","m","underover_line_f","underover_f","x_table","trees","max","eqq","v_f","result","al","opl","op_f","spaceConst","limits_f","limits_sy","accent_f","lr_f","tree","mm","xx","ff","_","out_kh","in_kh","is_sup","is_sub","is_frac","is_br","is_limit","f_attr","is_dot","eq","is_dot_f","is_factorial","x0","x1","is_type","start","end","dic_to_ast","lan_dic","key","value","ast2","_c","num","number","ast3","_d","_e","_f","_g","_h","_i","_j","nn","shortkey","nx","tmpx","tt","un_list_str","primes","index","tmp","dicl","xattr","nl","array_split","font","index_c","map","fragment","tag","space_w","space_width","init","p","toMML","inline","obj","mathEl","toMMLHTML","version"],"mappings":"AAAA,MAAeA,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAAC,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA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"}