From 8182fb22801ce2525a3ae40d30b14db708cccb31 Mon Sep 17 00:00:00 2001 From: be5invis Date: Sat, 27 Jan 2024 17:00:08 -0800 Subject: [PATCH 01/14] Fix metrics of Cyrillic Yery (#2182). --- .editorconfig | 1 + changes/28.0.7.md | 22 +++++++++---------- changes/28.1.0.md | 1 + .../font-glyphs/src/letter/cyrillic/yeri.ptl | 8 +++---- 4 files changed, 17 insertions(+), 15 deletions(-) create mode 100644 changes/28.1.0.md diff --git a/.editorconfig b/.editorconfig index 87f0ef784d..7139c4c164 100644 --- a/.editorconfig +++ b/.editorconfig @@ -18,6 +18,7 @@ block_comment_end = */ indent_style = space indent_size = 2 trim_trailing_whitespace = false +insert_final_newline = true # The indent size used in the `package.json` file cannot be changed # https://github.com/npm/npm/pull/3180#issuecomment-16336516 diff --git a/changes/28.0.7.md b/changes/28.0.7.md index 8a3f03a928..8027cd7535 100644 --- a/changes/28.0.7.md +++ b/changes/28.0.7.md @@ -1,11 +1,11 @@ -* Make superscript/subscript/overscript Cyrillic characters obey localization forms of base letters (#2177). -* Add IPA localization forms for Greek Lower Beta (`β`) and Chi (`χ`). -* Add APLF variants for `U+25F0`, `U+25F3`, and `U+25F4`. -* Make Ezh follow variants of `Z`/`z` (#1957). -* Fix serif form for Cyrillic Lower Tall / Iotified Yat (#2178). -* Make top serifs of Cyrillic Lower Straight U (`ү`, `ұ`) and Latin Lower Gamma (`ɣ`) respond to italics. -* Fix leaning marks of Capital Turned/Half H (`U+2C75`, `U+2C76`, `U+A78D`, `U+A7F5`, `U+A7F6`). -* Fix leaning marks of Wynn (`U+01BF`, `U+01F7`). -* Fix leaning marks of Insular R (`U+A782`, `U+A783`). -* Fix leaning marks of Greek/Latin Beta (`U+03B2`, `U+A7B4`, `U+A7B5`). -* Fix leaning marks of Greek Lower San (`U+03FB`). +* Make superscript/subscript/overscript Cyrillic characters obey localization forms of base letters (#2177). +* Add IPA localization forms for Greek Lower Beta (`β`) and Chi (`χ`). +* Add APLF variants for `U+25F0`, `U+25F3`, and `U+25F4`. +* Make Ezh follow variants of `Z`/`z` (#1957). +* Fix serif form for Cyrillic Lower Tall / Iotified Yat (#2178). +* Make top serifs of Cyrillic Lower Straight U (`ү`, `ұ`) and Latin Lower Gamma (`ɣ`) respond to italics. +* Fix leaning marks of Capital Turned/Half H (`U+2C75`, `U+2C76`, `U+A78D`, `U+A7F5`, `U+A7F6`). +* Fix leaning marks of Wynn (`U+01BF`, `U+01F7`). +* Fix leaning marks of Insular R (`U+A782`, `U+A783`). +* Fix leaning marks of Greek/Latin Beta (`U+03B2`, `U+A7B4`, `U+A7B5`). +* Fix leaning marks of Greek Lower San (`U+03FB`). diff --git a/changes/28.1.0.md b/changes/28.1.0.md new file mode 100644 index 0000000000..b11349ad33 --- /dev/null +++ b/changes/28.1.0.md @@ -0,0 +1 @@ +* Fix metrics of Cyrillic Yery (#2182). diff --git a/packages/font-glyphs/src/letter/cyrillic/yeri.ptl b/packages/font-glyphs/src/letter/cyrillic/yeri.ptl index ad701a5ed7..30326b771b 100644 --- a/packages/font-glyphs/src/letter/cyrillic/yeri.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/yeri.ptl @@ -312,19 +312,19 @@ glyph-block Letter-Cyrillic-Yeri : begin foreach { suffix { Uc Lc fTail } } [Object.entries YeryConfig] : do create-glyph "cyrl/Yery.\(suffix)" : glyph-proc - local df : include : DivFrame [mix 1 para.diversityM 1.5] 3 + local df : include : DivFrame para.diversityM 3 include : df.markSet.capital include : CyrYeryShape Uc df CAP false fTail create-glyph "cyrl/yery.\(suffix)" : glyph-proc - local df : include : DivFrame [mix 1 para.diversityM 1.5] 3 + local df : include : DivFrame para.diversityM 3 include : df.markSet.e include : CyrYeryShape Lc df XH false fTail create-glyph "cyrl/YeryBack.\(suffix)" : glyph-proc - local df : include : DivFrame [mix 1 para.diversityM 1.5] 3 + local df : include : DivFrame para.diversityM 3 include : df.markSet.capital include : CyrYeryShape Uc df CAP true fTail create-glyph "cyrl/yeryBack.\(suffix)" : glyph-proc - local df : include : DivFrame [mix 1 para.diversityM 1.5] 3 + local df : include : DivFrame para.diversityM 3 include : df.markSet.e include : CyrYeryShape Lc df XH true fTail From 726d8eac18eb122adcc18b88c6064a57d4f1e885 Mon Sep 17 00:00:00 2001 From: Logo <21302803+Logo121@users.noreply.github.com> Date: Mon, 29 Jan 2024 04:17:57 +0800 Subject: [PATCH 02/14] Some (legacy) terminal characters (#2185) * minor changes * some terminal chars --- changes/28.1.0.md | 7 ++++++ .../font-glyphs/src/letter/latin/lower-r.ptl | 10 ++++---- .../src/symbol/geometric/plain.ptl | 23 ++++++++++++++++++ packages/font-glyphs/src/symbol/mosaic.ptl | 24 ++++++++++++++++++- 4 files changed, 58 insertions(+), 6 deletions(-) diff --git a/changes/28.1.0.md b/changes/28.1.0.md index b11349ad33..77e7812b94 100644 --- a/changes/28.1.0.md +++ b/changes/28.1.0.md @@ -1 +1,8 @@ +* Add characters: + - LEFT VERTICAL BOX LINE (`U+23B8`) ... HORIZONTAL SCAN LINE-9 (`U+23BD`). + - SQUARE FOUR CORNERS (`U+26F6`). + - TWO JOINED SQUARES (`U+29C9`). + - OVERLAPPING WHITE SQUARES (`U+2BBA`). + - OVERLAPPING WHITE AND BLACK SQUARES (`U+2BBB`). + - OVERLAPPING BLACK SQUARES (`U+2BBC`). * Fix metrics of Cyrillic Yery (#2182). diff --git a/packages/font-glyphs/src/letter/latin/lower-r.ptl b/packages/font-glyphs/src/letter/latin/lower-r.ptl index 50834cb934..815981f978 100644 --- a/packages/font-glyphs/src/letter/latin/lower-r.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-r.ptl @@ -38,20 +38,20 @@ glyph-block Letter-Latin-Lower-R : begin export : local xBar : match mode [Just rNarrowSerifed] : df.middle + [HSwToV : 0.5 * strokeBar] - RBalance * rBalanceMultiplier - __ : SB + RBalance * rBalanceMultiplier + [HSwToV strokeBar] + __ : df.leftSB + RBalance * rBalanceMultiplier + [HSwToV strokeBar] local rSerifX : xBar - [HSwToV : 0.5 * strokeBar] local rSerifLeftJut : SideJut + RBalance * (0.3 + rSerifLeftExtender) local rSerifRightJut : rSerifLeftJut * 1.20 export : local [rBottomSerif y] : glyph-proc include : tagged 'serifLB' : union - HSerif.lb rSerifX y (rSerifLeftJut + (strokeBar / 2) * HVContrast) - HSerif.rb rSerifX y (rSerifRightJut + (strokeBar / 2) * HVContrast) - local xAtt : rSerifX + rSerifRightJut + (strokeBar / 2) * HVContrast + HSerif.lb rSerifX y (rSerifLeftJut + [HSwToV: 0.5 * strokeBar]) + HSerif.rb rSerifX y (rSerifRightJut + [HSwToV: 0.5 * strokeBar]) + local xAtt : rSerifX + rSerifRightJut + [HSwToV: 0.5 * strokeBar] set-base-anchor 'palatalHookAttach' xAtt y set-base-anchor 'palatalHookPos' xAtt y export : local [rTopSerif y] : tagged 'serifLT' - HSerif.lt rSerifX y (rSerifLeftJut + (strokeBar / 2) * HVContrast) + HSerif.lt rSerifX y (rSerifLeftJut + [HSwToV : 0.5 * strokeBar]) export : local fine ShoulderFine export : local rHookX : df.rightSB + RBalance2 * rBalanceMultiplier - (OX - O) export : local xArchMiddle : match mode diff --git a/packages/font-glyphs/src/symbol/geometric/plain.ptl b/packages/font-glyphs/src/symbol/geometric/plain.ptl index 41fc230bbb..02593460c3 100644 --- a/packages/font-glyphs/src/symbol/geometric/plain.ptl +++ b/packages/font-glyphs/src/symbol/geometric/plain.ptl @@ -201,6 +201,29 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1 StdBlackShape TriangleRTFill 'blackTriangleRT' 0x25E5 ConvexWhitePolygon TriangleRTFill 'whiteTriangleRT' 0x25F9 + create-glyph [MangleName 'squareCorners'] [MangleUnicode 0x26F6] : glyph-proc + set-width Geom.Width + include : difference + refer-glyph : MangleName 'whiteSquare' + union + intersection [MaskBelow (Geom.MidY + Geom.Size / 3)] [MaskAbove (Geom.MidY - Geom.Size / 3)] + intersection [MaskLeft (Geom.MidX + Geom.Size / 3)] [MaskRight (Geom.MidX - Geom.Size / 3)] + + define [SquareOverlap name unicode rev square1 square2] : begin + create-glyph [MangleName name] [MangleUnicode unicode] : glyph-proc + set-width Geom.Width + local space : Geom.Width * (1 - Size.Medium.size) + local offsetX : space * 0.45 * [if rev (-1) 1] + local offsetY : space * 0.45 + include : union + with-transform [Translate (-offsetX) (-offsetY)] : refer-glyph : MangleName [if square1 'blackMediumSquare' 'whiteMediumSquare'] + with-transform [Translate offsetX offsetY] : refer-glyph : MangleName [if square2 'blackMediumSquare' 'whiteMediumSquare'] + + SquareOverlap 'overlapWWSquareRev' 0x29C9 1 0 0 + SquareOverlap 'overlapWWSquare' 0x2BBA 0 0 0 + SquareOverlap 'overlapWBSquare' 0x2BBB 0 0 1 + SquareOverlap 'overlapBBSquare' 0x2BBC 0 1 1 + do "Rectangle" define [RectangleFill cx cy r] : spiro-outline corner (cx - r) (cy + r / 1.5) diff --git a/packages/font-glyphs/src/symbol/mosaic.ptl b/packages/font-glyphs/src/symbol/mosaic.ptl index 3224844099..4c11508f46 100644 --- a/packages/font-glyphs/src/symbol/mosaic.ptl +++ b/packages/font-glyphs/src/symbol/mosaic.ptl @@ -436,6 +436,28 @@ glyph-block Symbol-Mosaic : begin local boty : mix top bottom verticalOvershoot local midy : mix boty topy 0.5 + define [hline unicode pos] : begin + create-glyph [BdGlyphName unicode] [MangleUnicode unicode] : glyph-proc + set-width MosaicWidth + include : ForceUpright + local posy : mix (bottom + light / 2) (top - light / 2) pos + include : HBar.m 0 MosaicWidth posy light + + define [vline unicode pos] : begin + create-glyph [BdGlyphName unicode] [MangleUnicode unicode] : glyph-proc + set-width MosaicWidth + include : ForceUpright + local posx : mix (light / 2) (MosaicWidth - light / 2) pos + include : VBar.m posx bottom top light + + # Scan Lines + vline 0x23B8 0 + vline 0x23B9 1 + hline 0x23BA 1 + hline 0x23BB (3 / 4) + hline 0x23BC (1 / 4) + hline 0x23BD 0 + define [boxdraw unicode u d l r] : begin create-glyph [BdGlyphName unicode] [MangleUnicode unicode] : glyph-proc set-width MosaicWidth @@ -474,7 +496,7 @@ glyph-block Symbol-Mosaic : begin define [complexBoxDraw unicodeStart U D L R fn dl] : begin local order { - {light light light light} + {light light light light} {light light heavy light} {light light light heavy} {light light heavy heavy} From bfbdddcf5071ef1f70441a483fe7337a5fc94e72 Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Tue, 30 Jan 2024 23:34:40 -0500 Subject: [PATCH 03/14] Fix potential NaN errors when diversityM is raised. (#2186) * Fix potential NaN errors when diversityM is raised * simplify --- packages/font-glyphs/src/symbol/punctuation/percentages.ptl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/font-glyphs/src/symbol/punctuation/percentages.ptl b/packages/font-glyphs/src/symbol/punctuation/percentages.ptl index b06bc8bcdb..bed4978f2d 100644 --- a/packages/font-glyphs/src/symbol/punctuation/percentages.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/percentages.ptl @@ -12,7 +12,10 @@ glyph-block Symbol-Punctuation-Percentages : begin define NarrowUnicode : NarrowUnicodeT WideWidth1 define WideUnicode : WideUnicodeT WideWidth1 - define [PercentBarCor df sw] : HVContrast / [Math.sqrt (1 - [Math.pow ((df.rightSB - df.leftSB - sw) / (CAP - 0)) 2])] + define [PercentBarCor df sw] : begin + local a : 1 - [Math.pow ((df.rightSB - df.leftSB - sw) / (CAP - 0)) 2] + return : HVContrast / [if (a > 0) [Math.sqrt a] 1] + define [PercentBarShape df sw] : begin local cor : PercentBarCor df sw return : spiro-outline From 54fe4e1faa7e3510363b5f8afbd967e1400a71fd Mon Sep 17 00:00:00 2001 From: be5invis Date: Wed, 31 Jan 2024 18:05:09 -0800 Subject: [PATCH 04/14] Add italic form for Combining Cyrillic Letter Es-Te (U+2DF5) (#2187). --- changes/28.1.0.md | 1 + packages/font-glyphs/src/common/shapes.ptl | 2 +- .../src/letter/latin-ext/lower-ae-oe.ptl | 90 +++++++++++-------- .../src/letter/latin-ext/orthography.ptl | 3 +- packages/font-glyphs/src/letter/latin/c.ptl | 8 +- .../font-glyphs/src/letter/latin/lower-m.ptl | 15 ++-- packages/font-glyphs/src/meta/aesthetics.ptl | 6 ++ params/variants.toml | 13 +++ 8 files changed, 91 insertions(+), 47 deletions(-) diff --git a/changes/28.1.0.md b/changes/28.1.0.md index 77e7812b94..985f93840f 100644 --- a/changes/28.1.0.md +++ b/changes/28.1.0.md @@ -6,3 +6,4 @@ - OVERLAPPING WHITE AND BLACK SQUARES (`U+2BBB`). - OVERLAPPING BLACK SQUARES (`U+2BBC`). * Fix metrics of Cyrillic Yery (#2182). +* Add italic form for Combining Cyrillic Letter Es-Te (U+2DF5) (#2187). diff --git a/packages/font-glyphs/src/common/shapes.ptl b/packages/font-glyphs/src/common/shapes.ptl index 36f2e97288..f3b2e42308 100644 --- a/packages/font-glyphs/src/common/shapes.ptl +++ b/packages/font-glyphs/src/common/shapes.ptl @@ -436,7 +436,7 @@ glyph-block CommonShapes : begin # Adjust terminal's position if necessary toFinish.x = toFinish.x + OXHook * [if ltr (-1) 1] * [if isStart (-1) 1] if (doSwash) : begin - toFinish.x = toFinish.x + TailAdjX * TanSlope + toFinish.x = toFinish.x + [Math.min TailAdjX (0.25 * (toFinish.x - toStraight.x))] * TanSlope toFinish.y = toFinish.y - TailAdjY * [Math.abs TanSlope] # Compute key middle knot diff --git a/packages/font-glyphs/src/letter/latin-ext/lower-ae-oe.ptl b/packages/font-glyphs/src/letter/latin-ext/lower-ae-oe.ptl index b6400a358e..f132ea5e70 100644 --- a/packages/font-glyphs/src/letter/latin-ext/lower-ae-oe.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/lower-ae-oe.ptl @@ -179,16 +179,15 @@ glyph-block Letter-Latin-Lower-AE-OE : begin include : lf.full include : FlipAround (subDf.width / 2) (XH / 2) - define SLAB-FLAT 3 - define [EsTeLeftShape df styBot] : new-glyph : glyph-proc - local subDf : df.sliceFine 3 2 (1/3) - local ada : subDf.archDepthA SmallArchDepth df.mvs - local adb : subDf.archDepthB SmallArchDepth df.mvs - - local lf : CLetterForm subDf SLAB-FLAT styBot XH 0 - ada -- [subDf.archDepthA SmallArchDepth df.mvs] - adb -- [subDf.archDepthB SmallArchDepth df.mvs] - sw -- df.mvs + define FLAT-CONNECTION 3 + define [EsTeLeftShape subDf styBot] : new-glyph : glyph-proc + local ada : subDf.archDepthA SmallArchDepth subDf.mvs + local adb : subDf.archDepthB SmallArchDepth subDf.mvs + + local lf : CLetterForm subDf FLAT-CONNECTION styBot XH 0 + ada -- [subDf.archDepthA SmallArchDepth subDf.mvs] + adb -- [subDf.archDepthB SmallArchDepth subDf.mvs] + sw -- subDf.mvs include : lf.full foreach { suffix { sty styBot } } [Object.entries CConfig] : do @@ -198,11 +197,19 @@ glyph-block Letter-Latin-Lower-AE-OE : begin set-base-anchor 'cvDecompose' 0 0 include : openOShape df sty styBot - create-glyph "cyrl/este/left.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + create-glyph "cyrl/este.upright/left.\(suffix)" : glyph-proc + local df : include : DivFrame para.diversityM 3.5 + local subDfLeft : df.slice 3.25 1.875 + include : df.markSet.e + set-base-anchor 'cvDecompose' 0 0 + include : EsTeLeftShape subDfLeft styBot + + create-glyph "cyrl/este.italic/left.\(suffix)" : glyph-proc + local df : include : DivFrame para.diversityM 4.75 + local subDfLeft : df.slice 4.5 2 include : df.markSet.e set-base-anchor 'cvDecompose' 0 0 - include : EsTeLeftShape df styBot + include : EsTeLeftShape subDfLeft styBot do "P/R subglyphs" glyph-block-import Letter-Latin-Upper-P : PShape PBarPosY @@ -296,24 +303,17 @@ glyph-block Letter-Latin-Lower-AE-OE : begin local { subDf shift } : SubDfAndShiftEx 6 4 1 df include : with-transform [ApparentTranslate shift 0] : LhaRightLetterShape subDf CAP 0 0.1 0.28 - do "other subglyphs" - # Te - define [EsTeRightShape df doTopSerifs doBottomSerifs] : new-glyph : glyph-proc - local subDf : df.sliceFine 3 2 (1/3) - # local shift : df.rightSB - subDf.rightSB - local l subDf.rightSB - local m : mix df.rightSB subDf.rightSB 0.5 - local r : df.rightSB - 0.75 * OX - - include : VBar.m m 0 XH df.mvs - include : HBar.t l r XH df.mvs + do "Te (upright) subglyphs" + define [EsTeRightShape subDf doTopSerifs doBottomSerifs] : new-glyph : glyph-proc + include : VBar.m subDf.middle 0 XH subDf.mvs + include : HBar.t subDf.leftSB subDf.rightSB XH subDf.mvs if doTopSerifs : begin - local swVJut : Math.min df.mvs (0.625 * (r - m - [HSwToV : 0.5 * df.mvs])) - include : VSerif.dr r XH VJut swVJut + local swVJut : Math.min subDf.mvs (0.625 * (subDf.rightSB - subDf.middle - [HSwToV : 0.5 * subDf.mvs])) + include : VSerif.dr subDf.rightSB XH VJut swVJut if doBottomSerifs : begin - local midJutCenter : [Math.max Jut : mix [HSwToV : 0.5 * df.mvs] LongJut 0.6] * (subDf.width / df.width) - include : tagged 'serifMB' : HSerif.rb m 0 midJutCenter df.mvs + local midJutCenter : MidJutCenter * (subDf.width / Width) + include : tagged 'serifMB' : HSerif.mb subDf.middle 0 midJutCenter subDf.mvs define TConfig : object serifless { false false } @@ -321,13 +321,29 @@ glyph-block Letter-Latin-Lower-AE-OE : begin serifed { true true } foreach { suffix { doST doSB } } [Object.entries TConfig] : do - create-glyph "cyrl/este/right.\(suffix)" : glyph-proc - local df : DivFrame para.diversityM 3 + create-glyph "cyrl/este.upright/right.\(suffix)" : glyph-proc + local df : include : DivFrame para.diversityM 3.5 + local subDfLeft : df.slice 3.25 1.875 + local subdfRight : df.restCompact 1 subDfLeft 2 + + set-width 0 + set-mark-anchor 'cvDecompose' 0 0 + include : EsTeRightShape subdfRight doST doSB + include : ApparentTranslate (df.width - subdfRight.width) 0 + + do "Te (italic) subglyphs" + glyph-block-import Letter-Latin-Lower-M : mShapeBodyImpl SmallMConfig + foreach { suffix { {Body earless} {shortLeg} {tailed} {Serifs} } } [pairs-of SmallMConfig] : do + create-glyph "cyrl/este.italic/right.\(suffix)" : glyph-proc + local df : DivFrame para.diversityM 4.75 + local subDfLeft : df.slice 4.5 2 + local subdfRight : df.restCompact 0.5 subDfLeft 3 set-width 0 set-mark-anchor 'cvDecompose' 0 0 - include : EsTeRightShape df doST doSB + include : mShapeBodyImpl subdfRight XH Body earless shortLeg tailed Serifs + include : ApparentTranslate (df.width - subdfRight.width) 0 - # El + do "El subglyphs" glyph-block-import Letter-Cyrillic-El : CyrElShape create-glyph 'cyrl/Lha/left' : glyph-proc local df : include : DivFrame para.diversityM 3.2 @@ -423,9 +439,13 @@ glyph-block Letter-Latin-Lower-AE-OE : begin derive-composites 'cyrl/OOBinocular' 0xA66C 'cyrl/OO' 'OODots' derive-composites 'cyrl/ooBinocular' 0xA66D 'cyrl/oo' 'ooDots' - select-variant 'cyrl/este/left' (follow -- 'cBottomSerifOnly') - select-variant 'cyrl/este/right' (follow -- 'T') - derive-composites 'cyrl/este' null 'cyrl/este/left' 'cyrl/este/right' + select-variant 'cyrl/este.upright/left' (follow -- 'cBottomSerifOnly') + select-variant 'cyrl/este.upright/right' (follow -- 'T') + derive-composites 'cyrl/este.upright' null 'cyrl/este.upright/left' 'cyrl/este.upright/right' + + select-variant 'cyrl/este.italic/left' (follow -- 'cBottomSerifOnly') + select-variant 'cyrl/este.italic/right' (follow -- 'cyrl/este.italic/right') + derive-composites 'cyrl/este.italic' null 'cyrl/este.italic/left' 'cyrl/este.italic/right' glyph-block-export BuildRha define [BuildRha srcs] : glyph-proc diff --git a/packages/font-glyphs/src/letter/latin-ext/orthography.ptl b/packages/font-glyphs/src/letter/latin-ext/orthography.ptl index 13c3b21a31..5e650def18 100644 --- a/packages/font-glyphs/src/letter/latin-ext/orthography.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/orthography.ptl @@ -5,5 +5,4 @@ glyph-module glyph-block Letter-Latin-Orthography : begin glyph-block-import Common-Derivatives - # orthographic-italic 'f_i' 0xFB01 - # orthographic-italic 'f_l' 0xFB02 + orthographic-italic "cyrl/este" diff --git a/packages/font-glyphs/src/letter/latin/c.ptl b/packages/font-glyphs/src/letter/latin/c.ptl index e67fdac9ff..68056337b5 100644 --- a/packages/font-glyphs/src/letter/latin/c.ptl +++ b/packages/font-glyphs/src/letter/latin/c.ptl @@ -33,7 +33,7 @@ glyph-block Letter-Latin-C : begin g4 (df.middle - CorrectionOMidX * sw) (top - O - offset) archv [Just FLAT-CONNECTION] : list - flat (df.rightSB - offset) (top - offset) + flat (df.width - offset) (top - offset) curl (df.middle - CorrectionOMidX * sw) (top - offset) archv _ : list @@ -52,7 +52,7 @@ glyph-block Letter-Latin-C : begin [Just FLAT-CONNECTION] : list arcvh flat (df.middle + CorrectionOMidX * sw) (bot + O + offset) - curl (df.rightSB - offset) (bot + O + offset) + curl (df.width - offset) (bot + O + offset) _ : list hookend (bot + O + offset) g4 (df.rightSB - offset) (bot + [fallback hook Hook]) @@ -66,7 +66,7 @@ glyph-block Letter-Latin-C : begin g4 (df.middle - CorrectionOMidX * sw) (top - O - offset) archv [Just FLAT-CONNECTION] : list - flat (df.leftSB + offset) (top - offset) + flat (0 + offset) (top - offset) curl (df.middle - CorrectionOMidX * sw) (top - offset) archv _ : list @@ -85,7 +85,7 @@ glyph-block Letter-Latin-C : begin [Just FLAT-CONNECTION] : list arcvh flat (df.middle + CorrectionOMidX * sw) (bot + O + offset) - curl (df.leftSB + offset) (bot + O + offset) + curl (0 + offset) (bot + O + offset) _ : list hookend (bot + O + offset) g4 (df.leftSB + offset) (bot + [fallback hook Hook]) diff --git a/packages/font-glyphs/src/letter/latin/lower-m.ptl b/packages/font-glyphs/src/letter/latin/lower-m.ptl index ade2601c29..cc0e0b0de0 100644 --- a/packages/font-glyphs/src/letter/latin/lower-m.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-m.ptl @@ -203,6 +203,13 @@ glyph-block Letter-Latin-Lower-M : begin flat df.rightSB [Math.max (top - [SmallMSmooth df]) (rbot + 0.1)] curl df.rightSB rbot [heading Downward] + glyph-block-export mShapeBodyImpl + define [mShapeBodyImpl df height body earless shortLeg tailed serifs] : glyph-proc + include : body df height 0 [if shortLeg [SmallMShortLegHeight height df] 0] [if tailed ([SmallMSmoothHeight height df] + O) 0] + if tailed : include : RightwardTailedBar df.rightSB 0 [SmallMSmoothHeight height df] (sw -- df.mvs) + include : serifs df height 0 [if shortLeg [SmallMShortLegHeight height df] 0] 0 tailed earless + + glyph-block-export SmallMConfig define SmallMConfig : SuffixCfg.weave object "" { SmallMArches 0 } @@ -223,10 +230,8 @@ glyph-block Letter-Latin-Lower-M : begin "topLeftAndBottomRightSerifed" { LtRbSerifs } foreach { suffix { {Body earless} {shortLeg} {tailed} {Serifs} } } [pairs-of SmallMConfig] : do - define [mShapeBody df height] : glyph-proc - include : Body df height 0 [if shortLeg [SmallMShortLegHeight height df] 0] [if tailed ([SmallMSmoothHeight height df] + O) 0] - if tailed : include : RightwardTailedBar df.rightSB 0 [SmallMSmoothHeight height df] (sw -- df.mvs) - include : Serifs df height 0 [if shortLeg [SmallMShortLegHeight height df] 0] 0 tailed earless + define [mShapeBody df height] : begin + return : mShapeBodyImpl df height Body earless shortLeg tailed Serifs create-glyph "m.\(suffix)" : glyph-proc local df : include : dfM @@ -280,7 +285,7 @@ glyph-block Letter-Latin-Lower-M : begin create-glyph "cyrl/teMidHook.italic.\(suffix)" : glyph-proc local df : include : DivFrame para.diversityM 4 include : df.markSet.e - local subDf : df.slice 4 3 0 + local subDf : df.slice 4 3 0 include : mShapeBody subDf XH include : MidHook.general left -- subDf.rightSB diff --git a/packages/font-glyphs/src/meta/aesthetics.ptl b/packages/font-glyphs/src/meta/aesthetics.ptl index 7a8acf5d9d..0de4059fd1 100644 --- a/packages/font-glyphs/src/meta/aesthetics.ptl +++ b/packages/font-glyphs/src/meta/aesthetics.ptl @@ -471,6 +471,12 @@ export : define [GenDivFrame metrics] : begin return : new CDivFrame subDfDiv keeps (this.leftSB / metrics.SB) this.mvs o + public [rest sub _hPack] : begin + return : new CDivFrame ((this.width - sub.width) / metrics.Width) [fallback _hPack (this.hPack - sub.hPack + 1)] (this.leftSB / metrics.SB) this.mvs this.ox + public [restCompact kKern sub _hPack] : begin + local kern : kKern * ((this.width - this.rightSB) + sub.leftSB) + return : new CDivFrame ((this.width - sub.width + kern) / metrics.Width) [fallback _hPack (this.hPack - sub.hPack + 1)] (this.leftSB / metrics.SB) this.mvs this.ox + public [applyToGlyph g] : begin g.setWidth this.width set g.divFrameParams this.params diff --git a/params/variants.toml b/params/variants.toml index 4383e3ba21..69e610263e 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -2875,6 +2875,7 @@ selectorAffix.m = "" selectorAffix."m/descBase" = "" selectorAffix."m/sansSerif" = "" selectorAffix."cyrl/te.italic" = "" +selectorAffix."cyrl/este.italic/right" = "" selectorAffix."cyrl/tjeKomi.italic" = "" selectorAffix.meng = "" @@ -2886,6 +2887,7 @@ selectorAffix.m = "earlessCornerDoubleArch" selectorAffix."m/descBase" = "earlessCornerDoubleArch" selectorAffix."m/sansSerif" = "earlessCornerDoubleArch" selectorAffix."cyrl/te.italic" = "" +selectorAffix."cyrl/este.italic/right" = "" selectorAffix."cyrl/tjeKomi.italic" = "" selectorAffix.meng = "earlessCornerDoubleArch" @@ -2897,6 +2899,7 @@ selectorAffix.m = "earlessRoundedDoubleArch" selectorAffix."m/descBase" = "earlessRoundedDoubleArch" selectorAffix."m/sansSerif" = "earlessRoundedDoubleArch" selectorAffix."cyrl/te.italic" = "" +selectorAffix."cyrl/este.italic/right" = "" selectorAffix."cyrl/tjeKomi.italic" = "" selectorAffix.meng = "earlessRoundedDoubleArch" @@ -2908,6 +2911,7 @@ selectorAffix.m = "earlessSingleArch" selectorAffix."m/descBase" = "earlessSingleArch" selectorAffix."m/sansSerif" = "earlessSingleArch" selectorAffix."cyrl/te.italic" = "" +selectorAffix."cyrl/este.italic/right" = "" selectorAffix."cyrl/tjeKomi.italic" = "" selectorAffix.meng = "earlessSingleArch" @@ -2923,6 +2927,7 @@ selectorAffix.m = "" selectorAffix."m/descBase" = "" selectorAffix."m/sansSerif" = "" selectorAffix."cyrl/te.italic" = "" +selectorAffix."cyrl/este.italic/right" = "" selectorAffix."cyrl/te.italic/descBase" = "" selectorAffix."cyrl/tjeKomi.italic" = "" selectorAffix.meng = "" @@ -2935,6 +2940,7 @@ selectorAffix.m = "shortLeg" selectorAffix."m/descBase" = "shortLeg" selectorAffix."m/sansSerif" = "shortLeg" selectorAffix."cyrl/te.italic" = "" +selectorAffix."cyrl/este.italic/right" = "" selectorAffix."cyrl/te.italic/descBase" = "" selectorAffix."cyrl/tjeKomi.italic" = "" selectorAffix.meng = "shortLeg" @@ -2949,6 +2955,7 @@ selectorAffix.m = "" selectorAffix."m/descBase" = "" selectorAffix."m/sansSerif" = "" selectorAffix."cyrl/te.italic" = "" +selectorAffix."cyrl/este.italic/right" = "" selectorAffix."cyrl/te.italic/descBase" = "" selectorAffix."cyrl/tjeKomi.italic" = "" selectorAffix.meng = "" @@ -2960,6 +2967,7 @@ selectorAffix.m = "tailed" selectorAffix."m/descBase" = "" selectorAffix."m/sansSerif" = "tailed" selectorAffix."cyrl/te.italic" = "tailed" +selectorAffix."cyrl/este.italic/right" = "tailed" selectorAffix."cyrl/te.italic/descBase" = "" selectorAffix."cyrl/tjeKomi.italic" = "" selectorAffix.meng = "" @@ -2972,6 +2980,7 @@ selectorAffix.m = "serifless" selectorAffix."m/descBase" = "serifless" selectorAffix."m/sansSerif" = "serifless" selectorAffix."cyrl/te.italic" = "serifless" +selectorAffix."cyrl/este.italic/right" = "serifless" selectorAffix."cyrl/te.italic/descBase" = "serifless" selectorAffix."cyrl/tjeKomi.italic" = "serifless" selectorAffix.meng = "serifless" @@ -2984,6 +2993,7 @@ selectorAffix.m = "topLeftSerifed" selectorAffix."m/descBase" = "topLeftSerifed" selectorAffix."m/sansSerif" = "serifless" selectorAffix."cyrl/te.italic" = "topLeftSerifed" +selectorAffix."cyrl/este.italic/right" = "serifless" selectorAffix."cyrl/te.italic/descBase" = "topLeftSerifed" selectorAffix."cyrl/tjeKomi.italic" = "topLeftSerifed" selectorAffix.meng = "topLeftSerifed" @@ -2996,6 +3006,7 @@ selectorAffix.m = "topLeftAndBottomRightSerifed" selectorAffix."m/descBase" = "topLeftSerifed" selectorAffix."m/sansSerif" = "serifless" selectorAffix."cyrl/te.italic" = "topLeftAndBottomRightSerifed" +selectorAffix."cyrl/este.italic/right" = "bottomRightSerifed" selectorAffix."cyrl/te.italic/descBase" = "topLeftSerifed" selectorAffix."cyrl/tjeKomi.italic" = "topLeftSerifed" selectorAffix.meng = "topLeftSerifed" @@ -3008,6 +3019,7 @@ selectorAffix.m = "bottomRightSerifed" selectorAffix."m/descBase" = "serifless" selectorAffix."m/sansSerif" = "serifless" selectorAffix."cyrl/te.italic" = "topLeftAndBottomRightSerifed" +selectorAffix."cyrl/este.italic/right" = "bottomRightSerifed" selectorAffix."cyrl/te.italic/descBase" = "topLeftSerifed" selectorAffix."cyrl/tjeKomi.italic" = "topLeftSerifed" selectorAffix.meng = "serifless" @@ -3019,6 +3031,7 @@ selectorAffix.m = "serifed" selectorAffix."m/descBase" = "serifed" selectorAffix."m/sansSerif" = "serifless" selectorAffix."cyrl/te.italic" = "serifed" +selectorAffix."cyrl/este.italic/right" = "serifed" selectorAffix."cyrl/te.italic/descBase" = "serifed" selectorAffix."cyrl/tjeKomi.italic" = "serifed" selectorAffix.meng = "serifed" From 8e7bd0a0bccfdba37fd769b203163fb89e74c6cf Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Thu, 1 Feb 2024 18:29:03 -0500 Subject: [PATCH 05/14] Fix cyrl_srb locl forms, add cyrl_bos locl forms. (#2188) --- changes/28.1.0.md | 2 ++ .../src/letter/cyrillic/orthography.ptl | 16 ++++++++-------- packages/font-otl/src/gsub-locl.ptl | 2 ++ 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/changes/28.1.0.md b/changes/28.1.0.md index 985f93840f..ff4f60479c 100644 --- a/changes/28.1.0.md +++ b/changes/28.1.0.md @@ -6,4 +6,6 @@ - OVERLAPPING WHITE AND BLACK SQUARES (`U+2BBB`). - OVERLAPPING BLACK SQUARES (`U+2BBC`). * Fix metrics of Cyrillic Yery (#2182). +* Fix Italic/Upright localization forms for Serbian/Macedonian Cyrillic. +* Add Bosnian Cyrillic localization forms based on Serbian/Macedonian. * Add italic form for Combining Cyrillic Letter Es-Te (U+2DF5) (#2187). diff --git a/packages/font-glyphs/src/letter/cyrillic/orthography.ptl b/packages/font-glyphs/src/letter/cyrillic/orthography.ptl index 0e9e470c19..104d7edcb4 100644 --- a/packages/font-glyphs/src/letter/cyrillic/orthography.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/orthography.ptl @@ -42,14 +42,14 @@ glyph-block Letter-Cyrillic-Orthography : begin CreateAccentedComposition 'cyrl/igrave' 0x45D 'cyrl/i' 'graveAbove' # Link localization forms - link-gr LocalizedForm.SRB.Upright 'cyrl/be' 'cyrl/be.SRB' - link-gr LocalizedForm.SRB.Upright 'cyrl/ghe' 'cyrl/ghe.SRB' - link-gr LocalizedForm.SRB.Upright 'cyrl/de' 'cyrl/de.SRB' - link-gr LocalizedForm.SRB.Upright 'cyrl/gje' 'cyrl/gje.SRB' - link-gr LocalizedForm.SRB.Upright 'cyrl/pe' 'cyrl/pe.SRB' - link-gr LocalizedForm.SRB.Upright 'cyrl/te' 'cyrl/te.SRB' - - link-gr LocalizedForm.SRB.Italic 'cyrl/be' 'cyrl/be.SRB' + link-gr LocalizedForm.SRB.Upright 'cyrl/be' 'cyrl/be.SRB' + + link-gr LocalizedForm.SRB.Italic 'cyrl/be' 'cyrl/be.SRB' + link-gr LocalizedForm.SRB.Italic 'cyrl/ghe' 'cyrl/ghe.SRB' + link-gr LocalizedForm.SRB.Italic 'cyrl/de' 'cyrl/de.SRB' + link-gr LocalizedForm.SRB.Italic 'cyrl/gje' 'cyrl/gje.SRB' + link-gr LocalizedForm.SRB.Italic 'cyrl/pe' 'cyrl/pe.SRB' + link-gr LocalizedForm.SRB.Italic 'cyrl/te' 'cyrl/te.SRB' link-gr LocalizedForm.BGR 'cyrl/ve' 'cyrl/ve.BGR' link-gr LocalizedForm.BGR 'cyrl/ghe' 'cyrl/ghe.italic' diff --git a/packages/font-otl/src/gsub-locl.ptl b/packages/font-otl/src/gsub-locl.ptl index 5a44243c83..88210dec52 100644 --- a/packages/font-otl/src/gsub-locl.ptl +++ b/packages/font-otl/src/gsub-locl.ptl @@ -12,6 +12,7 @@ export : define [buildLOCL gsub para glyphStore] : begin define cyrlSRB : gsub.copyLanguage 'cyrl_SRB ' 'cyrl_DFLT' define cyrlMKD : gsub.copyLanguage 'cyrl_MKD ' 'cyrl_DFLT' + define cyrlBOS : gsub.copyLanguage 'cyrl_BOS ' 'cyrl_DFLT' define cyrlBGR : gsub.copyLanguage 'cyrl_BGR ' 'cyrl_DFLT' define latnVIT : gsub.copyLanguage 'latn_VIT ' 'latn_DFLT' define grekIPPH : gsub.copyLanguage 'grek_IPPH ' 'grek_DFLT' @@ -21,6 +22,7 @@ export : define [buildLOCL gsub para glyphStore] : begin define loclSRB : gsub.createFeature 'locl' cyrlSRB.addFeature loclSRB cyrlMKD.addFeature loclSRB + cyrlBOS.addFeature loclSRB loclSRB.addLookup : createGsubLookupFromGr gsub glyphStore if [not para.isItalic] LocalizedForm.SRB.Upright LocalizedForm.SRB.Italic From cfac37ddf0c347b7e58f0f0207f9b60e51399411 Mon Sep 17 00:00:00 2001 From: be5invis Date: Fri, 2 Feb 2024 19:11:16 -0800 Subject: [PATCH 06/14] Add hollow letters and digits (#2189) --- package-lock.json | 10 +- packages/font-glyphs/package.json | 32 ++--- .../src/auto-build/transformed.ptl | 19 ++- packages/geometry-cache/src/index.mjs | 2 +- packages/geometry/package.json | 36 +++--- packages/geometry/src/curve-util.mjs | 89 +++++++++++--- packages/geometry/src/index.mjs | 78 ++++++++++++ packages/geometry/src/stroke.mjs | 114 ++++++++++++++++++ .../src/coverage-export/block-data.mjs | 3 +- 9 files changed, 318 insertions(+), 65 deletions(-) create mode 100644 packages/geometry/src/stroke.mjs diff --git a/package-lock.json b/package-lock.json index 5a4df56eb8..c3a35182ec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3665,9 +3665,9 @@ } }, "node_modules/typo-geom": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/typo-geom/-/typo-geom-0.13.2.tgz", - "integrity": "sha512-0xEeNX/bQl/qx1+jgMy7ObtyUK9SmdhZALCNTs2dHyTTCCpHRNHL1nPw+Us0ZmxbLRi9gy5GpINJ3tynE8K6Pw==", + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/typo-geom/-/typo-geom-0.14.0.tgz", + "integrity": "sha512-h3KmTEdKHrD+VWrR/Oqfr/NAPyTNaEKqhcIMhpbotNiHyXTrv113NCY//o0sUswwDEpHcTxcagxdG3dm/J9hlA==", "dependencies": { "clipper-lib": "^6.4.2", "tslib": "^2.6.2" @@ -3994,7 +3994,7 @@ "@iosevka/geometry-cache": "28.0.7", "@iosevka/glyph": "28.0.7", "@iosevka/util": "28.0.7", - "typo-geom": "^0.13.2" + "typo-geom": "^0.14.0" } }, "packages/font-kits": { @@ -4021,7 +4021,7 @@ "dependencies": { "@iosevka/util": "28.0.7", "spiro": "^3.0.0", - "typo-geom": "^0.13.2" + "typo-geom": "^0.14.0" } }, "packages/geometry-cache": { diff --git a/packages/font-glyphs/package.json b/packages/font-glyphs/package.json index a398a605fc..f5dff8bd91 100644 --- a/packages/font-glyphs/package.json +++ b/packages/font-glyphs/package.json @@ -1,18 +1,18 @@ { - "name": "@iosevka/font-glyphs", - "version": "28.0.7", - "private": true, - "exports": { - ".": "./src/index.mjs", - "./aesthetics": "./src/meta/aesthetics.mjs", - "./unicode-knowledge": "./src/meta/unicode-knowledge.mjs" - }, - "dependencies": { - "@iosevka/font-kits": "28.0.7", - "@iosevka/geometry": "28.0.7", - "@iosevka/geometry-cache": "28.0.7", - "@iosevka/glyph": "28.0.7", - "@iosevka/util": "28.0.7", - "typo-geom": "^0.13.2" - } + "name": "@iosevka/font-glyphs", + "version": "28.0.7", + "private": true, + "exports": { + ".": "./src/index.mjs", + "./aesthetics": "./src/meta/aesthetics.mjs", + "./unicode-knowledge": "./src/meta/unicode-knowledge.mjs" + }, + "dependencies": { + "@iosevka/font-kits": "28.0.7", + "@iosevka/geometry": "28.0.7", + "@iosevka/geometry-cache": "28.0.7", + "@iosevka/glyph": "28.0.7", + "@iosevka/util": "28.0.7", + "typo-geom": "^0.14.0" + } } diff --git a/packages/font-glyphs/src/auto-build/transformed.ptl b/packages/font-glyphs/src/auto-build/transformed.ptl index c0a6a66148..05a7d5aed8 100644 --- a/packages/font-glyphs/src/auto-build/transformed.ptl +++ b/packages/font-glyphs/src/auto-build/transformed.ptl @@ -4,6 +4,7 @@ $$include '../meta/macros.ptl' import [linreg clamp mix fallback] from "@iosevka/util" import [getGrTree IsSuperscript IsSubscript AnyCv DotlessOrNot] from "@iosevka/glyph/relation" import [AnyLocalizedForm CvDecompose MathSansSerif Texture] from "@iosevka/glyph/relation" +import [BooleanGeometry StrokeGeometry] from "@iosevka/geometry" import [NumeratorForm DenominatorForm] from "@iosevka/glyph/relation" import [Transform] from "@iosevka/geometry/transform" extern Map @@ -775,14 +776,13 @@ glyph-block Autobuild-Transformed-Texture : begin createTextureDerivatives Texture.ShrR 0 SHRINK [jobs 0xF400] createTextureDerivatives Texture.ShrLR SHRINK SHRINK [jobs 0xF500] - glyph-block Autobuild-Transformed-Mathematical : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives glyph-block-import Recursive-Build : Fork glyph-block-import Autobuild-Transformed-Shared : extendRelatedGlyphs link-relations wrapName - define [createMathDerivedSeriesImpl groupName tfm _records] : begin + define [createMathDerivedSeriesImpl groupName tfm _records postProcessing] : begin local { records relSets targetNameMap } : extendRelatedGlyphs groupName _records local pendingGlyphs : records.map : [record] => record.1 local forkedPara : para.createFork tfm @@ -793,6 +793,7 @@ glyph-block Autobuild-Transformed-Mathematical : begin if [not glyphT] : console.log glyphid include glyphT AS_BASE ALSO_METRICS set currentGlyph.gizmo glyphT.gizmo + if postProcessing : include : postProcessing para forkedPara link-relations relSets @@ -822,7 +823,7 @@ glyph-block Autobuild-Transformed-Mathematical : begin define Greek2 : Array.from 'Ϝϝ' define ObliqueBlackboardBolds : Array.from '𝔻𝕕𝕖𝕚𝕛' - define [CreateMathDerivatives groupName tfm gr base letters overrides] : begin + define [CreateMathDerivatives groupName tfm gr base letters overrides postProcessing] : begin local jobs {} local overrideMap : new Map (overrides || {}) foreach j [range 0 letters.length] : begin @@ -832,7 +833,7 @@ glyph-block Autobuild-Transformed-Mathematical : begin local dst : base + j if [overrideMap.has letter] : set dst [overrideMap.get letter] if source : jobs.push { dst source } - createMathDerivedSeriesImpl groupName tfm jobs + createMathDerivedSeriesImpl groupName tfm jobs postProcessing define [CreateMathAliasableImpl groupName altGroupName tfm gr base letters overrides] : begin local overrideMap : new Map (overrides || {}) @@ -902,6 +903,16 @@ glyph-block Autobuild-Transformed-Mathematical : begin # Italic blackboard bold CreateMathDerivatives 'mathit' tfItalic null 0x2145 ObliqueBlackboardBolds + # Outlined letters and digits -- for Symbols for Legacy Computing Supplement + define [TfOutline para forkedPara] : glyph-proc + local g currentGlyph.geometry + local sw : forkedPara.stroke / 4 + local gizmo : currentGlyph.gizmo || GlobalTransform + set currentGlyph.geometry : new StrokeGeometry g gizmo sw HVContrast true + + CreateMathDerivatives 'legacyComputingOutlined' tfBold null 0x1CCD6 UpperLatin null TfOutline + CreateMathDerivatives 'legacyComputingOutlined' tfBold null 0x1CCF0 Digits null TfOutline + glyph-block Autobuild-Rhotic : begin glyph-block-import Mark-Shared-Metrics : markFine markstroke glyph-block-import CommonShapes diff --git a/packages/geometry-cache/src/index.mjs b/packages/geometry-cache/src/index.mjs index 5df043f254..b0885a0d44 100644 --- a/packages/geometry-cache/src/index.mjs +++ b/packages/geometry-cache/src/index.mjs @@ -4,7 +4,7 @@ import zlib from "zlib"; import * as CurveUtil from "@iosevka/geometry/curve-util"; import { encode, decode } from "@msgpack/msgpack"; -const Edition = 32; +const Edition = 33; const MAX_AGE = 16; class GfEntry { constructor(age, value) { diff --git a/packages/geometry/package.json b/packages/geometry/package.json index 9ffddbf2ee..dbc6bd5bb7 100644 --- a/packages/geometry/package.json +++ b/packages/geometry/package.json @@ -1,20 +1,20 @@ { - "name": "@iosevka/geometry", - "version": "28.0.7", - "private": true, - "exports": { - ".": "./src/index.mjs", - "./anchor": "./src/anchor.mjs", - "./box": "./src/box.mjs", - "./segment": "./src/segment.mjs", - "./curve-util": "./src/curve-util.mjs", - "./point": "./src/point.mjs", - "./transform": "./src/transform.mjs", - "./spiro-control": "./src/spiro-control.mjs" - }, - "dependencies": { - "@iosevka/util": "28.0.7", - "spiro": "^3.0.0", - "typo-geom": "^0.13.2" - } + "name": "@iosevka/geometry", + "version": "28.0.7", + "private": true, + "exports": { + ".": "./src/index.mjs", + "./anchor": "./src/anchor.mjs", + "./box": "./src/box.mjs", + "./segment": "./src/segment.mjs", + "./curve-util": "./src/curve-util.mjs", + "./point": "./src/point.mjs", + "./transform": "./src/transform.mjs", + "./spiro-control": "./src/spiro-control.mjs" + }, + "dependencies": { + "@iosevka/util": "28.0.7", + "spiro": "^3.0.0", + "typo-geom": "^0.14.0" + } } diff --git a/packages/geometry/src/curve-util.mjs b/packages/geometry/src/curve-util.mjs index 8035d1cd28..d2d77f8e2f 100644 --- a/packages/geometry/src/curve-util.mjs +++ b/packages/geometry/src/curve-util.mjs @@ -1,7 +1,8 @@ import * as TypoGeom from "typo-geom"; -import { Point } from "./point.mjs"; +import { Point, Vec2 } from "./point.mjs"; import { Transform } from "./transform.mjs"; +import { mix } from "@iosevka/util"; function contourToRep(contour) { let c = []; @@ -71,6 +72,26 @@ export const OCCURRENT_PRECISION = 1 / 16; export const GEOMETRY_PRECISION = 1 / 4; export const BOOLE_RESOLUTION = 0x4000; +export function derivativeFromFiniteDifference(c, t) { + const DELTA = 1 / 0x10000; + const forward2 = c.eval(t + 2 * DELTA); + const forward1 = c.eval(t + DELTA); + const backward1 = c.eval(t - DELTA); + const backward2 = c.eval(t - 2 * DELTA); + return new Vec2( + ((1 / 12) * backward2.x - + (2 / 3) * backward1.x + + (2 / 3) * forward1.x - + (1 / 12) * forward2.x) / + DELTA, + ((1 / 12) * backward2.y - + (2 / 3) * backward1.y + + (2 / 3) * forward1.y - + (1 / 12) * forward2.y) / + DELTA + ); +} + export class OffsetCurve { constructor(bone, offset, contrast) { this.bone = bone; @@ -87,25 +108,7 @@ export class OffsetCurve { }; } derivative(t) { - const DELTA = 1 / 0x10000; - const forward = this.eval(t + DELTA); - const backward = this.eval(t - DELTA); - return { - x: (forward.x - backward.x) / (2 * DELTA), - y: (forward.y - backward.y) / (2 * DELTA) - }; - } -} - -export class ReverseCurve { - constructor(original) { - this.m_original = original; - } - eval(t) { - return this.m_original.eval(1 - t); - } - derivative(t) { - return -this.m_original.derivative(1 - t); + return derivativeFromFiniteDifference(this, t); } } @@ -149,3 +152,49 @@ export class BezToContoursSink { this.lastContour.push(Point.transformedXY(this.gizmo, Point.Type.Corner, x, y)); } } + +export function Bez3FromHermite(zStart, dStart, zEnd, dEnd) { + const a = zStart, + d = zEnd; + const b = new Vec2(a.x + dStart.x / 3, a.y + dStart.y / 3); + const c = new Vec2(d.x - dEnd.x / 3, d.y - dEnd.y / 3); + return new TypoGeom.Arcs.Bez3(a, b, c, d); +} + +export class RoundCapCurve { + constructor(side, contrast, center0, point0, center1, point1) { + this.contrast = contrast; + this.center0 = center0; + this.center1 = center1; + + const theta0 = Math.atan2(point0.y - center0.y, (point0.x - center0.x) / contrast); + let theta1 = Math.atan2(point1.y - center1.y, (point1.x - center1.x) / contrast); + if (side) { + while (theta1 < theta0) theta1 += 2 * Math.PI; + } else { + while (theta1 > theta0) theta1 -= 2 * Math.PI; + } + this.theta0 = theta0; + this.theta1 = theta1; + + this.r0 = Math.hypot(center0.y - point0.y, (center0.x - point0.x) / contrast); + this.r1 = Math.hypot(center1.y - point1.y, (center1.x - point1.x) / contrast); + } + + eval(t) { + const centerX = mix(this.center0.x, this.center1.x, t); + const centerY = mix(this.center0.y, this.center1.y, t); + const r = mix(this.r0, this.r1, t); + const theta = mix(this.theta0, this.theta1, t); + + return { + x: centerX + r * Math.cos(theta) * this.contrast, + y: centerY + r * Math.sin(theta) + }; + } + + derivative(t) { + // TODO: calculate an exact form instead of using finite difference + return derivativeFromFiniteDifference(this, t); + } +} diff --git a/packages/geometry/src/index.mjs b/packages/geometry/src/index.mjs index 13d11a56a2..405da88504 100644 --- a/packages/geometry/src/index.mjs +++ b/packages/geometry/src/index.mjs @@ -9,6 +9,7 @@ import { Point } from "./point.mjs"; import { QuadifySink } from "./quadify.mjs"; import { SpiroExpander } from "./spiro-expand.mjs"; import { Transform } from "./transform.mjs"; +import { strokeArcs } from "./stroke.mjs"; export const CPLX_NON_EMPTY = 0x01; // A geometry tree that is not empty export const CPLX_NON_SIMPLE = 0x02; // A geometry tree that contains non-simple contours @@ -533,6 +534,83 @@ export class BooleanGeometry extends GeometryBase { } } +export class StrokeGeometry extends GeometryBase { + constructor(geom, gizmo, radius, contrast, fInside) { + super(); + this.m_geom = geom; + this.m_gizmo = gizmo; + this.m_radius = radius; + this.m_contrast = contrast; + this.m_fInside = fInside; + } + + asContours() { + // Produce simplified arcs + const nonTransformedGeometry = new TransformedGeometry(this.m_geom, this.m_gizmo.inverse()); + let arcs = TypoGeom.Boolean.removeOverlap( + CurveUtil.convertShapeToArcs(nonTransformedGeometry.asContours()), + TypoGeom.Boolean.PolyFillType.pftNonZero, + CurveUtil.BOOLE_RESOLUTION + ); + + // Fairize to get get some arcs that are simple enough + const fairizedArcs = TypoGeom.Fairize.fairizeBezierShape(arcs); + + // Stroke the arcs + const strokedArcs = strokeArcs( + fairizedArcs, + this.m_radius, + this.m_contrast, + this.m_fInside + ); + + // Convert to Iosevka format + let sink = new CurveUtil.BezToContoursSink(this.m_gizmo); + TypoGeom.ShapeConv.transferBezArcShape(strokedArcs, sink, CurveUtil.GEOMETRY_PRECISION); + + return sink.contours; + } + asReferences() { + return null; + } + getDependencies() { + return this.m_geom.getDependencies(); + } + unlinkReferences() { + return new StrokeGeometry( + this.m_geom.unlinkReferences(), + this.m_gizmo, + this.m_radius, + this.m_contrast, + this.m_fInside + ); + } + filterTag(fn) { + return new StrokeGeometry( + this.m_geom.filterTag(fn), + this.m_gizmo, + this.m_radius, + this.m_contrast, + this.m_fInside + ); + } + measureComplexity() { + return this.m_geom.measureComplexity() | CPLX_NON_SIMPLE; + } + toShapeStringOrNull() { + const sTarget = this.m_geom.unlinkReferences().toShapeStringOrNull(); + if (!sTarget) return null; + return Format.struct( + `StrokeGeometry`, + sTarget, + Format.gizmo(this.m_gizmo), + Format.n(this.m_radius), + Format.n(this.m_contrast), + this.m_fInside + ); + } +} + // This special geometry type is used in the finalization phase to create TTF contours. export class SimplifyGeometry extends GeometryBase { constructor(g) { diff --git a/packages/geometry/src/stroke.mjs b/packages/geometry/src/stroke.mjs new file mode 100644 index 0000000000..ced2de37a3 --- /dev/null +++ b/packages/geometry/src/stroke.mjs @@ -0,0 +1,114 @@ +import * as TypoGeom from "typo-geom"; +import { + BOOLE_RESOLUTION, + Bez3FromHermite, + GEOMETRY_PRECISION, + OCCURRENT_PRECISION, + OffsetCurve, + RoundCapCurve +} from "./curve-util.mjs"; + +export function strokeArcs(arcs, radius, contrast, fInside) { + let currentArcs = null; + for (const contour of arcs) { + let leftSide = offsetContour(contour, -radius, contrast); + let rightSide = offsetContour(contour, radius, contrast); + let bezs = TypoGeom.ShapeConv.convertShapeToBez3([leftSide, rightSide], GEOMETRY_PRECISION); + + if (!currentArcs) { + currentArcs = bezs; + } else { + currentArcs = TypoGeom.Boolean.combine( + TypoGeom.Boolean.ClipType.ctUnion, + currentArcs, + bezs, + TypoGeom.Boolean.PolyFillType.pftNonZero, + TypoGeom.Boolean.PolyFillType.pftNonZero, + BOOLE_RESOLUTION + ); + } + } + + if (currentArcs) { + if (fInside) { + return TypoGeom.Boolean.combine( + TypoGeom.Boolean.ClipType.ctIntersection, + TypoGeom.ShapeConv.convertShapeToBez3(arcs, GEOMETRY_PRECISION), + currentArcs, + TypoGeom.Boolean.PolyFillType.pftNonZero, + TypoGeom.Boolean.PolyFillType.pftNonZero, + BOOLE_RESOLUTION + ); + } else { + return currentArcs; + } + } else { + return []; + } +} + +function offsetContour(arcs, distance, contrast) { + // The arcs here are guaranteed to be simple, i.e. no self-intersections. + const fReverse = distance < 0; + let offsetArcs = []; + let prevOffsetedArc = new OffsetCurve(arcs[arcs.length - 1], distance, contrast); + for (let i = 0; i < arcs.length; i++) { + const current = arcs[i]; + const currentOffsetedArc = new OffsetCurve(current, distance, contrast); + + // Evaluate the previous' end and the current's start, determine whether they are close enough + const prevEnd = prevOffsetedArc.eval(1); + const currentStart = currentOffsetedArc.eval(0); + if ( + Math.abs(prevEnd.x - currentStart.x) > OCCURRENT_PRECISION || + Math.abs(prevEnd.y - currentStart.y) > OCCURRENT_PRECISION + ) { + offsetArcs.push( + createCap( + distance < 0, + contrast, + prevOffsetedArc.bone.eval(1), + prevEnd, + prevOffsetedArc.derivative(1), + currentOffsetedArc.bone.eval(0), + currentStart, + currentOffsetedArc.derivative(0) + ) + ); + // offsetArcs.push(Bez3FromHermite(prevEnd, dPrevEnd, currentStart, dCurrentStart)); + } + + // Push the current arc + offsetArcs.push(currentOffsetedArc); + + prevOffsetedArc = currentOffsetedArc; + } + + if (fReverse) { + offsetArcs.reverse(); + for (let i = 0; i < offsetArcs.length; i++) { + offsetArcs[i] = new TypoGeom.Arcs.Reverted(offsetArcs[i]); + } + } + return offsetArcs; +} + +function createCap( + side, + contrast, + prevEndNoOffset, // Previous non-offseted curve's end point + prevEnd, // Previous offseted curve's end point + dPrevEnd, // Previous offseted curve's end point's derivative + currentStartNoOffset, // Current non-offseted curve's start point + currentStart, // Current offseted curve's start point + dCurrentStart // Current offseted curve's start point's derivative +) { + return new RoundCapCurve( + side, + contrast, + prevEndNoOffset, + prevEnd, + currentStartNoOffset, + currentStart + ); +} diff --git a/tools/data-export/src/coverage-export/block-data.mjs b/tools/data-export/src/coverage-export/block-data.mjs index 9eac34df5d..dd0c3b9656 100644 --- a/tools/data-export/src/coverage-export/block-data.mjs +++ b/tools/data-export/src/coverage-export/block-data.mjs @@ -4,7 +4,8 @@ export async function collectBlockData() { const BlockData = [ [[0xe0a0, 0xe0df], "Private Use Area — Powerline"], [[0xee00, 0xee0f], "Private Use Area — Progress Bar"], - [[0xef10, 0xef1f], "Private Use Area — Iosevka Private Dingbats"] + [[0xef10, 0xef1f], "Private Use Area — Iosevka Private Dingbats"], + [[0x1cc00, 0x1ceaf], "Symbols for Legacy Computing Supplement"] ]; for (const id of UnicodeDataIndex.Block) { From 2312eb4bb3f5117a8794aa5893cd9c55980521eb Mon Sep 17 00:00:00 2001 From: be5invis Date: Fri, 2 Feb 2024 19:20:59 -0800 Subject: [PATCH 07/14] Add octants (#2189) --- packages/font-glyphs/src/symbol/mosaic.ptl | 239 ++++++++++++++++++++- 1 file changed, 238 insertions(+), 1 deletion(-) diff --git a/packages/font-glyphs/src/symbol/mosaic.ptl b/packages/font-glyphs/src/symbol/mosaic.ptl index 4c11508f46..aeffcbd280 100644 --- a/packages/font-glyphs/src/symbol/mosaic.ptl +++ b/packages/font-glyphs/src/symbol/mosaic.ptl @@ -80,6 +80,12 @@ glyph-block Symbol-Mosaic : begin include : ForceUpright include : BlockMosaicPattern 2 3 : [pattern.split ''].map : x => x - 1 + define [BlockMosaic24 unicode pattern] : begin + create-glyph [BMGlyphName unicode] [MangleUnicode unicode] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : BlockMosaicPattern 2 4 : [pattern.split ''].map : x => x - 1 + define [BlockMosaic unicode w h pattern] : begin create-glyph [BMGlyphName unicode] [MangleUnicode unicode] : glyph-proc set-width MosaicWidth @@ -147,6 +153,237 @@ glyph-block Symbol-Mosaic : begin BlockMosaic23 0x1FB3A '13456' BlockMosaic23 0x1FB3B '23456' + BlockMosaic24 0x1CD00 '3' + BlockMosaic24 0x1CD01 '23' + BlockMosaic24 0x1CD02 '123' + BlockMosaic24 0x1CD03 '4' + BlockMosaic24 0x1CD04 '14' + BlockMosaic24 0x1CD05 '124' + BlockMosaic24 0x1CD06 '34' + BlockMosaic24 0x1CD07 '134' + BlockMosaic24 0x1CD08 '234' + BlockMosaic24 0x1CD09 '5' + BlockMosaic24 0x1CD0A '15' + BlockMosaic24 0x1CD0B '25' + BlockMosaic24 0x1CD0C '125' + BlockMosaic24 0x1CD0D '135' + BlockMosaic24 0x1CD0E '235' + BlockMosaic24 0x1CD0F '1235' + BlockMosaic24 0x1CD10 '45' + BlockMosaic24 0x1CD11 '145' + BlockMosaic24 0x1CD12 '245' + BlockMosaic24 0x1CD13 '1245' + BlockMosaic24 0x1CD14 '345' + BlockMosaic24 0x1CD15 '1345' + BlockMosaic24 0x1CD16 '2345' + BlockMosaic24 0x1CD17 '12345' + BlockMosaic24 0x1CD18 '6' + BlockMosaic24 0x1CD19 '16' + BlockMosaic24 0x1CD1A '26' + BlockMosaic24 0x1CD1B '126' + BlockMosaic24 0x1CD1C '36' + BlockMosaic24 0x1CD1D '136' + BlockMosaic24 0x1CD1E '236' + BlockMosaic24 0x1CD1F '1236' + BlockMosaic24 0x1CD20 '146' + BlockMosaic24 0x1CD21 '246' + BlockMosaic24 0x1CD22 '1246' + BlockMosaic24 0x1CD23 '346' + BlockMosaic24 0x1CD24 '1346' + BlockMosaic24 0x1CD25 '2346' + BlockMosaic24 0x1CD26 '12346' + BlockMosaic24 0x1CD27 '56' + BlockMosaic24 0x1CD28 '156' + BlockMosaic24 0x1CD29 '256' + BlockMosaic24 0x1CD2A '1256' + BlockMosaic24 0x1CD2B '356' + BlockMosaic24 0x1CD2C '1356' + BlockMosaic24 0x1CD2D '2356' + BlockMosaic24 0x1CD2E '12356' + BlockMosaic24 0x1CD2F '456' + BlockMosaic24 0x1CD30 '1456' + BlockMosaic24 0x1CD31 '2456' + BlockMosaic24 0x1CD32 '12456' + BlockMosaic24 0x1CD33 '3456' + BlockMosaic24 0x1CD34 '13456' + BlockMosaic24 0x1CD35 '23456' + BlockMosaic24 0x1CD36 '17' + BlockMosaic24 0x1CD37 '27' + BlockMosaic24 0x1CD38 '127' + BlockMosaic24 0x1CD39 '37' + BlockMosaic24 0x1CD3A '137' + BlockMosaic24 0x1CD3B '237' + BlockMosaic24 0x1CD3C '1237' + BlockMosaic24 0x1CD3D '47' + BlockMosaic24 0x1CD3E '147' + BlockMosaic24 0x1CD3F '247' + BlockMosaic24 0x1CD40 '1247' + BlockMosaic24 0x1CD41 '347' + BlockMosaic24 0x1CD42 '1347' + BlockMosaic24 0x1CD43 '2347' + BlockMosaic24 0x1CD44 '12347' + BlockMosaic24 0x1CD45 '157' + BlockMosaic24 0x1CD46 '257' + BlockMosaic24 0x1CD47 '1257' + BlockMosaic24 0x1CD48 '357' + BlockMosaic24 0x1CD49 '2357' + BlockMosaic24 0x1CD4A '12357' + BlockMosaic24 0x1CD4B '457' + BlockMosaic24 0x1CD4C '1457' + BlockMosaic24 0x1CD4D '12457' + BlockMosaic24 0x1CD4E '3457' + BlockMosaic24 0x1CD4F '13457' + BlockMosaic24 0x1CD50 '23457' + BlockMosaic24 0x1CD51 '67' + BlockMosaic24 0x1CD52 '167' + BlockMosaic24 0x1CD53 '267' + BlockMosaic24 0x1CD54 '1267' + BlockMosaic24 0x1CD55 '367' + BlockMosaic24 0x1CD56 '1367' + BlockMosaic24 0x1CD57 '2367' + BlockMosaic24 0x1CD58 '12367' + BlockMosaic24 0x1CD59 '467' + BlockMosaic24 0x1CD5A '1467' + BlockMosaic24 0x1CD5B '2467' + BlockMosaic24 0x1CD5C '12467' + BlockMosaic24 0x1CD5D '3467' + BlockMosaic24 0x1CD5E '13467' + BlockMosaic24 0x1CD5F '23467' + BlockMosaic24 0x1CD60 '123467' + BlockMosaic24 0x1CD61 '567' + BlockMosaic24 0x1CD62 '1567' + BlockMosaic24 0x1CD63 '2567' + BlockMosaic24 0x1CD64 '12567' + BlockMosaic24 0x1CD65 '3567' + BlockMosaic24 0x1CD66 '13567' + BlockMosaic24 0x1CD67 '23567' + BlockMosaic24 0x1CD68 '123567' + BlockMosaic24 0x1CD69 '4567' + BlockMosaic24 0x1CD6A '14567' + BlockMosaic24 0x1CD6B '24567' + BlockMosaic24 0x1CD6C '124567' + BlockMosaic24 0x1CD6D '34567' + BlockMosaic24 0x1CD6E '134567' + BlockMosaic24 0x1CD6F '234567' + BlockMosaic24 0x1CD70 '1234567' + BlockMosaic24 0x1CD71 '18' + BlockMosaic24 0x1CD72 '28' + BlockMosaic24 0x1CD73 '128' + BlockMosaic24 0x1CD74 '38' + BlockMosaic24 0x1CD75 '138' + BlockMosaic24 0x1CD76 '238' + BlockMosaic24 0x1CD77 '1238' + BlockMosaic24 0x1CD78 '48' + BlockMosaic24 0x1CD79 '148' + BlockMosaic24 0x1CD7A '248' + BlockMosaic24 0x1CD7B '1248' + BlockMosaic24 0x1CD7C '348' + BlockMosaic24 0x1CD7D '1348' + BlockMosaic24 0x1CD7E '2348' + BlockMosaic24 0x1CD7F '12348' + BlockMosaic24 0x1CD80 '58' + BlockMosaic24 0x1CD81 '158' + BlockMosaic24 0x1CD82 '258' + BlockMosaic24 0x1CD83 '1258' + BlockMosaic24 0x1CD84 '358' + BlockMosaic24 0x1CD85 '1358' + BlockMosaic24 0x1CD86 '2358' + BlockMosaic24 0x1CD87 '12358' + BlockMosaic24 0x1CD88 '458' + BlockMosaic24 0x1CD89 '1458' + BlockMosaic24 0x1CD8A '2458' + BlockMosaic24 0x1CD8B '12458' + BlockMosaic24 0x1CD8C '3458' + BlockMosaic24 0x1CD8D '13458' + BlockMosaic24 0x1CD8E '23458' + BlockMosaic24 0x1CD8F '123458' + BlockMosaic24 0x1CD90 '168' + BlockMosaic24 0x1CD91 '268' + BlockMosaic24 0x1CD92 '1268' + BlockMosaic24 0x1CD93 '368' + BlockMosaic24 0x1CD94 '2368' + BlockMosaic24 0x1CD95 '12368' + BlockMosaic24 0x1CD96 '468' + BlockMosaic24 0x1CD97 '1468' + BlockMosaic24 0x1CD98 '12468' + BlockMosaic24 0x1CD99 '3468' + BlockMosaic24 0x1CD9A '13468' + BlockMosaic24 0x1CD9B '23468' + BlockMosaic24 0x1CD9C '568' + BlockMosaic24 0x1CD9D '1568' + BlockMosaic24 0x1CD9E '2568' + BlockMosaic24 0x1CD9F '12568' + BlockMosaic24 0x1CDA0 '3568' + BlockMosaic24 0x1CDA1 '13568' + BlockMosaic24 0x1CDA2 '23568' + BlockMosaic24 0x1CDA3 '123568' + BlockMosaic24 0x1CDA4 '4568' + BlockMosaic24 0x1CDA5 '14568' + BlockMosaic24 0x1CDA6 '24568' + BlockMosaic24 0x1CDA7 '124568' + BlockMosaic24 0x1CDA8 '34568' + BlockMosaic24 0x1CDA9 '134568' + BlockMosaic24 0x1CDAA '234568' + BlockMosaic24 0x1CDAB '1234568' + BlockMosaic24 0x1CDAC '178' + BlockMosaic24 0x1CDAD '278' + BlockMosaic24 0x1CDAE '1278' + BlockMosaic24 0x1CDAF '378' + BlockMosaic24 0x1CDB0 '1378' + BlockMosaic24 0x1CDB1 '2378' + BlockMosaic24 0x1CDB2 '12378' + BlockMosaic24 0x1CDB3 '478' + BlockMosaic24 0x1CDB4 '1478' + BlockMosaic24 0x1CDB5 '2478' + BlockMosaic24 0x1CDB6 '12478' + BlockMosaic24 0x1CDB7 '3478' + BlockMosaic24 0x1CDB8 '13478' + BlockMosaic24 0x1CDB9 '23478' + BlockMosaic24 0x1CDBA '123478' + BlockMosaic24 0x1CDBB '578' + BlockMosaic24 0x1CDBC '1578' + BlockMosaic24 0x1CDBD '2578' + BlockMosaic24 0x1CDBE '12578' + BlockMosaic24 0x1CDBF '3578' + BlockMosaic24 0x1CDC0 '13578' + BlockMosaic24 0x1CDC1 '23578' + BlockMosaic24 0x1CDC2 '123578' + BlockMosaic24 0x1CDC3 '4578' + BlockMosaic24 0x1CDC4 '14578' + BlockMosaic24 0x1CDC5 '24578' + BlockMosaic24 0x1CDC6 '124578' + BlockMosaic24 0x1CDC7 '34578' + BlockMosaic24 0x1CDC8 '134578' + BlockMosaic24 0x1CDC9 '234578' + BlockMosaic24 0x1CDCA '1234578' + BlockMosaic24 0x1CDCB '678' + BlockMosaic24 0x1CDCC '1678' + BlockMosaic24 0x1CDCD '2678' + BlockMosaic24 0x1CDCE '12678' + BlockMosaic24 0x1CDCF '3678' + BlockMosaic24 0x1CDD0 '13678' + BlockMosaic24 0x1CDD1 '23678' + BlockMosaic24 0x1CDD2 '123678' + BlockMosaic24 0x1CDD3 '4678' + BlockMosaic24 0x1CDD4 '14678' + BlockMosaic24 0x1CDD5 '24678' + BlockMosaic24 0x1CDD6 '124678' + BlockMosaic24 0x1CDD7 '34678' + BlockMosaic24 0x1CDD8 '134678' + BlockMosaic24 0x1CDD9 '234678' + BlockMosaic24 0x1CDDA '1234678' + BlockMosaic24 0x1CDDB '15678' + BlockMosaic24 0x1CDDC '25678' + BlockMosaic24 0x1CDDD '125678' + BlockMosaic24 0x1CDDE '35678' + BlockMosaic24 0x1CDDF '235678' + BlockMosaic24 0x1CDE0 '1235678' + BlockMosaic24 0x1CDE1 '45678' + BlockMosaic24 0x1CDE2 '145678' + BlockMosaic24 0x1CDE3 '1245678' + BlockMosaic24 0x1CDE4 '1345678' + BlockMosaic24 0x1CDE5 '2345678' + BlockMosaic 0x1FB95 4 4 {0 2 5 7 8 10 13 15} BlockMosaic 0x1FB96 4 4 {1 3 4 6 9 11 12 14} BlockMosaic 0x1FB97 4 4 {4 5 6 7 12 13 14 15} @@ -442,7 +679,7 @@ glyph-block Symbol-Mosaic : begin include : ForceUpright local posy : mix (bottom + light / 2) (top - light / 2) pos include : HBar.m 0 MosaicWidth posy light - + define [vline unicode pos] : begin create-glyph [BdGlyphName unicode] [MangleUnicode unicode] : glyph-proc set-width MosaicWidth From bc5bc34e98d7a556383402c46b929088a3b4f996 Mon Sep 17 00:00:00 2001 From: be5invis Date: Fri, 2 Feb 2024 19:36:21 -0800 Subject: [PATCH 08/14] Upgrade unicode data version --- package-lock.json | 124 +++++++++--------- tools/amend-readme/package.json | 22 ++-- tools/data-export/package.json | 30 ++--- .../src/coverage-export/block-data.mjs | 4 +- .../coverage-export/gather-coverage-data.mjs | 4 +- tools/misc/src/copy-char-name-to-markdown.mjs | 2 +- tools/misc/src/generate-ttfa-ranges.mjs | 2 +- 7 files changed, 96 insertions(+), 92 deletions(-) diff --git a/package-lock.json b/package-lock.json index c3a35182ec..1b4e5d76be 100644 --- a/package-lock.json +++ b/package-lock.json @@ -102,13 +102,13 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", "minimatch": "^3.0.5" }, "engines": { @@ -129,9 +129,9 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", "dev": true }, "node_modules/@iarna/toml": { @@ -757,10 +757,10 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "dev": true }, - "node_modules/@unicode/unicode-15.0.0": { + "node_modules/@unicode/unicode-15.1.0": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@unicode/unicode-15.0.0/-/unicode-15.0.0-1.5.2.tgz", - "integrity": "sha512-PepMvMxf9j4sp4bZn7W9JJoMxynHk66ZPCsx6n3v47T5vmM+qfIy0z1MMU+EDmRZr2cvs1aT9ZwUEMRPVXR23g==" + "resolved": "https://registry.npmjs.org/@unicode/unicode-15.1.0/-/unicode-15.1.0-1.5.2.tgz", + "integrity": "sha512-7PAgnShDr8ziK6XeHB/TUVFboDFEhaQKKyrw55/Kx9o6AQDy1s7dJ9KRpRerW9nrR5qMGUQvOqTXOAek6ZIXkg==" }, "node_modules/@xmldom/xmldom": { "version": "0.8.10", @@ -771,9 +771,9 @@ } }, "node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -956,9 +956,9 @@ } }, "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz", + "integrity": "sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==", "engines": { "node": ">= 0.4" }, @@ -1882,9 +1882,9 @@ "dev": true }, "node_modules/fastq": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", - "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.0.tgz", + "integrity": "sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -2176,11 +2176,11 @@ } }, "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dependencies": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -2238,9 +2238,9 @@ } }, "node_modules/ignore": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", - "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true, "engines": { "node": ">= 4" @@ -2526,11 +2526,11 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dependencies": { - "which-typed-array": "^1.1.11" + "which-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -2767,9 +2767,9 @@ "optional": true }, "node_modules/node-gyp-build": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.7.1.tgz", - "integrity": "sha512-wTSrZ+8lsRRa3I3H8Xr65dLWSgCvY2l4AOnaeKdPA9TB/WYMPaTcrzf3rXvFoVvjKNVnu0CcWSx54qq9GKRUYg==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", + "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", "optional": true, "bin": { "node-gyp-build": "bin.js", @@ -3093,9 +3093,9 @@ } }, "node_modules/prettier": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz", - "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.4.tgz", + "integrity": "sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -3256,13 +3256,13 @@ } }, "node_modules/safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz", + "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.5", + "get-intrinsic": "^1.2.2", "has-symbols": "^1.0.3", "isarray": "^2.0.5" }, @@ -3274,15 +3274,18 @@ } }, "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.2.tgz", + "integrity": "sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", + "call-bind": "^1.0.5", + "get-intrinsic": "^1.2.2", "is-regex": "^1.1.4" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -3327,14 +3330,15 @@ } }, "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz", + "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==", "dependencies": { "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.2", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -3860,15 +3864,15 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz", + "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", + "available-typed-arrays": "^1.0.6", + "call-bind": "^1.0.5", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "has-tostringtag": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -4056,7 +4060,7 @@ "dependencies": { "@iarna/toml": "^2.2.5", "@iosevka/param": "28.0.7", - "@unicode/unicode-15.0.0": "^1.5.2" + "@unicode/unicode-15.1.0": "^1.5.2" } }, "tools/data-export": { @@ -4065,7 +4069,7 @@ "dependencies": { "@iarna/toml": "^2.2.5", "@iosevka/param": "28.0.7", - "@unicode/unicode-15.0.0": "^1.5.2", + "@unicode/unicode-15.1.0": "^1.5.2", "cldr": "^7.5.0" } }, diff --git a/tools/amend-readme/package.json b/tools/amend-readme/package.json index 92206e09c5..938e4dcfea 100644 --- a/tools/amend-readme/package.json +++ b/tools/amend-readme/package.json @@ -1,13 +1,13 @@ { - "name": "@iosevka/amend-readme", - "version": "28.0.7", - "private": true, - "exports": { - ".": "./src/index.mjs" - }, - "dependencies": { - "@iarna/toml": "^2.2.5", - "@iosevka/param": "28.0.7", - "@unicode/unicode-15.0.0": "^1.5.2" - } + "name": "@iosevka/amend-readme", + "version": "28.0.7", + "private": true, + "exports": { + ".": "./src/index.mjs" + }, + "dependencies": { + "@iarna/toml": "^2.2.5", + "@iosevka/param": "28.0.7", + "@unicode/unicode-15.1.0": "^1.5.2" + } } diff --git a/tools/data-export/package.json b/tools/data-export/package.json index 5895d57fbc..ec6f315b00 100644 --- a/tools/data-export/package.json +++ b/tools/data-export/package.json @@ -1,17 +1,17 @@ { - "name": "@iosevka/data-export", - "version": "28.0.7", - "private": true, - "exports": { - ".": "./src/index.mjs", - "./ligation-data": "./src/ligation-data.mjs", - "./variants-data": "./src/variants-data.mjs", - "./supported-languages": "./src/supported-languages.mjs" - }, - "dependencies": { - "@iarna/toml": "^2.2.5", - "@iosevka/param": "28.0.7", - "@unicode/unicode-15.0.0": "^1.5.2", - "cldr": "^7.5.0" - } + "name": "@iosevka/data-export", + "version": "28.0.7", + "private": true, + "exports": { + ".": "./src/index.mjs", + "./ligation-data": "./src/ligation-data.mjs", + "./variants-data": "./src/variants-data.mjs", + "./supported-languages": "./src/supported-languages.mjs" + }, + "dependencies": { + "@iarna/toml": "^2.2.5", + "@iosevka/param": "28.0.7", + "@unicode/unicode-15.1.0": "^1.5.2", + "cldr": "^7.5.0" + } } diff --git a/tools/data-export/src/coverage-export/block-data.mjs b/tools/data-export/src/coverage-export/block-data.mjs index dd0c3b9656..24c7931fd3 100644 --- a/tools/data-export/src/coverage-export/block-data.mjs +++ b/tools/data-export/src/coverage-export/block-data.mjs @@ -1,4 +1,4 @@ -import UnicodeDataIndex from "@unicode/unicode-15.0.0"; +import UnicodeDataIndex from "@unicode/unicode-15.1.0"; export async function collectBlockData() { const BlockData = [ @@ -10,7 +10,7 @@ export async function collectBlockData() { for (const id of UnicodeDataIndex.Block) { if (!id || /Private_Use_Area/.test(id) || /undefined/.test(id)) continue; - const rangesModule = await import(`@unicode/unicode-15.0.0/Block/${id}/ranges.js`); + const rangesModule = await import(`@unicode/unicode-15.1.0/Block/${id}/ranges.js`); const rg = rangesModule.default; BlockData.push([[rg[0].begin, rg[0].end - 1], id.replace(/_/g, " ")]); } diff --git a/tools/data-export/src/coverage-export/gather-coverage-data.mjs b/tools/data-export/src/coverage-export/gather-coverage-data.mjs index 9d57b02b44..5d2dcc8015 100644 --- a/tools/data-export/src/coverage-export/gather-coverage-data.mjs +++ b/tools/data-export/src/coverage-export/gather-coverage-data.mjs @@ -1,5 +1,5 @@ -import ugc from "@unicode/unicode-15.0.0/General_Category/index.js"; -import ucdNames from "@unicode/unicode-15.0.0/Names/index.js"; +import ugc from "@unicode/unicode-15.1.0/General_Category/index.js"; +import ucdNames from "@unicode/unicode-15.1.0/Names/index.js"; import { collectBlockData } from "./block-data.mjs"; diff --git a/tools/misc/src/copy-char-name-to-markdown.mjs b/tools/misc/src/copy-char-name-to-markdown.mjs index 6283a2bcb8..a719186e6b 100644 --- a/tools/misc/src/copy-char-name-to-markdown.mjs +++ b/tools/misc/src/copy-char-name-to-markdown.mjs @@ -1,4 +1,4 @@ -import ucdNames from "@unicode/unicode-15.0.0/Names/index.js"; +import ucdNames from "@unicode/unicode-15.1.0/Names/index.js"; const codes = process.argv .slice(2) diff --git a/tools/misc/src/generate-ttfa-ranges.mjs b/tools/misc/src/generate-ttfa-ranges.mjs index 7cb3e6c9b2..69319902a6 100644 --- a/tools/misc/src/generate-ttfa-ranges.mjs +++ b/tools/misc/src/generate-ttfa-ranges.mjs @@ -68,7 +68,7 @@ class InUnicodeDataSet { async load() { if (this.dataset) return; - const d = (await import(`@unicode/unicode-15.0.0/${this.subpath}/code-points.js`)).default; + const d = (await import(`@unicode/unicode-15.1.0/${this.subpath}/code-points.js`)).default; this.dataset = new Set(d); } From 03d34f8753bd2e3a155e1c813d32a6bd60aeef3f Mon Sep 17 00:00:00 2001 From: be5invis Date: Fri, 2 Feb 2024 20:16:47 -0800 Subject: [PATCH 09/14] Make the website look better --- changes/28.1.0.md | 3 + .../coverage-export/additional-char-data.txt | 737 ++++++++++++++++++ .../src/coverage-export/block-data.mjs | 2 +- .../src/coverage-export/char-data.mjs | 59 ++ .../coverage-export/gather-coverage-data.mjs | 20 +- 5 files changed, 807 insertions(+), 14 deletions(-) create mode 100644 tools/data-export/src/coverage-export/additional-char-data.txt create mode 100644 tools/data-export/src/coverage-export/char-data.mjs diff --git a/changes/28.1.0.md b/changes/28.1.0.md index ff4f60479c..810edadce3 100644 --- a/changes/28.1.0.md +++ b/changes/28.1.0.md @@ -5,6 +5,9 @@ - OVERLAPPING WHITE SQUARES (`U+2BBA`). - OVERLAPPING WHITE AND BLACK SQUARES (`U+2BBB`). - OVERLAPPING BLACK SQUARES (`U+2BBC`). + - OUTLINED LATIN CAPITAL LETTER A (`U+1CCD6`) ... OUTLINED LATIN CAPITAL LETTER Z (`U+1CCEF`) (Purposed for Unicode 16; L2/21-235). + - OUTLINED DIGIT ZERO (`U+1CCF0`) ... OUTLINED DIGIT NINE (`U+1CCF9`) (Purposed for Unicode 16; L2/21-235). + - BLOCK OCTANT-3 (`U+1CD00`) ... BLOCK OCTANT-2345678 (`U+1CDE5`) (Purposed for Unicode 16; L2/21-235). * Fix metrics of Cyrillic Yery (#2182). * Fix Italic/Upright localization forms for Serbian/Macedonian Cyrillic. * Add Bosnian Cyrillic localization forms based on Serbian/Macedonian. diff --git a/tools/data-export/src/coverage-export/additional-char-data.txt b/tools/data-export/src/coverage-export/additional-char-data.txt new file mode 100644 index 0000000000..c54035a5d6 --- /dev/null +++ b/tools/data-export/src/coverage-export/additional-char-data.txt @@ -0,0 +1,737 @@ +# Additional characters for legacy computing +# Copied from https://www.unicode.org/L2/L2021/21235r-terminals-supplement.pdf +# DELETE THIS DATA AFTER UNICODE 16 IS RELEASED +! NameSuffix; (Purposed by L2/21-235R) +2427;SYMBOL FOR DELETE SQUARE CHECKER BOARD FORM;So;0;ON;;;;;N;;;;; +2428;SYMBOL FOR DELETE RECTANGULAR CHECKER BOARD FORM;So;0;ON;;;;;N;;;;; +2429;SYMBOL FOR DELETE MEDIUM SHADE FORM;So;0;ON;;;;;N;;;;; +1CC00;UP-POINTING GO-KART;So;0;ON;;;;;N;;;;; +1CC01;RIGHT-POINTING GO-KART;So;0;ON;;;;;N;;;;; +1CC02;LEFT-POINTING STICK FIGURE;So;0;ON;;;;;N;;;;; +1CC03;RIGHT-POINTING STICK FIGURE;So;0;ON;;;;;N;;;;; +1CC04;DOWN-POINTING STICK FIGURE;So;0;ON;;;;;N;;;;; +1CC05;LOWER HORIZONTAL RULER SEGMENT;So;0;ON;;;;;N;;;;; +1CC06;RIGHT VERTICAL RULER SEGMENT;So;0;ON;;;;;N;;;;; +1CC07;LOWER RIGHT RULER SEGMENT;So;0;ON;;;;;N;;;;; +1CC08;ANTENNA;So;0;ON;;;;;N;;;;; +1CC09;HORIZONTAL RESISTOR SEGMENT;So;0;ON;;;;;N;;;;; +1CC0A;VERTICAL RESISTOR SEGMENT;So;0;ON;;;;;N;;;;; +1CC0B;LEFT THIRD INDUCTOR;So;0;ON;;;;;N;;;;; +1CC0C;MIDDLE THIRD INDUCTOR;So;0;ON;;;;;N;;;;; +1CC0D;RIGHT THIRD INDUCTOR;So;0;ON;;;;;N;;;;; +1CC0E;LEFT-POINTING DIODE;So;0;ON;;;;;N;;;;; +1CC0F;RIGHT-POINTING DIODE;So;0;ON;;;;;N;;;;; +1CC10;NPN TRANSISTOR;So;0;ON;;;;;N;;;;; +1CC11;PNP TRANSISTOR;So;0;ON;;;;;N;;;;; +1CC12;RECEPTACLE;So;0;ON;;;;;N;;;;; +1CC13;HORIZONTAL CAPACITOR;So;0;ON;;;;;N;;;;; +1CC14;VERTICAL CAPACITOR;So;0;ON;;;;;N;;;;; +1CC15;LOGIC GATE OR;So;0;ON;;;;;N;;;;; +1CC16;LOGIC GATE AND;So;0;ON;;;;;N;;;;; +1CC17;LOGIC GATE INVERTED INPUTS;So;0;ON;;;;;N;;;;; +1CC18;LOGIC GATE INVERTED OUTPUT;So;0;ON;;;;;N;;;;; +1CC19;LOGIC GATE BUFFER;So;0;ON;;;;;N;;;;; +1CC1A;LOGIC GATE BUFFER WITH INVERTED INPUT;So;0;ON;;;;;N;;;;; +1CC1B;BOX DRAWINGS LIGHT HORIZONTAL AND UPPER RIGHT;So;0;ON;;;;;N;;;;; +1CC1C;BOX DRAWINGS LIGHT HORIZONTAL AND LOWER RIGHT;So;0;ON;;;;;N;;;;; +1CC1D;BOX DRAWINGS LIGHT TOP AND UPPER LEFT;So;0;ON;;;;;N;;;;; +1CC1E;BOX DRAWINGS LIGHT BOTTOM AND LOWER LEFT;So;0;ON;;;;;N;;;;; +1CC1F;BOX DRAWINGS DOUBLE DIAGONAL UPPER RIGHT TO LOWER LEFT;So;0;ON;;;;;N;;;;; +1CC20;BOX DRAWINGS DOUBLE DIAGONAL UPPER LEFT TO LOWER RIGHT;So;0;ON;;;;;N;;;;; +1CC21;SEPARATED BLOCK QUADRANT-1;So;0;ON;;;;;N;;;;; +1CC22;SEPARATED BLOCK QUADRANT-2;So;0;ON;;;;;N;;;;; +1CC23;SEPARATED BLOCK QUADRANT-12;So;0;ON;;;;;N;;;;; +1CC24;SEPARATED BLOCK QUADRANT-3;So;0;ON;;;;;N;;;;; +1CC25;SEPARATED BLOCK QUADRANT-13;So;0;ON;;;;;N;;;;; +1CC26;SEPARATED BLOCK QUADRANT-23;So;0;ON;;;;;N;;;;; +1CC27;SEPARATED BLOCK QUADRANT-123;So;0;ON;;;;;N;;;;; +1CC28;SEPARATED BLOCK QUADRANT-4;So;0;ON;;;;;N;;;;; +1CC29;SEPARATED BLOCK QUADRANT-14;So;0;ON;;;;;N;;;;; +1CC2A;SEPARATED BLOCK QUADRANT-24;So;0;ON;;;;;N;;;;; +1CC2B;SEPARATED BLOCK QUADRANT-124;So;0;ON;;;;;N;;;;; +1CC2C;SEPARATED BLOCK QUADRANT-34;So;0;ON;;;;;N;;;;; +1CC2D;SEPARATED BLOCK QUADRANT-134;So;0;ON;;;;;N;;;;; +1CC2E;SEPARATED BLOCK QUADRANT-234;So;0;ON;;;;;N;;;;; +1CC2F;SEPARATED BLOCK QUADRANT-1234;So;0;ON;;;;;N;;;;; +1CC30;UPPER LEFT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;; +1CC31;UPPER CENTRE LEFT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;; +1CC32;UPPER CENTRE RIGHT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;; +1CC33;UPPER RIGHT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;; +1CC34;UPPER MIDDLE LEFT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;; +1CC35;UPPER LEFT QUARTER CIRCLE;So;0;ON;;;;;N;;;;; +1CC36;UPPER RIGHT QUARTER CIRCLE;So;0;ON;;;;;N;;;;; +1CC37;UPPER MIDDLE RIGHT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;; +1CC38;LOWER MIDDLE LEFT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;; +1CC39;LOWER LEFT QUARTER CIRCLE;So;0;ON;;;;;N;;;;; +1CC3A;LOWER RIGHT QUARTER CIRCLE;So;0;ON;;;;;N;;;;; +1CC3B;LOWER MIDDLE RIGHT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;; +1CC3C;LOWER LEFT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;; +1CC3D;LOWER CENTRE LEFT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;; +1CC3E;LOWER CENTRE RIGHT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;; +1CC3F;LOWER RIGHT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;; +1CC40;SPARSE HORIZONTAL FILL;So;0;ON;;;;;N;;;;; +1CC41;SPARSE VERTICAL FILL;So;0;ON;;;;;N;;;;; +1CC42;ORTHOGONAL CROSSHATCH FILL;So;0;ON;;;;;N;;;;; +1CC43;DIAGONAL CROSSHATCH FILL;So;0;ON;;;;;N;;;;; +1CC44;DENSE VERTICAL FILL;So;0;ON;;;;;N;;;;; +1CC45;DENSE HORIZONTAL FILL;So;0;ON;;;;;N;;;;; +1CC46;SPECKLE FILL FRAME-1;So;0;ON;;;;;N;;;;; +1CC47;SPECKLE FILL FRAME-2;So;0;ON;;;;;N;;;;; +1CC48;LEFT-FACING BASSINET;So;0;ON;;;;;N;;;;; +1CC49;RIGHT-FACING BASSINET;So;0;ON;;;;;N;;;;; +1CC4A;FLYING SAUCER WITH BEAMS;So;0;ON;;;;;N;;;;; +1CC4B;FLYING SAUCER WITHOUT BEAMS;So;0;ON;;;;;N;;;;; +1CC4C;ALIEN MONSTER OPEN JAWS;So;0;ON;;;;;N;;;;; +1CC4D;ALIEN MONSTER CLOSED JAWS;So;0;ON;;;;;N;;;;; +1CC4E;ALIEN SQUID OPEN TENTACLES;So;0;ON;;;;;N;;;;; +1CC4F;ALIEN SQUID CLOSED TENTACLES;So;0;ON;;;;;N;;;;; +1CC50;ALIEN CRAB STEPPING RIGHT;So;0;ON;;;;;N;;;;; +1CC51;ALIEN CRAB STEPPING LEFT;So;0;ON;;;;;N;;;;; +1CC52;ALIEN SPIDER CROUCHING;So;0;ON;;;;;N;;;;; +1CC53;ALIEN SPIDER SPREAD;So;0;ON;;;;;N;;;;; +1CC54;ALIEN MONSTER STEP-1;So;0;ON;;;;;N;;;;; +1CC55;ALIEN MONSTER STEP-2;So;0;ON;;;;;N;;;;; +1CC56;LEFT-POINTING ROCKET SHIP;So;0;ON;;;;;N;;;;; +1CC57;UP-POINTING ROCKET SHIP;So;0;ON;;;;;N;;;;; +1CC58;RIGHT-POINTING ROCKET SHIP;So;0;ON;;;;;N;;;;; +1CC59;DOWN-POINTING ROCKET SHIP;So;0;ON;;;;;N;;;;; +1CC5A;TOP HALF LEFT-FACING ROBOT;So;0;ON;;;;;N;;;;; +1CC5B;TOP HALF FORWARD-FACING ROBOT;So;0;ON;;;;;N;;;;; +1CC5C;TOP HALF RIGHT-FACING ROBOT;So;0;ON;;;;;N;;;;; +1CC5D;BOTTOM HALF LEFT-FACING ROBOT;So;0;ON;;;;;N;;;;; +1CC5E;BOTTOM HALF FORWARD-FACING ROBOT;So;0;ON;;;;;N;;;;; +1CC5F;BOTTOM HALF RIGHT-FACING ROBOT;So;0;ON;;;;;N;;;;; +1CC60;LEFT-POINTING ATOMIC BOMB;So;0;ON;;;;;N;;;;; +1CC61;UP-POINTING ATOMIC BOMB;So;0;ON;;;;;N;;;;; +1CC62;RIGHT-POINTING ATOMIC BOMB;So;0;ON;;;;;N;;;;; +1CC63;DOWN-POINTING ATOMIC BOMB;So;0;ON;;;;;N;;;;; +1CC64;MUSHROOM CLOUD;So;0;ON;;;;;N;;;;; +1CC65;LEFT-POINTING RIFLE;So;0;ON;;;;;N;;;;; +1CC66;UP-POINTING RIFLE;So;0;ON;;;;;N;;;;; +1CC67;RIGHT-POINTING RIFLE;So;0;ON;;;;;N;;;;; +1CC68;DOWN-POINTING RIFLE;So;0;ON;;;;;N;;;;; +1CC69;EIGHT RAYS INWARD;So;0;ON;;;;;N;;;;; +1CC6A;EIGHT RAYS OUTWARD;So;0;ON;;;;;N;;;;; +1CC6B;BLACK LARGE CIRCLE MINUS LEFT QUARTER SECTION;So;0;ON;;;;;N;;;;; +1CC6C;BLACK LARGE CIRCLE MINUS UPPER QUARTER SECTION;So;0;ON;;;;;N;;;;; +1CC6D;BLACK LARGE CIRCLE MINUS RIGHT QUARTER SECTION;So;0;ON;;;;;N;;;;; +1CC6E;BLACK LARGE CIRCLE MINUS LOWER QUARTER SECTION;So;0;ON;;;;;N;;;;; +1CC6F;BLACK NEUTRAL FACE;So;0;ON;;;;;N;;;;; +1CC70;LEFT-FACING SNAKE HEAD WITH OPEN MOUTH;So;0;ON;;;;;N;;;;; +1CC71;UP-FACING SNAKE HEAD WITH OPEN MOUTH;So;0;ON;;;;;N;;;;; +1CC72;RIGHT-FACING SNAKE HEAD WITH OPEN MOUTH;So;0;ON;;;;;N;;;;; +1CC73;DOWN-FACING SNAKE HEAD WITH OPEN MOUTH;So;0;ON;;;;;N;;;;; +1CC74;LEFT-FACING SNAKE HEAD WITH CLOSED MOUTH;So;0;ON;;;;;N;;;;; +1CC75;UP-FACING SNAKE HEAD WITH CLOSED MOUTH;So;0;ON;;;;;N;;;;; +1CC76;RIGHT-FACING SNAKE HEAD WITH CLOSED MOUTH;So;0;ON;;;;;N;;;;; +1CC77;DOWN-FACING SNAKE HEAD WITH CLOSED MOUTH;So;0;ON;;;;;N;;;;; +1CC78;LEFT-POINTING ENERGY WAVE;So;0;ON;;;;;N;;;;; +1CC79;UP-POINTING ENERGY WAVE;So;0;ON;;;;;N;;;;; +1CC7A;RIGHT-POINTING ENERGY WAVE;So;0;ON;;;;;N;;;;; +1CC7B;DOWN-POINTING ENERGY WAVE;So;0;ON;;;;;N;;;;; +1CC7C;SQUARE SPIRAL FROM TOP LEFT;So;0;ON;;;;;N;;;;; +1CC7D;SQUARE SPIRAL FROM TOP RIGHT;So;0;ON;;;;;N;;;;; +1CC7E;SQUARE SPIRAL FROM BOTTOM RIGHT;So;0;ON;;;;;N;;;;; +1CC7F;SQUARE SPIRAL FROM BOTTOM LEFT;So;0;ON;;;;;N;;;;; +1CC80;STRIPED LEFT-POINTING TRIANGLE;So;0;ON;;;;;N;;;;; +1CC81;STRIPED UP-POINTING TRIANGLE;So;0;ON;;;;;N;;;;; +1CC82;STRIPED RIGHT-POINTING TRIANGLE;So;0;ON;;;;;N;;;;; +1CC83;STRIPED DOWN-POINTING TRIANGLE;So;0;ON;;;;;N;;;;; +1CC84;VERTICAL LADDER;So;0;ON;;;;;N;;;;; +1CC85;HORIZONTAL LADDER;So;0;ON;;;;;N;;;;; +1CC86;WHITE LOWER LEFT POINTER;So;0;ON;;;;;N;;;;; +1CC87;WHITE LOWER RIGHT POINTER;So;0;ON;;;;;N;;;;; +1CC88;TWO RINGS ALIGNED HORIZONTALLY;So;0;ON;;;;;N;;;;; +1CC89;SQUARE FOUR CORNER SALTIRES;So;0;ON;;;;;N;;;;; +1CC8A;SQUARE FOUR CORNER DIAGONALS;So;0;ON;;;;;N;;;;; +1CC8B;SQUARE FOUR CORNER BLACK TRIANGLES;So;0;ON;;;;;N;;;;; +1CC8C;SQUARE APERTURE;So;0;ON;;;;;N;;;;; +1CC8D;INVERSE BLACK DIAMOND;So;0;ON;;;;;N;;;;; +1CC8E;LEFT AND UPPER ONE EIGHTH BLOCK CONTAINING BLACK SMALL SQUARE;So;0;ON;;;;;N;;;;; +1CC8F;INVERSE BLACK SMALL SQUARE;So;0;ON;;;;;N;;;;; +1CC90;VERTICAL LINE WITH FOUR TICK MARKS;So;0;ON;;;;;N;;;;; +1CC91;HORIZONTAL LINE WITH FOUR TICK MARKS;So;0;ON;;;;;N;;;;; +1CC92;LEFT-FACING FISH;So;0;ON;;;;;N;;;;; +1CC93;RIGHT-FACING FISH;So;0;ON;;;;;N;;;;; +1CC94;LEFT-FACING FISH WITH OPEN MOUTH;So;0;ON;;;;;N;;;;; +1CC95;RIGHT-FACING FISH WITH OPEN MOUTH;So;0;ON;;;;;N;;;;; +1CC96;FLAPPING BIRD;So;0;ON;;;;;N;;;;; +1CC97;LEFT-POINTING RACING CAR;So;0;ON;;;;;N;;;;; +1CC98;UP-POINTING RACING CAR;So;0;ON;;;;;N;;;;; +1CC99;RIGHT-POINTING RACING CAR;So;0;ON;;;;;N;;;;; +1CC9A;DOWN-POINTING RACING CAR;So;0;ON;;;;;N;;;;; +1CC9B;HORIZONTAL RACING CAR;So;0;ON;;;;;N;;;;; +1CC9C;VERTICAL RACING CAR;So;0;ON;;;;;N;;;;; +1CC9D;VERTICAL GO-KART;So;0;ON;;;;;N;;;;; +1CC9E;LEFT-POINTING TANK;So;0;ON;;;;;N;;;;; +1CC9F;RIGHT-POINTING TANK;So;0;ON;;;;;N;;;;; +1CCA0;LEFT-POINTING ROCKET BOOSTER;So;0;ON;;;;;N;;;;; +1CCA1;RIGHT-POINTING ROCKET BOOSTER;So;0;ON;;;;;N;;;;; +1CCA2;LEFT-POINTING ROLLER COASTER CAR;So;0;ON;;;;;N;;;;; +1CCA3;RIGHT-POINTING ROLLER COASTER CAR;So;0;ON;;;;;N;;;;; +1CCA4;LEFT HALF FLYING SAUCER;So;0;ON;;;;;N;;;;; +1CCA5;RIGHT HALF FLYING SAUCER;So;0;ON;;;;;N;;;;; +1CCA6;UPPER LEFT QUADRANT FACE WITH OPEN EYES;So;0;ON;;;;;N;;;;; +1CCA7;UPPER RIGHT QUADRANT FACE WITH OPEN EYES;So;0;ON;;;;;N;;;;; +1CCA8;UPPER LEFT QUADRANT FACE WITH CLOSED EYES;So;0;ON;;;;;N;;;;; +1CCA9;UPPER RIGHT QUADRANT FACE WITH CLOSED EYES;So;0;ON;;;;;N;;;;; +1CCAA;LOWER LEFT QUADRANT SMILING FACE;So;0;ON;;;;;N;;;;; +1CCAB;LOWER RIGHT QUADRANT SMILING FACE;So;0;ON;;;;;N;;;;; +1CCAC;LOWER LEFT QUADRANT NEUTRAL FACE;So;0;ON;;;;;N;;;;; +1CCAD;LOWER RIGHT QUADRANT NEUTRAL FACE;So;0;ON;;;;;N;;;;; +1CCAE;LOWER LEFT QUADRANT FACE WITH OPEN MOUTH;So;0;ON;;;;;N;;;;; +1CCAF;LOWER RIGHT QUADRANT FACE WITH OPEN MOUTH;So;0;ON;;;;;N;;;;; +1CCB0;LOWER LEFT QUADRANT FROWNING FACE;So;0;ON;;;;;N;;;;; +1CCB1;LOWER RIGHT QUADRANT FROWNING FACE;So;0;ON;;;;;N;;;;; +1CCB2;UPPER LEFT QUADRANT TELEVISION;So;0;ON;;;;;N;;;;; +1CCB3;UPPER RIGHT QUADRANT TELEVISION;So;0;ON;;;;;N;;;;; +1CCB4;LOWER LEFT QUADRANT TELEVISION;So;0;ON;;;;;N;;;;; +1CCB5;LOWER RIGHT QUADRANT TELEVISION;So;0;ON;;;;;N;;;;; +1CCB6;UPPER LEFT QUADRANT MICROCOMPUTER;So;0;ON;;;;;N;;;;; +1CCB7;UPPER RIGHT QUADRANT MICROCOMPUTER;So;0;ON;;;;;N;;;;; +1CCB8;LOWER LEFT QUADRANT MICROCOMPUTER;So;0;ON;;;;;N;;;;; +1CCB9;LOWER RIGHT QUADRANT MICROCOMPUTER;So;0;ON;;;;;N;;;;; +1CCBA;UPPER LEFT QUADRANT CHESS KING;So;0;ON;;;;;N;;;;; +1CCBB;UPPER RIGHT QUADRANT CHESS KING;So;0;ON;;;;;N;;;;; +1CCBC;LOWER LEFT QUADRANT CHESS KING;So;0;ON;;;;;N;;;;; +1CCBD;LOWER RIGHT QUADRANT CHESS KING;So;0;ON;;;;;N;;;;; +1CCBE;UPPER LEFT QUADRANT CHESS QUEEN;So;0;ON;;;;;N;;;;; +1CCBF;UPPER RIGHT QUADRANT CHESS QUEEN;So;0;ON;;;;;N;;;;; +1CCC0;LOWER LEFT QUADRANT CHESS QUEEN;So;0;ON;;;;;N;;;;; +1CCC1;LOWER RIGHT QUADRANT CHESS QUEEN;So;0;ON;;;;;N;;;;; +1CCC2;UPPER LEFT QUADRANT CHESS ROOK;So;0;ON;;;;;N;;;;; +1CCC3;UPPER RIGHT QUADRANT CHESS ROOK;So;0;ON;;;;;N;;;;; +1CCC4;LOWER LEFT QUADRANT CHESS ROOK;So;0;ON;;;;;N;;;;; +1CCC5;LOWER RIGHT QUADRANT CHESS ROOK;So;0;ON;;;;;N;;;;; +1CCC6;UPPER LEFT QUADRANT CHESS BISHOP;So;0;ON;;;;;N;;;;; +1CCC7;UPPER RIGHT QUADRANT CHESS BISHOP;So;0;ON;;;;;N;;;;; +1CCC8;LOWER LEFT QUADRANT CHESS BISHOP;So;0;ON;;;;;N;;;;; +1CCC9;LOWER RIGHT QUADRANT CHESS BISHOP;So;0;ON;;;;;N;;;;; +1CCCA;UPPER LEFT QUADRANT CHESS KNIGHT;So;0;ON;;;;;N;;;;; +1CCCB;UPPER RIGHT QUADRANT CHESS KNIGHT;So;0;ON;;;;;N;;;;; +1CCCC;LOWER LEFT QUADRANT CHESS KNIGHT;So;0;ON;;;;;N;;;;; +1CCCD;LOWER RIGHT QUADRANT CHESS KNIGHT;So;0;ON;;;;;N;;;;; +1CCCE;UPPER LEFT QUADRANT CHESS PAWN;So;0;ON;;;;;N;;;;; +1CCCF;UPPER RIGHT QUADRANT CHESS PAWN;So;0;ON;;;;;N;;;;; +1CCD0;LOWER LEFT QUADRANT CHESS PAWN;So;0;ON;;;;;N;;;;; +1CCD1;LOWER RIGHT QUADRANT CHESS PAWN;So;0;ON;;;;;N;;;;; +1CCD2;UPPER LEFT QUADRANT STANDING KNIGHT;So;0;ON;;;;;N;;;;; +1CCD3;UPPER RIGHT QUADRANT STANDING KNIGHT;So;0;ON;;;;;N;;;;; +1CCD4;LOWER LEFT QUADRANT STANDING KNIGHT;So;0;ON;;;;;N;;;;; +1CCD5;LOWER RIGHT QUADRANT STANDING KNIGHT;So;0;ON;;;;;N;;;;; +1CCD6;OUTLINED LATIN CAPITAL LETTER A;So;0;L; 0041;;;;N;;;;; +1CCD7;OUTLINED LATIN CAPITAL LETTER B;So;0;L; 0042;;;;N;;;;; +1CCD8;OUTLINED LATIN CAPITAL LETTER C;So;0;L; 0043;;;;N;;;;; +1CCD9;OUTLINED LATIN CAPITAL LETTER D;So;0;L; 0044;;;;N;;;;; +1CCDA;OUTLINED LATIN CAPITAL LETTER E;So;0;L; 0045;;;;N;;;;; +1CCDB;OUTLINED LATIN CAPITAL LETTER F;So;0;L; 0046;;;;N;;;;; +1CCDC;OUTLINED LATIN CAPITAL LETTER G;So;0;L; 0047;;;;N;;;;; +1CCDD;OUTLINED LATIN CAPITAL LETTER H;So;0;L; 0048;;;;N;;;;; +1CCDE;OUTLINED LATIN CAPITAL LETTER I;So;0;L; 0049;;;;N;;;;; +1CCDF;OUTLINED LATIN CAPITAL LETTER J;So;0;L; 004A;;;;N;;;;; +1CCE0;OUTLINED LATIN CAPITAL LETTER K;So;0;L; 004B;;;;N;;;;; +1CCE1;OUTLINED LATIN CAPITAL LETTER L;So;0;L; 004C;;;;N;;;;; +1CCE2;OUTLINED LATIN CAPITAL LETTER M;So;0;L; 004D;;;;N;;;;; +1CCE3;OUTLINED LATIN CAPITAL LETTER N;So;0;L; 004E;;;;N;;;;; +1CCE4;OUTLINED LATIN CAPITAL LETTER O;So;0;L; 004F;;;;N;;;;; +1CCE5;OUTLINED LATIN CAPITAL LETTER P;So;0;L; 0050;;;;N;;;;; +1CCE6;OUTLINED LATIN CAPITAL LETTER Q;So;0;L; 0051;;;;N;;;;; +1CCE7;OUTLINED LATIN CAPITAL LETTER R;So;0;L; 0052;;;;N;;;;; +1CCE8;OUTLINED LATIN CAPITAL LETTER S;So;0;L; 0053;;;;N;;;;; +1CCE9;OUTLINED LATIN CAPITAL LETTER T;So;0;L; 0054;;;;N;;;;; +1CCEA;OUTLINED LATIN CAPITAL LETTER U;So;0;L; 0055;;;;N;;;;; +1CCEB;OUTLINED LATIN CAPITAL LETTER V;So;0;L; 0056;;;;N;;;;; +1CCEC;OUTLINED LATIN CAPITAL LETTER W;So;0;L; 0057;;;;N;;;;; +1CCED;OUTLINED LATIN CAPITAL LETTER X;So;0;L; 0058;;;;N;;;;; +1CCEE;OUTLINED LATIN CAPITAL LETTER Y;So;0;L; 0059;;;;N;;;;; +1CCEF;OUTLINED LATIN CAPITAL LETTER Z;So;0;L; 005A;;;;N;;;;; +1CCF0;OUTLINED DIGIT ZERO;Nd;0;EN; 0030;0;0;0;N;;;;; +1CCF1;OUTLINED DIGIT ONE;Nd;0;EN; 0031;1;1;1;N;;;;; +1CCF2;OUTLINED DIGIT TWO;Nd;0;EN; 0032;2;2;2;N;;;;; +1CCF3;OUTLINED DIGIT THREE;Nd;0;EN; 0033;3;3;3;N;;;;; +1CCF4;OUTLINED DIGIT FOUR;Nd;0;EN; 0034;4;4;4;N;;;;; +1CCF5;OUTLINED DIGIT FIVE;Nd;0;EN; 0035;5;5;5;N;;;;; +1CCF6;OUTLINED DIGIT SIX;Nd;0;EN; 0036;6;6;6;N;;;;; +1CCF7;OUTLINED DIGIT SEVEN;Nd;0;EN; 0037;7;7;7;N;;;;; +1CCF8;OUTLINED DIGIT EIGHT;Nd;0;EN; 0038;8;8;8;N;;;;; +1CCF9;OUTLINED DIGIT NINE;Nd;0;EN; 0039;9;9;9;N;;;;; +1CD00;BLOCK OCTANT-3;So;0;ON;;;;;N;;;;; +1CD01;BLOCK OCTANT-23;So;0;ON;;;;;N;;;;; +1CD02;BLOCK OCTANT-123;So;0;ON;;;;;N;;;;; +1CD03;BLOCK OCTANT-4;So;0;ON;;;;;N;;;;; +1CD04;BLOCK OCTANT-14;So;0;ON;;;;;N;;;;; +1CD05;BLOCK OCTANT-124;So;0;ON;;;;;N;;;;; +1CD06;BLOCK OCTANT-34;So;0;ON;;;;;N;;;;; +1CD07;BLOCK OCTANT-134;So;0;ON;;;;;N;;;;; +1CD08;BLOCK OCTANT-234;So;0;ON;;;;;N;;;;; +1CD09;BLOCK OCTANT-5;So;0;ON;;;;;N;;;;; +1CD0A;BLOCK OCTANT-15;So;0;ON;;;;;N;;;;; +1CD0B;BLOCK OCTANT-25;So;0;ON;;;;;N;;;;; +1CD0C;BLOCK OCTANT-125;So;0;ON;;;;;N;;;;; +1CD0D;BLOCK OCTANT-135;So;0;ON;;;;;N;;;;; +1CD0E;BLOCK OCTANT-235;So;0;ON;;;;;N;;;;; +1CD0F;BLOCK OCTANT-1235;So;0;ON;;;;;N;;;;; +1CD10;BLOCK OCTANT-45;So;0;ON;;;;;N;;;;; +1CD11;BLOCK OCTANT-145;So;0;ON;;;;;N;;;;; +1CD12;BLOCK OCTANT-245;So;0;ON;;;;;N;;;;; +1CD13;BLOCK OCTANT-1245;So;0;ON;;;;;N;;;;; +1CD14;BLOCK OCTANT-345;So;0;ON;;;;;N;;;;; +1CD15;BLOCK OCTANT-1345;So;0;ON;;;;;N;;;;; +1CD16;BLOCK OCTANT-2345;So;0;ON;;;;;N;;;;; +1CD17;BLOCK OCTANT-12345;So;0;ON;;;;;N;;;;; +1CD18;BLOCK OCTANT-6;So;0;ON;;;;;N;;;;; +1CD19;BLOCK OCTANT-16;So;0;ON;;;;;N;;;;; +1CD1A;BLOCK OCTANT-26;So;0;ON;;;;;N;;;;; +1CD1B;BLOCK OCTANT-126;So;0;ON;;;;;N;;;;; +1CD1C;BLOCK OCTANT-36;So;0;ON;;;;;N;;;;; +1CD1D;BLOCK OCTANT-136;So;0;ON;;;;;N;;;;; +1CD1E;BLOCK OCTANT-236;So;0;ON;;;;;N;;;;; +1CD1F;BLOCK OCTANT-1236;So;0;ON;;;;;N;;;;; +1CD20;BLOCK OCTANT-146;So;0;ON;;;;;N;;;;; +1CD21;BLOCK OCTANT-246;So;0;ON;;;;;N;;;;; +1CD22;BLOCK OCTANT-1246;So;0;ON;;;;;N;;;;; +1CD23;BLOCK OCTANT-346;So;0;ON;;;;;N;;;;; +1CD24;BLOCK OCTANT-1346;So;0;ON;;;;;N;;;;; +1CD25;BLOCK OCTANT-2346;So;0;ON;;;;;N;;;;; +1CD26;BLOCK OCTANT-12346;So;0;ON;;;;;N;;;;; +1CD27;BLOCK OCTANT-56;So;0;ON;;;;;N;;;;; +1CD28;BLOCK OCTANT-156;So;0;ON;;;;;N;;;;; +1CD29;BLOCK OCTANT-256;So;0;ON;;;;;N;;;;; +1CD2A;BLOCK OCTANT-1256;So;0;ON;;;;;N;;;;; +1CD2B;BLOCK OCTANT-356;So;0;ON;;;;;N;;;;; +1CD2C;BLOCK OCTANT-1356;So;0;ON;;;;;N;;;;; +1CD2D;BLOCK OCTANT-2356;So;0;ON;;;;;N;;;;; +1CD2E;BLOCK OCTANT-12356;So;0;ON;;;;;N;;;;; +1CD2F;BLOCK OCTANT-456;So;0;ON;;;;;N;;;;; +1CD30;BLOCK OCTANT-1456;So;0;ON;;;;;N;;;;; +1CD31;BLOCK OCTANT-2456;So;0;ON;;;;;N;;;;; +1CD32;BLOCK OCTANT-12456;So;0;ON;;;;;N;;;;; +1CD33;BLOCK OCTANT-3456;So;0;ON;;;;;N;;;;; +1CD34;BLOCK OCTANT-13456;So;0;ON;;;;;N;;;;; +1CD35;BLOCK OCTANT-23456;So;0;ON;;;;;N;;;;; +1CD36;BLOCK OCTANT-17;So;0;ON;;;;;N;;;;; +1CD37;BLOCK OCTANT-27;So;0;ON;;;;;N;;;;; +1CD38;BLOCK OCTANT-127;So;0;ON;;;;;N;;;;; +1CD39;BLOCK OCTANT-37;So;0;ON;;;;;N;;;;; +1CD3A;BLOCK OCTANT-137;So;0;ON;;;;;N;;;;; +1CD3B;BLOCK OCTANT-237;So;0;ON;;;;;N;;;;; +1CD3C;BLOCK OCTANT-1237;So;0;ON;;;;;N;;;;; +1CD3D;BLOCK OCTANT-47;So;0;ON;;;;;N;;;;; +1CD3E;BLOCK OCTANT-147;So;0;ON;;;;;N;;;;; +1CD3F;BLOCK OCTANT-247;So;0;ON;;;;;N;;;;; +1CD40;BLOCK OCTANT-1247;So;0;ON;;;;;N;;;;; +1CD41;BLOCK OCTANT-347;So;0;ON;;;;;N;;;;; +1CD42;BLOCK OCTANT-1347;So;0;ON;;;;;N;;;;; +1CD43;BLOCK OCTANT-2347;So;0;ON;;;;;N;;;;; +1CD44;BLOCK OCTANT-12347;So;0;ON;;;;;N;;;;; +1CD45;BLOCK OCTANT-157;So;0;ON;;;;;N;;;;; +1CD46;BLOCK OCTANT-257;So;0;ON;;;;;N;;;;; +1CD47;BLOCK OCTANT-1257;So;0;ON;;;;;N;;;;; +1CD48;BLOCK OCTANT-357;So;0;ON;;;;;N;;;;; +1CD49;BLOCK OCTANT-2357;So;0;ON;;;;;N;;;;; +1CD4A;BLOCK OCTANT-12357;So;0;ON;;;;;N;;;;; +1CD4B;BLOCK OCTANT-457;So;0;ON;;;;;N;;;;; +1CD4C;BLOCK OCTANT-1457;So;0;ON;;;;;N;;;;; +1CD4D;BLOCK OCTANT-12457;So;0;ON;;;;;N;;;;; +1CD4E;BLOCK OCTANT-3457;So;0;ON;;;;;N;;;;; +1CD4F;BLOCK OCTANT-13457;So;0;ON;;;;;N;;;;; +1CD50;BLOCK OCTANT-23457;So;0;ON;;;;;N;;;;; +1CD51;BLOCK OCTANT-67;So;0;ON;;;;;N;;;;; +1CD52;BLOCK OCTANT-167;So;0;ON;;;;;N;;;;; +1CD53;BLOCK OCTANT-267;So;0;ON;;;;;N;;;;; +1CD54;BLOCK OCTANT-1267;So;0;ON;;;;;N;;;;; +1CD55;BLOCK OCTANT-367;So;0;ON;;;;;N;;;;; +1CD56;BLOCK OCTANT-1367;So;0;ON;;;;;N;;;;; +1CD57;BLOCK OCTANT-2367;So;0;ON;;;;;N;;;;; +1CD58;BLOCK OCTANT-12367;So;0;ON;;;;;N;;;;; +1CD59;BLOCK OCTANT-467;So;0;ON;;;;;N;;;;; +1CD5A;BLOCK OCTANT-1467;So;0;ON;;;;;N;;;;; +1CD5B;BLOCK OCTANT-2467;So;0;ON;;;;;N;;;;; +1CD5C;BLOCK OCTANT-12467;So;0;ON;;;;;N;;;;; +1CD5D;BLOCK OCTANT-3467;So;0;ON;;;;;N;;;;; +1CD5E;BLOCK OCTANT-13467;So;0;ON;;;;;N;;;;; +1CD5F;BLOCK OCTANT-23467;So;0;ON;;;;;N;;;;; +1CD60;BLOCK OCTANT-123467;So;0;ON;;;;;N;;;;; +1CD61;BLOCK OCTANT-567;So;0;ON;;;;;N;;;;; +1CD62;BLOCK OCTANT-1567;So;0;ON;;;;;N;;;;; +1CD63;BLOCK OCTANT-2567;So;0;ON;;;;;N;;;;; +1CD64;BLOCK OCTANT-12567;So;0;ON;;;;;N;;;;; +1CD65;BLOCK OCTANT-3567;So;0;ON;;;;;N;;;;; +1CD66;BLOCK OCTANT-13567;So;0;ON;;;;;N;;;;; +1CD67;BLOCK OCTANT-23567;So;0;ON;;;;;N;;;;; +1CD68;BLOCK OCTANT-123567;So;0;ON;;;;;N;;;;; +1CD69;BLOCK OCTANT-4567;So;0;ON;;;;;N;;;;; +1CD6A;BLOCK OCTANT-14567;So;0;ON;;;;;N;;;;; +1CD6B;BLOCK OCTANT-24567;So;0;ON;;;;;N;;;;; +1CD6C;BLOCK OCTANT-124567;So;0;ON;;;;;N;;;;; +1CD6D;BLOCK OCTANT-34567;So;0;ON;;;;;N;;;;; +1CD6E;BLOCK OCTANT-134567;So;0;ON;;;;;N;;;;; +1CD6F;BLOCK OCTANT-234567;So;0;ON;;;;;N;;;;; +1CD70;BLOCK OCTANT-1234567;So;0;ON;;;;;N;;;;; +1CD71;BLOCK OCTANT-18;So;0;ON;;;;;N;;;;; +1CD72;BLOCK OCTANT-28;So;0;ON;;;;;N;;;;; +1CD73;BLOCK OCTANT-128;So;0;ON;;;;;N;;;;; +1CD74;BLOCK OCTANT-38;So;0;ON;;;;;N;;;;; +1CD75;BLOCK OCTANT-138;So;0;ON;;;;;N;;;;; +1CD76;BLOCK OCTANT-238;So;0;ON;;;;;N;;;;; +1CD77;BLOCK OCTANT-1238;So;0;ON;;;;;N;;;;; +1CD78;BLOCK OCTANT-48;So;0;ON;;;;;N;;;;; +1CD79;BLOCK OCTANT-148;So;0;ON;;;;;N;;;;; +1CD7A;BLOCK OCTANT-248;So;0;ON;;;;;N;;;;; +1CD7B;BLOCK OCTANT-1248;So;0;ON;;;;;N;;;;; +1CD7C;BLOCK OCTANT-348;So;0;ON;;;;;N;;;;; +1CD7D;BLOCK OCTANT-1348;So;0;ON;;;;;N;;;;; +1CD7E;BLOCK OCTANT-2348;So;0;ON;;;;;N;;;;; +1CD7F;BLOCK OCTANT-12348;So;0;ON;;;;;N;;;;; +1CD80;BLOCK OCTANT-58;So;0;ON;;;;;N;;;;; +1CD81;BLOCK OCTANT-158;So;0;ON;;;;;N;;;;; +1CD82;BLOCK OCTANT-258;So;0;ON;;;;;N;;;;; +1CD83;BLOCK OCTANT-1258;So;0;ON;;;;;N;;;;; +1CD84;BLOCK OCTANT-358;So;0;ON;;;;;N;;;;; +1CD85;BLOCK OCTANT-1358;So;0;ON;;;;;N;;;;; +1CD86;BLOCK OCTANT-2358;So;0;ON;;;;;N;;;;; +1CD87;BLOCK OCTANT-12358;So;0;ON;;;;;N;;;;; +1CD88;BLOCK OCTANT-458;So;0;ON;;;;;N;;;;; +1CD89;BLOCK OCTANT-1458;So;0;ON;;;;;N;;;;; +1CD8A;BLOCK OCTANT-2458;So;0;ON;;;;;N;;;;; +1CD8B;BLOCK OCTANT-12458;So;0;ON;;;;;N;;;;; +1CD8C;BLOCK OCTANT-3458;So;0;ON;;;;;N;;;;; +1CD8D;BLOCK OCTANT-13458;So;0;ON;;;;;N;;;;; +1CD8E;BLOCK OCTANT-23458;So;0;ON;;;;;N;;;;; +1CD8F;BLOCK OCTANT-123458;So;0;ON;;;;;N;;;;; +1CD90;BLOCK OCTANT-168;So;0;ON;;;;;N;;;;; +1CD91;BLOCK OCTANT-268;So;0;ON;;;;;N;;;;; +1CD92;BLOCK OCTANT-1268;So;0;ON;;;;;N;;;;; +1CD93;BLOCK OCTANT-368;So;0;ON;;;;;N;;;;; +1CD94;BLOCK OCTANT-2368;So;0;ON;;;;;N;;;;; +1CD95;BLOCK OCTANT-12368;So;0;ON;;;;;N;;;;; +1CD96;BLOCK OCTANT-468;So;0;ON;;;;;N;;;;; +1CD97;BLOCK OCTANT-1468;So;0;ON;;;;;N;;;;; +1CD98;BLOCK OCTANT-12468;So;0;ON;;;;;N;;;;; +1CD99;BLOCK OCTANT-3468;So;0;ON;;;;;N;;;;; +1CD9A;BLOCK OCTANT-13468;So;0;ON;;;;;N;;;;; +1CD9B;BLOCK OCTANT-23468;So;0;ON;;;;;N;;;;; +1CD9C;BLOCK OCTANT-568;So;0;ON;;;;;N;;;;; +1CD9D;BLOCK OCTANT-1568;So;0;ON;;;;;N;;;;; +1CD9E;BLOCK OCTANT-2568;So;0;ON;;;;;N;;;;; +1CD9F;BLOCK OCTANT-12568;So;0;ON;;;;;N;;;;; +1CDA0;BLOCK OCTANT-3568;So;0;ON;;;;;N;;;;; +1CDA1;BLOCK OCTANT-13568;So;0;ON;;;;;N;;;;; +1CDA2;BLOCK OCTANT-23568;So;0;ON;;;;;N;;;;; +1CDA3;BLOCK OCTANT-123568;So;0;ON;;;;;N;;;;; +1CDA4;BLOCK OCTANT-4568;So;0;ON;;;;;N;;;;; +1CDA5;BLOCK OCTANT-14568;So;0;ON;;;;;N;;;;; +1CDA6;BLOCK OCTANT-24568;So;0;ON;;;;;N;;;;; +1CDA7;BLOCK OCTANT-124568;So;0;ON;;;;;N;;;;; +1CDA8;BLOCK OCTANT-34568;So;0;ON;;;;;N;;;;; +1CDA9;BLOCK OCTANT-134568;So;0;ON;;;;;N;;;;; +1CDAA;BLOCK OCTANT-234568;So;0;ON;;;;;N;;;;; +1CDAB;BLOCK OCTANT-1234568;So;0;ON;;;;;N;;;;; +1CDAC;BLOCK OCTANT-178;So;0;ON;;;;;N;;;;; +1CDAD;BLOCK OCTANT-278;So;0;ON;;;;;N;;;;; +1CDAE;BLOCK OCTANT-1278;So;0;ON;;;;;N;;;;; +1CDAF;BLOCK OCTANT-378;So;0;ON;;;;;N;;;;; +1CDB0;BLOCK OCTANT-1378;So;0;ON;;;;;N;;;;; +1CDB1;BLOCK OCTANT-2378;So;0;ON;;;;;N;;;;; +1CDB2;BLOCK OCTANT-12378;So;0;ON;;;;;N;;;;; +1CDB3;BLOCK OCTANT-478;So;0;ON;;;;;N;;;;; +1CDB4;BLOCK OCTANT-1478;So;0;ON;;;;;N;;;;; +1CDB5;BLOCK OCTANT-2478;So;0;ON;;;;;N;;;;; +1CDB6;BLOCK OCTANT-12478;So;0;ON;;;;;N;;;;; +1CDB7;BLOCK OCTANT-3478;So;0;ON;;;;;N;;;;; +1CDB8;BLOCK OCTANT-13478;So;0;ON;;;;;N;;;;; +1CDB9;BLOCK OCTANT-23478;So;0;ON;;;;;N;;;;; +1CDBA;BLOCK OCTANT-123478;So;0;ON;;;;;N;;;;; +1CDBB;BLOCK OCTANT-578;So;0;ON;;;;;N;;;;; +1CDBC;BLOCK OCTANT-1578;So;0;ON;;;;;N;;;;; +1CDBD;BLOCK OCTANT-2578;So;0;ON;;;;;N;;;;; +1CDBE;BLOCK OCTANT-12578;So;0;ON;;;;;N;;;;; +1CDBF;BLOCK OCTANT-3578;So;0;ON;;;;;N;;;;; +1CDC0;BLOCK OCTANT-13578;So;0;ON;;;;;N;;;;; +1CDC1;BLOCK OCTANT-23578;So;0;ON;;;;;N;;;;; +1CDC2;BLOCK OCTANT-123578;So;0;ON;;;;;N;;;;; +1CDC3;BLOCK OCTANT-4578;So;0;ON;;;;;N;;;;; +1CDC4;BLOCK OCTANT-14578;So;0;ON;;;;;N;;;;; +1CDC5;BLOCK OCTANT-24578;So;0;ON;;;;;N;;;;; +1CDC6;BLOCK OCTANT-124578;So;0;ON;;;;;N;;;;; +1CDC7;BLOCK OCTANT-34578;So;0;ON;;;;;N;;;;; +1CDC8;BLOCK OCTANT-134578;So;0;ON;;;;;N;;;;; +1CDC9;BLOCK OCTANT-234578;So;0;ON;;;;;N;;;;; +1CDCA;BLOCK OCTANT-1234578;So;0;ON;;;;;N;;;;; +1CDCB;BLOCK OCTANT-678;So;0;ON;;;;;N;;;;; +1CDCC;BLOCK OCTANT-1678;So;0;ON;;;;;N;;;;; +1CDCD;BLOCK OCTANT-2678;So;0;ON;;;;;N;;;;; +1CDCE;BLOCK OCTANT-12678;So;0;ON;;;;;N;;;;; +1CDCF;BLOCK OCTANT-3678;So;0;ON;;;;;N;;;;; +1CDD0;BLOCK OCTANT-13678;So;0;ON;;;;;N;;;;; +1CDD1;BLOCK OCTANT-23678;So;0;ON;;;;;N;;;;; +1CDD2;BLOCK OCTANT-123678;So;0;ON;;;;;N;;;;; +1CDD3;BLOCK OCTANT-4678;So;0;ON;;;;;N;;;;; +1CDD4;BLOCK OCTANT-14678;So;0;ON;;;;;N;;;;; +1CDD5;BLOCK OCTANT-24678;So;0;ON;;;;;N;;;;; +1CDD6;BLOCK OCTANT-124678;So;0;ON;;;;;N;;;;; +1CDD7;BLOCK OCTANT-34678;So;0;ON;;;;;N;;;;; +1CDD8;BLOCK OCTANT-134678;So;0;ON;;;;;N;;;;; +1CDD9;BLOCK OCTANT-234678;So;0;ON;;;;;N;;;;; +1CDDA;BLOCK OCTANT-1234678;So;0;ON;;;;;N;;;;; +1CDDB;BLOCK OCTANT-15678;So;0;ON;;;;;N;;;;; +1CDDC;BLOCK OCTANT-25678;So;0;ON;;;;;N;;;;; +1CDDD;BLOCK OCTANT-125678;So;0;ON;;;;;N;;;;; +1CDDE;BLOCK OCTANT-35678;So;0;ON;;;;;N;;;;; +1CDDF;BLOCK OCTANT-235678;So;0;ON;;;;;N;;;;; +1CDE0;BLOCK OCTANT-1235678;So;0;ON;;;;;N;;;;; +1CDE1;BLOCK OCTANT-45678;So;0;ON;;;;;N;;;;; +1CDE2;BLOCK OCTANT-145678;So;0;ON;;;;;N;;;;; +1CDE3;BLOCK OCTANT-1245678;So;0;ON;;;;;N;;;;; +1CDE4;BLOCK OCTANT-1345678;So;0;ON;;;;;N;;;;; +1CDE5;BLOCK OCTANT-2345678;So;0;ON;;;;;N;;;;; +1CDE6;TOP HALF STANDING PERSON;So;0;ON;;;;;N;;;;; +1CDE7;BOTTOM HALF STANDING PERSON;So;0;ON;;;;;N;;;;; +1CDE8;TOP HALF RIGHT-FACING RUNNER FRAME-1;So;0;ON;;;;;N;;;;; +1CDE9;BOTTOM HALF RIGHT-FACING RUNNER FRAME-1;So;0;ON;;;;;N;;;;; +1CDEA;TOP HALF RIGHT-FACING RUNNER FRAME-2;So;0;ON;;;;;N;;;;; +1CDEB;BOTTOM HALF RIGHT-FACING RUNNER FRAME-2;So;0;ON;;;;;N;;;;; +1CDEC;TOP HALF LEFT-FACING RUNNER FRAME-1;So;0;ON;;;;;N;;;;; +1CDED;BOTTOM HALF LEFT-FACING RUNNER FRAME-1;So;0;ON;;;;;N;;;;; +1CDEE;TOP HALF LEFT-FACING RUNNER FRAME-2;So;0;ON;;;;;N;;;;; +1CDEF;BOTTOM HALF LEFT-FACING RUNNER FRAME-2;So;0;ON;;;;;N;;;;; +1CDF0;TOP HALF FORWARD-FACING RUNNER;So;0;ON;;;;;N;;;;; +1CDF1;BOTTOM HALF FORWARD-FACING RUNNER FRAME-1;So;0;ON;;;;;N;;;;; +1CDF2;BOTTOM HALF FORWARD-FACING RUNNER FRAME-2;So;0;ON;;;;;N;;;;; +1CDF3;BOTTOM HALF FORWARD-FACING RUNNER FRAME-3;So;0;ON;;;;;N;;;;; +1CDF4;BOTTOM HALF FORWARD-FACING RUNNER FRAME-4;So;0;ON;;;;;N;;;;; +1CDF5;MOON LANDER;So;0;ON;;;;;N;;;;; +1CDF6;TOP HALF FLAILING ROBOT FRAME-1;So;0;ON;;;;;N;;;;; +1CDF7;TOP HALF FLAILING ROBOT FRAME-2;So;0;ON;;;;;N;;;;; +1CDF8;DOWN-POINTING AIRPLANE;So;0;ON;;;;;N;;;;; +1CDF9;LEFT-POINTING AIRPLANE;So;0;ON;;;;;N;;;;; +1CDFA;SMALL UP-POINTING AIRPLANE;So;0;ON;;;;;N;;;;; +1CDFB;UP-POINTING FROG;So;0;ON;;;;;N;;;;; +1CDFC;DOWN-POINTING FROG;So;0;ON;;;;;N;;;;; +1CDFD;EXPLOSION FRAME-1;So;0;ON;;;;;N;;;;; +1CDFE;EXPLOSION FRAME-2;So;0;ON;;;;;N;;;;; +1CDFF;EXPLOSION FRAME-3;So;0;ON;;;;;N;;;;; +1CE00;RIGHT HALF AND LEFT HALF WHITE CIRCLE;So;0;ON;;;;;N;;;;; +1CE01;LOWER HALF AND UPPER HALF WHITE CIRCLE;So;0;ON;;;;;N;;;;; +1CE02;EXPLOSION AT HORIZON;So;0;ON;;;;;N;;;;; +1CE03;UPPER HALF HEAVY WHITE SQUARE;So;0;ON;;;;;N;;;;; +1CE04;LOWER HALF HEAVY WHITE SQUARE;So;0;ON;;;;;N;;;;; +1CE05;HEAVY WHITE SQUARE CONTAINING BLACK VERY SMALL SQUARE;So;0;ON;;;;;N;;;;; +1CE06;WHITE VERTICAL RECTANGLE WITH HORIZONTAL BAR;So;0;ON;;;;;N;;;;; +1CE07;TOP RIGHT BLACK LEFT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;;;;; +1CE08;FUNNEL;So;0;ON;;;;;N;;;;; +1CE09;BOX DRAWINGS DOUBLE DIAGONAL LOWER LEFT TO MIDDLE CENTRE TO LOWER +RIGHT;So;0;ON;;;;;N;;;;; +1CE0A;BOX DRAWINGS DOUBLE DIAGONAL UPPER LEFT TO MIDDLE CENTRE TO UPPER +RIGHT;So;0;ON;;;;;N;;;;; +1CE0B;LEFT HALF WHITE ELLIPSE;So;0;ON;;;;;N;;;;; +1CE0C;RIGHT HALF WHITE ELLIPSE;So;0;ON;;;;;N;;;;; +1CE0D;LEFT HALF TRIPLE DASH HORIZONTAL;So;0;ON;;;;;N;;;;; +1CE0E;RIGHT HALF TRIPLE DASH HORIZONTAL;So;0;ON;;;;;N;;;;; +1CE0F;HORIZONTAL LINE WITH TICK MARK;So;0;ON;;;;;N;;;;; +1CE10;LEFT HALF HORIZONTAL LINE WITH THREE TICK MARKS;So;0;ON;;;;;N;;;;; +1CE11;RIGHT HALF HORIZONTAL LINE WITH THREE TICK MARKS;So;0;ON;;;;;N;;;;; +1CE12;HORIZONTAL LINE WITH THREE TICK MARKS;So;0;ON;;;;;N;;;;; +1CE13;LOWER HALF VERTICAL LINE WITH THREE TICK MARKS;So;0;ON;;;;;N;;;;; +1CE14;UPPER HALF VERTICAL LINE WITH THREE TICK MARKS;So;0;ON;;;;;N;;;;; +1CE15;VERTICAL LINE WITH THREE TICK MARKS;So;0;ON;;;;;N;;;;; +1CE16;BOX DRAWINGS LIGHT VERTICAL AND TOP RIGHT;So;0;ON;;;;;N;;;;; +1CE17;BOX DRAWINGS LIGHT VERTICAL AND BOTTOM RIGHT;So;0;ON;;;;;N;;;;; +1CE18;BOX DRAWINGS LIGHT VERTICAL AND TOP LEFT;So;0;ON;;;;;N;;;;; +1CE19;BOX DRAWINGS LIGHT VERTICAL AND BOTTOM LEFT;So;0;ON;;;;;N;;;;; +1CE1A;LARGE TYPE PIECE UPPER LEFT ARC;So;0;ON;;;;;N;;;;; +1CE1B;LARGE TYPE PIECE UPPER LEFT CORNER;So;0;ON;;;;;N;;;;; +1CE1C;LARGE TYPE PIECE UPPER TERMINAL;So;0;ON;;;;;N;;;;; +1CE1D;LARGE TYPE PIECE UPPER LEFT CROTCH;So;0;ON;;;;;N;;;;; +1CE1E;LARGE TYPE PIECE LEFT ARM;So;0;ON;;;;;N;;;;; +1CE1F;LARGE TYPE PIECE CROSSBAR;So;0;ON;;;;;N;;;;; +1CE20;LARGE TYPE PIECE CROSSBAR WITH LOWER STEM;So;0;ON;;;;;N;;;;; +1CE21;LARGE TYPE PIECE UPPER HALF VERTEX OF M;So;0;ON;;;;;N;;;;; +1CE22;LARGE TYPE PIECE DIAGONAL LOWER LEFT;So;0;ON;;;;;N;;;;; +1CE23;LARGE TYPE PIECE SHORT UPPER TERMINAL;So;0;ON;;;;;N;;;;; +1CE24;LARGE TYPE PIECE UPPER RIGHT ARC;So;0;ON;;;;;N;;;;; +1CE25;LARGE TYPE PIECE RIGHT ARM;So;0;ON;;;;;N;;;;; +1CE26;LARGE TYPE PIECE UPPER RIGHT CROTCH;So;0;ON;;;;;N;;;;; +1CE27;LARGE TYPE PIECE UPPER RIGHT CORNER;So;0;ON;;;;;N;;;;; +1CE28;LARGE TYPE PIECE STEM WITH RIGHT CROSSBAR;So;0;ON;;;;;N;;;;; +1CE29;LARGE TYPE PIECE STEM;So;0;ON;;;;;N;;;;; +1CE2A;LARGE TYPE PIECE DIAGONAL UPPER RIGHT AND LOWER RIGHT;So;0;ON;;;;;N;;;;; +1CE2B;LARGE TYPE PIECE DIAGONAL UPPER RIGHT;So;0;ON;;;;;N;;;;; +1CE2C;LARGE TYPE PIECE DIAGONAL LOWER RIGHT;So;0;ON;;;;;N;;;;; +1CE2D;LARGE TYPE PIECE SHORT LOWER TERMINAL;So;0;ON;;;;;N;;;;; +1CE2E;LARGE TYPE PIECE LOWER LEFT AND UPPER LEFT ARC;So;0;ON;;;;;N;;;;; +1CE2F;LARGE TYPE PIECE CENTRE OF K;So;0;ON;;;;;N;;;;; +1CE30;LARGE TYPE PIECE LOWER HALF VERTEX OF M;So;0;ON;;;;;N;;;;; +1CE31;LARGE TYPE PIECE UPPER HALF VERTEX OF W;So;0;ON;;;;;N;;;;; +1CE32;LARGE TYPE PIECE CENTRE OF X;So;0;ON;;;;;N;;;;; +1CE33;LARGE TYPE PIECE CENTRE OF Y;So;0;ON;;;;;N;;;;; +1CE34;LARGE TYPE PIECE CENTRE OF Z WITH CROSSBAR;So;0;ON;;;;;N;;;;; +1CE35;LARGE TYPE PIECE RAISED UPPER RIGHT ARC;So;0;ON;;;;;N;;;;; +1CE36;LARGE TYPE PIECE STEM WITH LEFT CROSSBAR;So;0;ON;;;;;N;;;;; +1CE37;LARGE TYPE PIECE LOWER RIGHT AND UPPER RIGHT ARC;So;0;ON;;;;;N;;;;; +1CE38;LARGE TYPE PIECE DIAGONAL UPPER LEFT AND LOWER LEFT;So;0;ON;;;;;N;;;;; +1CE39;LARGE TYPE PIECE STEM WITH LEFT JOINT;So;0;ON;;;;;N;;;;; +1CE3A;LARGE TYPE PIECE STEM WITH CROSSBAR;So;0;ON;;;;;N;;;;; +1CE3B;LARGE TYPE PIECE DIAGONAL UPPER LEFT;So;0;ON;;;;;N;;;;; +1CE3C;LARGE TYPE PIECE LOWER TERMINAL;So;0;ON;;;;;N;;;;; +1CE3D;LARGE TYPE PIECE LOWER LEFT CORNER;So;0;ON;;;;;N;;;;; +1CE3E;LARGE TYPE PIECE LOWER LEFT ARC;So;0;ON;;;;;N;;;;; +1CE3F;LARGE TYPE PIECE LOWER LEFT CROTCH;So;0;ON;;;;;N;;;;; +1CE40;LARGE TYPE PIECE CROSSBAR WITH UPPER STEM;So;0;ON;;;;;N;;;;; +1CE41;LARGE TYPE PIECE VERTEX OF V;So;0;ON;;;;;N;;;;; +1CE42;LARGE TYPE PIECE LOWER HALF VERTEX OF W;So;0;ON;;;;;N;;;;; +1CE43;LARGE TYPE PIECE LOWER RIGHT ARC;So;0;ON;;;;;N;;;;; +1CE44;LARGE TYPE PIECE LOWER RIGHT CORNER;So;0;ON;;;;;N;;;;; +1CE45;LARGE TYPE PIECE LOWER RIGHT ARC WITH TAIL;So;0;ON;;;;;N;;;;; +1CE46;LARGE TYPE PIECE LOWER RIGHT CROTCH;So;0;ON;;;;;N;;;;; +1CE47;LARGE TYPE PIECE STEM-45;So;0;ON;;;;;N;;;;; +1CE48;LARGE TYPE PIECE STEM-2345;So;0;ON;;;;;N;;;;; +1CE49;LARGE TYPE PIECE STEM-4;So;0;ON;;;;;N;;;;; +1CE4A;LARGE TYPE PIECE STEM-34;So;0;ON;;;;;N;;;;; +1CE4B;LARGE TYPE PIECE STEM-234;So;0;ON;;;;;N;;;;; +1CE4C;LARGE TYPE PIECE STEM-1234;So;0;ON;;;;;N;;;;; +1CE4D;LARGE TYPE PIECE STEM-3;So;0;ON;;;;;N;;;;; +1CE4E;LARGE TYPE PIECE STEM-23;So;0;ON;;;;;N;;;;; +1CE4F;LARGE TYPE PIECE STEM-2;So;0;ON;;;;;N;;;;; +1CE50;LARGE TYPE PIECE STEM-12;So;0;ON;;;;;N;;;;; +1CE51;SEPARATED BLOCK SEXTANT-1;So;0;ON;;;;;N;;;;; +1CE52;SEPARATED BLOCK SEXTANT-2;So;0;ON;;;;;N;;;;; +1CE53;SEPARATED BLOCK SEXTANT-12;So;0;ON;;;;;N;;;;; +1CE54;SEPARATED BLOCK SEXTANT-3;So;0;ON;;;;;N;;;;; +1CE55;SEPARATED BLOCK SEXTANT-13;So;0;ON;;;;;N;;;;; +1CE56;SEPARATED BLOCK SEXTANT-23;So;0;ON;;;;;N;;;;; +1CE57;SEPARATED BLOCK SEXTANT-123;So;0;ON;;;;;N;;;;; +1CE58;SEPARATED BLOCK SEXTANT-4;So;0;ON;;;;;N;;;;; +1CE59;SEPARATED BLOCK SEXTANT-14;So;0;ON;;;;;N;;;;; +1CE5A;SEPARATED BLOCK SEXTANT-24;So;0;ON;;;;;N;;;;; +1CE5B;SEPARATED BLOCK SEXTANT-124;So;0;ON;;;;;N;;;;; +1CE5C;SEPARATED BLOCK SEXTANT-34;So;0;ON;;;;;N;;;;; +1CE5D;SEPARATED BLOCK SEXTANT-134;So;0;ON;;;;;N;;;;; +1CE5E;SEPARATED BLOCK SEXTANT-234;So;0;ON;;;;;N;;;;; +1CE5F;SEPARATED BLOCK SEXTANT-1234;So;0;ON;;;;;N;;;;; +1CE60;SEPARATED BLOCK SEXTANT-5;So;0;ON;;;;;N;;;;; +1CE61;SEPARATED BLOCK SEXTANT-15;So;0;ON;;;;;N;;;;; +1CE62;SEPARATED BLOCK SEXTANT-25;So;0;ON;;;;;N;;;;; +1CE63;SEPARATED BLOCK SEXTANT-125;So;0;ON;;;;;N;;;;; +1CE64;SEPARATED BLOCK SEXTANT-35;So;0;ON;;;;;N;;;;; +1CE65;SEPARATED BLOCK SEXTANT-135;So;0;ON;;;;;N;;;;; +1CE66;SEPARATED BLOCK SEXTANT-235;So;0;ON;;;;;N;;;;; +1CE67;SEPARATED BLOCK SEXTANT-1235;So;0;ON;;;;;N;;;;; +1CE68;SEPARATED BLOCK SEXTANT-45;So;0;ON;;;;;N;;;;; +1CE69;SEPARATED BLOCK SEXTANT-145;So;0;ON;;;;;N;;;;; +1CE6A;SEPARATED BLOCK SEXTANT-245;So;0;ON;;;;;N;;;;; +1CE6B;SEPARATED BLOCK SEXTANT-1245;So;0;ON;;;;;N;;;;; +1CE6C;SEPARATED BLOCK SEXTANT-345;So;0;ON;;;;;N;;;;; +1CE6D;SEPARATED BLOCK SEXTANT-1345;So;0;ON;;;;;N;;;;; +1CE6E;SEPARATED BLOCK SEXTANT-2345;So;0;ON;;;;;N;;;;; +1CE6F;SEPARATED BLOCK SEXTANT-12345;So;0;ON;;;;;N;;;;; +1CE70;SEPARATED BLOCK SEXTANT-6;So;0;ON;;;;;N;;;;; +1CE71;SEPARATED BLOCK SEXTANT-16;So;0;ON;;;;;N;;;;; +1CE72;SEPARATED BLOCK SEXTANT-26;So;0;ON;;;;;N;;;;; +1CE73;SEPARATED BLOCK SEXTANT-126;So;0;ON;;;;;N;;;;; +1CE74;SEPARATED BLOCK SEXTANT-36;So;0;ON;;;;;N;;;;; +1CE75;SEPARATED BLOCK SEXTANT-136;So;0;ON;;;;;N;;;;; +1CE76;SEPARATED BLOCK SEXTANT-236;So;0;ON;;;;;N;;;;; +1CE77;SEPARATED BLOCK SEXTANT-1236;So;0;ON;;;;;N;;;;; +1CE78;SEPARATED BLOCK SEXTANT-46;So;0;ON;;;;;N;;;;; +1CE79;SEPARATED BLOCK SEXTANT-146;So;0;ON;;;;;N;;;;; +1CE7A;SEPARATED BLOCK SEXTANT-246;So;0;ON;;;;;N;;;;; +1CE7B;SEPARATED BLOCK SEXTANT-1246;So;0;ON;;;;;N;;;;; +1CE7C;SEPARATED BLOCK SEXTANT-346;So;0;ON;;;;;N;;;;; +1CE7D;SEPARATED BLOCK SEXTANT-1346;So;0;ON;;;;;N;;;;; +1CE7E;SEPARATED BLOCK SEXTANT-2346;So;0;ON;;;;;N;;;;; +1CE7F;SEPARATED BLOCK SEXTANT-12346;So;0;ON;;;;;N;;;;; +1CE80;SEPARATED BLOCK SEXTANT-56;So;0;ON;;;;;N;;;;; +1CE81;SEPARATED BLOCK SEXTANT-156;So;0;ON;;;;;N;;;;; +1CE82;SEPARATED BLOCK SEXTANT-256;So;0;ON;;;;;N;;;;; +1CE83;SEPARATED BLOCK SEXTANT-1256;So;0;ON;;;;;N;;;;; +1CE84;SEPARATED BLOCK SEXTANT-356;So;0;ON;;;;;N;;;;; +1CE85;SEPARATED BLOCK SEXTANT-1356;So;0;ON;;;;;N;;;;; +1CE86;SEPARATED BLOCK SEXTANT-2356;So;0;ON;;;;;N;;;;; +1CE87;SEPARATED BLOCK SEXTANT-12356;So;0;ON;;;;;N;;;;; +1CE88;SEPARATED BLOCK SEXTANT-456;So;0;ON;;;;;N;;;;; +1CE89;SEPARATED BLOCK SEXTANT-1456;So;0;ON;;;;;N;;;;; +1CE8A;SEPARATED BLOCK SEXTANT-2456;So;0;ON;;;;;N;;;;; +1CE8B;SEPARATED BLOCK SEXTANT-12456;So;0;ON;;;;;N;;;;; +1CE8C;SEPARATED BLOCK SEXTANT-3456;So;0;ON;;;;;N;;;;; +1CE8D;SEPARATED BLOCK SEXTANT-13456;So;0;ON;;;;;N;;;;; +1CE8E;SEPARATED BLOCK SEXTANT-23456;So;0;ON;;;;;N;;;;; +1CE8F;SEPARATED BLOCK SEXTANT-123456;So;0;ON;;;;;N;;;;; +1CE90;UPPER LEFT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; +1CE91;UPPER CENTRE LEFT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; +1CE92;UPPER CENTRE RIGHT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; +1CE93;UPPER RIGHT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; +1CE94;UPPER MIDDLE LEFT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; +1CE95;UPPER MIDDLE CENTRE LEFT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; +1CE96;UPPER MIDDLE CENTRE RIGHT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; +1CE97;UPPER MIDDLE RIGHT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; +1CE98;LOWER MIDDLE LEFT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; +1CE99;LOWER MIDDLE CENTRE LEFT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; +1CE9A;LOWER MIDDLE CENTRE RIGHT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; +1CE9B;LOWER MIDDLE RIGHT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; +1CE9C;LOWER LEFT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; +1CE9D;LOWER CENTRE LEFT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; +1CE9E;LOWER CENTRE RIGHT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; +1CE9F;LOWER RIGHT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; +1CEA0;RIGHT HALF LOWER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; +1CEA1;RIGHT THREE QUARTERS LOWER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; +1CEA2;LEFT THREE QUARTERS LOWER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; +1CEA3;LEFT HALF LOWER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; +1CEA4;LOWER HALF LEFT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; +1CEA5;LOWER THREE QUARTERS LEFT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; +1CEA6;UPPER THREE QUARTERS LEFT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; +1CEA7;UPPER HALF LEFT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; +1CEA8;LEFT HALF UPPER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; +1CEA9;LEFT THREE QUARTERS UPPER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; +1CEAA;RIGHT THREE QUARTERS UPPER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; +1CEAB;RIGHT HALF UPPER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; +1CEAC;UPPER HALF RIGHT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; +1CEAD;UPPER THREE QUARTERS RIGHT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; +1CEAE;LOWER THREE QUARTERS RIGHT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; +1CEAF;LOWER HALF RIGHT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; +1F8B3;DOWNWARDS BLACK ARROW TO BAR;So;0;ON;;;;;N;;;;; +1F8B4;NEGATIVE SQUARED LEFTWARDS ARROW;So;0;ON;;;;;N;;;;; +1F8B5;NEGATIVE SQUARED UPWARDS ARROW;So;0;ON;;;;;N;;;;; +1F8B6;NEGATIVE SQUARED RIGHTWARDS ARROW;So;0;ON;;;;;N;;;;; +1F8B7;NEGATIVE SQUARED DOWNWARDS ARROW;So;0;ON;;;;;N;;;;; +1F8B8;NORTH WEST ARROW FROM BAR;So;0;ON;;;;;N;;;;; +1F8B9;NORTH EAST ARROW FROM BAR;So;0;ON;;;;;N;;;;; +1F8BA;SOUTH EAST ARROW FROM BAR;So;0;ON;;;;;N;;;;; +1F8BB;SOUTH WEST ARROW FROM BAR;So;0;ON;;;;;N;;;;; +1FBCB;WHITE CROSS MARK;So;0;ON;;;;;N;;;;; +1FBCC;RAISED SMALL LEFT SQUARE BRACKET;So;0;ON;;;;;N;;;;; +1FBCD;BLACK SMALL UP-POINTING CHEVRON;So;0;ON;;;;;N;;;;; +1FBCE;LEFT TWO THIRDS BLOCK;So;0;ON;;;;;N;;;;; +1FBCF;LEFT ONE THIRD BLOCK;So;0;ON;;;;;N;;;;; +1FBD0;BOX DRAWINGS LIGHT DIAGONAL MIDDLE RIGHT TO LOWER LEFT;So;0;ON;;;;;N;;;;; +1FBD1;BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO MIDDLE LEFT;So;0;ON;;;;;N;;;;; +1FBD2;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO MIDDLE RIGHT;So;0;ON;;;;;N;;;;; +1FBD3;BOX DRAWINGS LIGHT DIAGONAL MIDDLE LEFT TO LOWER RIGHT;So;0;ON;;;;;N;;;;; +1FBD4;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER CENTRE;So;0;ON;;;;;N;;;;; +1FBD5;BOX DRAWINGS LIGHT DIAGONAL UPPER CENTRE TO LOWER RIGHT;So;0;ON;;;;;N;;;;; +1FBD6;BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER CENTRE;So;0;ON;;;;;N;;;;; +1FBD7;BOX DRAWINGS LIGHT DIAGONAL UPPER CENTRE TO LOWER LEFT;So;0;ON;;;;;N;;;;; +1FBD8;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO MIDDLE CENTRE TO UPPER RIGHT;So;0;ON;;;;;N;;;;; +1FBD9;BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO MIDDLE CENTRE TO LOWER RIGHT;So;0;ON;;;;;N;;;;; +1FBDA;BOX DRAWINGS LIGHT DIAGONAL LOWER LEFT TO MIDDLE CENTRE TO LOWER RIGHT;So;0;ON;;;;;N;;;;; +1FBDB;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO MIDDLE CENTRE TO LOWER LEFT;So;0;ON;;;;;N;;;;; +1FBDC;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER CENTRE TO UPPER RIGHT;So;0;ON;;;;;N;;;;; +1FBDD;BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO MIDDLE LEFT TO LOWER RIGHT;So;0;ON;;;;;N;;;;; +1FBDE;BOX DRAWINGS LIGHT DIAGONAL LOWER LEFT TO UPPER CENTRE TO LOWER RIGHT;So;0;ON;;;;;N;;;;; +1FBDF;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO MIDDLE RIGHT TO LOWER LEFT;So;0;ON;;;;;N;;;;; +1FBE0;TOP JUSTIFIED LOWER HALF WHITE CIRCLE;So;0;ON;;;;;N;;;;; +1FBE1;RIGHT JUSTIFIED LEFT HALF WHITE CIRCLE;So;0;ON;;;;;N;;;;; +1FBE2;BOTTOM JUSTIFIED UPPER HALF WHITE CIRCLE;So;0;ON;;;;;N;;;;; +1FBE3;LEFT JUSTIFIED RIGHT HALF WHITE CIRCLE;So;0;ON;;;;;N;;;;; +1FBE4;UPPER CENTRE ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; +1FBE5;LOWER CENTRE ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; +1FBE6;MIDDLE LEFT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; +1FBE7;MIDDLE RIGHT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; +1FBE8;TOP JUSTIFIED LOWER HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;; +1FBE9;RIGHT JUSTIFIED LEFT HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;; +1FBEA;BOTTOM JUSTIFIED UPPER HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;; +1FBEB;LEFT JUSTIFIED RIGHT HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;; +1FBEC;TOP RIGHT JUSTIFIED LOWER LEFT QUARTER BLACK CIRCLE;So;0;ON;;;;;N;;;;; +1FBED;BOTTOM LEFT JUSTIFIED UPPER RIGHT QUARTER BLACK CIRCLE;So;0;ON;;;;;N;;;;; +1FBEE;BOTTOM RIGHT JUSTIFIED UPPER LEFT QUARTER BLACK CIRCLE;So;0;ON;;;;;N;;;;; +1FBEF;TOP LEFT JUSTIFIED LOWER RIGHT QUARTER BLACK CIRCLE;So;0;ON;;;;;N;;;;; diff --git a/tools/data-export/src/coverage-export/block-data.mjs b/tools/data-export/src/coverage-export/block-data.mjs index 24c7931fd3..c59688c12d 100644 --- a/tools/data-export/src/coverage-export/block-data.mjs +++ b/tools/data-export/src/coverage-export/block-data.mjs @@ -5,7 +5,7 @@ export async function collectBlockData() { [[0xe0a0, 0xe0df], "Private Use Area — Powerline"], [[0xee00, 0xee0f], "Private Use Area — Progress Bar"], [[0xef10, 0xef1f], "Private Use Area — Iosevka Private Dingbats"], - [[0x1cc00, 0x1ceaf], "Symbols for Legacy Computing Supplement"] + [[0x1cc00, 0x1ceaf], "Symbols for Legacy Computing Supplement (Purposed)"] ]; for (const id of UnicodeDataIndex.Block) { diff --git a/tools/data-export/src/coverage-export/char-data.mjs b/tools/data-export/src/coverage-export/char-data.mjs new file mode 100644 index 0000000000..12f7dfa7ae --- /dev/null +++ b/tools/data-export/src/coverage-export/char-data.mjs @@ -0,0 +1,59 @@ +import fs from "fs"; +import path from "path"; +import url from "url"; + +import ugc from "@unicode/unicode-15.1.0/General_Category/index.js"; +import ucdNames from "@unicode/unicode-15.1.0/Names/index.js"; + +const __dirname = url.fileURLToPath(new URL(".", import.meta.url)); + +class CharDataLookup { + constructor() { + this.overrides = new Map(); + } + + lookup(lch) { + if (this.overrides.has(lch)) { + return this.overrides.get(lch); + } else { + return { + gc: ugc.get(lch), + charName: ucdNames.get(lch) + }; + } + } +} + +export async function createCharDataLookup() { + const lookup = new CharDataLookup(); + + const additionalDataTxt = await fs.promises.readFile( + path.join(__dirname, "additional-char-data.txt"), + "utf-8" + ); + + let nameSuffix = ""; + + for (let line of additionalDataTxt.split("\n")) { + line = line.trim(); + if (!line || line[0] === "#") continue; + if (line[0] === "!") { + const [command, ...args] = line.slice(1).trim().split(";"); + switch (command) { + case "NameSuffix": { + nameSuffix = args[0]; + break; + } + } + } else { + const parts = line.split(";"); + const lch = parseInt(parts[0], 16); + const name = parts[1] + nameSuffix; + const gc = parts[2]; + + lookup.overrides.set(lch, { gc, charName: name }); + } + } + + return lookup; +} diff --git a/tools/data-export/src/coverage-export/gather-coverage-data.mjs b/tools/data-export/src/coverage-export/gather-coverage-data.mjs index 5d2dcc8015..1479158cca 100644 --- a/tools/data-export/src/coverage-export/gather-coverage-data.mjs +++ b/tools/data-export/src/coverage-export/gather-coverage-data.mjs @@ -1,7 +1,5 @@ -import ugc from "@unicode/unicode-15.1.0/General_Category/index.js"; -import ucdNames from "@unicode/unicode-15.1.0/Names/index.js"; - import { collectBlockData } from "./block-data.mjs"; +import { createCharDataLookup } from "./char-data.mjs"; function findFirstLastChar(lchBlockStart, lchBlockEnd, cov) { let lchFirst = 0, @@ -25,13 +23,14 @@ export async function gatherCoverageData(covUpright, covItalic, covOblique) { const featureSeriesStore = new Map(); const unicodeCoverage = []; + const lookup = await createCharDataLookup(); + for (const [[lchBlockStart, lchBlockEnd], block] of await collectBlockData()) { let blockResults = []; const [lchStart, lchEnd] = findFirstLastChar(lchBlockStart, lchBlockEnd, covUpright); if (!lchStart || !lchEnd) continue; for (let lch = lchStart; lch < lchEnd; lch++) { - const chName = ucdNames.get(lch); - const gc = ugc.get(lch); + const { gc, charName } = lookup.lookup(lch); const cdUpright = covUpright.get(lch); const cdItalic = covItalic.get(lch); const cdOblique = covOblique.get(lch); @@ -39,10 +38,11 @@ export async function gatherCoverageData(covUpright, covItalic, covOblique) { const [glyphName, typoFs, uprightFs] = cdUpright; const [, , italicFs] = cdItalic; const [, , obliqueFs] = cdOblique; + blockResults.push({ lch, gc, - charName: chName, + charName, inFont: true, glyphName: glyphName, ...putFeatSeries(featureSeriesStore, "typographicFeatureSets", typoFs), @@ -51,13 +51,7 @@ export async function gatherCoverageData(covUpright, covItalic, covOblique) { ...putFeatSeries(featureSeriesStore, "cvFeatureSetsOblique", obliqueFs) }); } else { - blockResults.push({ - lch, - gc, - charName: chName, - inFont: false, - glyphName: undefined - }); + blockResults.push({ lch, gc, charName, inFont: false, glyphName: undefined }); } } if (blockResults.length) { From 8a8b5748101c2dd13b1069e52878b7ae4d67fe9d Mon Sep 17 00:00:00 2001 From: Logo <21302803+Logo121@users.noreply.github.com> Date: Sat, 3 Feb 2024 20:02:22 +0800 Subject: [PATCH 10/14] Some box drawing + Large Type Pieces (#2190) For #2189 * box drawing * large type piece * fixes --- changes/28.1.0.md | 1 + packages/font-glyphs/src/symbol/mosaic.ptl | 143 +++++++++++++++++++++ 2 files changed, 144 insertions(+) diff --git a/changes/28.1.0.md b/changes/28.1.0.md index 810edadce3..e9de9ff487 100644 --- a/changes/28.1.0.md +++ b/changes/28.1.0.md @@ -8,6 +8,7 @@ - OUTLINED LATIN CAPITAL LETTER A (`U+1CCD6`) ... OUTLINED LATIN CAPITAL LETTER Z (`U+1CCEF`) (Purposed for Unicode 16; L2/21-235). - OUTLINED DIGIT ZERO (`U+1CCF0`) ... OUTLINED DIGIT NINE (`U+1CCF9`) (Purposed for Unicode 16; L2/21-235). - BLOCK OCTANT-3 (`U+1CD00`) ... BLOCK OCTANT-2345678 (`U+1CDE5`) (Purposed for Unicode 16; L2/21-235). + - LEFT HALF TRIPLE DASH HORIZONTAL (`U+1CE0D`) ... LARGE TYPE PIECE STEM-12 (`U+1CE50`) (Purposed for Unicode 16; L2/21-235). * Fix metrics of Cyrillic Yery (#2182). * Fix Italic/Upright localization forms for Serbian/Macedonian Cyrillic. * Add Bosnian Cyrillic localization forms based on Serbian/Macedonian. diff --git a/packages/font-glyphs/src/symbol/mosaic.ptl b/packages/font-glyphs/src/symbol/mosaic.ptl index aeffcbd280..6dab9551dd 100644 --- a/packages/font-glyphs/src/symbol/mosaic.ptl +++ b/packages/font-glyphs/src/symbol/mosaic.ptl @@ -459,6 +459,103 @@ glyph-block Symbol-Mosaic : begin SmoothMosaic22 0x1FB9A '1379' SmoothMosaic22 0x1FB9B '1739' + ### Large Type Pieces + do 'Large Type Pieces' + local stemleft : mix 0 MosaicWidth (1 / 3) + local stemright : mix 0 MosaicWidth (2 / 3) + local stemmid : mix 0 MosaicWidth 0.5 + define [yPart n] : return : mix top bottom (n / 5) + + define [Stem start end] : spiro-outline + corner stemleft [yPart start] + corner stemright [yPart start] + corner stemright [yPart (end + 1)] + corner stemleft [yPart (end + 1)] + + define [TopBit] : spiro-outline + corner stemleft top + corner stemright top + corner stemmid [mix top bottom 0.1] + + define [BottomBit] : spiro-outline + corner stemmid [mix top bottom 0.9] + corner stemleft bottom + corner stemright bottom + + define [Arm yStart yEnd left right] : spiro-outline + corner left [yPart yStart] + corner right [yPart yEnd] + corner right [yPart (yEnd + 1)] + corner left [yPart (yStart + 1)] + + define [Arc yHori yVert fRight] : spiro-outline + corner [if fRight MosaicWidth 0] [yPart [if fRight yHori (yHori + 1)]] + corner [if fRight MosaicWidth 0] [yPart [if fRight (yHori + 1) yHori]] + corner [if (yHori < yVert) stemright stemleft] [yPart [if (yHori < yVert) (yVert + 1) yVert]] + corner [if (yHori < yVert) stemleft stemright] [yPart [if (yHori < yVert) (yVert + 1) yVert]] + + define [MakePiece unicode shape] : begin + create-glyph [MangleName unicode] [MangleUnicode unicode] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include shape + + MakePiece 0x1CE1A : union [Stem 4 4] [Arc 2 3 1] + MakePiece 0x1CE1B : union [Stem 2 4] [Arm 2 2 stemright MosaicWidth] + MakePiece 0x1CE1C : union [Stem 2 4] + MakePiece 0x1CE1D : union [Stem 2 4] [Arm 2 3 stemright MosaicWidth] + MakePiece 0x1CE1E : union [Arm 2 2 stemleft MosaicWidth] + MakePiece 0x1CE1F : union [Arm 2 2 0 MosaicWidth] + MakePiece 0x1CE20 : union [Stem 2 4] [Arm 2 2 0 MosaicWidth] + MakePiece 0x1CE21 : union [Arc 3 4 0] [Arc 3 4 1] + MakePiece 0x1CE22 : union [Arc 3 4 0] + MakePiece 0x1CE23 : union [Stem 4 4] + MakePiece 0x1CE24 : union [Stem 4 4] [Arc 2 3 0] + MakePiece 0x1CE25 : union [Arm 2 2 0 stemright] + MakePiece 0x1CE26 : union [Stem 2 4] [Arm 3 2 0 stemleft] + MakePiece 0x1CE27 : union [Stem 2 4] [Arm 2 2 0 stemleft] + MakePiece 0x1CE28 : union [Stem 0 4] [Arm 2 2 stemright MosaicWidth] + MakePiece 0x1CE29 : union [Stem 0 4] + MakePiece 0x1CE2A : union [Arc 1 0 1] [Arc 3 4 1] + MakePiece 0x1CE2B : union [Arc 1 0 1] + MakePiece 0x1CE2C : union [Arc 3 4 1] + MakePiece 0x1CE2D : union [Stem 0 0] + MakePiece 0x1CE2E : union [Stem 0 0] [Stem 4 4] [Arc 2 1 1] [Arc 2 3 1] + MakePiece 0x1CE2F : union [Arm 2 2 0 stemmid] [Arm 2 1 stemmid MosaicWidth] [Arm 2 3 stemmid MosaicWidth] + MakePiece 0x1CE30 : union [TopBit] + MakePiece 0x1CE31 : union [BottomBit] + MakePiece 0x1CE32 : union [Arm 1 3 0 MosaicWidth] [Arm 3 1 0 MosaicWidth] + MakePiece 0x1CE33 : union [Stem 3 4] [Arc 1 2 0] [Arc 1 2 1] + MakePiece 0x1CE34 : union [Arm 2 2 0 MosaicWidth] [Arm 3 1 0 MosaicWidth] + MakePiece 0x1CE35 : union [Stem 3 4] [Arc 1 2 1] + MakePiece 0x1CE36 : union [Stem 0 4] [Arm 2 2 0 stemleft] + MakePiece 0x1CE37 : union [Stem 0 0] [Stem 4 4] [Arc 2 1 0] [Arc 2 3 0] + MakePiece 0x1CE38 : union [Arc 1 0 0] [Arc 3 4 0] + MakePiece 0x1CE39 : union [Stem 0 4] [Arm 1 2 0 stemleft] + MakePiece 0x1CE3A : union [Stem 0 4] [Arm 2 2 0 MosaicWidth] + MakePiece 0x1CE3B : union [Arc 0 1 0] + MakePiece 0x1CE3C : union [Stem 0 2] + MakePiece 0x1CE3D : union [Stem 0 2] [Arm 2 2 stemright MosaicWidth] + MakePiece 0x1CE3E : union [Stem 0 0] [Arc 2 1 1] + MakePiece 0x1CE3F : union [Stem 0 2] [Arm 2 1 stemright MosaicWidth] + MakePiece 0x1CE40 : union [Stem 0 2] [Arm 2 2 0 MosaicWidth] + MakePiece 0x1CE41 : union [Arm 1 2.5 0 stemmid] [Arm 2.5 1 stemmid MosaicWidth] + MakePiece 0x1CE42 : union [Arc 1 0 0] [Arc 1 0 1] + MakePiece 0x1CE43 : union [Stem 0 0] [Arc 2 1 0] + MakePiece 0x1CE44 : union [Stem 0 2] [Arm 2 2 0 stemleft] + MakePiece 0x1CE45 : union [Stem 0 0] [Arc 2 1 0] [Arm 0 2 0 stemright] + MakePiece 0x1CE46 : union [Stem 0 2] [Arm 1 2 0 stemleft] + MakePiece 0x1CE47 : union [Stem 3 4] + MakePiece 0x1CE48 : union [Stem 1 4] + MakePiece 0x1CE49 : union [Stem 3 3] + MakePiece 0x1CE4A : union [Stem 2 3] + MakePiece 0x1CE4B : union [Stem 1 3] + MakePiece 0x1CE4C : union [Stem 0 3] + MakePiece 0x1CE4D : union [Stem 2 2] + MakePiece 0x1CE4E : union [Stem 1 2] + MakePiece 0x1CE4F : union [Stem 1 1] + MakePiece 0x1CE50 : union [Stem 0 1] + ### Blocks do 'Block Shapes' define [FillBlock hStart hEnd vStart vEnd] : spiro-outline @@ -695,6 +792,52 @@ glyph-block Symbol-Mosaic : begin hline 0x23BC (1 / 4) hline 0x23BD 0 + # Split Dashed Lines + create-glyph [BdGlyphName 0x1CE0D] [MangleUnicode 0x1CE0D] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : HBar.m 0 (MosaicWidth / 3) midy light + include : HBar.m (MosaicWidth * 2 / 3) MosaicWidth midy light + + create-glyph [BdGlyphName 0x1CE0E] [MangleUnicode 0x1CE0E] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : HBar.m (MosaicWidth / 3) (MosaicWidth * 2 / 3) midy light + + define [hlinetick unicode a b c] : begin + create-glyph [BdGlyphName unicode] [MangleUnicode unicode] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : HBar.m 0 MosaicWidth midy light + if a : include : VBar.r (MosaicWidth / 3) [mix bottom midy 0.5] midy light + if b : include : VBar.r (MosaicWidth * 2 / 3) [mix bottom midy 0.5] midy light + if c : include : VBar.r MosaicWidth [mix bottom midy 0.5] midy light + + define [vlinetick unicode a b c d rev] : begin + create-glyph [BdGlyphName unicode] [MangleUnicode unicode] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : VBar.m midx [if d bottom boty] [if c top topy] light + local tickleft : if rev midx 0 + local tickright : if rev MosaicWidth midx + if a : include : HBar.t tickleft tickright [mix bottom top (1 / 3)] light + if b : include : HBar.t tickleft tickright [mix bottom top (2 / 3)] light + if c : include : HBar.t tickleft tickright top light + if d : include : HBar.b tickleft tickright bottom light + + # Box Drawing with Ticks + hlinetick 0x1CE0F 0 0 1 + hlinetick 0x1CE10 0 1 0 + hlinetick 0x1CE11 1 0 1 + hlinetick 0x1CE12 1 1 1 + vlinetick 0x1CE13 0 1 0 0 0 + vlinetick 0x1CE14 1 0 1 0 0 + vlinetick 0x1CE15 1 1 1 0 0 + vlinetick 0x1CE16 0 0 1 0 1 + vlinetick 0x1CE17 0 0 0 1 1 + vlinetick 0x1CE18 0 0 1 0 0 + vlinetick 0x1CE19 0 0 0 1 0 + define [boxdraw unicode u d l r] : begin create-glyph [BdGlyphName unicode] [MangleUnicode unicode] : glyph-proc set-width MosaicWidth From 9a5b89412c000091587f35e512c1a37525197ad3 Mon Sep 17 00:00:00 2001 From: be5invis Date: Sat, 3 Feb 2024 12:48:01 -0800 Subject: [PATCH 11/14] `zero` feature will apply to composites (#2191). --- changes/28.1.0.md | 1 + .../font-glyphs/src/auto-build/composite.ptl | 10 ++-- .../src/auto-build/transformed.ptl | 6 +-- packages/font-otl/src/gsub-cv-ss.ptl | 47 +++++++++++++++---- packages/font-otl/src/index.ptl | 4 +- packages/glyph/src/relation.mjs | 46 ++++++++++-------- packages/param/src/variant.mjs | 2 + params/variants.toml | 3 ++ 8 files changed, 80 insertions(+), 39 deletions(-) diff --git a/changes/28.1.0.md b/changes/28.1.0.md index e9de9ff487..d0e15cfe15 100644 --- a/changes/28.1.0.md +++ b/changes/28.1.0.md @@ -13,3 +13,4 @@ * Fix Italic/Upright localization forms for Serbian/Macedonian Cyrillic. * Add Bosnian Cyrillic localization forms based on Serbian/Macedonian. * Add italic form for Combining Cyrillic Letter Es-Te (U+2DF5) (#2187). +* `zero` feature will apply to composites (#2191). diff --git a/packages/font-glyphs/src/auto-build/composite.ptl b/packages/font-glyphs/src/auto-build/composite.ptl index 99b49be26c..c5dc3bfe23 100644 --- a/packages/font-glyphs/src/auto-build/composite.ptl +++ b/packages/font-glyphs/src/auto-build/composite.ptl @@ -2,7 +2,7 @@ $$include '../meta/macros.ptl' import [mix linreg clamp fallback] from "@iosevka/util" -import [getGrMesh AnyCv CvDecompose Joining hashCv] from "@iosevka/glyph/relation" +import [getGrMesh AnyCvOrCherryPicking CvDecompose Joining hashCv] from "@iosevka/glyph/relation" import [hashGeometry] from "@iosevka/geometry" import [Transform] from "@iosevka/geometry/transform" extern Map @@ -37,7 +37,7 @@ glyph-block Autobuild-Enclosure-Shared : begin glyph-block-export EnsureComponentGlyphT define [EnsureComponentGlyphT gnPart fnBuildup] : begin local rs : new Set - return : DeriveMeshT { gnPart } AnyCv + return : DeriveMeshT { gnPart } AnyCvOrCherryPicking function [gns gr] : fnBuildup gns.0 function [gniFrom gniTo] : begin [query-glyph gniFrom].tryBecomeMirrorOf [query-glyph gniTo] rs @@ -64,7 +64,7 @@ glyph-block Autobuild-Enclosure-Shared : begin local demandDecomposable : para.enableCvSs && globallyDecomposable foreach part [items-of parts] : if [query-glyph part] : begin local g : query-glyph part - local relatedGlyphs : AnyCv.query g + local relatedGlyphs : AnyCvOrCherryPicking.query g foreach gr [items-of relatedGlyphs] : if [query-glyph : gr.get g] : begin # Multi-part enclosure, proportinal if (allowProportional && [query-glyph : gr.get g].advanceWidth != g.advanceWidth) @@ -79,11 +79,11 @@ glyph-block Autobuild-Enclosure-Shared : begin if para.enableCvSs : begin if demandDecomposable : then : foreach part [items-of parts] : begin - local mesh : getGrMesh { part } AnyCv query-glyph + local mesh : getGrMesh { part } AnyCvOrCherryPicking query-glyph foreach {gr fromParts toParts} [items-of mesh] : foreach gn [items-of toParts] decomposableRelGlyphs.add gn : else : begin - local mesh : getGrMesh parts AnyCv query-glyph + local mesh : getGrMesh parts AnyCvOrCherryPicking query-glyph foreach {gr fromParts toParts} [items-of mesh] : do local fromGn : CircNameNoCheck unicode prefix fromParts suffix local toGn : CircName unicode prefix toParts suffix diff --git a/packages/font-glyphs/src/auto-build/transformed.ptl b/packages/font-glyphs/src/auto-build/transformed.ptl index 05a7d5aed8..72b0a5994f 100644 --- a/packages/font-glyphs/src/auto-build/transformed.ptl +++ b/packages/font-glyphs/src/auto-build/transformed.ptl @@ -2,8 +2,8 @@ $$include '../meta/macros.ptl' import [linreg clamp mix fallback] from "@iosevka/util" -import [getGrTree IsSuperscript IsSubscript AnyCv DotlessOrNot] from "@iosevka/glyph/relation" -import [AnyLocalizedForm CvDecompose MathSansSerif Texture] from "@iosevka/glyph/relation" +import [getGrTree IsSuperscript IsSubscript AnyCvOrCherryPicking] from "@iosevka/glyph/relation" +import [AnyLocalizedForm DotlessOrNot CvDecompose MathSansSerif Texture] from "@iosevka/glyph/relation" import [BooleanGeometry StrokeGeometry] from "@iosevka/geometry" import [NumeratorForm DenominatorForm] from "@iosevka/glyph/relation" import [Transform] from "@iosevka/geometry/transform" @@ -41,7 +41,7 @@ glyph-block Autobuild-Transformed-Shared : begin local targetNameMap {.} local TraverseGrList : list - * AnyCv + * AnyCvOrCherryPicking * AnyLocalizedForm * DotlessOrNot diff --git a/packages/font-otl/src/gsub-cv-ss.ptl b/packages/font-otl/src/gsub-cv-ss.ptl index d0936aa4b5..7e6da2ee3f 100644 --- a/packages/font-otl/src/gsub-cv-ss.ptl +++ b/packages/font-otl/src/gsub-cv-ss.ptl @@ -1,6 +1,6 @@ $$include './meta/macros.ptl' -import [AnyCv CvDecompose] from "@iosevka/glyph/relation" +import [AnyCv CvCherryPickingGrs CvDecompose] from "@iosevka/glyph/relation" extern Map extern Set @@ -9,13 +9,14 @@ define look-around null class CvLookupManager public [new table tag feature] : begin - set this.table table - set this.tag tag + set this.table table + set this.tag tag set this.feature feature - set this.decompositionLookup null - set this.altrenatesLookup null - set this.singleSubstLookups {} + set this.decompositionLookup null + set this.altrenatesLookup null + set this.singleSubstLookups {} + set this.cherryPickingLookups {} public [addDecompositionLookup lookup] : begin this.decompositionLookups.push lookup @@ -50,16 +51,26 @@ class CvLookupManager set this.singleSubstLookups.(rank) lookup return lookup + public [createCherryPickingSubst cpTag] : begin + define lookupName : 'lookup_cv_single_' + this.tag + '_cp_' + cpTag + define lookup : this.table.pickLookup lookupName {.type 'gsub_single' .substitutions {.}} + this.cherryPickingLookups.push lookup + return lookup + public [linkDeps] : begin if this.decompositionLookup : begin this.table.setDependency this.decompositionLookup this.altrenatesLookup - foreach lookup [items-of this.singleSubstLookups] : if lookup : begin - this.table.setDependency this.altrenatesLookup lookup + foreach lookupSS [items-of this.singleSubstLookups] : if lookupSS : begin + this.table.setDependency this.altrenatesLookup lookupSS + foreach lookupCP [items-of this.cherryPickingLookups] : if lookupCP : begin + this.table.setDependency lookupCP this.altrenatesLookup + foreach lookupSS [items-of this.singleSubstLookups] : if lookupSS : begin + this.table.setDependency lookupCP lookupSS public [linkCrossDeps other] : begin this.table.setDependency this.altrenatesLookup other.altrenatesLookup - foreach lookup [items-of this.singleSubstLookups] : if lookup : begin - this.table.setDependency lookup other.altrenatesLookup + foreach lookupSS [items-of this.singleSubstLookups] : if lookupSS : begin + this.table.setDependency lookupSS other.altrenatesLookup static [compare a b] : begin if (a.tag < b.tag) : return (-1) @@ -122,6 +133,22 @@ export : define [buildCVSS gsub para glyphStore] : begin local cvSingle : [cvs.get gr.tag].createSingleSubstFor gr.rank set cvSingle.substitutions.(gn) : glyphStore.ensureExists subst + do "CV cherry picking" + foreach {name prime} para.variants.primes : if prime.cherryPicking : begin + local cv : cvs.get prime.tag + foreach cp [items-of prime.cherryPicking] : begin + foreach gr [items-of CvCherryPickingGrs] : if (cp.tag === gr.tag) : begin + local feature : gsub.addCommonFeature : gsub.createFeature cp.tag + local lookup : cv.createCherryPickingSubst cp.tag + if cv.decompositionLookup : feature.addLookup cv.decompositionLookup + feature.addLookup lookup + + foreach {gn glyph} [glyphStore.namedEntries] : if [not : CvDecompose.get glyph] : begin + local subst : gr.get glyph + if (subst && subst != gn) : begin + set lookup.substitutions.(gn) : glyphStore.ensureExists subst + + do "Cleanup and link dependency" local sortedCvs : Array.from [cvs.values] sortedCvs.sort CvLookupManager.compare diff --git a/packages/font-otl/src/index.ptl b/packages/font-otl/src/index.ptl index c0345367e0..097dd51a79 100644 --- a/packages/font-otl/src/index.ptl +++ b/packages/font-otl/src/index.ptl @@ -32,8 +32,8 @@ define [buildGSUB para glyphStore markGlyphs] : begin buildGrFeature gsub glyphStore Gr.Lnum buildGrFeature gsub glyphStore Gr.Onum - # zero - buildGrFeature gsub glyphStore Gr.Zero + # zero is handled inside the CV/SS feature builder + # As it is a cv/ss "cherry picking". # APLF if para.enableCvSs : begin diff --git a/packages/glyph/src/relation.mjs b/packages/glyph/src/relation.mjs index d3257b18f0..64070ebee1 100644 --- a/packages/glyph/src/relation.mjs +++ b/packages/glyph/src/relation.mjs @@ -71,7 +71,7 @@ export const AplForm = OtlTaggedProp("AplForm", "APLF", "APL form"); export const NumeratorForm = OtlTaggedProp("Numerator", "numr"); export const DenominatorForm = OtlTaggedProp("Denominator", "dnom"); function OtlTaggedProp(key, otlTag, description) { - return { ...LinkedGlyphProp(key), otlTag, description }; + return { ...LinkedGlyphProp(key), tag: otlTag, otlTag, description }; } export const CvDecompose = DecompositionProp("CvDecompose"); @@ -225,6 +225,14 @@ export const AnyDerivingCv = { } }; +export const AnyCvOrCherryPicking = { + query(glyph) { + let ret = AnyCv.query(glyph); + if (Zero.get(glyph)) ret.push(Zero); + return ret; + } +}; + /////////////////////////////////////////////////////////////////////////////////////////////////// export function getGrTree(gid, grSetList, fnGidToGlyph) { @@ -311,15 +319,18 @@ function collectGidLists(gidListOrig, gidList, grl, excluded, fnGidToGlyph, sink /////////////////////////////////////////////////////////////////////////////////////////////////// -export function createGrDisplaySheet(glyphStore, gid) { - const glyph = glyphStore.queryByName(gid); +export function createGrDisplaySheet(glyphStore, gn) { + const glyph = glyphStore.queryByName(gn); if (!glyph) return []; + const glyphIsHidden = /^\./.test(gn); + if (glyphIsHidden) return []; + // Query selected typographic features -- mostly NWID and WWID let typographicFeatures = []; - displayQueryPairFeatures(glyphStore, gid, "Width", Nwid, Wwid, typographicFeatures); - displayQueryPairFeatures(glyphStore, gid, "Number Form", Lnum, Onum, typographicFeatures); - displayQuerySingleFeature(glyphStore, gid, "APL Form", AplForm, typographicFeatures); - displayQuerySingleFeature(glyphStore, gid, "Slashed Zero", Zero, typographicFeatures); + displayQueryPairFeatures(glyph, "Width", Nwid, Wwid, typographicFeatures); + displayQueryPairFeatures(glyph, "Number Form", Lnum, Onum, typographicFeatures); + displayQuerySingleFeature(glyph, AplForm, typographicFeatures); + for (const gr of CvCherryPickingGrs) displayQuerySingleFeature(glyph, gr, typographicFeatures); // Query selected character variants let charVariantFeatures = []; @@ -329,10 +340,13 @@ export function createGrDisplaySheet(glyphStore, gid) { for (const componentGn of decomposition) { const component = glyphStore.queryByName(componentGn); if (!component) continue; + + for (const gr of CvCherryPickingGrs) + displayQuerySingleFeature(component, gr, typographicFeatures); queryCvFeatureTagsOf(charVariantFeatures, componentGn, component, tagSet); } } else { - queryCvFeatureTagsOf(charVariantFeatures, gid, glyph, null); + queryCvFeatureTagsOf(charVariantFeatures, gn, glyph, null); } sortFeatureDisplaySheet(typographicFeatures); @@ -348,11 +362,7 @@ function FeatureSeries(name, groups) { return { name, groups }; } -function displayQueryPairFeatures(gs, gid, name, grCis, grTrans, sink) { - const g = gs.queryByName(gid); - if (!g) return; - const glyphIsHidden = /^\./.test(gid); - if (glyphIsHidden) return; +function displayQueryPairFeatures(g, name, grCis, grTrans, sink) { if (grCis.get(g) || grTrans.get(g)) { sink.push( FeatureSeries(name, [ @@ -364,14 +374,10 @@ function displayQueryPairFeatures(gs, gid, name, grCis, grTrans, sink) { ); } } -function displayQuerySingleFeature(gs, gid, name, grCis, sink) { - const g = gs.queryByName(gid); - if (!g) return; - const glyphIsHidden = /^\./.test(gid); - if (glyphIsHidden) return; +function displayQuerySingleFeature(g, grCis, sink) { if (grCis.get(g)) { sink.push( - FeatureSeries(name, [ + FeatureSeries(grCis.description, [ [ { css: `'${grCis.otlTag}' 0`, description: grCis.description + " disabled" }, { css: `'${grCis.otlTag}' 1`, description: grCis.description + " enabled" } @@ -460,3 +466,5 @@ export const SvInheritableRelations = [ OgonekTrY, ScheduleLeaningMark ]; + +export const CvCherryPickingGrs = [Zero]; diff --git a/packages/param/src/variant.mjs b/packages/param/src/variant.mjs index c2be464b39..edd94af421 100644 --- a/packages/param/src/variant.mjs +++ b/packages/param/src/variant.mjs @@ -134,6 +134,8 @@ class Prime { this.slopeDependent = !!cfg.slopeDependent; this.hotChars = cfg.hotChars ? [...cfg.hotChars] : this.descSampleText; + this.cherryPicking = cfg.cherryPicking; + this.variants = new Map(); let variantConfig = cfg.variants; diff --git a/params/variants.toml b/params/variants.toml index 69e610263e..f1ccf42a19 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -6240,6 +6240,9 @@ selectorAffix."cyrl/yae/left" = "bottomRightSerifed" sampler = "0" tagKind = "digit" +[[prime.zero.cherryPicking]] +tag = "zero" + [prime.zero.variants-buildup] entry = "body" descriptionLeader = "Zero (`0`)" From 63bbdd621566dbaa1c129da34089b1e24f7417df Mon Sep 17 00:00:00 2001 From: be5invis Date: Sat, 3 Feb 2024 12:58:34 -0800 Subject: [PATCH 12/14] Cleanup --- packages/font-otl/src/gsub-thousands.ptl | 2 -- packages/font-otl/src/table-util.ptl | 9 --------- packages/font/src/ttfa-controls/index.mjs | 2 +- 3 files changed, 1 insertion(+), 12 deletions(-) diff --git a/packages/font-otl/src/gsub-thousands.ptl b/packages/font-otl/src/gsub-thousands.ptl index 9e327f0c38..2f3a49467b 100644 --- a/packages/font-otl/src/gsub-thousands.ptl +++ b/packages/font-otl/src/gsub-thousands.ptl @@ -1,7 +1,5 @@ $$include './meta/macros.ptl' -import [QueryRelatedGlyphs] from "./table-util.mjs" - export : define [buildGsubThousands gsub para] : begin local rec : gsub.beginBlock diff --git a/packages/font-otl/src/table-util.ptl b/packages/font-otl/src/table-util.ptl index 9974baf814..7a9a2c2d99 100644 --- a/packages/font-otl/src/table-util.ptl +++ b/packages/font-otl/src/table-util.ptl @@ -1,5 +1,4 @@ import toposort from 'toposort' -import [AnyCv] from "@iosevka/glyph/relation" extern Map extern Set @@ -209,14 +208,6 @@ class LayoutLanguage define UtilityLookupPrefix '.utility-single/' define [IsUtilityLookupId name] : [name.slice 0 UtilityLookupPrefix.length] === UtilityLookupPrefix -export : define [QueryRelatedGlyphs glyphs para entries] : begin - define sink {} - foreach [gid : items-of entries] : if glyphs.(gid) : begin - sink.push gid - if para.enableCvSs : foreach [gr : items-of : AnyCv.query glyphs.(gid)] : begin - sink.push : gr.get glyphs.(gid) - return sink - export : define [FinalizeTable table] : begin set table.lookupOrder : toposort table.lookupDep foreach [{key lang} : pairs-of table.languages] : begin diff --git a/packages/font/src/ttfa-controls/index.mjs b/packages/font/src/ttfa-controls/index.mjs index 7840fd7591..0e1255baaf 100644 --- a/packages/font/src/ttfa-controls/index.mjs +++ b/packages/font/src/ttfa-controls/index.mjs @@ -62,7 +62,7 @@ class Alignment { for (const [go, gd] of this.allGlyphs) { const cvs = [ - ...Gr.AnyCv.query(go), + ...Gr.AnyCvOrCherryPicking.query(go), Gr.Texture.ExtL, Gr.Texture.ExtR, Gr.Texture.ExtLR, From 610806fd7cc87dcb3cad5bac99d4c77b7681a259 Mon Sep 17 00:00:00 2001 From: be5invis Date: Sat, 3 Feb 2024 17:32:42 -0800 Subject: [PATCH 13/14] Fix build break --- .../font-glyphs/src/auto-build/composite.ptl | 25 ++++++++-------- packages/font-otl/src/gsub-cv-ss.ptl | 29 +++++++++++-------- packages/font-otl/src/index.ptl | 6 ++-- packages/glyph/src/block.mjs | 20 +++++++++++++ packages/glyph/src/glyph.mjs | 7 ++++- 5 files changed, 57 insertions(+), 30 deletions(-) diff --git a/packages/font-glyphs/src/auto-build/composite.ptl b/packages/font-glyphs/src/auto-build/composite.ptl index c5dc3bfe23..0b4a47c0c6 100644 --- a/packages/font-glyphs/src/auto-build/composite.ptl +++ b/packages/font-glyphs/src/auto-build/composite.ptl @@ -76,19 +76,18 @@ glyph-block Autobuild-Enclosure-Shared : begin local jobsOrig : if demandDecomposable decomposableJobs nonDecomposable jobsOrig.push { origJobGlyphGn unicode parts :: restInfo } - if para.enableCvSs : begin - if demandDecomposable - : then : foreach part [items-of parts] : begin - local mesh : getGrMesh { part } AnyCvOrCherryPicking query-glyph - foreach {gr fromParts toParts} [items-of mesh] : foreach gn [items-of toParts] - decomposableRelGlyphs.add gn - : else : begin - local mesh : getGrMesh parts AnyCvOrCherryPicking query-glyph - foreach {gr fromParts toParts} [items-of mesh] : do - local fromGn : CircNameNoCheck unicode prefix fromParts suffix - local toGn : CircName unicode prefix toParts suffix - nonDecomposable.push { toGn null toParts :: restInfo } - relApplications.push { gr fromGn toGn } + if demandDecomposable + : then : foreach part [items-of parts] : begin + local mesh : getGrMesh { part } AnyCvOrCherryPicking query-glyph + foreach {gr fromParts toParts} [items-of mesh] : foreach gn [items-of toParts] + decomposableRelGlyphs.add gn + : else : begin + local mesh : getGrMesh parts AnyCvOrCherryPicking query-glyph + foreach {gr fromParts toParts} [items-of mesh] : do + local fromGn : CircNameNoCheck unicode prefix fromParts suffix + local toGn : CircName unicode prefix toParts suffix + nonDecomposable.push { toGn null toParts :: restInfo } + relApplications.push { gr fromGn toGn } return : object nonDecomposable decomposableJobs decomposableRelGlyphs relApplications diff --git a/packages/font-otl/src/gsub-cv-ss.ptl b/packages/font-otl/src/gsub-cv-ss.ptl index 7e6da2ee3f..2ed6f5666a 100644 --- a/packages/font-otl/src/gsub-cv-ss.ptl +++ b/packages/font-otl/src/gsub-cv-ss.ptl @@ -58,19 +58,23 @@ class CvLookupManager return lookup public [linkDeps] : begin - if this.decompositionLookup : begin + if (this.decompositionLookup && this.altrenatesLookup) : begin this.table.setDependency this.decompositionLookup this.altrenatesLookup - foreach lookupSS [items-of this.singleSubstLookups] : if lookupSS : begin - this.table.setDependency this.altrenatesLookup lookupSS - foreach lookupCP [items-of this.cherryPickingLookups] : if lookupCP : begin - this.table.setDependency lookupCP this.altrenatesLookup + if this.altrenatesLookup : begin foreach lookupSS [items-of this.singleSubstLookups] : if lookupSS : begin - this.table.setDependency lookupCP lookupSS + this.table.setDependency this.altrenatesLookup lookupSS + foreach lookupCP [items-of this.cherryPickingLookups] : if lookupCP : begin + this.table.setDependency lookupCP this.altrenatesLookup + foreach lookupSS [items-of this.singleSubstLookups] : if lookupSS : begin + this.table.setDependency lookupCP lookupSS public [linkCrossDeps other] : begin - this.table.setDependency this.altrenatesLookup other.altrenatesLookup - foreach lookupSS [items-of this.singleSubstLookups] : if lookupSS : begin - this.table.setDependency lookupSS other.altrenatesLookup + if (this.altrenatesLookup && other.altrenatesLookup) : begin + this.table.setDependency this.altrenatesLookup other.altrenatesLookup + + if other.altrenatesLookup : begin + foreach lookupSS [items-of this.singleSubstLookups] : if lookupSS : begin + this.table.setDependency lookupSS other.altrenatesLookup static [compare a b] : begin if (a.tag < b.tag) : return (-1) @@ -154,9 +158,10 @@ export : define [buildCVSS gsub para glyphStore] : begin sortedCvs.sort CvLookupManager.compare foreach cv [items-of sortedCvs] : begin - local st cv.altrenatesLookup.substitutions - foreach { k v } [pairs-of st] : foreach idx [range 0 v.length] : if [not v.(idx)] - set v.(idx) k + if cv.altrenatesLookup : begin + local st cv.altrenatesLookup.substitutions + foreach { k v } [pairs-of st] : foreach idx [range 0 v.length] : if [not v.(idx)] + set v.(idx) k cv.linkDeps for [local i 1] (i < sortedCvs.length) [inc i] diff --git a/packages/font-otl/src/index.ptl b/packages/font-otl/src/index.ptl index 097dd51a79..1304406691 100644 --- a/packages/font-otl/src/index.ptl +++ b/packages/font-otl/src/index.ptl @@ -36,8 +36,7 @@ define [buildGSUB para glyphStore markGlyphs] : begin # As it is a cv/ss "cherry picking". # APLF - if para.enableCvSs : begin - buildGrFeature gsub glyphStore Gr.AplForm + buildGrFeature gsub glyphStore Gr.AplForm # numr / dnom buildGrFeature gsub glyphStore Gr.NumeratorForm @@ -61,8 +60,7 @@ define [buildGSUB para glyphStore markGlyphs] : begin # cv##, ss## local cvs nothing - if para.enableCvSs : begin - set cvs : buildCVSS gsub para glyphStore + set cvs : buildCVSS gsub para glyphStore # ccmp post cv/ss (for Ogonek shape transform) buildCCMPPostCvSs gsub ccmp glyphStore markGlyphs diff --git a/packages/glyph/src/block.mjs b/packages/glyph/src/block.mjs index 1ca0f92176..53212c6c44 100644 --- a/packages/glyph/src/block.mjs +++ b/packages/glyph/src/block.mjs @@ -61,6 +61,26 @@ export class DependencyManager { } s.add(dependency); } + hasGlyphToGlyphDependency(dependent, dependency) { + return this.hasGlyphToGlyphDependencyImpl(new Set(), dependent, dependency); + } + + hasGlyphToGlyphDependencyImpl(alreadyScanned, dependent, dependency) { + // Prevent infinite recursion + if (alreadyScanned.has(dependent)) return true; + alreadyScanned.add(dependent); + + // Check for direct dependency + if (!this.glyphToGlyph.has(dependent)) return false; + const ds = this.glyphToGlyph.get(dependent); + if (ds.has(dependency)) return true; + + // Check for indirect dependency + for (const d of ds) { + if (this.hasGlyphToGlyphDependencyImpl(alreadyScanned, d, dependency)) return true; + } + return false; + } traverseGlyphDependenciesImpl(glyphs, fBlockwiseExpand) { let state = new Map(); diff --git a/packages/glyph/src/glyph.mjs b/packages/glyph/src/glyph.mjs index 72e4728551..c2d2b6e842 100644 --- a/packages/glyph/src/glyph.mjs +++ b/packages/glyph/src/glyph.mjs @@ -2,7 +2,7 @@ import * as util from "util"; import * as Geom from "@iosevka/geometry"; import { Anchor } from "@iosevka/geometry/anchor"; -import { Point, Vec2 } from "@iosevka/geometry/point"; +import { Vec2 } from "@iosevka/geometry/point"; import { Transform } from "@iosevka/geometry/transform"; export class Glyph { @@ -66,6 +66,10 @@ export class Glyph { if (!this._m_dependencyManager) return; this._m_dependencyManager.addDependency(this, glyph); } + hasDependency(other) { + if (!this._m_dependencyManager) return false; + return this._m_dependencyManager.hasGlyphToGlyphDependency(this, other); + } // Copying cloneFromGlyph(g) { @@ -138,6 +142,7 @@ export class Glyph { } tryBecomeMirrorOf(dst, rankSet) { if (rankSet.has(this) || rankSet.has(dst)) return; + if (dst.hasDependency(this)) return; const csThis = this.geometry.unlinkReferences().toShapeStringOrNull(); const csDst = dst.geometry.unlinkReferences().toShapeStringOrNull(); if (csThis && csDst && csThis === csDst) { From d1e50e6e1c5339f3dfaf1a6625aa8a96ba8907de Mon Sep 17 00:00:00 2001 From: be5invis Date: Sun, 4 Feb 2024 03:27:31 -0800 Subject: [PATCH 14/14] Release 28.1.0 --- CHANGELOG.md | 40 +- doc/PACKAGE-LIST.md | 274 +- doc/cv-influences.md | 142 +- doc/packages-sha.txt | 904 +++--- images/button-release.dark.svg | 6 +- images/button-release.light.svg | 6 +- images/cs-block-cyrillic-extended-a.dark.svg | 2 +- images/cs-block-cyrillic-extended-a.light.svg | 2 +- ...-enclosed-alphanumeric-supplement.dark.svg | 2 +- ...enclosed-alphanumeric-supplement.light.svg | 2 +- images/cs-block-letterlike-symbols.dark.svg | 2 +- images/cs-block-letterlike-symbols.light.svg | 2 +- ...mathematical-alphanumeric-symbols.dark.svg | 44 +- ...athematical-alphanumeric-symbols.light.svg | 44 +- ...cellaneous-mathematical-symbols-b.dark.svg | 89 +- ...ellaneous-mathematical-symbols-b.light.svg | 89 +- ...-miscellaneous-symbols-and-arrows.dark.svg | 115 +- ...miscellaneous-symbols-and-arrows.light.svg | 115 +- .../cs-block-miscellaneous-symbols.dark.svg | 5 +- .../cs-block-miscellaneous-symbols.light.svg | 5 +- .../cs-block-miscellaneous-technical.dark.svg | 110 +- ...cs-block-miscellaneous-technical.light.svg | 110 +- ...acy-computing-supplement-purposed.dark.svg | 2713 +++++++++++++++++ ...cy-computing-supplement-purposed.light.svg | 2713 +++++++++++++++++ images/languages.dark.svg | 298 +- images/languages.light.svg | 298 +- images/package-sample-IosevkaAile.dark.svg | 50 +- images/package-sample-IosevkaAile.light.svg | 50 +- images/package-sample-IosevkaEtoile.dark.svg | 50 +- images/package-sample-IosevkaEtoile.light.svg | 50 +- images/ss-i-off-0.dark.svg | 18 +- images/ss-i-off-0.light.svg | 18 +- images/ss-i-ss01-1.dark.svg | 12 +- images/ss-i-ss01-1.light.svg | 12 +- images/ss-i-ss02-1.dark.svg | 10 +- images/ss-i-ss02-1.light.svg | 10 +- images/ss-i-ss03-1.dark.svg | 18 +- images/ss-i-ss03-1.light.svg | 18 +- images/ss-i-ss04-1.dark.svg | 8 +- images/ss-i-ss04-1.light.svg | 8 +- images/ss-i-ss05-1.dark.svg | 10 +- images/ss-i-ss05-1.light.svg | 10 +- images/ss-i-ss06-1.dark.svg | 12 +- images/ss-i-ss06-1.light.svg | 12 +- images/ss-i-ss07-1.dark.svg | 10 +- images/ss-i-ss07-1.light.svg | 10 +- images/ss-i-ss08-1.dark.svg | 14 +- images/ss-i-ss08-1.light.svg | 14 +- images/ss-i-ss09-1.dark.svg | 16 +- images/ss-i-ss09-1.light.svg | 16 +- images/ss-i-ss10-1.dark.svg | 8 +- images/ss-i-ss10-1.light.svg | 8 +- images/ss-i-ss11-1.dark.svg | 18 +- images/ss-i-ss11-1.light.svg | 18 +- images/ss-i-ss12-1.dark.svg | 18 +- images/ss-i-ss12-1.light.svg | 18 +- images/ss-i-ss13-1.dark.svg | 12 +- images/ss-i-ss13-1.light.svg | 12 +- images/ss-i-ss14-1.dark.svg | 8 +- images/ss-i-ss14-1.light.svg | 8 +- images/ss-i-ss15-1.dark.svg | 8 +- images/ss-i-ss15-1.light.svg | 8 +- images/ss-i-ss16-1.dark.svg | 8 +- images/ss-i-ss16-1.light.svg | 8 +- images/ss-i-ss17-1.dark.svg | 8 +- images/ss-i-ss17-1.light.svg | 8 +- images/ss-i-ss18-1.dark.svg | 12 +- images/ss-i-ss18-1.light.svg | 12 +- images/ss-i-ss20-1.dark.svg | 18 +- images/ss-i-ss20-1.light.svg | 18 +- package-lock.json | 80 +- package.json | 2 +- packages/font-glyphs/package.json | 32 +- packages/font-kits/package.json | 8 +- packages/font-otl/package.json | 6 +- packages/font/package.json | 16 +- packages/geometry-cache/package.json | 4 +- packages/geometry/package.json | 36 +- packages/glyph/package.json | 4 +- packages/param/package.json | 4 +- packages/util/package.json | 2 +- tools/amend-readme/package.json | 22 +- tools/data-export/package.json | 30 +- tools/generate-samples/package.json | 4 +- tools/misc/package.json | 4 +- 85 files changed, 7271 insertions(+), 1807 deletions(-) create mode 100644 images/cs-block-symbols-for-legacy-computing-supplement-purposed.dark.svg create mode 100644 images/cs-block-symbols-for-legacy-computing-supplement-purposed.light.svg diff --git a/CHANGELOG.md b/CHANGELOG.md index 7836c6628e..510ddba582 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,17 +1,37 @@ ## Modifications since last major version +### 28.1.0 + +* Add characters: + - LEFT VERTICAL BOX LINE (`U+23B8`) ... HORIZONTAL SCAN LINE-9 (`U+23BD`). + - SQUARE FOUR CORNERS (`U+26F6`). + - TWO JOINED SQUARES (`U+29C9`). + - OVERLAPPING WHITE SQUARES (`U+2BBA`). + - OVERLAPPING WHITE AND BLACK SQUARES (`U+2BBB`). + - OVERLAPPING BLACK SQUARES (`U+2BBC`). + - OUTLINED LATIN CAPITAL LETTER A (`U+1CCD6`) ... OUTLINED LATIN CAPITAL LETTER Z (`U+1CCEF`) (Purposed for Unicode 16; L2/21-235). + - OUTLINED DIGIT ZERO (`U+1CCF0`) ... OUTLINED DIGIT NINE (`U+1CCF9`) (Purposed for Unicode 16; L2/21-235). + - BLOCK OCTANT-3 (`U+1CD00`) ... BLOCK OCTANT-2345678 (`U+1CDE5`) (Purposed for Unicode 16; L2/21-235). + - LEFT HALF TRIPLE DASH HORIZONTAL (`U+1CE0D`) ... LARGE TYPE PIECE STEM-12 (`U+1CE50`) (Purposed for Unicode 16; L2/21-235). +* Fix metrics of Cyrillic Yery (#2182). +* Fix Italic/Upright localization forms for Serbian/Macedonian Cyrillic. +* Add Bosnian Cyrillic localization forms based on Serbian/Macedonian. +* Add italic form for Combining Cyrillic Letter Es-Te (U+2DF5) (#2187). +* `zero` feature will apply to composites (#2191). + + ### 28.0.7 -* Make superscript/subscript/overscript Cyrillic characters obey localization forms of base letters (#2177). -* Add IPA localization forms for Greek Lower Beta (`β`) and Chi (`χ`). -* Add APLF variants for `U+25F0`, `U+25F3`, and `U+25F4`. -* Make Ezh follow variants of `Z`/`z` (#1957). -* Fix serif form for Cyrillic Lower Tall / Iotified Yat (#2178). -* Make top serifs of Cyrillic Lower Straight U (`ү`, `ұ`) and Latin Lower Gamma (`ɣ`) respond to italics. -* Fix leaning marks of Capital Turned/Half H (`U+2C75`, `U+2C76`, `U+A78D`, `U+A7F5`, `U+A7F6`). -* Fix leaning marks of Wynn (`U+01BF`, `U+01F7`). -* Fix leaning marks of Insular R (`U+A782`, `U+A783`). -* Fix leaning marks of Greek/Latin Beta (`U+03B2`, `U+A7B4`, `U+A7B5`). +* Make superscript/subscript/overscript Cyrillic characters obey localization forms of base letters (#2177). +* Add IPA localization forms for Greek Lower Beta (`β`) and Chi (`χ`). +* Add APLF variants for `U+25F0`, `U+25F3`, and `U+25F4`. +* Make Ezh follow variants of `Z`/`z` (#1957). +* Fix serif form for Cyrillic Lower Tall / Iotified Yat (#2178). +* Make top serifs of Cyrillic Lower Straight U (`ү`, `ұ`) and Latin Lower Gamma (`ɣ`) respond to italics. +* Fix leaning marks of Capital Turned/Half H (`U+2C75`, `U+2C76`, `U+A78D`, `U+A7F5`, `U+A7F6`). +* Fix leaning marks of Wynn (`U+01BF`, `U+01F7`). +* Fix leaning marks of Insular R (`U+A782`, `U+A783`). +* Fix leaning marks of Greek/Latin Beta (`U+03B2`, `U+A7B4`, `U+A7B5`). * Fix leaning marks of Greek Lower San (`U+03FB`). diff --git a/doc/PACKAGE-LIST.md b/doc/PACKAGE-LIST.md index d128f928dd..1e616860e1 100644 --- a/doc/PACKAGE-LIST.md +++ b/doc/PACKAGE-LIST.md @@ -1,7 +1,7 @@ -# Package list of Release 28.0.7 +# Package list of Release 28.1.0 ## Prebuilt Packages Iosevka provides a large variety of variants. Prebuilt variants are listed below. For all Monospace variants' packages, it will contain three _spacing variants_. You can either download the package containing all the spacing variants (recommended), or cherry-pick the variant with specific spacing. @@ -22,146 +22,146 @@ Iosevka provides various packaging formats, here is the list of them: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + +
📦 IosevkaMonospace, DefaultSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ IosevkaDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka TermTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka FixedFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SlabMonospace, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka CurlyMonospace, Curly StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka CurlyDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term CurlyTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed CurlyFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka Curly SlabMonospace, Curly Style, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka Curly SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term Curly SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed Curly SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS01Monospace, Andale Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS01DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS01TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS01FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS02Monospace, Anonymous Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS02DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS02TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS02FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS03Monospace, Consolas StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS03DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS03TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS03FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS04Monospace, Menlo StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS04DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS04TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS04FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS05Monospace, Fira Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS05DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS05TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS05FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS06Monospace, Liberation Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS06DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS06TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS06FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS07Monospace, Monaco StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS07DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS07TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS07FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS08Monospace, Pragmata Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS08DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS08TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS08FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS09Monospace, Source Code Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS09DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS09TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS09FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS10Monospace, Envy Code R StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS10DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS10TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS10FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS11Monospace, X Windows Fixed StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS11DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS11TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS11FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS12Monospace, Ubuntu Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS12DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS12TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS12FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS13Monospace, Lucida StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS13DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS13TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS13FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS14Monospace, JetBrains Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS14DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS14TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS14FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS15Monospace, IBM Plex Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS15DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS15TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS15FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS16Monospace, PT Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS16DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS16TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS16FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS17Monospace, Recursive Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS17DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS17TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS17FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS18Monospace, Input Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS18DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS18TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS18FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 IosevkaMonospace, DefaultSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ IosevkaDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka TermTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka FixedFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SlabMonospace, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka CurlyMonospace, Curly StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka CurlyDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term CurlyTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed CurlyFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka Curly SlabMonospace, Curly Style, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka Curly SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term Curly SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed Curly SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS01Monospace, Andale Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS01DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS01TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS01FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS02Monospace, Anonymous Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS02DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS02TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS02FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS03Monospace, Consolas StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS03DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS03TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS03FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS04Monospace, Menlo StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS04DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS04TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS04FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS05Monospace, Fira Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS05DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS05TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS05FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS06Monospace, Liberation Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS06DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS06TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS06FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS07Monospace, Monaco StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS07DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS07TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS07FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS08Monospace, Pragmata Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS08DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS08TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS08FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS09Monospace, Source Code Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS09DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS09TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS09FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS10Monospace, Envy Code R StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS10DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS10TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS10FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS11Monospace, X Windows Fixed StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS11DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS11TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS11FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS12Monospace, Ubuntu Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS12DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS12TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS12FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS13Monospace, Lucida StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS13DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS13TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS13FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS14Monospace, JetBrains Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS14DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS14TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS14FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS15Monospace, IBM Plex Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS15DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS15TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS15FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS16Monospace, PT Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS16DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS16TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS16FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS17Monospace, Recursive Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS17DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS17TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS17FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS18Monospace, Input Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS18DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS18TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS18FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka AileQuasi-proportional, Sans-serif 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka AileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka AileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka EtoileQuasi-proportional, Slab-serif 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka EtoileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka EtoileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
diff --git a/doc/cv-influences.md b/doc/cv-influences.md index 2ac6fa8b1f..fa65b3b1dd 100644 --- a/doc/cv-influences.md +++ b/doc/cv-influences.md @@ -5,103 +5,103 @@ - `cv01`: - A (`U+0041`), À (`U+00C0`), Á (`U+00C1`),  (`U+00C2`), à (`U+00C3`), Ä (`U+00C4`), Å (`U+00C5`), Æ (`U+00C6`), Ā (`U+0100`), Ă (`U+0102`), Ą (`U+0104`), Ǎ (`U+01CD`), Ǟ (`U+01DE`), Ǡ (`U+01E0`), Ǣ (`U+01E2`), Ǻ (`U+01FA`), Ǽ (`U+01FC`), Ȁ (`U+0200`), Ȃ (`U+0202`), Ȧ (`U+0226`), Ⱥ (`U+023A`), Ά (`U+0386`), Α (`U+0391`), А (`U+0410`), Ӑ (`U+04D0`), Ӓ (`U+04D2`), Ӕ (`U+04D4`), ᴀ (`U+1D00`), ᴁ (`U+1D01`), ᴬ (`U+1D2C`), ᴭ (`U+1D2D`), Ḁ (`U+1E00`), Ạ (`U+1EA0`), Ả (`U+1EA2`), Ấ (`U+1EA4`), Ầ (`U+1EA6`), Ẩ (`U+1EA8`), Ẫ (`U+1EAA`), Ậ (`U+1EAC`), Ắ (`U+1EAE`), Ằ (`U+1EB0`), Ẳ (`U+1EB2`), Ẵ (`U+1EB4`), Ặ (`U+1EB6`), Ἀ (`U+1F08`), Ἁ (`U+1F09`), Ἂ (`U+1F0A`), Ἃ (`U+1F0B`), Ἄ (`U+1F0C`), Ἅ (`U+1F0D`), Ἆ (`U+1F0E`), Ἇ (`U+1F0F`), ᾈ (`U+1F88`), ᾉ (`U+1F89`), ᾊ (`U+1F8A`), ᾋ (`U+1F8B`), ᾌ (`U+1F8C`), ᾍ (`U+1F8D`), ᾎ (`U+1F8E`), ᾏ (`U+1F8F`), Ᾰ (`U+1FB8`), Ᾱ (`U+1FB9`), Ὰ (`U+1FBA`), Ά (`U+1FBB`), ᾼ (`U+1FBC`), ₳ (`U+20B3`), Å (`U+212B`), ℻ (`U+213B`), ⅍ (`U+214D`), ␆ (`U+2406`), ␕ (`U+2415`), ␘ (`U+2418`), Ⓐ (`U+24B6`), Ɐ (`U+2C6F`), Ꙗ (`U+A656`), Ꜳ (`U+A732`), Ꜵ (`U+A734`), Ꜷ (`U+A736`), Ꞻ (`U+A7BA`), 𐞀 (`U+10780`), 𝐀 (`U+1D400`), 𝐴 (`U+1D434`), 𝑨 (`U+1D468`), 𝖠 (`U+1D5A0`), 𝗔 (`U+1D5D4`), 𝘈 (`U+1D608`), 𝘼 (`U+1D63C`), 𝙰 (`U+1D670`), 𝚨 (`U+1D6A8`), 𝛢 (`U+1D6E2`), 𝜜 (`U+1D71C`), 𝝖 (`U+1D756`), 𝞐 (`U+1D790`), 🄐 (`U+1F110`), 🄰 (`U+1F130`), 🅐 (`U+1F150`), 🅰 (`U+1F170`), 🆌 (`U+1F18C`), 🆍 (`U+1F18D`), 🆎 (`U+1F18E`) + A (`U+0041`), À (`U+00C0`), Á (`U+00C1`),  (`U+00C2`), à (`U+00C3`), Ä (`U+00C4`), Å (`U+00C5`), Æ (`U+00C6`), Ā (`U+0100`), Ă (`U+0102`), Ą (`U+0104`), Ǎ (`U+01CD`), Ǟ (`U+01DE`), Ǡ (`U+01E0`), Ǣ (`U+01E2`), Ǻ (`U+01FA`), Ǽ (`U+01FC`), Ȁ (`U+0200`), Ȃ (`U+0202`), Ȧ (`U+0226`), Ⱥ (`U+023A`), Ά (`U+0386`), Α (`U+0391`), А (`U+0410`), Ӑ (`U+04D0`), Ӓ (`U+04D2`), Ӕ (`U+04D4`), ᴀ (`U+1D00`), ᴁ (`U+1D01`), ᴬ (`U+1D2C`), ᴭ (`U+1D2D`), Ḁ (`U+1E00`), Ạ (`U+1EA0`), Ả (`U+1EA2`), Ấ (`U+1EA4`), Ầ (`U+1EA6`), Ẩ (`U+1EA8`), Ẫ (`U+1EAA`), Ậ (`U+1EAC`), Ắ (`U+1EAE`), Ằ (`U+1EB0`), Ẳ (`U+1EB2`), Ẵ (`U+1EB4`), Ặ (`U+1EB6`), Ἀ (`U+1F08`), Ἁ (`U+1F09`), Ἂ (`U+1F0A`), Ἃ (`U+1F0B`), Ἄ (`U+1F0C`), Ἅ (`U+1F0D`), Ἆ (`U+1F0E`), Ἇ (`U+1F0F`), ᾈ (`U+1F88`), ᾉ (`U+1F89`), ᾊ (`U+1F8A`), ᾋ (`U+1F8B`), ᾌ (`U+1F8C`), ᾍ (`U+1F8D`), ᾎ (`U+1F8E`), ᾏ (`U+1F8F`), Ᾰ (`U+1FB8`), Ᾱ (`U+1FB9`), Ὰ (`U+1FBA`), Ά (`U+1FBB`), ᾼ (`U+1FBC`), ₳ (`U+20B3`), Å (`U+212B`), ℻ (`U+213B`), ⅍ (`U+214D`), ␆ (`U+2406`), ␕ (`U+2415`), ␘ (`U+2418`), Ⓐ (`U+24B6`), Ɐ (`U+2C6F`), Ꙗ (`U+A656`), Ꜳ (`U+A732`), Ꜵ (`U+A734`), Ꜷ (`U+A736`), Ꞻ (`U+A7BA`), 𐞀 (`U+10780`), 𜳖 (`U+1CCD6`), 𝐀 (`U+1D400`), 𝐴 (`U+1D434`), 𝑨 (`U+1D468`), 𝖠 (`U+1D5A0`), 𝗔 (`U+1D5D4`), 𝘈 (`U+1D608`), 𝘼 (`U+1D63C`), 𝙰 (`U+1D670`), 𝚨 (`U+1D6A8`), 𝛢 (`U+1D6E2`), 𝜜 (`U+1D71C`), 𝝖 (`U+1D756`), 𝞐 (`U+1D790`), 🄐 (`U+1F110`), 🄰 (`U+1F130`), 🅐 (`U+1F150`), 🅰 (`U+1F170`), 🆌 (`U+1F18C`), 🆍 (`U+1F18D`), 🆎 (`U+1F18E`) - `cv02`: - B (`U+0042`), Ɓ (`U+0181`), Ƀ (`U+0243`), ʙ (`U+0299`), Β (`U+0392`), В (`U+0412`), в (`U+0432`), ฿ (`U+0E3F`), ᴃ (`U+1D03`), ᴮ (`U+1D2E`), ᴯ (`U+1D2F`), Ḃ (`U+1E02`), Ḅ (`U+1E04`), Ḇ (`U+1E06`), ₿ (`U+20BF`), ␇ (`U+2407`), ␈ (`U+2408`), ␗ (`U+2417`), ␚ (`U+241A`), Ⓑ (`U+24B7`), ⷡ (`U+2DE1`), Ꞵ (`U+A7B4`),  (`U+FFFC`), 𐞄 (`U+10784`), 𝐁 (`U+1D401`), 𝐵 (`U+1D435`), 𝑩 (`U+1D469`), 𝖡 (`U+1D5A1`), 𝗕 (`U+1D5D5`), 𝘉 (`U+1D609`), 𝘽 (`U+1D63D`), 𝙱 (`U+1D671`), 𝚩 (`U+1D6A9`), 𝛣 (`U+1D6E3`), 𝜝 (`U+1D71D`), 𝝗 (`U+1D757`), 𝞑 (`U+1D791`), 𞀲 (`U+1E032`), 𞁓 (`U+1E053`), 🄑 (`U+1F111`), 🄱 (`U+1F131`), 🅑 (`U+1F151`), 🅱 (`U+1F171`), 🆎 (`U+1F18E`) + B (`U+0042`), Ɓ (`U+0181`), Ƀ (`U+0243`), ʙ (`U+0299`), Β (`U+0392`), В (`U+0412`), в (`U+0432`), ฿ (`U+0E3F`), ᴃ (`U+1D03`), ᴮ (`U+1D2E`), ᴯ (`U+1D2F`), Ḃ (`U+1E02`), Ḅ (`U+1E04`), Ḇ (`U+1E06`), ₿ (`U+20BF`), ␇ (`U+2407`), ␈ (`U+2408`), ␗ (`U+2417`), ␚ (`U+241A`), Ⓑ (`U+24B7`), ⷡ (`U+2DE1`), Ꞵ (`U+A7B4`),  (`U+FFFC`), 𐞄 (`U+10784`), 𜳗 (`U+1CCD7`), 𝐁 (`U+1D401`), 𝐵 (`U+1D435`), 𝑩 (`U+1D469`), 𝖡 (`U+1D5A1`), 𝗕 (`U+1D5D5`), 𝘉 (`U+1D609`), 𝘽 (`U+1D63D`), 𝙱 (`U+1D671`), 𝚩 (`U+1D6A9`), 𝛣 (`U+1D6E3`), 𝜝 (`U+1D71D`), 𝝗 (`U+1D757`), 𝞑 (`U+1D791`), 𞀲 (`U+1E032`), 𞁓 (`U+1E053`), 🄑 (`U+1F111`), 🄱 (`U+1F131`), 🅑 (`U+1F151`), 🅱 (`U+1F171`), 🆎 (`U+1F18E`) - `cv03`: - C (`U+0043`), © (`U+00A9`), Ç (`U+00C7`), Ć (`U+0106`), Ĉ (`U+0108`), Ċ (`U+010A`), Č (`U+010C`), Ɔ (`U+0186`), Ƈ (`U+0187`), Ə (`U+018F`), Ȼ (`U+023B`), Ϲ (`U+03F9`), Ͻ (`U+03FD`), Ͼ (`U+03FE`), Ͽ (`U+03FF`), Є (`U+0404`), С (`U+0421`), Э (`U+042D`), Ѥ (`U+0464`), Ҁ (`U+0480`), Ҫ (`U+04AA`), Ҽ (`U+04BC`), Ҿ (`U+04BE`), Ә (`U+04D8`), Ӛ (`U+04DA`), Ӭ (`U+04EC`), Ԍ (`U+050C`), ᴄ (`U+1D04`), ᴐ (`U+1D10`), Ḉ (`U+1E08`), ₡ (`U+20A1`), € (`U+20AC`), ₵ (`U+20B5`), ℃ (`U+2103`), ℈ (`U+2108`), Ⅽ (`U+216D`), Ↄ (`U+2183`), ↅ (`U+2185`), ␆ (`U+2406`), ␍ (`U+240D`), ␑ (`U+2411`), ␒ (`U+2412`), ␓ (`U+2413`), ␔ (`U+2414`), ␘ (`U+2418`), ␛ (`U+241B`), Ⓒ (`U+24B8`), Ꜿ (`U+A73E`), Ꞓ (`U+A792`), Ꞔ (`U+A7C4`), ꟲ (`U+A7F2`),  (`U+E0A3`), 𝐂 (`U+1D402`), 𝐶 (`U+1D436`), 𝑪 (`U+1D46A`), 𝖢 (`U+1D5A2`), 𝗖 (`U+1D5D6`), 𝘊 (`U+1D60A`), 𝘾 (`U+1D63E`), 𝙲 (`U+1D672`), 🄒 (`U+1F112`), 🄫 (`U+1F12B`), 🄭 (`U+1F12D`), 🄯 (`U+1F12F`), 🄲 (`U+1F132`), 🅏 (`U+1F14F`), 🅒 (`U+1F152`), 🅪 (`U+1F16A`), 🅭 (`U+1F16D`), 🅮 (`U+1F16E`), 🅲 (`U+1F172`), 🆋 (`U+1F18B`), 🆏 (`U+1F18F`), 🆑 (`U+1F191`), 🆒 (`U+1F192`), 🆜 (`U+1F19C`), 🆦 (`U+1F1A6`) + C (`U+0043`), © (`U+00A9`), Ç (`U+00C7`), Ć (`U+0106`), Ĉ (`U+0108`), Ċ (`U+010A`), Č (`U+010C`), Ɔ (`U+0186`), Ƈ (`U+0187`), Ə (`U+018F`), Ȼ (`U+023B`), Ϲ (`U+03F9`), Ͻ (`U+03FD`), Ͼ (`U+03FE`), Ͽ (`U+03FF`), Є (`U+0404`), С (`U+0421`), Э (`U+042D`), Ѥ (`U+0464`), Ҁ (`U+0480`), Ҫ (`U+04AA`), Ҽ (`U+04BC`), Ҿ (`U+04BE`), Ә (`U+04D8`), Ӛ (`U+04DA`), Ӭ (`U+04EC`), Ԍ (`U+050C`), ᴄ (`U+1D04`), ᴐ (`U+1D10`), Ḉ (`U+1E08`), ₡ (`U+20A1`), € (`U+20AC`), ₵ (`U+20B5`), ℃ (`U+2103`), ℈ (`U+2108`), Ⅽ (`U+216D`), Ↄ (`U+2183`), ↅ (`U+2185`), ␆ (`U+2406`), ␍ (`U+240D`), ␑ (`U+2411`), ␒ (`U+2412`), ␓ (`U+2413`), ␔ (`U+2414`), ␘ (`U+2418`), ␛ (`U+241B`), Ⓒ (`U+24B8`), Ꜿ (`U+A73E`), Ꞓ (`U+A792`), Ꞔ (`U+A7C4`), ꟲ (`U+A7F2`),  (`U+E0A3`), 𜳘 (`U+1CCD8`), 𝐂 (`U+1D402`), 𝐶 (`U+1D436`), 𝑪 (`U+1D46A`), 𝖢 (`U+1D5A2`), 𝗖 (`U+1D5D6`), 𝘊 (`U+1D60A`), 𝘾 (`U+1D63E`), 𝙲 (`U+1D672`), 🄒 (`U+1F112`), 🄫 (`U+1F12B`), 🄭 (`U+1F12D`), 🄯 (`U+1F12F`), 🄲 (`U+1F132`), 🅏 (`U+1F14F`), 🅒 (`U+1F152`), 🅪 (`U+1F16A`), 🅭 (`U+1F16D`), 🅮 (`U+1F16E`), 🅲 (`U+1F172`), 🆋 (`U+1F18B`), 🆏 (`U+1F18F`), 🆑 (`U+1F191`), 🆒 (`U+1F192`), 🆜 (`U+1F19C`), 🆦 (`U+1F1A6`) - `cv04`: - D (`U+0044`), Ð (`U+00D0`), Ď (`U+010E`), Đ (`U+0110`), Ɖ (`U+0189`), Ɗ (`U+018A`), DŽ (`U+01C4`), Dž (`U+01C5`), DZ (`U+01F1`), Dz (`U+01F2`), ᴅ (`U+1D05`), ᴆ (`U+1D06`), ᴰ (`U+1D30`), Ḋ (`U+1E0A`), Ḍ (`U+1E0C`), Ḏ (`U+1E0E`), Ḑ (`U+1E10`), Ḓ (`U+1E12`), ₯ (`U+20AF`), Ⅾ (`U+216E`), ↁ (`U+2181`), ↇ (`U+2187`), ␐ (`U+2410`), ␑ (`U+2411`), ␒ (`U+2412`), ␓ (`U+2413`), ␔ (`U+2414`), ␡ (`U+2421`), Ⓓ (`U+24B9`), Ꟈ (`U+A7C7`), 𝐃 (`U+1D403`), 𝐷 (`U+1D437`), 𝑫 (`U+1D46B`), 𝖣 (`U+1D5A3`), 𝗗 (`U+1D5D7`), 𝘋 (`U+1D60B`), 𝘿 (`U+1D63F`), 𝙳 (`U+1D673`), 🄓 (`U+1F113`), 🄭 (`U+1F12D`), 🄳 (`U+1F133`), 🅌 (`U+1F14C`), 🅓 (`U+1F153`), 🅫 (`U+1F16B`), 🅳 (`U+1F173`), 🆐 (`U+1F190`), 🆔 (`U+1F194`), 🆛 (`U+1F19B`), 🆜 (`U+1F19C`), 🆧 (`U+1F1A7`), 🆫 (`U+1F1AB`), 🆬 (`U+1F1AC`) + D (`U+0044`), Ð (`U+00D0`), Ď (`U+010E`), Đ (`U+0110`), Ɖ (`U+0189`), Ɗ (`U+018A`), DŽ (`U+01C4`), Dž (`U+01C5`), DZ (`U+01F1`), Dz (`U+01F2`), ᴅ (`U+1D05`), ᴆ (`U+1D06`), ᴰ (`U+1D30`), Ḋ (`U+1E0A`), Ḍ (`U+1E0C`), Ḏ (`U+1E0E`), Ḑ (`U+1E10`), Ḓ (`U+1E12`), ₯ (`U+20AF`), Ⅾ (`U+216E`), ↁ (`U+2181`), ↇ (`U+2187`), ␐ (`U+2410`), ␑ (`U+2411`), ␒ (`U+2412`), ␓ (`U+2413`), ␔ (`U+2414`), ␡ (`U+2421`), Ⓓ (`U+24B9`), Ꟈ (`U+A7C7`), 𜳙 (`U+1CCD9`), 𝐃 (`U+1D403`), 𝐷 (`U+1D437`), 𝑫 (`U+1D46B`), 𝖣 (`U+1D5A3`), 𝗗 (`U+1D5D7`), 𝘋 (`U+1D60B`), 𝘿 (`U+1D63F`), 𝙳 (`U+1D673`), 🄓 (`U+1F113`), 🄭 (`U+1F12D`), 🄳 (`U+1F133`), 🅌 (`U+1F14C`), 🅓 (`U+1F153`), 🅫 (`U+1F16B`), 🅳 (`U+1F173`), 🆐 (`U+1F190`), 🆔 (`U+1F194`), 🆛 (`U+1F19B`), 🆜 (`U+1F19C`), 🆧 (`U+1F1A7`), 🆫 (`U+1F1AB`), 🆬 (`U+1F1AC`) - `cv05`: - E (`U+0045`), Æ (`U+00C6`), È (`U+00C8`), É (`U+00C9`), Ê (`U+00CA`), Ë (`U+00CB`), Ē (`U+0112`), Ĕ (`U+0114`), Ė (`U+0116`), Ę (`U+0118`), Ě (`U+011A`), Œ (`U+0152`), Ǝ (`U+018E`), Ǣ (`U+01E2`), Ǽ (`U+01FC`), Ȅ (`U+0204`), Ȇ (`U+0206`), Ȩ (`U+0228`), Ɇ (`U+0246`), ɶ (`U+0276`), Έ (`U+0388`), Ε (`U+0395`), Ѐ (`U+0400`), Ё (`U+0401`), Е (`U+0415`), Ӕ (`U+04D4`), Ӗ (`U+04D6`), Ԙ (`U+0518`), ᴁ (`U+1D01`), ᴇ (`U+1D07`), ᴭ (`U+1D2D`), ᴱ (`U+1D31`), ᴲ (`U+1D32`), Ḕ (`U+1E14`), Ḗ (`U+1E16`), Ḙ (`U+1E18`), Ḛ (`U+1E1A`), Ḝ (`U+1E1C`), Ẹ (`U+1EB8`), Ẻ (`U+1EBA`), Ẽ (`U+1EBC`), Ế (`U+1EBE`), Ề (`U+1EC0`), Ể (`U+1EC2`), Ễ (`U+1EC4`), Ệ (`U+1EC6`), Ἐ (`U+1F18`), Ἑ (`U+1F19`), Ἒ (`U+1F1A`), Ἓ (`U+1F1B`), Ἔ (`U+1F1C`), Ἕ (`U+1F1D`), Ὲ (`U+1FC8`), Έ (`U+1FC9`), ℡ (`U+2121`), ␃ (`U+2403`), ␄ (`U+2404`), ␅ (`U+2405`), ␇ (`U+2407`), ␐ (`U+2410`), ␗ (`U+2417`), ␙ (`U+2419`), ␛ (`U+241B`), ␡ (`U+2421`), Ⓔ (`U+24BA`), ⱻ (`U+2C7B`), 𐞣 (`U+107A3`), 𝐄 (`U+1D404`), 𝐸 (`U+1D438`), 𝑬 (`U+1D46C`), 𝖤 (`U+1D5A4`), 𝗘 (`U+1D5D8`), 𝘌 (`U+1D60C`), 𝙀 (`U+1D640`), 𝙴 (`U+1D674`), 𝚬 (`U+1D6AC`), 𝛦 (`U+1D6E6`), 𝜠 (`U+1D720`), 𝝚 (`U+1D75A`), 𝞔 (`U+1D794`), 🄔 (`U+1F114`), 🄴 (`U+1F134`), 🅔 (`U+1F154`), 🅴 (`U+1F174`), 🆓 (`U+1F193`), 🆕 (`U+1F195`), 🆨 (`U+1F1A8`), 🆩 (`U+1F1A9`) + E (`U+0045`), Æ (`U+00C6`), È (`U+00C8`), É (`U+00C9`), Ê (`U+00CA`), Ë (`U+00CB`), Ē (`U+0112`), Ĕ (`U+0114`), Ė (`U+0116`), Ę (`U+0118`), Ě (`U+011A`), Œ (`U+0152`), Ǝ (`U+018E`), Ǣ (`U+01E2`), Ǽ (`U+01FC`), Ȅ (`U+0204`), Ȇ (`U+0206`), Ȩ (`U+0228`), Ɇ (`U+0246`), ɶ (`U+0276`), Έ (`U+0388`), Ε (`U+0395`), Ѐ (`U+0400`), Ё (`U+0401`), Е (`U+0415`), Ӕ (`U+04D4`), Ӗ (`U+04D6`), Ԙ (`U+0518`), ᴁ (`U+1D01`), ᴇ (`U+1D07`), ᴭ (`U+1D2D`), ᴱ (`U+1D31`), ᴲ (`U+1D32`), Ḕ (`U+1E14`), Ḗ (`U+1E16`), Ḙ (`U+1E18`), Ḛ (`U+1E1A`), Ḝ (`U+1E1C`), Ẹ (`U+1EB8`), Ẻ (`U+1EBA`), Ẽ (`U+1EBC`), Ế (`U+1EBE`), Ề (`U+1EC0`), Ể (`U+1EC2`), Ễ (`U+1EC4`), Ệ (`U+1EC6`), Ἐ (`U+1F18`), Ἑ (`U+1F19`), Ἒ (`U+1F1A`), Ἓ (`U+1F1B`), Ἔ (`U+1F1C`), Ἕ (`U+1F1D`), Ὲ (`U+1FC8`), Έ (`U+1FC9`), ℡ (`U+2121`), ␃ (`U+2403`), ␄ (`U+2404`), ␅ (`U+2405`), ␇ (`U+2407`), ␐ (`U+2410`), ␗ (`U+2417`), ␙ (`U+2419`), ␛ (`U+241B`), ␡ (`U+2421`), Ⓔ (`U+24BA`), ⱻ (`U+2C7B`), 𐞣 (`U+107A3`), 𜳚 (`U+1CCDA`), 𝐄 (`U+1D404`), 𝐸 (`U+1D438`), 𝑬 (`U+1D46C`), 𝖤 (`U+1D5A4`), 𝗘 (`U+1D5D8`), 𝘌 (`U+1D60C`), 𝙀 (`U+1D640`), 𝙴 (`U+1D674`), 𝚬 (`U+1D6AC`), 𝛦 (`U+1D6E6`), 𝜠 (`U+1D720`), 𝝚 (`U+1D75A`), 𝞔 (`U+1D794`), 🄔 (`U+1F114`), 🄴 (`U+1F134`), 🅔 (`U+1F154`), 🅴 (`U+1F174`), 🆓 (`U+1F193`), 🆕 (`U+1F195`), 🆨 (`U+1F1A8`), 🆩 (`U+1F1A9`) - `cv06`: - F (`U+0046`), Ƒ (`U+0191`), Ḟ (`U+1E1E`), ₣ (`U+20A3`), ℉ (`U+2109`), Ⅎ (`U+2132`), ℻ (`U+213B`), ⅎ (`U+214E`), ␊ (`U+240A`), ␌ (`U+240C`), ␜ (`U+241C`), Ⓕ (`U+24BB`), ꜰ (`U+A730`), Ꞙ (`U+A798`), ꟳ (`U+A7F3`), ꟻ (`U+A7FB`), 𝐅 (`U+1D405`), 𝐹 (`U+1D439`), 𝑭 (`U+1D46D`), 𝖥 (`U+1D5A5`), 𝗙 (`U+1D5D9`), 𝘍 (`U+1D60D`), 𝙁 (`U+1D641`), 𝙵 (`U+1D675`), 🄕 (`U+1F115`), 🄵 (`U+1F135`), 🅕 (`U+1F155`), 🅵 (`U+1F175`), 🆓 (`U+1F193`) + F (`U+0046`), Ƒ (`U+0191`), Ḟ (`U+1E1E`), ₣ (`U+20A3`), ℉ (`U+2109`), Ⅎ (`U+2132`), ℻ (`U+213B`), ⅎ (`U+214E`), ␊ (`U+240A`), ␌ (`U+240C`), ␜ (`U+241C`), Ⓕ (`U+24BB`), ꜰ (`U+A730`), Ꞙ (`U+A798`), ꟳ (`U+A7F3`), ꟻ (`U+A7FB`), 𜳛 (`U+1CCDB`), 𝐅 (`U+1D405`), 𝐹 (`U+1D439`), 𝑭 (`U+1D46D`), 𝖥 (`U+1D5A5`), 𝗙 (`U+1D5D9`), 𝘍 (`U+1D60D`), 𝙁 (`U+1D641`), 𝙵 (`U+1D675`), 🄕 (`U+1F115`), 🄵 (`U+1F135`), 🅕 (`U+1F155`), 🅵 (`U+1F175`), 🆓 (`U+1F193`) - `cv07`: - G (`U+0047`), Ĝ (`U+011C`), Ğ (`U+011E`), Ġ (`U+0120`), Ģ (`U+0122`), Ɠ (`U+0193`), Ǥ (`U+01E4`), Ǧ (`U+01E6`), Ǵ (`U+01F4`), ɢ (`U+0262`), ʛ (`U+029B`), ᴳ (`U+1D33`), ᷛ (`U+1DDB`), Ḡ (`U+1E20`), ₲ (`U+20B2`), ⅁ (`U+2141`), ␝ (`U+241D`), Ⓖ (`U+24BC`), Ꞡ (`U+A7A0`), 𐞒 (`U+10792`), 𐞔 (`U+10794`), 𝐆 (`U+1D406`), 𝐺 (`U+1D43A`), 𝑮 (`U+1D46E`), 𝖦 (`U+1D5A6`), 𝗚 (`U+1D5DA`), 𝘎 (`U+1D60E`), 𝙂 (`U+1D642`), 𝙶 (`U+1D676`), 𝼂 (`U+1DF02`), 🄖 (`U+1F116`), 🄶 (`U+1F136`), 🅖 (`U+1F156`), 🅶 (`U+1F176`), 🆖 (`U+1F196`) + G (`U+0047`), Ĝ (`U+011C`), Ğ (`U+011E`), Ġ (`U+0120`), Ģ (`U+0122`), Ɠ (`U+0193`), Ǥ (`U+01E4`), Ǧ (`U+01E6`), Ǵ (`U+01F4`), ɢ (`U+0262`), ʛ (`U+029B`), ᴳ (`U+1D33`), ᷛ (`U+1DDB`), Ḡ (`U+1E20`), ₲ (`U+20B2`), ⅁ (`U+2141`), ␝ (`U+241D`), Ⓖ (`U+24BC`), Ꞡ (`U+A7A0`), 𐞒 (`U+10792`), 𐞔 (`U+10794`), 𜳜 (`U+1CCDC`), 𝐆 (`U+1D406`), 𝐺 (`U+1D43A`), 𝑮 (`U+1D46E`), 𝖦 (`U+1D5A6`), 𝗚 (`U+1D5DA`), 𝘎 (`U+1D60E`), 𝙂 (`U+1D642`), 𝙶 (`U+1D676`), 𝼂 (`U+1DF02`), 🄖 (`U+1F116`), 🄶 (`U+1F136`), 🅖 (`U+1F156`), 🅶 (`U+1F176`), 🆖 (`U+1F196`) - `cv08`: - H (`U+0048`), Ĥ (`U+0124`), Ħ (`U+0126`), Ƕ (`U+01F6`), Ȟ (`U+021E`), ʜ (`U+029C`), Ͱ (`U+0370`), Ή (`U+0389`), Η (`U+0397`), Њ (`U+040A`), Н (`U+041D`), Ң (`U+04A2`), Ҥ (`U+04A4`), Ӈ (`U+04C7`), Ӊ (`U+04C9`), Ԋ (`U+050A`), Ԣ (`U+0522`), Ԩ (`U+0528`), ᴴ (`U+1D34`), Ḣ (`U+1E22`), Ḥ (`U+1E24`), Ḧ (`U+1E26`), Ḩ (`U+1E28`), Ḫ (`U+1E2A`), Ἠ (`U+1F28`), Ἡ (`U+1F29`), Ἢ (`U+1F2A`), Ἣ (`U+1F2B`), Ἤ (`U+1F2C`), Ἥ (`U+1F2D`), Ἦ (`U+1F2E`), Ἧ (`U+1F2F`), ᾘ (`U+1F98`), ᾙ (`U+1F99`), ᾚ (`U+1F9A`), ᾛ (`U+1F9B`), ᾜ (`U+1F9C`), ᾝ (`U+1F9D`), ᾞ (`U+1F9E`), ᾟ (`U+1F9F`), Ὴ (`U+1FCA`), Ή (`U+1FCB`), ῌ (`U+1FCC`), ␁ (`U+2401`), ␉ (`U+2409`), Ⓗ (`U+24BD`), Ⱨ (`U+2C67`), Ⱶ (`U+2C75`), ⱶ (`U+2C76`), Ꜧ (`U+A726`), Ɥ (`U+A78D`), Ɦ (`U+A7AA`), Ꟶ (`U+A7F5`), ꟶ (`U+A7F6`), ꟸ (`U+A7F8`), 𐞖 (`U+10796`), 𝐇 (`U+1D407`), 𝐻 (`U+1D43B`), 𝑯 (`U+1D46F`), 𝖧 (`U+1D5A7`), 𝗛 (`U+1D5DB`), 𝘏 (`U+1D60F`), 𝙃 (`U+1D643`), 𝙷 (`U+1D677`), 𝚮 (`U+1D6AE`), 𝛨 (`U+1D6E8`), 𝜢 (`U+1D722`), 𝝜 (`U+1D75C`), 𝞖 (`U+1D796`), 🄗 (`U+1F117`), 🄷 (`U+1F137`), 🅊 (`U+1F14A`), 🅗 (`U+1F157`), 🅷 (`U+1F177`), 🆦 (`U+1F1A6`), 🆧 (`U+1F1A7`), 🆨 (`U+1F1A8`), 🆪 (`U+1F1AA`), 🆫 (`U+1F1AB`) + H (`U+0048`), Ĥ (`U+0124`), Ħ (`U+0126`), Ƕ (`U+01F6`), Ȟ (`U+021E`), ʜ (`U+029C`), Ͱ (`U+0370`), Ή (`U+0389`), Η (`U+0397`), Њ (`U+040A`), Н (`U+041D`), Ң (`U+04A2`), Ҥ (`U+04A4`), Ӈ (`U+04C7`), Ӊ (`U+04C9`), Ԋ (`U+050A`), Ԣ (`U+0522`), Ԩ (`U+0528`), ᴴ (`U+1D34`), Ḣ (`U+1E22`), Ḥ (`U+1E24`), Ḧ (`U+1E26`), Ḩ (`U+1E28`), Ḫ (`U+1E2A`), Ἠ (`U+1F28`), Ἡ (`U+1F29`), Ἢ (`U+1F2A`), Ἣ (`U+1F2B`), Ἤ (`U+1F2C`), Ἥ (`U+1F2D`), Ἦ (`U+1F2E`), Ἧ (`U+1F2F`), ᾘ (`U+1F98`), ᾙ (`U+1F99`), ᾚ (`U+1F9A`), ᾛ (`U+1F9B`), ᾜ (`U+1F9C`), ᾝ (`U+1F9D`), ᾞ (`U+1F9E`), ᾟ (`U+1F9F`), Ὴ (`U+1FCA`), Ή (`U+1FCB`), ῌ (`U+1FCC`), ␁ (`U+2401`), ␉ (`U+2409`), Ⓗ (`U+24BD`), Ⱨ (`U+2C67`), Ⱶ (`U+2C75`), ⱶ (`U+2C76`), Ꜧ (`U+A726`), Ɥ (`U+A78D`), Ɦ (`U+A7AA`), Ꟶ (`U+A7F5`), ꟶ (`U+A7F6`), ꟸ (`U+A7F8`), 𐞖 (`U+10796`), 𜳝 (`U+1CCDD`), 𝐇 (`U+1D407`), 𝐻 (`U+1D43B`), 𝑯 (`U+1D46F`), 𝖧 (`U+1D5A7`), 𝗛 (`U+1D5DB`), 𝘏 (`U+1D60F`), 𝙃 (`U+1D643`), 𝙷 (`U+1D677`), 𝚮 (`U+1D6AE`), 𝛨 (`U+1D6E8`), 𝜢 (`U+1D722`), 𝝜 (`U+1D75C`), 𝞖 (`U+1D796`), 🄗 (`U+1F117`), 🄷 (`U+1F137`), 🅊 (`U+1F14A`), 🅗 (`U+1F157`), 🅷 (`U+1F177`), 🆦 (`U+1F1A6`), 🆧 (`U+1F1A7`), 🆨 (`U+1F1A8`), 🆪 (`U+1F1AA`), 🆫 (`U+1F1AB`) - `cv09`: - I (`U+0049`), Ì (`U+00CC`), Í (`U+00CD`), Î (`U+00CE`), Ï (`U+00CF`), Ĩ (`U+0128`), Ī (`U+012A`), Ĭ (`U+012C`), Į (`U+012E`), İ (`U+0130`), IJ (`U+0132`), Ɨ (`U+0197`), Ǐ (`U+01CF`), Ȉ (`U+0208`), Ȋ (`U+020A`), Ί (`U+038A`), Ι (`U+0399`), Ϊ (`U+03AA`), І (`U+0406`), Ї (`U+0407`), Ӏ (`U+04C0`), ᴵ (`U+1D35`), Ḭ (`U+1E2C`), Ḯ (`U+1E2E`), Ỉ (`U+1EC8`), Ị (`U+1ECA`), Ἰ (`U+1F38`), Ἱ (`U+1F39`), Ἲ (`U+1F3A`), Ἳ (`U+1F3B`), Ἴ (`U+1F3C`), Ἵ (`U+1F3D`), Ἶ (`U+1F3E`), Ἷ (`U+1F3F`), Ῐ (`U+1FD8`), Ῑ (`U+1FD9`), Ὶ (`U+1FDA`), Ί (`U+1FDB`), Ⅰ (`U+2160`), Ⅱ (`U+2161`), Ⅲ (`U+2162`), Ⅳ (`U+2163`), Ⅵ (`U+2165`), Ⅶ (`U+2166`), Ⅷ (`U+2167`), Ⅸ (`U+2168`), Ⅺ (`U+216A`), Ⅻ (`U+216B`), ␏ (`U+240F`), Ⓘ (`U+24BE`), Ꞽ (`U+A7BC`), ꟷ (`U+A7F7`), ꟾ (`U+A7FE`), 𝐈 (`U+1D408`), 𝐼 (`U+1D43C`), 𝑰 (`U+1D470`), 𝖨 (`U+1D5A8`), 𝗜 (`U+1D5DC`), 𝘐 (`U+1D610`), 𝙄 (`U+1D644`), 𝙸 (`U+1D678`), 𝚰 (`U+1D6B0`), 𝛪 (`U+1D6EA`), 𝜤 (`U+1D724`), 𝝞 (`U+1D75E`), 𝞘 (`U+1D798`), 🄘 (`U+1F118`), 🄸 (`U+1F138`), 🅘 (`U+1F158`), 🅸 (`U+1F178`), 🆋 (`U+1F18B`), 🆔 (`U+1F194`), 🆨 (`U+1F1A8`) + I (`U+0049`), Ì (`U+00CC`), Í (`U+00CD`), Î (`U+00CE`), Ï (`U+00CF`), Ĩ (`U+0128`), Ī (`U+012A`), Ĭ (`U+012C`), Į (`U+012E`), İ (`U+0130`), IJ (`U+0132`), Ɨ (`U+0197`), Ǐ (`U+01CF`), Ȉ (`U+0208`), Ȋ (`U+020A`), Ί (`U+038A`), Ι (`U+0399`), Ϊ (`U+03AA`), І (`U+0406`), Ї (`U+0407`), Ӏ (`U+04C0`), ᴵ (`U+1D35`), Ḭ (`U+1E2C`), Ḯ (`U+1E2E`), Ỉ (`U+1EC8`), Ị (`U+1ECA`), Ἰ (`U+1F38`), Ἱ (`U+1F39`), Ἲ (`U+1F3A`), Ἳ (`U+1F3B`), Ἴ (`U+1F3C`), Ἵ (`U+1F3D`), Ἶ (`U+1F3E`), Ἷ (`U+1F3F`), Ῐ (`U+1FD8`), Ῑ (`U+1FD9`), Ὶ (`U+1FDA`), Ί (`U+1FDB`), Ⅰ (`U+2160`), Ⅱ (`U+2161`), Ⅲ (`U+2162`), Ⅳ (`U+2163`), Ⅵ (`U+2165`), Ⅶ (`U+2166`), Ⅷ (`U+2167`), Ⅸ (`U+2168`), Ⅺ (`U+216A`), Ⅻ (`U+216B`), ␏ (`U+240F`), Ⓘ (`U+24BE`), Ꞽ (`U+A7BC`), ꟷ (`U+A7F7`), ꟾ (`U+A7FE`), 𜳞 (`U+1CCDE`), 𝐈 (`U+1D408`), 𝐼 (`U+1D43C`), 𝑰 (`U+1D470`), 𝖨 (`U+1D5A8`), 𝗜 (`U+1D5DC`), 𝘐 (`U+1D610`), 𝙄 (`U+1D644`), 𝙸 (`U+1D678`), 𝚰 (`U+1D6B0`), 𝛪 (`U+1D6EA`), 𝜤 (`U+1D724`), 𝝞 (`U+1D75E`), 𝞘 (`U+1D798`), 🄘 (`U+1F118`), 🄸 (`U+1F138`), 🅘 (`U+1F158`), 🅸 (`U+1F178`), 🆋 (`U+1F18B`), 🆔 (`U+1F194`), 🆨 (`U+1F1A8`) - `cv10`: - J (`U+004A`), IJ (`U+0132`), Ĵ (`U+0134`), LJ (`U+01C7`), NJ (`U+01CA`), Ɉ (`U+0248`), Ϳ (`U+037F`), Ј (`U+0408`), ᴊ (`U+1D0A`), ᴶ (`U+1D36`), Ⓙ (`U+24BF`), Ʝ (`U+A7B2`),  (`U+FFFC`), 𝐉 (`U+1D409`), 𝐽 (`U+1D43D`), 𝑱 (`U+1D471`), 𝖩 (`U+1D5A9`), 𝗝 (`U+1D5DD`), 𝘑 (`U+1D611`), 𝙅 (`U+1D645`), 𝙹 (`U+1D679`), 🄙 (`U+1F119`), 🄹 (`U+1F139`), 🅙 (`U+1F159`), 🅹 (`U+1F179`), 🆐 (`U+1F190`) + J (`U+004A`), IJ (`U+0132`), Ĵ (`U+0134`), LJ (`U+01C7`), NJ (`U+01CA`), Ɉ (`U+0248`), Ϳ (`U+037F`), Ј (`U+0408`), ᴊ (`U+1D0A`), ᴶ (`U+1D36`), Ⓙ (`U+24BF`), Ʝ (`U+A7B2`),  (`U+FFFC`), 𜳟 (`U+1CCDF`), 𝐉 (`U+1D409`), 𝐽 (`U+1D43D`), 𝑱 (`U+1D471`), 𝖩 (`U+1D5A9`), 𝗝 (`U+1D5DD`), 𝘑 (`U+1D611`), 𝙅 (`U+1D645`), 𝙹 (`U+1D679`), 🄙 (`U+1F119`), 🄹 (`U+1F139`), 🅙 (`U+1F159`), 🅹 (`U+1F179`), 🆐 (`U+1F190`) - `cv11`: - K (`U+004B`), Ķ (`U+0136`), Ƙ (`U+0198`), Ǩ (`U+01E8`), Κ (`U+039A`), Ϗ (`U+03CF`), ᴋ (`U+1D0B`), ᴷ (`U+1D37`), Ḱ (`U+1E30`), Ḳ (`U+1E32`), Ḵ (`U+1E34`), ₭ (`U+20AD`), K (`U+212A`), ␆ (`U+2406`), ␕ (`U+2415`), Ⓚ (`U+24C0`), Ⱪ (`U+2C69`), Ꝁ (`U+A740`), Ꝃ (`U+A742`), Ꝅ (`U+A744`), Ꞣ (`U+A7A2`), Ʞ (`U+A7B0`), 𝐊 (`U+1D40A`), 𝐾 (`U+1D43E`), 𝑲 (`U+1D472`), 𝖪 (`U+1D5AA`), 𝗞 (`U+1D5DE`), 𝘒 (`U+1D612`), 𝙆 (`U+1D646`), 𝙺 (`U+1D67A`), 𝚱 (`U+1D6B1`), 𝛫 (`U+1D6EB`), 𝜥 (`U+1D725`), 𝝟 (`U+1D75F`), 𝞙 (`U+1D799`), 𝼐 (`U+1DF10`), 🄚 (`U+1F11A`), 🄺 (`U+1F13A`), 🅚 (`U+1F15A`), 🅺 (`U+1F17A`), 🆗 (`U+1F197`), 🆝 (`U+1F19D`), 🆞 (`U+1F19E`), 🆟 (`U+1F19F`) + K (`U+004B`), Ķ (`U+0136`), Ƙ (`U+0198`), Ǩ (`U+01E8`), Κ (`U+039A`), Ϗ (`U+03CF`), ᴋ (`U+1D0B`), ᴷ (`U+1D37`), Ḱ (`U+1E30`), Ḳ (`U+1E32`), Ḵ (`U+1E34`), ₭ (`U+20AD`), K (`U+212A`), ␆ (`U+2406`), ␕ (`U+2415`), Ⓚ (`U+24C0`), Ⱪ (`U+2C69`), Ꝁ (`U+A740`), Ꝃ (`U+A742`), Ꝅ (`U+A744`), Ꞣ (`U+A7A2`), Ʞ (`U+A7B0`), 𜳠 (`U+1CCE0`), 𝐊 (`U+1D40A`), 𝐾 (`U+1D43E`), 𝑲 (`U+1D472`), 𝖪 (`U+1D5AA`), 𝗞 (`U+1D5DE`), 𝘒 (`U+1D612`), 𝙆 (`U+1D646`), 𝙺 (`U+1D67A`), 𝚱 (`U+1D6B1`), 𝛫 (`U+1D6EB`), 𝜥 (`U+1D725`), 𝝟 (`U+1D75F`), 𝞙 (`U+1D799`), 𝼐 (`U+1DF10`), 🄚 (`U+1F11A`), 🄺 (`U+1F13A`), 🅚 (`U+1F15A`), 🅺 (`U+1F17A`), 🆗 (`U+1F197`), 🆝 (`U+1F19D`), 🆞 (`U+1F19E`), 🆟 (`U+1F19F`) - `cv12`: - L (`U+004C`), Ĺ (`U+0139`), Ļ (`U+013B`), Ľ (`U+013D`), Ŀ (`U+013F`), Ł (`U+0141`), LJ (`U+01C7`), Lj (`U+01C8`), Ƚ (`U+023D`), ʟ (`U+029F`), ᴌ (`U+1D0C`), ᴸ (`U+1D38`), ᶫ (`U+1DAB`), ᷞ (`U+1DDE`), Ḷ (`U+1E36`), Ḹ (`U+1E38`), Ḻ (`U+1E3A`), Ḽ (`U+1E3C`), Ỻ (`U+1EFA`), ℡ (`U+2121`), ⅂ (`U+2142`), Ⅼ (`U+216C`), ␀ (`U+2400`), ␇ (`U+2407`), ␊ (`U+240A`), ␐ (`U+2410`), ␡ (`U+2421`), ␤ (`U+2424`), Ⓛ (`U+24C1`), Ⱡ (`U+2C60`), Ɫ (`U+2C62`), Ꝉ (`U+A748`), Ꞁ (`U+A780`), Ɬ (`U+A7AD`),  (`U+E0A1`), 𐞜 (`U+1079C`), 𝐋 (`U+1D40B`), 𝐿 (`U+1D43F`), 𝑳 (`U+1D473`), 𝖫 (`U+1D5AB`), 𝗟 (`U+1D5DF`), 𝘓 (`U+1D613`), 𝙇 (`U+1D647`), 𝙻 (`U+1D67B`), 𝼄 (`U+1DF04`), 🄛 (`U+1F11B`), 🄻 (`U+1F13B`), 🅛 (`U+1F15B`), 🅻 (`U+1F17B`), 🆑 (`U+1F191`), 🆒 (`U+1F192`), 🆩 (`U+1F1A9`) + L (`U+004C`), Ĺ (`U+0139`), Ļ (`U+013B`), Ľ (`U+013D`), Ŀ (`U+013F`), Ł (`U+0141`), LJ (`U+01C7`), Lj (`U+01C8`), Ƚ (`U+023D`), ʟ (`U+029F`), ᴌ (`U+1D0C`), ᴸ (`U+1D38`), ᶫ (`U+1DAB`), ᷞ (`U+1DDE`), Ḷ (`U+1E36`), Ḹ (`U+1E38`), Ḻ (`U+1E3A`), Ḽ (`U+1E3C`), Ỻ (`U+1EFA`), ℡ (`U+2121`), ⅂ (`U+2142`), Ⅼ (`U+216C`), ␀ (`U+2400`), ␇ (`U+2407`), ␊ (`U+240A`), ␐ (`U+2410`), ␡ (`U+2421`), ␤ (`U+2424`), Ⓛ (`U+24C1`), Ⱡ (`U+2C60`), Ɫ (`U+2C62`), Ꝉ (`U+A748`), Ꞁ (`U+A780`), Ɬ (`U+A7AD`),  (`U+E0A1`), 𐞜 (`U+1079C`), 𜳡 (`U+1CCE1`), 𝐋 (`U+1D40B`), 𝐿 (`U+1D43F`), 𝑳 (`U+1D473`), 𝖫 (`U+1D5AB`), 𝗟 (`U+1D5DF`), 𝘓 (`U+1D613`), 𝙇 (`U+1D647`), 𝙻 (`U+1D67B`), 𝼄 (`U+1DF04`), 🄛 (`U+1F11B`), 🄻 (`U+1F13B`), 🅛 (`U+1F15B`), 🅻 (`U+1F17B`), 🆑 (`U+1F191`), 🆒 (`U+1F192`), 🆩 (`U+1F1A9`) - `cv13`: - M (`U+004D`), Μ (`U+039C`), М (`U+041C`), Ӎ (`U+04CD`), ᴍ (`U+1D0D`), ᴹ (`U+1D39`), ᷟ (`U+1DDF`), Ḿ (`U+1E3E`), Ṁ (`U+1E40`), Ṃ (`U+1E42`), ℠ (`U+2120`), ™ (`U+2122`), Ⅿ (`U+216F`), ␙ (`U+2419`), Ⓜ (`U+24C2`), Ɱ (`U+2C6E`), Ꙧ (`U+A666`), ꟽ (`U+A7FD`), 𝐌 (`U+1D40C`), 𝑀 (`U+1D440`), 𝑴 (`U+1D474`), 𝖬 (`U+1D5AC`), 𝗠 (`U+1D5E0`), 𝘔 (`U+1D614`), 𝙈 (`U+1D648`), 𝙼 (`U+1D67C`), 𝚳 (`U+1D6B3`), 𝛭 (`U+1D6ED`), 𝜧 (`U+1D727`), 𝝡 (`U+1D761`), 𝞛 (`U+1D79B`), 🄜 (`U+1F11C`), 🄼 (`U+1F13C`), 🅋 (`U+1F14B`), 🅜 (`U+1F15C`), 🅪 (`U+1F16A`), 🅫 (`U+1F16B`), 🅬 (`U+1F16C`), 🅼 (`U+1F17C`), 🆭 (`U+1F1AD`) + M (`U+004D`), Μ (`U+039C`), М (`U+041C`), Ӎ (`U+04CD`), ᴍ (`U+1D0D`), ᴹ (`U+1D39`), ᷟ (`U+1DDF`), Ḿ (`U+1E3E`), Ṁ (`U+1E40`), Ṃ (`U+1E42`), ℠ (`U+2120`), ™ (`U+2122`), Ⅿ (`U+216F`), ␙ (`U+2419`), Ⓜ (`U+24C2`), Ɱ (`U+2C6E`), Ꙧ (`U+A666`), ꟽ (`U+A7FD`), 𜳢 (`U+1CCE2`), 𝐌 (`U+1D40C`), 𝑀 (`U+1D440`), 𝑴 (`U+1D474`), 𝖬 (`U+1D5AC`), 𝗠 (`U+1D5E0`), 𝘔 (`U+1D614`), 𝙈 (`U+1D648`), 𝙼 (`U+1D67C`), 𝚳 (`U+1D6B3`), 𝛭 (`U+1D6ED`), 𝜧 (`U+1D727`), 𝝡 (`U+1D761`), 𝞛 (`U+1D79B`), 🄜 (`U+1F11C`), 🄼 (`U+1F13C`), 🅋 (`U+1F14B`), 🅜 (`U+1F15C`), 🅪 (`U+1F16A`), 🅫 (`U+1F16B`), 🅬 (`U+1F16C`), 🅼 (`U+1F17C`), 🆭 (`U+1F1AD`) - `cv14`: - N (`U+004E`), Ñ (`U+00D1`), Ń (`U+0143`), Ņ (`U+0145`), Ň (`U+0147`), Ŋ (`U+014A`), Ɲ (`U+019D`), NJ (`U+01CA`), Nj (`U+01CB`), Ǹ (`U+01F8`), ɴ (`U+0274`), Ν (`U+039D`), ᴎ (`U+1D0E`), ᴺ (`U+1D3A`), ᴻ (`U+1D3B`), ᶰ (`U+1DB0`), ᷡ (`U+1DE1`), Ṅ (`U+1E44`), Ṇ (`U+1E46`), Ṉ (`U+1E48`), Ṋ (`U+1E4A`), ₦ (`U+20A6`), № (`U+2116`), ␀ (`U+2400`), ␅ (`U+2405`), ␕ (`U+2415`), ␖ (`U+2416`), ␘ (`U+2418`), ␤ (`U+2424`), Ⓝ (`U+24C3`), Ꞑ (`U+A790`), Ꞥ (`U+A7A4`),  (`U+E0A1`),  (`U+E0A3`), 𝐍 (`U+1D40D`), 𝑁 (`U+1D441`), 𝑵 (`U+1D475`), 𝖭 (`U+1D5AD`), 𝗡 (`U+1D5E1`), 𝘕 (`U+1D615`), 𝙉 (`U+1D649`), 𝙽 (`U+1D67D`), 𝚴 (`U+1D6B4`), 𝛮 (`U+1D6EE`), 𝜨 (`U+1D728`), 𝝢 (`U+1D762`), 𝞜 (`U+1D79C`), 🄝 (`U+1F11D`), 🄽 (`U+1F13D`), 🅝 (`U+1F15D`), 🅽 (`U+1F17D`), 🆕 (`U+1F195`), 🆖 (`U+1F196`), 🆜 (`U+1F19C`) + N (`U+004E`), Ñ (`U+00D1`), Ń (`U+0143`), Ņ (`U+0145`), Ň (`U+0147`), Ŋ (`U+014A`), Ɲ (`U+019D`), NJ (`U+01CA`), Nj (`U+01CB`), Ǹ (`U+01F8`), ɴ (`U+0274`), Ν (`U+039D`), ᴎ (`U+1D0E`), ᴺ (`U+1D3A`), ᴻ (`U+1D3B`), ᶰ (`U+1DB0`), ᷡ (`U+1DE1`), Ṅ (`U+1E44`), Ṇ (`U+1E46`), Ṉ (`U+1E48`), Ṋ (`U+1E4A`), ₦ (`U+20A6`), № (`U+2116`), ␀ (`U+2400`), ␅ (`U+2405`), ␕ (`U+2415`), ␖ (`U+2416`), ␘ (`U+2418`), ␤ (`U+2424`), Ⓝ (`U+24C3`), Ꞑ (`U+A790`), Ꞥ (`U+A7A4`),  (`U+E0A1`),  (`U+E0A3`), 𜳣 (`U+1CCE3`), 𝐍 (`U+1D40D`), 𝑁 (`U+1D441`), 𝑵 (`U+1D475`), 𝖭 (`U+1D5AD`), 𝗡 (`U+1D5E1`), 𝘕 (`U+1D615`), 𝙉 (`U+1D649`), 𝙽 (`U+1D67D`), 𝚴 (`U+1D6B4`), 𝛮 (`U+1D6EE`), 𝜨 (`U+1D728`), 𝝢 (`U+1D762`), 𝞜 (`U+1D79C`), 🄝 (`U+1F11D`), 🄽 (`U+1F13D`), 🅝 (`U+1F15D`), 🅽 (`U+1F17D`), 🆕 (`U+1F195`), 🆖 (`U+1F196`), 🆜 (`U+1F19C`) - `cv15`: - P (`U+0050`), Ƥ (`U+01A4`), Ρ (`U+03A1`), Р (`U+0420`), Ҏ (`U+048E`), Ԗ (`U+0516`), ᴘ (`U+1D18`), ᴩ (`U+1D29`), ᴾ (`U+1D3E`), Ṕ (`U+1E54`), Ṗ (`U+1E56`), Ῥ (`U+1FEC`), ₧ (`U+20A7`), ₱ (`U+20B1`), ₽ (`U+20BD`), ℗ (`U+2117`), ␠ (`U+2420`), Ⓟ (`U+24C5`), Ᵽ (`U+2C63`), Ꝑ (`U+A750`), ꟼ (`U+A7FC`), 𝐏 (`U+1D40F`), 𝑃 (`U+1D443`), 𝑷 (`U+1D477`), 𝖯 (`U+1D5AF`), 𝗣 (`U+1D5E3`), 𝘗 (`U+1D617`), 𝙋 (`U+1D64B`), 𝙿 (`U+1D67F`), 𝚸 (`U+1D6B8`), 𝛲 (`U+1D6F2`), 𝜬 (`U+1D72C`), 𝝦 (`U+1D766`), 𝞠 (`U+1D7A0`), 🄟 (`U+1F11F`), 🄿 (`U+1F13F`), 🅎 (`U+1F14E`), 🅟 (`U+1F15F`), 🅿 (`U+1F17F`), 🆌 (`U+1F18C`), 🆙 (`U+1F199`), 🆣 (`U+1F1A3`), 🆤 (`U+1F1A4`) + P (`U+0050`), Ƥ (`U+01A4`), Ρ (`U+03A1`), Р (`U+0420`), Ҏ (`U+048E`), Ԗ (`U+0516`), ᴘ (`U+1D18`), ᴩ (`U+1D29`), ᴾ (`U+1D3E`), Ṕ (`U+1E54`), Ṗ (`U+1E56`), Ῥ (`U+1FEC`), ₧ (`U+20A7`), ₱ (`U+20B1`), ₽ (`U+20BD`), ℗ (`U+2117`), ␠ (`U+2420`), Ⓟ (`U+24C5`), Ᵽ (`U+2C63`), Ꝑ (`U+A750`), ꟼ (`U+A7FC`), 𜳥 (`U+1CCE5`), 𝐏 (`U+1D40F`), 𝑃 (`U+1D443`), 𝑷 (`U+1D477`), 𝖯 (`U+1D5AF`), 𝗣 (`U+1D5E3`), 𝘗 (`U+1D617`), 𝙋 (`U+1D64B`), 𝙿 (`U+1D67F`), 𝚸 (`U+1D6B8`), 𝛲 (`U+1D6F2`), 𝜬 (`U+1D72C`), 𝝦 (`U+1D766`), 𝞠 (`U+1D7A0`), 🄟 (`U+1F11F`), 🄿 (`U+1F13F`), 🅎 (`U+1F14E`), 🅟 (`U+1F15F`), 🅿 (`U+1F17F`), 🆌 (`U+1F18C`), 🆙 (`U+1F199`), 🆣 (`U+1F1A3`), 🆤 (`U+1F1A4`) - `cv16`: - Q (`U+0051`), Ԛ (`U+051A`), ℺ (`U+213A`), ␅ (`U+2405`), Ⓠ (`U+24C6`), ꞯ (`U+A7AF`), ꟴ (`U+A7F4`), 𝐐 (`U+1D410`), 𝑄 (`U+1D444`), 𝑸 (`U+1D478`), 𝖰 (`U+1D5B0`), 𝗤 (`U+1D5E4`), 𝘘 (`U+1D618`), 𝙌 (`U+1D64C`), 𝚀 (`U+1D680`), 🄠 (`U+1F120`), 🅀 (`U+1F140`), 🅠 (`U+1F160`), 🆀 (`U+1F180`) + Q (`U+0051`), Ԛ (`U+051A`), ℺ (`U+213A`), ␅ (`U+2405`), Ⓠ (`U+24C6`), ꞯ (`U+A7AF`), ꟴ (`U+A7F4`), 𜳦 (`U+1CCE6`), 𝐐 (`U+1D410`), 𝑄 (`U+1D444`), 𝑸 (`U+1D478`), 𝖰 (`U+1D5B0`), 𝗤 (`U+1D5E4`), 𝘘 (`U+1D618`), 𝙌 (`U+1D64C`), 𝚀 (`U+1D680`), 🄠 (`U+1F120`), 🅀 (`U+1F140`), 🅠 (`U+1F160`), 🆀 (`U+1F180`) - `cv17`: - R (`U+0052`), ® (`U+00AE`), Ŕ (`U+0154`), Ŗ (`U+0156`), Ř (`U+0158`), Ʀ (`U+01A6`), Ȑ (`U+0210`), Ȓ (`U+0212`), Ɍ (`U+024C`), ʀ (`U+0280`), ʁ (`U+0281`), ʶ (`U+02B6`), ᴙ (`U+1D19`), ᴚ (`U+1D1A`), ᴿ (`U+1D3F`), ᷢ (`U+1DE2`), ᷣ (`U+1DE3`), Ṙ (`U+1E58`), Ṛ (`U+1E5A`), Ṝ (`U+1E5C`), Ṟ (`U+1E5E`), ₨ (`U+20A8`), ₹ (`U+20B9`), ␍ (`U+240D`), ␞ (`U+241E`), Ⓡ (`U+24C7`), Ɽ (`U+2C64`), Ꝛ (`U+A75A`), ꝛ (`U+A75B`), Ꞧ (`U+A7A6`), ꭆ (`U+AB46`), 𐞪 (`U+107AA`), 𝐑 (`U+1D411`), 𝑅 (`U+1D445`), 𝑹 (`U+1D479`), 𝖱 (`U+1D5B1`), 𝗥 (`U+1D5E5`), 𝘙 (`U+1D619`), 𝙍 (`U+1D64D`), 𝚁 (`U+1D681`), 🄡 (`U+1F121`), 🄬 (`U+1F12C`), 🅁 (`U+1F141`), 🅡 (`U+1F161`), 🅬 (`U+1F16C`), 🆁 (`U+1F181`), 🆓 (`U+1F193`), 🆜 (`U+1F19C`), 🆧 (`U+1F1A7`), 🆨 (`U+1F1A8`) + R (`U+0052`), ® (`U+00AE`), Ŕ (`U+0154`), Ŗ (`U+0156`), Ř (`U+0158`), Ʀ (`U+01A6`), Ȑ (`U+0210`), Ȓ (`U+0212`), Ɍ (`U+024C`), ʀ (`U+0280`), ʁ (`U+0281`), ʶ (`U+02B6`), ᴙ (`U+1D19`), ᴚ (`U+1D1A`), ᴿ (`U+1D3F`), ᷢ (`U+1DE2`), ᷣ (`U+1DE3`), Ṙ (`U+1E58`), Ṛ (`U+1E5A`), Ṝ (`U+1E5C`), Ṟ (`U+1E5E`), ₨ (`U+20A8`), ₹ (`U+20B9`), ␍ (`U+240D`), ␞ (`U+241E`), Ⓡ (`U+24C7`), Ɽ (`U+2C64`), Ꝛ (`U+A75A`), ꝛ (`U+A75B`), Ꞧ (`U+A7A6`), ꭆ (`U+AB46`), 𐞪 (`U+107AA`), 𜳧 (`U+1CCE7`), 𝐑 (`U+1D411`), 𝑅 (`U+1D445`), 𝑹 (`U+1D479`), 𝖱 (`U+1D5B1`), 𝗥 (`U+1D5E5`), 𝘙 (`U+1D619`), 𝙍 (`U+1D64D`), 𝚁 (`U+1D681`), 🄡 (`U+1F121`), 🄬 (`U+1F12C`), 🅁 (`U+1F141`), 🅡 (`U+1F161`), 🅬 (`U+1F16C`), 🆁 (`U+1F181`), 🆓 (`U+1F193`), 🆜 (`U+1F19C`), 🆧 (`U+1F1A7`), 🆨 (`U+1F1A8`) - `cv18`: - $ (`U+0024`), S (`U+0053`), Ś (`U+015A`), Ŝ (`U+015C`), Ş (`U+015E`), Š (`U+0160`), Ƨ (`U+01A7`), Ș (`U+0218`), Ѕ (`U+0405`), Ṡ (`U+1E60`), Ṣ (`U+1E62`), Ṥ (`U+1E64`), Ṧ (`U+1E66`), Ṩ (`U+1E68`), ₴ (`U+20B4`), ℠ (`U+2120`), ⅍ (`U+214D`), ␁ (`U+2401`), ␂ (`U+2402`), ␈ (`U+2408`), ␎ (`U+240E`), ␏ (`U+240F`), ␖ (`U+2416`), ␚ (`U+241A`), ␛ (`U+241B`), ␜ (`U+241C`), ␝ (`U+241D`), ␞ (`U+241E`), ␟ (`U+241F`), ␠ (`U+2420`), Ⓢ (`U+24C8`), Ȿ (`U+2C7E`), Ꙅ (`U+A644`), ꜱ (`U+A731`), Ꞩ (`U+A7A8`), Ʂ (`U+A7C5`), Ꟊ (`U+A7C9`), 𝐒 (`U+1D412`), 𝑆 (`U+1D446`), 𝑺 (`U+1D47A`), 𝖲 (`U+1D5B2`), 𝗦 (`U+1D5E6`), 𝘚 (`U+1D61A`), 𝙎 (`U+1D64E`), 𝚂 (`U+1D682`), 🄏 (`U+1F10F`), 🄢 (`U+1F122`), 🄪 (`U+1F12A`), 🅂 (`U+1F142`), 🅌 (`U+1F14C`), 🅍 (`U+1F14D`), 🅢 (`U+1F162`), 🆂 (`U+1F182`), 🆍 (`U+1F18D`), 🆘 (`U+1F198`), 🆚 (`U+1F19A`), 🆜 (`U+1F19C`), 🆨 (`U+1F1A8`), 🆩 (`U+1F1A9`), 🆪 (`U+1F1AA`) + $ (`U+0024`), S (`U+0053`), Ś (`U+015A`), Ŝ (`U+015C`), Ş (`U+015E`), Š (`U+0160`), Ƨ (`U+01A7`), Ș (`U+0218`), Ѕ (`U+0405`), Ṡ (`U+1E60`), Ṣ (`U+1E62`), Ṥ (`U+1E64`), Ṧ (`U+1E66`), Ṩ (`U+1E68`), ₴ (`U+20B4`), ℠ (`U+2120`), ⅍ (`U+214D`), ␁ (`U+2401`), ␂ (`U+2402`), ␈ (`U+2408`), ␎ (`U+240E`), ␏ (`U+240F`), ␖ (`U+2416`), ␚ (`U+241A`), ␛ (`U+241B`), ␜ (`U+241C`), ␝ (`U+241D`), ␞ (`U+241E`), ␟ (`U+241F`), ␠ (`U+2420`), Ⓢ (`U+24C8`), Ȿ (`U+2C7E`), Ꙅ (`U+A644`), ꜱ (`U+A731`), Ꞩ (`U+A7A8`), Ʂ (`U+A7C5`), Ꟊ (`U+A7C9`), 𜳨 (`U+1CCE8`), 𝐒 (`U+1D412`), 𝑆 (`U+1D446`), 𝑺 (`U+1D47A`), 𝖲 (`U+1D5B2`), 𝗦 (`U+1D5E6`), 𝘚 (`U+1D61A`), 𝙎 (`U+1D64E`), 𝚂 (`U+1D682`), 🄏 (`U+1F10F`), 🄢 (`U+1F122`), 🄪 (`U+1F12A`), 🅂 (`U+1F142`), 🅌 (`U+1F14C`), 🅍 (`U+1F14D`), 🅢 (`U+1F162`), 🆂 (`U+1F182`), 🆍 (`U+1F18D`), 🆘 (`U+1F198`), 🆚 (`U+1F19A`), 🆜 (`U+1F19C`), 🆨 (`U+1F1A8`), 🆩 (`U+1F1A9`), 🆪 (`U+1F1AA`) - `cv19`: - T (`U+0054`), Ţ (`U+0162`), Ť (`U+0164`), Ŧ (`U+0166`), Ƭ (`U+01AC`), Ʈ (`U+01AE`), Ț (`U+021A`), Ⱦ (`U+023E`), Τ (`U+03A4`), Т (`U+0422`), т (`U+0442`), Ҭ (`U+04AC`), ҭ (`U+04AD`), Ҵ (`U+04B4`), ҵ (`U+04B5`), Ԏ (`U+050E`), ԏ (`U+050F`), ᲄ (`U+1C84`), ᴛ (`U+1D1B`), ᵀ (`U+1D40`), Ṫ (`U+1E6A`), Ṭ (`U+1E6C`), Ṯ (`U+1E6E`), Ṱ (`U+1E70`), ₮ (`U+20AE`), ₸ (`U+20B8`), ℡ (`U+2121`), ™ (`U+2122`), ␂ (`U+2402`), ␃ (`U+2403`), ␄ (`U+2404`), ␉ (`U+2409`), ␋ (`U+240B`), ␗ (`U+2417`), Ⓣ (`U+24C9`), ⷮ (`U+2DEE`), ⷵ (`U+2DF5`), Ꚋ (`U+A68A`), ꚋ (`U+A68B`), Ꚍ (`U+A68C`), ꚍ (`U+A68D`), Ʇ (`U+A7B1`), 𝐓 (`U+1D413`), 𝑇 (`U+1D447`), 𝑻 (`U+1D47B`), 𝖳 (`U+1D5B3`), 𝗧 (`U+1D5E7`), 𝘛 (`U+1D61B`), 𝙏 (`U+1D64F`), 𝚃 (`U+1D683`), 𝚻 (`U+1D6BB`), 𝛵 (`U+1D6F5`), 𝜯 (`U+1D72F`), 𝝩 (`U+1D769`), 𝞣 (`U+1D7A3`), 𞁀 (`U+1E040`), 🄣 (`U+1F123`), 🅃 (`U+1F143`), 🅣 (`U+1F163`), 🆃 (`U+1F183`) + T (`U+0054`), Ţ (`U+0162`), Ť (`U+0164`), Ŧ (`U+0166`), Ƭ (`U+01AC`), Ʈ (`U+01AE`), Ț (`U+021A`), Ⱦ (`U+023E`), Τ (`U+03A4`), Т (`U+0422`), т (`U+0442`), Ҭ (`U+04AC`), ҭ (`U+04AD`), Ҵ (`U+04B4`), ҵ (`U+04B5`), Ԏ (`U+050E`), ԏ (`U+050F`), ᲄ (`U+1C84`), ᴛ (`U+1D1B`), ᵀ (`U+1D40`), Ṫ (`U+1E6A`), Ṭ (`U+1E6C`), Ṯ (`U+1E6E`), Ṱ (`U+1E70`), ₮ (`U+20AE`), ₸ (`U+20B8`), ℡ (`U+2121`), ™ (`U+2122`), ␂ (`U+2402`), ␃ (`U+2403`), ␄ (`U+2404`), ␉ (`U+2409`), ␋ (`U+240B`), ␗ (`U+2417`), Ⓣ (`U+24C9`), ⷮ (`U+2DEE`), ⷵ (`U+2DF5`), Ꚋ (`U+A68A`), ꚋ (`U+A68B`), Ꚍ (`U+A68C`), ꚍ (`U+A68D`), Ʇ (`U+A7B1`), 𜳩 (`U+1CCE9`), 𝐓 (`U+1D413`), 𝑇 (`U+1D447`), 𝑻 (`U+1D47B`), 𝖳 (`U+1D5B3`), 𝗧 (`U+1D5E7`), 𝘛 (`U+1D61B`), 𝙏 (`U+1D64F`), 𝚃 (`U+1D683`), 𝚻 (`U+1D6BB`), 𝛵 (`U+1D6F5`), 𝜯 (`U+1D72F`), 𝝩 (`U+1D769`), 𝞣 (`U+1D7A3`), 𞁀 (`U+1E040`), 🄣 (`U+1F123`), 🅃 (`U+1F143`), 🅣 (`U+1F163`), 🆃 (`U+1F183`) - `cv20`: - U (`U+0055`), Ù (`U+00D9`), Ú (`U+00DA`), Û (`U+00DB`), Ü (`U+00DC`), Ũ (`U+0168`), Ū (`U+016A`), Ŭ (`U+016C`), Ů (`U+016E`), Ű (`U+0170`), Ų (`U+0172`), Ư (`U+01AF`), Ǔ (`U+01D3`), Ǖ (`U+01D5`), Ǘ (`U+01D7`), Ǚ (`U+01D9`), Ǜ (`U+01DB`), Ȕ (`U+0214`), Ȗ (`U+0216`), Ʉ (`U+0244`), ᴜ (`U+1D1C`), ᵁ (`U+1D41`), ᵾ (`U+1D7E`), ᶸ (`U+1DB8`), Ṳ (`U+1E72`), Ṵ (`U+1E74`), Ṷ (`U+1E76`), Ṹ (`U+1E78`), Ṻ (`U+1E7A`), Ụ (`U+1EE4`), Ủ (`U+1EE6`), Ứ (`U+1EE8`), Ừ (`U+1EEA`), Ử (`U+1EEC`), Ữ (`U+1EEE`), Ự (`U+1EF0`), ␀ (`U+2400`), ␚ (`U+241A`), ␟ (`U+241F`), Ⓤ (`U+24CA`), Ꜷ (`U+A736`), Ꞹ (`U+A7B8`), Ꞿ (`U+A7BE`), 𝐔 (`U+1D414`), 𝑈 (`U+1D448`), 𝑼 (`U+1D47C`), 𝖴 (`U+1D5B4`), 𝗨 (`U+1D5E8`), 𝘜 (`U+1D61C`), 𝙐 (`U+1D650`), 𝚄 (`U+1D684`), 🄤 (`U+1F124`), 🅄 (`U+1F144`), 🅤 (`U+1F164`), 🆄 (`U+1F184`), 🆙 (`U+1F199`), 🆫 (`U+1F1AB`) + U (`U+0055`), Ù (`U+00D9`), Ú (`U+00DA`), Û (`U+00DB`), Ü (`U+00DC`), Ũ (`U+0168`), Ū (`U+016A`), Ŭ (`U+016C`), Ů (`U+016E`), Ű (`U+0170`), Ų (`U+0172`), Ư (`U+01AF`), Ǔ (`U+01D3`), Ǖ (`U+01D5`), Ǘ (`U+01D7`), Ǚ (`U+01D9`), Ǜ (`U+01DB`), Ȕ (`U+0214`), Ȗ (`U+0216`), Ʉ (`U+0244`), ᴜ (`U+1D1C`), ᵁ (`U+1D41`), ᵾ (`U+1D7E`), ᶸ (`U+1DB8`), Ṳ (`U+1E72`), Ṵ (`U+1E74`), Ṷ (`U+1E76`), Ṹ (`U+1E78`), Ṻ (`U+1E7A`), Ụ (`U+1EE4`), Ủ (`U+1EE6`), Ứ (`U+1EE8`), Ừ (`U+1EEA`), Ử (`U+1EEC`), Ữ (`U+1EEE`), Ự (`U+1EF0`), ␀ (`U+2400`), ␚ (`U+241A`), ␟ (`U+241F`), Ⓤ (`U+24CA`), Ꜷ (`U+A736`), Ꞹ (`U+A7B8`), Ꞿ (`U+A7BE`), 𜳪 (`U+1CCEA`), 𝐔 (`U+1D414`), 𝑈 (`U+1D448`), 𝑼 (`U+1D47C`), 𝖴 (`U+1D5B4`), 𝗨 (`U+1D5E8`), 𝘜 (`U+1D61C`), 𝙐 (`U+1D650`), 𝚄 (`U+1D684`), 🄤 (`U+1F124`), 🅄 (`U+1F144`), 🅤 (`U+1F164`), 🆄 (`U+1F184`), 🆙 (`U+1F199`), 🆫 (`U+1F1AB`) - `cv21`: - V (`U+0056`), Ʋ (`U+01B2`), Ʌ (`U+0245`), Ѵ (`U+0474`), Ѷ (`U+0476`), ᴠ (`U+1D20`), Ṽ (`U+1E7C`), Ṿ (`U+1E7E`), Ⅳ (`U+2163`), Ⅴ (`U+2164`), Ⅵ (`U+2165`), Ⅶ (`U+2166`), Ⅷ (`U+2167`), ␋ (`U+240B`), Ⓥ (`U+24CB`), ⱽ (`U+2C7D`), Ꙋ (`U+A64A`), Ꙟ (`U+A65E`), 𝐕 (`U+1D415`), 𝑉 (`U+1D449`), 𝑽 (`U+1D47D`), 𝖵 (`U+1D5B5`), 𝗩 (`U+1D5E9`), 𝘝 (`U+1D61D`), 𝙑 (`U+1D651`), 𝚅 (`U+1D685`), 🄥 (`U+1F125`), 🅅 (`U+1F145`), 🅊 (`U+1F14A`), 🅋 (`U+1F14B`), 🅎 (`U+1F14E`), 🅥 (`U+1F165`), 🆅 (`U+1F185`), 🆚 (`U+1F19A`), 🆪 (`U+1F1AA`), 🆬 (`U+1F1AC`) + V (`U+0056`), Ʋ (`U+01B2`), Ʌ (`U+0245`), Ѵ (`U+0474`), Ѷ (`U+0476`), ᴠ (`U+1D20`), Ṽ (`U+1E7C`), Ṿ (`U+1E7E`), Ⅳ (`U+2163`), Ⅴ (`U+2164`), Ⅵ (`U+2165`), Ⅶ (`U+2166`), Ⅷ (`U+2167`), ␋ (`U+240B`), Ⓥ (`U+24CB`), ⱽ (`U+2C7D`), Ꙋ (`U+A64A`), Ꙟ (`U+A65E`), 𜳫 (`U+1CCEB`), 𝐕 (`U+1D415`), 𝑉 (`U+1D449`), 𝑽 (`U+1D47D`), 𝖵 (`U+1D5B5`), 𝗩 (`U+1D5E9`), 𝘝 (`U+1D61D`), 𝙑 (`U+1D651`), 𝚅 (`U+1D685`), 🄥 (`U+1F125`), 🅅 (`U+1F145`), 🅊 (`U+1F14A`), 🅋 (`U+1F14B`), 🅎 (`U+1F14E`), 🅥 (`U+1F165`), 🆅 (`U+1F185`), 🆚 (`U+1F19A`), 🆪 (`U+1F1AA`), 🆬 (`U+1F1AC`) - `cv22`: - W (`U+0057`), Ŵ (`U+0174`), Ԝ (`U+051C`), ᴡ (`U+1D21`), ᵂ (`U+1D42`), Ẁ (`U+1E80`), Ẃ (`U+1E82`), Ẅ (`U+1E84`), Ẇ (`U+1E86`), Ẉ (`U+1E88`), ₩ (`U+20A9`), Ⓦ (`U+24CC`), Ⱳ (`U+2C72`), 𝐖 (`U+1D416`), 𝑊 (`U+1D44A`), 𝑾 (`U+1D47E`), 𝖶 (`U+1D5B6`), 𝗪 (`U+1D5EA`), 𝘞 (`U+1D61E`), 𝙒 (`U+1D652`), 𝚆 (`U+1D686`), 🄦 (`U+1F126`), 🄮 (`U+1F12E`), 🅆 (`U+1F146`), 🅏 (`U+1F14F`), 🅦 (`U+1F166`), 🆆 (`U+1F186`), 🆏 (`U+1F18F`), 🆕 (`U+1F195`) + W (`U+0057`), Ŵ (`U+0174`), Ԝ (`U+051C`), ᴡ (`U+1D21`), ᵂ (`U+1D42`), Ẁ (`U+1E80`), Ẃ (`U+1E82`), Ẅ (`U+1E84`), Ẇ (`U+1E86`), Ẉ (`U+1E88`), ₩ (`U+20A9`), Ⓦ (`U+24CC`), Ⱳ (`U+2C72`), 𜳬 (`U+1CCEC`), 𝐖 (`U+1D416`), 𝑊 (`U+1D44A`), 𝑾 (`U+1D47E`), 𝖶 (`U+1D5B6`), 𝗪 (`U+1D5EA`), 𝘞 (`U+1D61E`), 𝙒 (`U+1D652`), 𝚆 (`U+1D686`), 🄦 (`U+1F126`), 🄮 (`U+1F12E`), 🅆 (`U+1F146`), 🅏 (`U+1F14F`), 🅦 (`U+1F166`), 🆆 (`U+1F186`), 🆏 (`U+1F18F`), 🆕 (`U+1F195`) - `cv23`: - X (`U+0058`), Χ (`U+03A7`), Х (`U+0425`), Ҳ (`U+04B2`), Ӽ (`U+04FC`), Ӿ (`U+04FE`), Ԕ (`U+0514`), Ԗ (`U+0516`), Ẋ (`U+1E8A`), Ẍ (`U+1E8C`), ℻ (`U+213B`), Ⅸ (`U+2168`), Ⅹ (`U+2169`), Ⅺ (`U+216A`), Ⅻ (`U+216B`), ␂ (`U+2402`), ␃ (`U+2403`), Ⓧ (`U+24CD`), Ꭓ (`U+A7B3`), 𝐗 (`U+1D417`), 𝑋 (`U+1D44B`), 𝑿 (`U+1D47F`), 𝖷 (`U+1D5B7`), 𝗫 (`U+1D5EB`), 𝘟 (`U+1D61F`), 𝙓 (`U+1D653`), 𝚇 (`U+1D687`), 𝚾 (`U+1D6BE`), 𝛸 (`U+1D6F8`), 𝜲 (`U+1D732`), 𝝬 (`U+1D76C`), 𝞦 (`U+1D7A6`), 🄧 (`U+1F127`), 🅇 (`U+1F147`), 🅧 (`U+1F167`), 🆇 (`U+1F187`) + X (`U+0058`), Χ (`U+03A7`), Х (`U+0425`), Ҳ (`U+04B2`), Ӽ (`U+04FC`), Ӿ (`U+04FE`), Ԕ (`U+0514`), Ԗ (`U+0516`), Ẋ (`U+1E8A`), Ẍ (`U+1E8C`), ℻ (`U+213B`), Ⅸ (`U+2168`), Ⅹ (`U+2169`), Ⅺ (`U+216A`), Ⅻ (`U+216B`), ␂ (`U+2402`), ␃ (`U+2403`), Ⓧ (`U+24CD`), Ꭓ (`U+A7B3`), 𜳭 (`U+1CCED`), 𝐗 (`U+1D417`), 𝑋 (`U+1D44B`), 𝑿 (`U+1D47F`), 𝖷 (`U+1D5B7`), 𝗫 (`U+1D5EB`), 𝘟 (`U+1D61F`), 𝙓 (`U+1D653`), 𝚇 (`U+1D687`), 𝚾 (`U+1D6BE`), 𝛸 (`U+1D6F8`), 𝜲 (`U+1D732`), 𝝬 (`U+1D76C`), 𝞦 (`U+1D7A6`), 🄧 (`U+1F127`), 🅇 (`U+1F147`), 🅧 (`U+1F167`), 🆇 (`U+1F187`) - `cv24`: - Y (`U+0059`), ¥ (`U+00A5`), Ý (`U+00DD`), Ŷ (`U+0176`), Ÿ (`U+0178`), Ƴ (`U+01B3`), Ȳ (`U+0232`), Ɏ (`U+024E`), ʏ (`U+028F`), Ύ (`U+038E`), Υ (`U+03A5`), Ϋ (`U+03AB`), ϒ (`U+03D2`), ϓ (`U+03D3`), ϔ (`U+03D4`), Ү (`U+04AE`), ү (`U+04AF`), Ұ (`U+04B0`), ұ (`U+04B1`), Ẏ (`U+1E8E`), Ỳ (`U+1EF2`), Ỵ (`U+1EF4`), Ỷ (`U+1EF6`), Ỹ (`U+1EF8`), Ỿ (`U+1EFE`), Ὑ (`U+1F59`), Ὓ (`U+1F5B`), Ὕ (`U+1F5D`), Ὗ (`U+1F5F`), Ῠ (`U+1FE8`), Ῡ (`U+1FE9`), Ὺ (`U+1FEA`), Ύ (`U+1FEB`), ⅄ (`U+2144`), ␖ (`U+2416`), Ⓨ (`U+24CE`), 𐞲 (`U+107B2`), 𝐘 (`U+1D418`), 𝑌 (`U+1D44C`), 𝒀 (`U+1D480`), 𝖸 (`U+1D5B8`), 𝗬 (`U+1D5EC`), 𝘠 (`U+1D620`), 𝙔 (`U+1D654`), 𝚈 (`U+1D688`), 𝚼 (`U+1D6BC`), 𝛶 (`U+1D6F6`), 𝜰 (`U+1D730`), 𝝪 (`U+1D76A`), 𝞤 (`U+1D7A4`), 𞁏 (`U+1E04F`), 𞁭 (`U+1E06D`), 🄨 (`U+1F128`), 🅈 (`U+1F148`), 🅨 (`U+1F168`), 🆈 (`U+1F188`) + Y (`U+0059`), ¥ (`U+00A5`), Ý (`U+00DD`), Ŷ (`U+0176`), Ÿ (`U+0178`), Ƴ (`U+01B3`), Ȳ (`U+0232`), Ɏ (`U+024E`), ʏ (`U+028F`), Ύ (`U+038E`), Υ (`U+03A5`), Ϋ (`U+03AB`), ϒ (`U+03D2`), ϓ (`U+03D3`), ϔ (`U+03D4`), Ү (`U+04AE`), ү (`U+04AF`), Ұ (`U+04B0`), ұ (`U+04B1`), Ẏ (`U+1E8E`), Ỳ (`U+1EF2`), Ỵ (`U+1EF4`), Ỷ (`U+1EF6`), Ỹ (`U+1EF8`), Ỿ (`U+1EFE`), Ὑ (`U+1F59`), Ὓ (`U+1F5B`), Ὕ (`U+1F5D`), Ὗ (`U+1F5F`), Ῠ (`U+1FE8`), Ῡ (`U+1FE9`), Ὺ (`U+1FEA`), Ύ (`U+1FEB`), ⅄ (`U+2144`), ␖ (`U+2416`), Ⓨ (`U+24CE`), 𐞲 (`U+107B2`), 𜳮 (`U+1CCEE`), 𝐘 (`U+1D418`), 𝑌 (`U+1D44C`), 𝒀 (`U+1D480`), 𝖸 (`U+1D5B8`), 𝗬 (`U+1D5EC`), 𝘠 (`U+1D620`), 𝙔 (`U+1D654`), 𝚈 (`U+1D688`), 𝚼 (`U+1D6BC`), 𝛶 (`U+1D6F6`), 𝜰 (`U+1D730`), 𝝪 (`U+1D76A`), 𝞤 (`U+1D7A4`), 𞁏 (`U+1E04F`), 𞁭 (`U+1E06D`), 🄨 (`U+1F128`), 🅈 (`U+1F148`), 🅨 (`U+1F168`), 🆈 (`U+1F188`) - `cv25`: - Z (`U+005A`), Ź (`U+0179`), Ż (`U+017B`), Ž (`U+017D`), Ƶ (`U+01B5`), Ʒ (`U+01B7`), Ƹ (`U+01B8`), DŽ (`U+01C4`), Ǯ (`U+01EE`), DZ (`U+01F1`), Ȥ (`U+0224`), Ζ (`U+0396`), Ӡ (`U+04E0`), ᴢ (`U+1D22`), ᴣ (`U+1D23`), Ẑ (`U+1E90`), Ẓ (`U+1E92`), Ẕ (`U+1E94`), Ⓩ (`U+24CF`), Ⱬ (`U+2C6B`), Ɀ (`U+2C7F`), Ꙁ (`U+A640`), Ꙃ (`U+A642`), Ᶎ (`U+A7C6`), 𝐙 (`U+1D419`), 𝑍 (`U+1D44D`), 𝒁 (`U+1D481`), 𝖹 (`U+1D5B9`), 𝗭 (`U+1D5ED`), 𝘡 (`U+1D621`), 𝙕 (`U+1D655`), 𝚉 (`U+1D689`), 𝚭 (`U+1D6AD`), 𝛧 (`U+1D6E7`), 𝜡 (`U+1D721`), 𝝛 (`U+1D75B`), 𝞕 (`U+1D795`), 🄩 (`U+1F129`), 🅉 (`U+1F149`), 🅩 (`U+1F169`), 🆉 (`U+1F189`) + Z (`U+005A`), Ź (`U+0179`), Ż (`U+017B`), Ž (`U+017D`), Ƶ (`U+01B5`), Ʒ (`U+01B7`), Ƹ (`U+01B8`), DŽ (`U+01C4`), Ǯ (`U+01EE`), DZ (`U+01F1`), Ȥ (`U+0224`), Ζ (`U+0396`), Ӡ (`U+04E0`), ᴢ (`U+1D22`), ᴣ (`U+1D23`), Ẑ (`U+1E90`), Ẓ (`U+1E92`), Ẕ (`U+1E94`), Ⓩ (`U+24CF`), Ⱬ (`U+2C6B`), Ɀ (`U+2C7F`), Ꙁ (`U+A640`), Ꙃ (`U+A642`), Ᶎ (`U+A7C6`), 𜳯 (`U+1CCEF`), 𝐙 (`U+1D419`), 𝑍 (`U+1D44D`), 𝒁 (`U+1D481`), 𝖹 (`U+1D5B9`), 𝗭 (`U+1D5ED`), 𝘡 (`U+1D621`), 𝙕 (`U+1D655`), 𝚉 (`U+1D689`), 𝚭 (`U+1D6AD`), 𝛧 (`U+1D6E7`), 𝜡 (`U+1D721`), 𝝛 (`U+1D75B`), 𝞕 (`U+1D795`), 🄩 (`U+1F129`), 🅉 (`U+1F149`), 🅩 (`U+1F169`), 🆉 (`U+1F189`) - `cv26`: @@ -341,43 +341,43 @@ - `cv85`: - 0 (`U+0030`), ⁰ (`U+2070`), ₀ (`U+2080`), ⅒ (`U+2152`), ↉ (`U+2189`), ⍬ (`U+236C`), ⏨ (`U+23E8`), ⑩ (`U+2469`), ⑳ (`U+2473`), ⑽ (`U+247D`), ⒇ (`U+2487`), ⒑ (`U+2491`), ⒛ (`U+249B`), ⓪ (`U+24EA`), ⓴ (`U+24F4`), ⓾ (`U+24FE`), ⓿ (`U+24FF`), ❿ (`U+277F`), ➉ (`U+2789`), ➓ (`U+2793`), ㉚ (`U+325A`), ㊵ (`U+32B5`), ㊿ (`U+32BF`), 𝟎 (`U+1D7CE`), 𝟢 (`U+1D7E2`), 𝟬 (`U+1D7EC`), 𝟶 (`U+1D7F6`), 🄀 (`U+1F100`), 🄁 (`U+1F101`), 🄋 (`U+1F10B`), 🄌 (`U+1F10C`), 🄍 (`U+1F10D`), 🆣 (`U+1F1A3`), 🆤 (`U+1F1A4`) + 0 (`U+0030`), ⁰ (`U+2070`), ₀ (`U+2080`), ⅒ (`U+2152`), ↉ (`U+2189`), ⍬ (`U+236C`), ⏨ (`U+23E8`), ⑩ (`U+2469`), ⑳ (`U+2473`), ⑽ (`U+247D`), ⒇ (`U+2487`), ⒑ (`U+2491`), ⒛ (`U+249B`), ⓪ (`U+24EA`), ⓴ (`U+24F4`), ⓾ (`U+24FE`), ⓿ (`U+24FF`), ❿ (`U+277F`), ➉ (`U+2789`), ➓ (`U+2793`), ㉚ (`U+325A`), ㊵ (`U+32B5`), ㊿ (`U+32BF`), 𜳰 (`U+1CCF0`), 𝟎 (`U+1D7CE`), 𝟢 (`U+1D7E2`), 𝟬 (`U+1D7EC`), 𝟶 (`U+1D7F6`), 🄀 (`U+1F100`), 🄁 (`U+1F101`), 🄋 (`U+1F10B`), 🄌 (`U+1F10C`), 🄍 (`U+1F10D`), 🆣 (`U+1F1A3`), 🆤 (`U+1F1A4`) - `cv86`: - 1 (`U+0031`), ¹ (`U+00B9`), ¼ (`U+00BC`), ½ (`U+00BD`), ₁ (`U+2081`), ⅐ (`U+2150`), ⅑ (`U+2151`), ⅒ (`U+2152`), ⅓ (`U+2153`), ⅕ (`U+2155`), ⅙ (`U+2159`), ⅛ (`U+215B`), ⏨ (`U+23E8`), ␑ (`U+2411`), ① (`U+2460`), ⑩ (`U+2469`), ⑪ (`U+246A`), ⑫ (`U+246B`), ⑬ (`U+246C`), ⑭ (`U+246D`), ⑮ (`U+246E`), ⑯ (`U+246F`), ⑰ (`U+2470`), ⑱ (`U+2471`), ⑲ (`U+2472`), ⑴ (`U+2474`), ⑽ (`U+247D`), ⑾ (`U+247E`), ⑿ (`U+247F`), ⒀ (`U+2480`), ⒁ (`U+2481`), ⒂ (`U+2482`), ⒃ (`U+2483`), ⒄ (`U+2484`), ⒅ (`U+2485`), ⒆ (`U+2486`), ⒈ (`U+2488`), ⒑ (`U+2491`), ⒒ (`U+2492`), ⒓ (`U+2493`), ⒔ (`U+2494`), ⒕ (`U+2495`), ⒖ (`U+2496`), ⒗ (`U+2497`), ⒘ (`U+2498`), ⒙ (`U+2499`), ⒚ (`U+249A`), ⓫ (`U+24EB`), ⓬ (`U+24EC`), ⓭ (`U+24ED`), ⓮ (`U+24EE`), ⓯ (`U+24EF`), ⓰ (`U+24F0`), ⓱ (`U+24F1`), ⓲ (`U+24F2`), ⓳ (`U+24F3`), ⓵ (`U+24F5`), ⓾ (`U+24FE`), ❶ (`U+2776`), ❿ (`U+277F`), ➀ (`U+2780`), ➉ (`U+2789`), ➊ (`U+278A`), ➓ (`U+2793`), ㉑ (`U+3251`), ㉛ (`U+325B`), ㊶ (`U+32B6`), 𝟏 (`U+1D7CF`), 𝟣 (`U+1D7E3`), 𝟭 (`U+1D7ED`), 𝟷 (`U+1D7F7`), 🄂 (`U+1F102`), 🆠 (`U+1F1A0`), 🆡 (`U+1F1A1`), 🆤 (`U+1F1A4`) + 1 (`U+0031`), ¹ (`U+00B9`), ¼ (`U+00BC`), ½ (`U+00BD`), ₁ (`U+2081`), ⅐ (`U+2150`), ⅑ (`U+2151`), ⅒ (`U+2152`), ⅓ (`U+2153`), ⅕ (`U+2155`), ⅙ (`U+2159`), ⅛ (`U+215B`), ⏨ (`U+23E8`), ␑ (`U+2411`), ① (`U+2460`), ⑩ (`U+2469`), ⑪ (`U+246A`), ⑫ (`U+246B`), ⑬ (`U+246C`), ⑭ (`U+246D`), ⑮ (`U+246E`), ⑯ (`U+246F`), ⑰ (`U+2470`), ⑱ (`U+2471`), ⑲ (`U+2472`), ⑴ (`U+2474`), ⑽ (`U+247D`), ⑾ (`U+247E`), ⑿ (`U+247F`), ⒀ (`U+2480`), ⒁ (`U+2481`), ⒂ (`U+2482`), ⒃ (`U+2483`), ⒄ (`U+2484`), ⒅ (`U+2485`), ⒆ (`U+2486`), ⒈ (`U+2488`), ⒑ (`U+2491`), ⒒ (`U+2492`), ⒓ (`U+2493`), ⒔ (`U+2494`), ⒕ (`U+2495`), ⒖ (`U+2496`), ⒗ (`U+2497`), ⒘ (`U+2498`), ⒙ (`U+2499`), ⒚ (`U+249A`), ⓫ (`U+24EB`), ⓬ (`U+24EC`), ⓭ (`U+24ED`), ⓮ (`U+24EE`), ⓯ (`U+24EF`), ⓰ (`U+24F0`), ⓱ (`U+24F1`), ⓲ (`U+24F2`), ⓳ (`U+24F3`), ⓵ (`U+24F5`), ⓾ (`U+24FE`), ❶ (`U+2776`), ❿ (`U+277F`), ➀ (`U+2780`), ➉ (`U+2789`), ➊ (`U+278A`), ➓ (`U+2793`), ㉑ (`U+3251`), ㉛ (`U+325B`), ㊶ (`U+32B6`), 𜳱 (`U+1CCF1`), 𝟏 (`U+1D7CF`), 𝟣 (`U+1D7E3`), 𝟭 (`U+1D7ED`), 𝟷 (`U+1D7F7`), 🄂 (`U+1F102`), 🆠 (`U+1F1A0`), 🆡 (`U+1F1A1`), 🆤 (`U+1F1A4`) - `cv87`: - 2 (`U+0032`), ² (`U+00B2`), ½ (`U+00BD`), ƻ (`U+01BB`), ₂ (`U+2082`), ⅔ (`U+2154`), ⅖ (`U+2156`), ↊ (`U+218A`), ␒ (`U+2412`), ② (`U+2461`), ⑫ (`U+246B`), ⑳ (`U+2473`), ⑵ (`U+2475`), ⑿ (`U+247F`), ⒇ (`U+2487`), ⒉ (`U+2489`), ⒓ (`U+2493`), ⒛ (`U+249B`), ⓬ (`U+24EC`), ⓴ (`U+24F4`), ⓶ (`U+24F6`), ❷ (`U+2777`), ➁ (`U+2781`), ➋ (`U+278B`), ㉑ (`U+3251`), ㉒ (`U+3252`), ㉓ (`U+3253`), ㉔ (`U+3254`), ㉕ (`U+3255`), ㉖ (`U+3256`), ㉗ (`U+3257`), ㉘ (`U+3258`), ㉙ (`U+3259`), ㉜ (`U+325C`), ㊷ (`U+32B7`), 𝟐 (`U+1D7D0`), 𝟤 (`U+1D7E4`), 𝟮 (`U+1D7EE`), 𝟸 (`U+1D7F8`), 🄃 (`U+1F103`), 🆜 (`U+1F19C`), 🆝 (`U+1F19D`), 🆢 (`U+1F1A2`), 🆤 (`U+1F1A4`) + 2 (`U+0032`), ² (`U+00B2`), ½ (`U+00BD`), ƻ (`U+01BB`), ₂ (`U+2082`), ⅔ (`U+2154`), ⅖ (`U+2156`), ↊ (`U+218A`), ␒ (`U+2412`), ② (`U+2461`), ⑫ (`U+246B`), ⑳ (`U+2473`), ⑵ (`U+2475`), ⑿ (`U+247F`), ⒇ (`U+2487`), ⒉ (`U+2489`), ⒓ (`U+2493`), ⒛ (`U+249B`), ⓬ (`U+24EC`), ⓴ (`U+24F4`), ⓶ (`U+24F6`), ❷ (`U+2777`), ➁ (`U+2781`), ➋ (`U+278B`), ㉑ (`U+3251`), ㉒ (`U+3252`), ㉓ (`U+3253`), ㉔ (`U+3254`), ㉕ (`U+3255`), ㉖ (`U+3256`), ㉗ (`U+3257`), ㉘ (`U+3258`), ㉙ (`U+3259`), ㉜ (`U+325C`), ㊷ (`U+32B7`), 𜳲 (`U+1CCF2`), 𝟐 (`U+1D7D0`), 𝟤 (`U+1D7E4`), 𝟮 (`U+1D7EE`), 𝟸 (`U+1D7F8`), 🄃 (`U+1F103`), 🆜 (`U+1F19C`), 🆝 (`U+1F19D`), 🆢 (`U+1F1A2`), 🆤 (`U+1F1A4`) - `cv88`: - 3 (`U+0033`), ³ (`U+00B3`), ¾ (`U+00BE`), ₃ (`U+2083`), ⅓ (`U+2153`), ⅔ (`U+2154`), ⅗ (`U+2157`), ⅜ (`U+215C`), ↉ (`U+2189`), ↋ (`U+218B`), ∛ (`U+221B`), ␓ (`U+2413`), ③ (`U+2462`), ⑬ (`U+246C`), ⑶ (`U+2476`), ⒀ (`U+2480`), ⒊ (`U+248A`), ⒔ (`U+2494`), ⓭ (`U+24ED`), ⓷ (`U+24F7`), ❸ (`U+2778`), ➂ (`U+2782`), ➌ (`U+278C`), ㉓ (`U+3253`), ㉚ (`U+325A`), ㉛ (`U+325B`), ㉜ (`U+325C`), ㉝ (`U+325D`), ㉞ (`U+325E`), ㉟ (`U+325F`), ㊱ (`U+32B1`), ㊲ (`U+32B2`), ㊳ (`U+32B3`), ㊴ (`U+32B4`), ㊸ (`U+32B8`), 𝟑 (`U+1D7D1`), 𝟥 (`U+1D7E5`), 𝟯 (`U+1D7EF`), 𝟹 (`U+1D7F9`), 🄄 (`U+1F104`), 🆛 (`U+1F19B`) + 3 (`U+0033`), ³ (`U+00B3`), ¾ (`U+00BE`), ₃ (`U+2083`), ⅓ (`U+2153`), ⅔ (`U+2154`), ⅗ (`U+2157`), ⅜ (`U+215C`), ↉ (`U+2189`), ↋ (`U+218B`), ∛ (`U+221B`), ␓ (`U+2413`), ③ (`U+2462`), ⑬ (`U+246C`), ⑶ (`U+2476`), ⒀ (`U+2480`), ⒊ (`U+248A`), ⒔ (`U+2494`), ⓭ (`U+24ED`), ⓷ (`U+24F7`), ❸ (`U+2778`), ➂ (`U+2782`), ➌ (`U+278C`), ㉓ (`U+3253`), ㉚ (`U+325A`), ㉛ (`U+325B`), ㉜ (`U+325C`), ㉝ (`U+325D`), ㉞ (`U+325E`), ㉟ (`U+325F`), ㊱ (`U+32B1`), ㊲ (`U+32B2`), ㊳ (`U+32B3`), ㊴ (`U+32B4`), ㊸ (`U+32B8`), 𜳳 (`U+1CCF3`), 𝟑 (`U+1D7D1`), 𝟥 (`U+1D7E5`), 𝟯 (`U+1D7EF`), 𝟹 (`U+1D7F9`), 🄄 (`U+1F104`), 🆛 (`U+1F19B`) - `cv89`: - 4 (`U+0034`), ¼ (`U+00BC`), ¾ (`U+00BE`), ⁴ (`U+2074`), ₄ (`U+2084`), ⅘ (`U+2158`), ∜ (`U+221C`), ␔ (`U+2414`), ④ (`U+2463`), ⑭ (`U+246D`), ⑷ (`U+2477`), ⒁ (`U+2481`), ⒋ (`U+248B`), ⒕ (`U+2495`), ⓮ (`U+24EE`), ⓸ (`U+24F8`), ❹ (`U+2779`), ➃ (`U+2783`), ➍ (`U+278D`), ㉔ (`U+3254`), ㉞ (`U+325E`), ㊵ (`U+32B5`), ㊶ (`U+32B6`), ㊷ (`U+32B7`), ㊸ (`U+32B8`), ㊹ (`U+32B9`), ㊺ (`U+32BA`), ㊻ (`U+32BB`), ㊼ (`U+32BC`), ㊽ (`U+32BD`), ㊾ (`U+32BE`), 𝟒 (`U+1D7D2`), 𝟦 (`U+1D7E6`), 𝟰 (`U+1D7F0`), 𝟺 (`U+1D7FA`), 🄅 (`U+1F105`), 🆞 (`U+1F19E`) + 4 (`U+0034`), ¼ (`U+00BC`), ¾ (`U+00BE`), ⁴ (`U+2074`), ₄ (`U+2084`), ⅘ (`U+2158`), ∜ (`U+221C`), ␔ (`U+2414`), ④ (`U+2463`), ⑭ (`U+246D`), ⑷ (`U+2477`), ⒁ (`U+2481`), ⒋ (`U+248B`), ⒕ (`U+2495`), ⓮ (`U+24EE`), ⓸ (`U+24F8`), ❹ (`U+2779`), ➃ (`U+2783`), ➍ (`U+278D`), ㉔ (`U+3254`), ㉞ (`U+325E`), ㊵ (`U+32B5`), ㊶ (`U+32B6`), ㊷ (`U+32B7`), ㊸ (`U+32B8`), ㊹ (`U+32B9`), ㊺ (`U+32BA`), ㊻ (`U+32BB`), ㊼ (`U+32BC`), ㊽ (`U+32BD`), ㊾ (`U+32BE`), 𜳴 (`U+1CCF4`), 𝟒 (`U+1D7D2`), 𝟦 (`U+1D7E6`), 𝟰 (`U+1D7F0`), 𝟺 (`U+1D7FA`), 🄅 (`U+1F105`), 🆞 (`U+1F19E`) - `cv90`: - 5 (`U+0035`), Ƽ (`U+01BC`), ƽ (`U+01BD`), ⁵ (`U+2075`), ₅ (`U+2085`), ⅕ (`U+2155`), ⅖ (`U+2156`), ⅗ (`U+2157`), ⅘ (`U+2158`), ⅚ (`U+215A`), ⅝ (`U+215D`), ⑤ (`U+2464`), ⑮ (`U+246E`), ⑸ (`U+2478`), ⒂ (`U+2482`), ⒌ (`U+248C`), ⒖ (`U+2496`), ⓯ (`U+24EF`), ⓹ (`U+24F9`), ❺ (`U+277A`), ➄ (`U+2784`), ➎ (`U+278E`), ㉕ (`U+3255`), ㉟ (`U+325F`), ㊺ (`U+32BA`), ㊿ (`U+32BF`), 𝟓 (`U+1D7D3`), 𝟧 (`U+1D7E7`), 𝟱 (`U+1D7F1`), 𝟻 (`U+1D7FB`), 🄆 (`U+1F106`), 🆠 (`U+1F1A0`) + 5 (`U+0035`), Ƽ (`U+01BC`), ƽ (`U+01BD`), ⁵ (`U+2075`), ₅ (`U+2085`), ⅕ (`U+2155`), ⅖ (`U+2156`), ⅗ (`U+2157`), ⅘ (`U+2158`), ⅚ (`U+215A`), ⅝ (`U+215D`), ⑤ (`U+2464`), ⑮ (`U+246E`), ⑸ (`U+2478`), ⒂ (`U+2482`), ⒌ (`U+248C`), ⒖ (`U+2496`), ⓯ (`U+24EF`), ⓹ (`U+24F9`), ❺ (`U+277A`), ➄ (`U+2784`), ➎ (`U+278E`), ㉕ (`U+3255`), ㉟ (`U+325F`), ㊺ (`U+32BA`), ㊿ (`U+32BF`), 𜳵 (`U+1CCF5`), 𝟓 (`U+1D7D3`), 𝟧 (`U+1D7E7`), 𝟱 (`U+1D7F1`), 𝟻 (`U+1D7FB`), 🄆 (`U+1F106`), 🆠 (`U+1F1A0`) - `cv91`: - 6 (`U+0036`), ⁶ (`U+2076`), ₆ (`U+2086`), ⅙ (`U+2159`), ⅚ (`U+215A`), ⑥ (`U+2465`), ⑯ (`U+246F`), ⑹ (`U+2479`), ⒃ (`U+2483`), ⒍ (`U+248D`), ⒗ (`U+2497`), ⓰ (`U+24F0`), ⓺ (`U+24FA`), ❻ (`U+277B`), ➅ (`U+2785`), ➏ (`U+278F`), ㉖ (`U+3256`), ㊱ (`U+32B1`), ㊻ (`U+32BB`), 𝟔 (`U+1D7D4`), 𝟨 (`U+1D7E8`), 𝟲 (`U+1D7F2`), 𝟼 (`U+1D7FC`), 🄇 (`U+1F107`), 🆣 (`U+1F1A3`) + 6 (`U+0036`), ⁶ (`U+2076`), ₆ (`U+2086`), ⅙ (`U+2159`), ⅚ (`U+215A`), ⑥ (`U+2465`), ⑯ (`U+246F`), ⑹ (`U+2479`), ⒃ (`U+2483`), ⒍ (`U+248D`), ⒗ (`U+2497`), ⓰ (`U+24F0`), ⓺ (`U+24FA`), ❻ (`U+277B`), ➅ (`U+2785`), ➏ (`U+278F`), ㉖ (`U+3256`), ㊱ (`U+32B1`), ㊻ (`U+32BB`), 𜳶 (`U+1CCF6`), 𝟔 (`U+1D7D4`), 𝟨 (`U+1D7E8`), 𝟲 (`U+1D7F2`), 𝟼 (`U+1D7FC`), 🄇 (`U+1F107`), 🆣 (`U+1F1A3`) - `cv92`: - 7 (`U+0037`), ⁷ (`U+2077`), ₇ (`U+2087`), ⅐ (`U+2150`), ⅞ (`U+215E`), ⑦ (`U+2466`), ⑰ (`U+2470`), ⑺ (`U+247A`), ⒄ (`U+2484`), ⒎ (`U+248E`), ⒘ (`U+2498`), ⓱ (`U+24F1`), ⓻ (`U+24FB`), ❼ (`U+277C`), ➆ (`U+2786`), ➐ (`U+2790`), ㉗ (`U+3257`), ㊲ (`U+32B2`), ㊼ (`U+32BC`), 𝟕 (`U+1D7D5`), 𝟩 (`U+1D7E9`), 𝟳 (`U+1D7F3`), 𝟽 (`U+1D7FD`), 🄈 (`U+1F108`), 🆡 (`U+1F1A1`) + 7 (`U+0037`), ⁷ (`U+2077`), ₇ (`U+2087`), ⅐ (`U+2150`), ⅞ (`U+215E`), ⑦ (`U+2466`), ⑰ (`U+2470`), ⑺ (`U+247A`), ⒄ (`U+2484`), ⒎ (`U+248E`), ⒘ (`U+2498`), ⓱ (`U+24F1`), ⓻ (`U+24FB`), ❼ (`U+277C`), ➆ (`U+2786`), ➐ (`U+2790`), ㉗ (`U+3257`), ㊲ (`U+32B2`), ㊼ (`U+32BC`), 𜳷 (`U+1CCF7`), 𝟕 (`U+1D7D5`), 𝟩 (`U+1D7E9`), 𝟳 (`U+1D7F3`), 𝟽 (`U+1D7FD`), 🄈 (`U+1F108`), 🆡 (`U+1F1A1`) - `cv93`: - 8 (`U+0038`), ⁸ (`U+2078`), ₈ (`U+2088`), ⅛ (`U+215B`), ⅜ (`U+215C`), ⅝ (`U+215D`), ⅞ (`U+215E`), ⑧ (`U+2467`), ⑱ (`U+2471`), ⑻ (`U+247B`), ⒅ (`U+2485`), ⒏ (`U+248F`), ⒙ (`U+2499`), ⓲ (`U+24F2`), ⓼ (`U+24FC`), ❽ (`U+277D`), ➇ (`U+2787`), ➑ (`U+2791`), ㉘ (`U+3258`), ㊳ (`U+32B3`), ㊽ (`U+32BD`), 𝟖 (`U+1D7D6`), 𝟪 (`U+1D7EA`), 𝟴 (`U+1D7F4`), 𝟾 (`U+1D7FE`), 🄉 (`U+1F109`), 🆟 (`U+1F19F`) + 8 (`U+0038`), ⁸ (`U+2078`), ₈ (`U+2088`), ⅛ (`U+215B`), ⅜ (`U+215C`), ⅝ (`U+215D`), ⅞ (`U+215E`), ⑧ (`U+2467`), ⑱ (`U+2471`), ⑻ (`U+247B`), ⒅ (`U+2485`), ⒏ (`U+248F`), ⒙ (`U+2499`), ⓲ (`U+24F2`), ⓼ (`U+24FC`), ❽ (`U+277D`), ➇ (`U+2787`), ➑ (`U+2791`), ㉘ (`U+3258`), ㊳ (`U+32B3`), ㊽ (`U+32BD`), 𜳸 (`U+1CCF8`), 𝟖 (`U+1D7D6`), 𝟪 (`U+1D7EA`), 𝟴 (`U+1D7F4`), 𝟾 (`U+1D7FE`), 🄉 (`U+1F109`), 🆟 (`U+1F19F`) - `cv94`: - 9 (`U+0039`), ⁹ (`U+2079`), ₉ (`U+2089`), ⅑ (`U+2151`), ⑨ (`U+2468`), ⑲ (`U+2472`), ⑼ (`U+247C`), ⒆ (`U+2486`), ⒐ (`U+2490`), ⒚ (`U+249A`), ⓳ (`U+24F3`), ⓽ (`U+24FD`), ❾ (`U+277E`), ➈ (`U+2788`), ➒ (`U+2792`), ㉙ (`U+3259`), ㊴ (`U+32B4`), ㊾ (`U+32BE`), 𝟗 (`U+1D7D7`), 𝟫 (`U+1D7EB`), 𝟵 (`U+1D7F5`), 𝟿 (`U+1D7FF`), 🄊 (`U+1F10A`) + 9 (`U+0039`), ⁹ (`U+2079`), ₉ (`U+2089`), ⅑ (`U+2151`), ⑨ (`U+2468`), ⑲ (`U+2472`), ⑼ (`U+247C`), ⒆ (`U+2486`), ⒐ (`U+2490`), ⒚ (`U+249A`), ⓳ (`U+24F3`), ⓽ (`U+24FD`), ❾ (`U+277E`), ➈ (`U+2788`), ➒ (`U+2792`), ㉙ (`U+3259`), ㊴ (`U+32B4`), ㊾ (`U+32BE`), 𜳹 (`U+1CCF9`), 𝟗 (`U+1D7D7`), 𝟫 (`U+1D7EB`), 𝟵 (`U+1D7F5`), 𝟿 (`U+1D7FF`), 🄊 (`U+1F10A`) - `cv95`: @@ -468,103 +468,103 @@ - `cv01`: - A (`U+0041`), À (`U+00C0`), Á (`U+00C1`),  (`U+00C2`), à (`U+00C3`), Ä (`U+00C4`), Å (`U+00C5`), Æ (`U+00C6`), Ā (`U+0100`), Ă (`U+0102`), Ą (`U+0104`), Ǎ (`U+01CD`), Ǟ (`U+01DE`), Ǡ (`U+01E0`), Ǣ (`U+01E2`), Ǻ (`U+01FA`), Ǽ (`U+01FC`), Ȁ (`U+0200`), Ȃ (`U+0202`), Ȧ (`U+0226`), Ⱥ (`U+023A`), Ά (`U+0386`), Α (`U+0391`), А (`U+0410`), Ӑ (`U+04D0`), Ӓ (`U+04D2`), Ӕ (`U+04D4`), ᴀ (`U+1D00`), ᴁ (`U+1D01`), ᴬ (`U+1D2C`), ᴭ (`U+1D2D`), Ḁ (`U+1E00`), Ạ (`U+1EA0`), Ả (`U+1EA2`), Ấ (`U+1EA4`), Ầ (`U+1EA6`), Ẩ (`U+1EA8`), Ẫ (`U+1EAA`), Ậ (`U+1EAC`), Ắ (`U+1EAE`), Ằ (`U+1EB0`), Ẳ (`U+1EB2`), Ẵ (`U+1EB4`), Ặ (`U+1EB6`), Ἀ (`U+1F08`), Ἁ (`U+1F09`), Ἂ (`U+1F0A`), Ἃ (`U+1F0B`), Ἄ (`U+1F0C`), Ἅ (`U+1F0D`), Ἆ (`U+1F0E`), Ἇ (`U+1F0F`), ᾈ (`U+1F88`), ᾉ (`U+1F89`), ᾊ (`U+1F8A`), ᾋ (`U+1F8B`), ᾌ (`U+1F8C`), ᾍ (`U+1F8D`), ᾎ (`U+1F8E`), ᾏ (`U+1F8F`), Ᾰ (`U+1FB8`), Ᾱ (`U+1FB9`), Ὰ (`U+1FBA`), Ά (`U+1FBB`), ᾼ (`U+1FBC`), ₳ (`U+20B3`), Å (`U+212B`), ℻ (`U+213B`), ⅍ (`U+214D`), ␆ (`U+2406`), ␕ (`U+2415`), ␘ (`U+2418`), Ⓐ (`U+24B6`), Ɐ (`U+2C6F`), Ꙗ (`U+A656`), Ꜳ (`U+A732`), Ꜵ (`U+A734`), Ꜷ (`U+A736`), Ꞻ (`U+A7BA`), 𐞀 (`U+10780`), 𝐀 (`U+1D400`), 𝐴 (`U+1D434`), 𝑨 (`U+1D468`), 𝖠 (`U+1D5A0`), 𝗔 (`U+1D5D4`), 𝘈 (`U+1D608`), 𝘼 (`U+1D63C`), 𝙰 (`U+1D670`), 𝚨 (`U+1D6A8`), 𝛢 (`U+1D6E2`), 𝜜 (`U+1D71C`), 𝝖 (`U+1D756`), 𝞐 (`U+1D790`), 🄐 (`U+1F110`), 🄰 (`U+1F130`), 🅐 (`U+1F150`), 🅰 (`U+1F170`), 🆌 (`U+1F18C`), 🆍 (`U+1F18D`), 🆎 (`U+1F18E`) + A (`U+0041`), À (`U+00C0`), Á (`U+00C1`),  (`U+00C2`), à (`U+00C3`), Ä (`U+00C4`), Å (`U+00C5`), Æ (`U+00C6`), Ā (`U+0100`), Ă (`U+0102`), Ą (`U+0104`), Ǎ (`U+01CD`), Ǟ (`U+01DE`), Ǡ (`U+01E0`), Ǣ (`U+01E2`), Ǻ (`U+01FA`), Ǽ (`U+01FC`), Ȁ (`U+0200`), Ȃ (`U+0202`), Ȧ (`U+0226`), Ⱥ (`U+023A`), Ά (`U+0386`), Α (`U+0391`), А (`U+0410`), Ӑ (`U+04D0`), Ӓ (`U+04D2`), Ӕ (`U+04D4`), ᴀ (`U+1D00`), ᴁ (`U+1D01`), ᴬ (`U+1D2C`), ᴭ (`U+1D2D`), Ḁ (`U+1E00`), Ạ (`U+1EA0`), Ả (`U+1EA2`), Ấ (`U+1EA4`), Ầ (`U+1EA6`), Ẩ (`U+1EA8`), Ẫ (`U+1EAA`), Ậ (`U+1EAC`), Ắ (`U+1EAE`), Ằ (`U+1EB0`), Ẳ (`U+1EB2`), Ẵ (`U+1EB4`), Ặ (`U+1EB6`), Ἀ (`U+1F08`), Ἁ (`U+1F09`), Ἂ (`U+1F0A`), Ἃ (`U+1F0B`), Ἄ (`U+1F0C`), Ἅ (`U+1F0D`), Ἆ (`U+1F0E`), Ἇ (`U+1F0F`), ᾈ (`U+1F88`), ᾉ (`U+1F89`), ᾊ (`U+1F8A`), ᾋ (`U+1F8B`), ᾌ (`U+1F8C`), ᾍ (`U+1F8D`), ᾎ (`U+1F8E`), ᾏ (`U+1F8F`), Ᾰ (`U+1FB8`), Ᾱ (`U+1FB9`), Ὰ (`U+1FBA`), Ά (`U+1FBB`), ᾼ (`U+1FBC`), ₳ (`U+20B3`), Å (`U+212B`), ℻ (`U+213B`), ⅍ (`U+214D`), ␆ (`U+2406`), ␕ (`U+2415`), ␘ (`U+2418`), Ⓐ (`U+24B6`), Ɐ (`U+2C6F`), Ꙗ (`U+A656`), Ꜳ (`U+A732`), Ꜵ (`U+A734`), Ꜷ (`U+A736`), Ꞻ (`U+A7BA`), 𐞀 (`U+10780`), 𜳖 (`U+1CCD6`), 𝐀 (`U+1D400`), 𝐴 (`U+1D434`), 𝑨 (`U+1D468`), 𝖠 (`U+1D5A0`), 𝗔 (`U+1D5D4`), 𝘈 (`U+1D608`), 𝘼 (`U+1D63C`), 𝙰 (`U+1D670`), 𝚨 (`U+1D6A8`), 𝛢 (`U+1D6E2`), 𝜜 (`U+1D71C`), 𝝖 (`U+1D756`), 𝞐 (`U+1D790`), 🄐 (`U+1F110`), 🄰 (`U+1F130`), 🅐 (`U+1F150`), 🅰 (`U+1F170`), 🆌 (`U+1F18C`), 🆍 (`U+1F18D`), 🆎 (`U+1F18E`) - `cv02`: - B (`U+0042`), Ɓ (`U+0181`), Ƀ (`U+0243`), ʙ (`U+0299`), Β (`U+0392`), В (`U+0412`), ฿ (`U+0E3F`), ᴃ (`U+1D03`), ᴮ (`U+1D2E`), ᴯ (`U+1D2F`), Ḃ (`U+1E02`), Ḅ (`U+1E04`), Ḇ (`U+1E06`), ₿ (`U+20BF`), ␇ (`U+2407`), ␈ (`U+2408`), ␗ (`U+2417`), ␚ (`U+241A`), Ⓑ (`U+24B7`), Ꞵ (`U+A7B4`),  (`U+FFFC`), 𐞄 (`U+10784`), 𝐁 (`U+1D401`), 𝐵 (`U+1D435`), 𝑩 (`U+1D469`), 𝖡 (`U+1D5A1`), 𝗕 (`U+1D5D5`), 𝘉 (`U+1D609`), 𝘽 (`U+1D63D`), 𝙱 (`U+1D671`), 𝚩 (`U+1D6A9`), 𝛣 (`U+1D6E3`), 𝜝 (`U+1D71D`), 𝝗 (`U+1D757`), 𝞑 (`U+1D791`), 🄑 (`U+1F111`), 🄱 (`U+1F131`), 🅑 (`U+1F151`), 🅱 (`U+1F171`), 🆎 (`U+1F18E`) + B (`U+0042`), Ɓ (`U+0181`), Ƀ (`U+0243`), ʙ (`U+0299`), Β (`U+0392`), В (`U+0412`), ฿ (`U+0E3F`), ᴃ (`U+1D03`), ᴮ (`U+1D2E`), ᴯ (`U+1D2F`), Ḃ (`U+1E02`), Ḅ (`U+1E04`), Ḇ (`U+1E06`), ₿ (`U+20BF`), ␇ (`U+2407`), ␈ (`U+2408`), ␗ (`U+2417`), ␚ (`U+241A`), Ⓑ (`U+24B7`), Ꞵ (`U+A7B4`),  (`U+FFFC`), 𐞄 (`U+10784`), 𜳗 (`U+1CCD7`), 𝐁 (`U+1D401`), 𝐵 (`U+1D435`), 𝑩 (`U+1D469`), 𝖡 (`U+1D5A1`), 𝗕 (`U+1D5D5`), 𝘉 (`U+1D609`), 𝘽 (`U+1D63D`), 𝙱 (`U+1D671`), 𝚩 (`U+1D6A9`), 𝛣 (`U+1D6E3`), 𝜝 (`U+1D71D`), 𝝗 (`U+1D757`), 𝞑 (`U+1D791`), 🄑 (`U+1F111`), 🄱 (`U+1F131`), 🅑 (`U+1F151`), 🅱 (`U+1F171`), 🆎 (`U+1F18E`) - `cv03`: - C (`U+0043`), © (`U+00A9`), Ç (`U+00C7`), Ć (`U+0106`), Ĉ (`U+0108`), Ċ (`U+010A`), Č (`U+010C`), Ɔ (`U+0186`), Ƈ (`U+0187`), Ə (`U+018F`), Ȼ (`U+023B`), Ϲ (`U+03F9`), Ͻ (`U+03FD`), Ͼ (`U+03FE`), Ͽ (`U+03FF`), Є (`U+0404`), С (`U+0421`), Э (`U+042D`), Ѥ (`U+0464`), Ҁ (`U+0480`), Ҫ (`U+04AA`), Ҽ (`U+04BC`), Ҿ (`U+04BE`), Ә (`U+04D8`), Ӛ (`U+04DA`), Ӭ (`U+04EC`), Ԍ (`U+050C`), ᴄ (`U+1D04`), ᴐ (`U+1D10`), Ḉ (`U+1E08`), ₡ (`U+20A1`), € (`U+20AC`), ₵ (`U+20B5`), ℃ (`U+2103`), ℈ (`U+2108`), Ⅽ (`U+216D`), Ↄ (`U+2183`), ↅ (`U+2185`), ␆ (`U+2406`), ␍ (`U+240D`), ␑ (`U+2411`), ␒ (`U+2412`), ␓ (`U+2413`), ␔ (`U+2414`), ␘ (`U+2418`), ␛ (`U+241B`), Ⓒ (`U+24B8`), Ꜿ (`U+A73E`), Ꞓ (`U+A792`), Ꞔ (`U+A7C4`), ꟲ (`U+A7F2`),  (`U+E0A3`), 𝐂 (`U+1D402`), 𝐶 (`U+1D436`), 𝑪 (`U+1D46A`), 𝖢 (`U+1D5A2`), 𝗖 (`U+1D5D6`), 𝘊 (`U+1D60A`), 𝘾 (`U+1D63E`), 𝙲 (`U+1D672`), 🄒 (`U+1F112`), 🄫 (`U+1F12B`), 🄭 (`U+1F12D`), 🄯 (`U+1F12F`), 🄲 (`U+1F132`), 🅏 (`U+1F14F`), 🅒 (`U+1F152`), 🅪 (`U+1F16A`), 🅭 (`U+1F16D`), 🅮 (`U+1F16E`), 🅲 (`U+1F172`), 🆋 (`U+1F18B`), 🆏 (`U+1F18F`), 🆑 (`U+1F191`), 🆒 (`U+1F192`), 🆜 (`U+1F19C`), 🆦 (`U+1F1A6`) + C (`U+0043`), © (`U+00A9`), Ç (`U+00C7`), Ć (`U+0106`), Ĉ (`U+0108`), Ċ (`U+010A`), Č (`U+010C`), Ɔ (`U+0186`), Ƈ (`U+0187`), Ə (`U+018F`), Ȼ (`U+023B`), Ϲ (`U+03F9`), Ͻ (`U+03FD`), Ͼ (`U+03FE`), Ͽ (`U+03FF`), Є (`U+0404`), С (`U+0421`), Э (`U+042D`), Ѥ (`U+0464`), Ҁ (`U+0480`), Ҫ (`U+04AA`), Ҽ (`U+04BC`), Ҿ (`U+04BE`), Ә (`U+04D8`), Ӛ (`U+04DA`), Ӭ (`U+04EC`), Ԍ (`U+050C`), ᴄ (`U+1D04`), ᴐ (`U+1D10`), Ḉ (`U+1E08`), ₡ (`U+20A1`), € (`U+20AC`), ₵ (`U+20B5`), ℃ (`U+2103`), ℈ (`U+2108`), Ⅽ (`U+216D`), Ↄ (`U+2183`), ↅ (`U+2185`), ␆ (`U+2406`), ␍ (`U+240D`), ␑ (`U+2411`), ␒ (`U+2412`), ␓ (`U+2413`), ␔ (`U+2414`), ␘ (`U+2418`), ␛ (`U+241B`), Ⓒ (`U+24B8`), Ꜿ (`U+A73E`), Ꞓ (`U+A792`), Ꞔ (`U+A7C4`), ꟲ (`U+A7F2`),  (`U+E0A3`), 𜳘 (`U+1CCD8`), 𝐂 (`U+1D402`), 𝐶 (`U+1D436`), 𝑪 (`U+1D46A`), 𝖢 (`U+1D5A2`), 𝗖 (`U+1D5D6`), 𝘊 (`U+1D60A`), 𝘾 (`U+1D63E`), 𝙲 (`U+1D672`), 🄒 (`U+1F112`), 🄫 (`U+1F12B`), 🄭 (`U+1F12D`), 🄯 (`U+1F12F`), 🄲 (`U+1F132`), 🅏 (`U+1F14F`), 🅒 (`U+1F152`), 🅪 (`U+1F16A`), 🅭 (`U+1F16D`), 🅮 (`U+1F16E`), 🅲 (`U+1F172`), 🆋 (`U+1F18B`), 🆏 (`U+1F18F`), 🆑 (`U+1F191`), 🆒 (`U+1F192`), 🆜 (`U+1F19C`), 🆦 (`U+1F1A6`) - `cv04`: - D (`U+0044`), Ð (`U+00D0`), Ď (`U+010E`), Đ (`U+0110`), Ɖ (`U+0189`), Ɗ (`U+018A`), DŽ (`U+01C4`), Dž (`U+01C5`), DZ (`U+01F1`), Dz (`U+01F2`), ᴅ (`U+1D05`), ᴆ (`U+1D06`), ᴰ (`U+1D30`), Ḋ (`U+1E0A`), Ḍ (`U+1E0C`), Ḏ (`U+1E0E`), Ḑ (`U+1E10`), Ḓ (`U+1E12`), ₯ (`U+20AF`), Ⅾ (`U+216E`), ↁ (`U+2181`), ↇ (`U+2187`), ␐ (`U+2410`), ␑ (`U+2411`), ␒ (`U+2412`), ␓ (`U+2413`), ␔ (`U+2414`), ␡ (`U+2421`), Ⓓ (`U+24B9`), Ꟈ (`U+A7C7`), 𝐃 (`U+1D403`), 𝐷 (`U+1D437`), 𝑫 (`U+1D46B`), 𝖣 (`U+1D5A3`), 𝗗 (`U+1D5D7`), 𝘋 (`U+1D60B`), 𝘿 (`U+1D63F`), 𝙳 (`U+1D673`), 🄓 (`U+1F113`), 🄭 (`U+1F12D`), 🄳 (`U+1F133`), 🅌 (`U+1F14C`), 🅓 (`U+1F153`), 🅫 (`U+1F16B`), 🅳 (`U+1F173`), 🆐 (`U+1F190`), 🆔 (`U+1F194`), 🆛 (`U+1F19B`), 🆜 (`U+1F19C`), 🆧 (`U+1F1A7`), 🆫 (`U+1F1AB`), 🆬 (`U+1F1AC`) + D (`U+0044`), Ð (`U+00D0`), Ď (`U+010E`), Đ (`U+0110`), Ɖ (`U+0189`), Ɗ (`U+018A`), DŽ (`U+01C4`), Dž (`U+01C5`), DZ (`U+01F1`), Dz (`U+01F2`), ᴅ (`U+1D05`), ᴆ (`U+1D06`), ᴰ (`U+1D30`), Ḋ (`U+1E0A`), Ḍ (`U+1E0C`), Ḏ (`U+1E0E`), Ḑ (`U+1E10`), Ḓ (`U+1E12`), ₯ (`U+20AF`), Ⅾ (`U+216E`), ↁ (`U+2181`), ↇ (`U+2187`), ␐ (`U+2410`), ␑ (`U+2411`), ␒ (`U+2412`), ␓ (`U+2413`), ␔ (`U+2414`), ␡ (`U+2421`), Ⓓ (`U+24B9`), Ꟈ (`U+A7C7`), 𜳙 (`U+1CCD9`), 𝐃 (`U+1D403`), 𝐷 (`U+1D437`), 𝑫 (`U+1D46B`), 𝖣 (`U+1D5A3`), 𝗗 (`U+1D5D7`), 𝘋 (`U+1D60B`), 𝘿 (`U+1D63F`), 𝙳 (`U+1D673`), 🄓 (`U+1F113`), 🄭 (`U+1F12D`), 🄳 (`U+1F133`), 🅌 (`U+1F14C`), 🅓 (`U+1F153`), 🅫 (`U+1F16B`), 🅳 (`U+1F173`), 🆐 (`U+1F190`), 🆔 (`U+1F194`), 🆛 (`U+1F19B`), 🆜 (`U+1F19C`), 🆧 (`U+1F1A7`), 🆫 (`U+1F1AB`), 🆬 (`U+1F1AC`) - `cv05`: - E (`U+0045`), Æ (`U+00C6`), È (`U+00C8`), É (`U+00C9`), Ê (`U+00CA`), Ë (`U+00CB`), Ē (`U+0112`), Ĕ (`U+0114`), Ė (`U+0116`), Ę (`U+0118`), Ě (`U+011A`), Œ (`U+0152`), Ǝ (`U+018E`), Ǣ (`U+01E2`), Ǽ (`U+01FC`), Ȅ (`U+0204`), Ȇ (`U+0206`), Ȩ (`U+0228`), Ɇ (`U+0246`), ɶ (`U+0276`), Έ (`U+0388`), Ε (`U+0395`), Ѐ (`U+0400`), Ё (`U+0401`), Е (`U+0415`), Ӕ (`U+04D4`), Ӗ (`U+04D6`), Ԙ (`U+0518`), ᴁ (`U+1D01`), ᴇ (`U+1D07`), ᴭ (`U+1D2D`), ᴱ (`U+1D31`), ᴲ (`U+1D32`), Ḕ (`U+1E14`), Ḗ (`U+1E16`), Ḙ (`U+1E18`), Ḛ (`U+1E1A`), Ḝ (`U+1E1C`), Ẹ (`U+1EB8`), Ẻ (`U+1EBA`), Ẽ (`U+1EBC`), Ế (`U+1EBE`), Ề (`U+1EC0`), Ể (`U+1EC2`), Ễ (`U+1EC4`), Ệ (`U+1EC6`), Ἐ (`U+1F18`), Ἑ (`U+1F19`), Ἒ (`U+1F1A`), Ἓ (`U+1F1B`), Ἔ (`U+1F1C`), Ἕ (`U+1F1D`), Ὲ (`U+1FC8`), Έ (`U+1FC9`), ℡ (`U+2121`), ␃ (`U+2403`), ␄ (`U+2404`), ␅ (`U+2405`), ␇ (`U+2407`), ␐ (`U+2410`), ␗ (`U+2417`), ␙ (`U+2419`), ␛ (`U+241B`), ␡ (`U+2421`), Ⓔ (`U+24BA`), ⱻ (`U+2C7B`), 𐞣 (`U+107A3`), 𝐄 (`U+1D404`), 𝐸 (`U+1D438`), 𝑬 (`U+1D46C`), 𝖤 (`U+1D5A4`), 𝗘 (`U+1D5D8`), 𝘌 (`U+1D60C`), 𝙀 (`U+1D640`), 𝙴 (`U+1D674`), 𝚬 (`U+1D6AC`), 𝛦 (`U+1D6E6`), 𝜠 (`U+1D720`), 𝝚 (`U+1D75A`), 𝞔 (`U+1D794`), 🄔 (`U+1F114`), 🄴 (`U+1F134`), 🅔 (`U+1F154`), 🅴 (`U+1F174`), 🆓 (`U+1F193`), 🆕 (`U+1F195`), 🆨 (`U+1F1A8`), 🆩 (`U+1F1A9`) + E (`U+0045`), Æ (`U+00C6`), È (`U+00C8`), É (`U+00C9`), Ê (`U+00CA`), Ë (`U+00CB`), Ē (`U+0112`), Ĕ (`U+0114`), Ė (`U+0116`), Ę (`U+0118`), Ě (`U+011A`), Œ (`U+0152`), Ǝ (`U+018E`), Ǣ (`U+01E2`), Ǽ (`U+01FC`), Ȅ (`U+0204`), Ȇ (`U+0206`), Ȩ (`U+0228`), Ɇ (`U+0246`), ɶ (`U+0276`), Έ (`U+0388`), Ε (`U+0395`), Ѐ (`U+0400`), Ё (`U+0401`), Е (`U+0415`), Ӕ (`U+04D4`), Ӗ (`U+04D6`), Ԙ (`U+0518`), ᴁ (`U+1D01`), ᴇ (`U+1D07`), ᴭ (`U+1D2D`), ᴱ (`U+1D31`), ᴲ (`U+1D32`), Ḕ (`U+1E14`), Ḗ (`U+1E16`), Ḙ (`U+1E18`), Ḛ (`U+1E1A`), Ḝ (`U+1E1C`), Ẹ (`U+1EB8`), Ẻ (`U+1EBA`), Ẽ (`U+1EBC`), Ế (`U+1EBE`), Ề (`U+1EC0`), Ể (`U+1EC2`), Ễ (`U+1EC4`), Ệ (`U+1EC6`), Ἐ (`U+1F18`), Ἑ (`U+1F19`), Ἒ (`U+1F1A`), Ἓ (`U+1F1B`), Ἔ (`U+1F1C`), Ἕ (`U+1F1D`), Ὲ (`U+1FC8`), Έ (`U+1FC9`), ℡ (`U+2121`), ␃ (`U+2403`), ␄ (`U+2404`), ␅ (`U+2405`), ␇ (`U+2407`), ␐ (`U+2410`), ␗ (`U+2417`), ␙ (`U+2419`), ␛ (`U+241B`), ␡ (`U+2421`), Ⓔ (`U+24BA`), ⱻ (`U+2C7B`), 𐞣 (`U+107A3`), 𜳚 (`U+1CCDA`), 𝐄 (`U+1D404`), 𝐸 (`U+1D438`), 𝑬 (`U+1D46C`), 𝖤 (`U+1D5A4`), 𝗘 (`U+1D5D8`), 𝘌 (`U+1D60C`), 𝙀 (`U+1D640`), 𝙴 (`U+1D674`), 𝚬 (`U+1D6AC`), 𝛦 (`U+1D6E6`), 𝜠 (`U+1D720`), 𝝚 (`U+1D75A`), 𝞔 (`U+1D794`), 🄔 (`U+1F114`), 🄴 (`U+1F134`), 🅔 (`U+1F154`), 🅴 (`U+1F174`), 🆓 (`U+1F193`), 🆕 (`U+1F195`), 🆨 (`U+1F1A8`), 🆩 (`U+1F1A9`) - `cv06`: - F (`U+0046`), Ƒ (`U+0191`), Ḟ (`U+1E1E`), ₣ (`U+20A3`), ℉ (`U+2109`), Ⅎ (`U+2132`), ℻ (`U+213B`), ⅎ (`U+214E`), ␊ (`U+240A`), ␌ (`U+240C`), ␜ (`U+241C`), Ⓕ (`U+24BB`), ꜰ (`U+A730`), Ꞙ (`U+A798`), ꟳ (`U+A7F3`), ꟻ (`U+A7FB`), 𝐅 (`U+1D405`), 𝐹 (`U+1D439`), 𝑭 (`U+1D46D`), 𝖥 (`U+1D5A5`), 𝗙 (`U+1D5D9`), 𝘍 (`U+1D60D`), 𝙁 (`U+1D641`), 𝙵 (`U+1D675`), 🄕 (`U+1F115`), 🄵 (`U+1F135`), 🅕 (`U+1F155`), 🅵 (`U+1F175`), 🆓 (`U+1F193`) + F (`U+0046`), Ƒ (`U+0191`), Ḟ (`U+1E1E`), ₣ (`U+20A3`), ℉ (`U+2109`), Ⅎ (`U+2132`), ℻ (`U+213B`), ⅎ (`U+214E`), ␊ (`U+240A`), ␌ (`U+240C`), ␜ (`U+241C`), Ⓕ (`U+24BB`), ꜰ (`U+A730`), Ꞙ (`U+A798`), ꟳ (`U+A7F3`), ꟻ (`U+A7FB`), 𜳛 (`U+1CCDB`), 𝐅 (`U+1D405`), 𝐹 (`U+1D439`), 𝑭 (`U+1D46D`), 𝖥 (`U+1D5A5`), 𝗙 (`U+1D5D9`), 𝘍 (`U+1D60D`), 𝙁 (`U+1D641`), 𝙵 (`U+1D675`), 🄕 (`U+1F115`), 🄵 (`U+1F135`), 🅕 (`U+1F155`), 🅵 (`U+1F175`), 🆓 (`U+1F193`) - `cv07`: - G (`U+0047`), Ĝ (`U+011C`), Ğ (`U+011E`), Ġ (`U+0120`), Ģ (`U+0122`), Ɠ (`U+0193`), Ǥ (`U+01E4`), Ǧ (`U+01E6`), Ǵ (`U+01F4`), ɢ (`U+0262`), ʛ (`U+029B`), ᴳ (`U+1D33`), ᷛ (`U+1DDB`), Ḡ (`U+1E20`), ₲ (`U+20B2`), ⅁ (`U+2141`), ␝ (`U+241D`), Ⓖ (`U+24BC`), Ꞡ (`U+A7A0`), 𐞒 (`U+10792`), 𐞔 (`U+10794`), 𝐆 (`U+1D406`), 𝐺 (`U+1D43A`), 𝑮 (`U+1D46E`), 𝖦 (`U+1D5A6`), 𝗚 (`U+1D5DA`), 𝘎 (`U+1D60E`), 𝙂 (`U+1D642`), 𝙶 (`U+1D676`), 𝼂 (`U+1DF02`), 🄖 (`U+1F116`), 🄶 (`U+1F136`), 🅖 (`U+1F156`), 🅶 (`U+1F176`), 🆖 (`U+1F196`) + G (`U+0047`), Ĝ (`U+011C`), Ğ (`U+011E`), Ġ (`U+0120`), Ģ (`U+0122`), Ɠ (`U+0193`), Ǥ (`U+01E4`), Ǧ (`U+01E6`), Ǵ (`U+01F4`), ɢ (`U+0262`), ʛ (`U+029B`), ᴳ (`U+1D33`), ᷛ (`U+1DDB`), Ḡ (`U+1E20`), ₲ (`U+20B2`), ⅁ (`U+2141`), ␝ (`U+241D`), Ⓖ (`U+24BC`), Ꞡ (`U+A7A0`), 𐞒 (`U+10792`), 𐞔 (`U+10794`), 𜳜 (`U+1CCDC`), 𝐆 (`U+1D406`), 𝐺 (`U+1D43A`), 𝑮 (`U+1D46E`), 𝖦 (`U+1D5A6`), 𝗚 (`U+1D5DA`), 𝘎 (`U+1D60E`), 𝙂 (`U+1D642`), 𝙶 (`U+1D676`), 𝼂 (`U+1DF02`), 🄖 (`U+1F116`), 🄶 (`U+1F136`), 🅖 (`U+1F156`), 🅶 (`U+1F176`), 🆖 (`U+1F196`) - `cv08`: - H (`U+0048`), Ĥ (`U+0124`), Ħ (`U+0126`), Ƕ (`U+01F6`), Ȟ (`U+021E`), ʜ (`U+029C`), Ͱ (`U+0370`), Ή (`U+0389`), Η (`U+0397`), Њ (`U+040A`), Н (`U+041D`), Ң (`U+04A2`), Ҥ (`U+04A4`), Ӈ (`U+04C7`), Ӊ (`U+04C9`), Ԋ (`U+050A`), Ԣ (`U+0522`), Ԩ (`U+0528`), ᴴ (`U+1D34`), Ḣ (`U+1E22`), Ḥ (`U+1E24`), Ḧ (`U+1E26`), Ḩ (`U+1E28`), Ḫ (`U+1E2A`), Ἠ (`U+1F28`), Ἡ (`U+1F29`), Ἢ (`U+1F2A`), Ἣ (`U+1F2B`), Ἤ (`U+1F2C`), Ἥ (`U+1F2D`), Ἦ (`U+1F2E`), Ἧ (`U+1F2F`), ᾘ (`U+1F98`), ᾙ (`U+1F99`), ᾚ (`U+1F9A`), ᾛ (`U+1F9B`), ᾜ (`U+1F9C`), ᾝ (`U+1F9D`), ᾞ (`U+1F9E`), ᾟ (`U+1F9F`), Ὴ (`U+1FCA`), Ή (`U+1FCB`), ῌ (`U+1FCC`), ␁ (`U+2401`), ␉ (`U+2409`), Ⓗ (`U+24BD`), Ⱨ (`U+2C67`), Ⱶ (`U+2C75`), ⱶ (`U+2C76`), Ꜧ (`U+A726`), Ɥ (`U+A78D`), Ɦ (`U+A7AA`), Ꟶ (`U+A7F5`), ꟶ (`U+A7F6`), ꟸ (`U+A7F8`), 𐞖 (`U+10796`), 𝐇 (`U+1D407`), 𝐻 (`U+1D43B`), 𝑯 (`U+1D46F`), 𝖧 (`U+1D5A7`), 𝗛 (`U+1D5DB`), 𝘏 (`U+1D60F`), 𝙃 (`U+1D643`), 𝙷 (`U+1D677`), 𝚮 (`U+1D6AE`), 𝛨 (`U+1D6E8`), 𝜢 (`U+1D722`), 𝝜 (`U+1D75C`), 𝞖 (`U+1D796`), 🄗 (`U+1F117`), 🄷 (`U+1F137`), 🅊 (`U+1F14A`), 🅗 (`U+1F157`), 🅷 (`U+1F177`), 🆦 (`U+1F1A6`), 🆧 (`U+1F1A7`), 🆨 (`U+1F1A8`), 🆪 (`U+1F1AA`), 🆫 (`U+1F1AB`) + H (`U+0048`), Ĥ (`U+0124`), Ħ (`U+0126`), Ƕ (`U+01F6`), Ȟ (`U+021E`), ʜ (`U+029C`), Ͱ (`U+0370`), Ή (`U+0389`), Η (`U+0397`), Њ (`U+040A`), Н (`U+041D`), Ң (`U+04A2`), Ҥ (`U+04A4`), Ӈ (`U+04C7`), Ӊ (`U+04C9`), Ԋ (`U+050A`), Ԣ (`U+0522`), Ԩ (`U+0528`), ᴴ (`U+1D34`), Ḣ (`U+1E22`), Ḥ (`U+1E24`), Ḧ (`U+1E26`), Ḩ (`U+1E28`), Ḫ (`U+1E2A`), Ἠ (`U+1F28`), Ἡ (`U+1F29`), Ἢ (`U+1F2A`), Ἣ (`U+1F2B`), Ἤ (`U+1F2C`), Ἥ (`U+1F2D`), Ἦ (`U+1F2E`), Ἧ (`U+1F2F`), ᾘ (`U+1F98`), ᾙ (`U+1F99`), ᾚ (`U+1F9A`), ᾛ (`U+1F9B`), ᾜ (`U+1F9C`), ᾝ (`U+1F9D`), ᾞ (`U+1F9E`), ᾟ (`U+1F9F`), Ὴ (`U+1FCA`), Ή (`U+1FCB`), ῌ (`U+1FCC`), ␁ (`U+2401`), ␉ (`U+2409`), Ⓗ (`U+24BD`), Ⱨ (`U+2C67`), Ⱶ (`U+2C75`), ⱶ (`U+2C76`), Ꜧ (`U+A726`), Ɥ (`U+A78D`), Ɦ (`U+A7AA`), Ꟶ (`U+A7F5`), ꟶ (`U+A7F6`), ꟸ (`U+A7F8`), 𐞖 (`U+10796`), 𜳝 (`U+1CCDD`), 𝐇 (`U+1D407`), 𝐻 (`U+1D43B`), 𝑯 (`U+1D46F`), 𝖧 (`U+1D5A7`), 𝗛 (`U+1D5DB`), 𝘏 (`U+1D60F`), 𝙃 (`U+1D643`), 𝙷 (`U+1D677`), 𝚮 (`U+1D6AE`), 𝛨 (`U+1D6E8`), 𝜢 (`U+1D722`), 𝝜 (`U+1D75C`), 𝞖 (`U+1D796`), 🄗 (`U+1F117`), 🄷 (`U+1F137`), 🅊 (`U+1F14A`), 🅗 (`U+1F157`), 🅷 (`U+1F177`), 🆦 (`U+1F1A6`), 🆧 (`U+1F1A7`), 🆨 (`U+1F1A8`), 🆪 (`U+1F1AA`), 🆫 (`U+1F1AB`) - `cv09`: - I (`U+0049`), Ì (`U+00CC`), Í (`U+00CD`), Î (`U+00CE`), Ï (`U+00CF`), Ĩ (`U+0128`), Ī (`U+012A`), Ĭ (`U+012C`), Į (`U+012E`), İ (`U+0130`), IJ (`U+0132`), Ɨ (`U+0197`), Ǐ (`U+01CF`), Ȉ (`U+0208`), Ȋ (`U+020A`), Ί (`U+038A`), Ι (`U+0399`), Ϊ (`U+03AA`), І (`U+0406`), Ї (`U+0407`), Ӏ (`U+04C0`), ᴵ (`U+1D35`), Ḭ (`U+1E2C`), Ḯ (`U+1E2E`), Ỉ (`U+1EC8`), Ị (`U+1ECA`), Ἰ (`U+1F38`), Ἱ (`U+1F39`), Ἲ (`U+1F3A`), Ἳ (`U+1F3B`), Ἴ (`U+1F3C`), Ἵ (`U+1F3D`), Ἶ (`U+1F3E`), Ἷ (`U+1F3F`), Ῐ (`U+1FD8`), Ῑ (`U+1FD9`), Ὶ (`U+1FDA`), Ί (`U+1FDB`), Ⅰ (`U+2160`), Ⅱ (`U+2161`), Ⅲ (`U+2162`), Ⅳ (`U+2163`), Ⅵ (`U+2165`), Ⅶ (`U+2166`), Ⅷ (`U+2167`), Ⅸ (`U+2168`), Ⅺ (`U+216A`), Ⅻ (`U+216B`), ␏ (`U+240F`), Ⓘ (`U+24BE`), Ꞽ (`U+A7BC`), ꟷ (`U+A7F7`), ꟾ (`U+A7FE`), 𝐈 (`U+1D408`), 𝐼 (`U+1D43C`), 𝑰 (`U+1D470`), 𝖨 (`U+1D5A8`), 𝗜 (`U+1D5DC`), 𝘐 (`U+1D610`), 𝙄 (`U+1D644`), 𝙸 (`U+1D678`), 𝚰 (`U+1D6B0`), 𝛪 (`U+1D6EA`), 𝜤 (`U+1D724`), 𝝞 (`U+1D75E`), 𝞘 (`U+1D798`), 🄘 (`U+1F118`), 🄸 (`U+1F138`), 🅘 (`U+1F158`), 🅸 (`U+1F178`), 🆋 (`U+1F18B`), 🆔 (`U+1F194`), 🆨 (`U+1F1A8`) + I (`U+0049`), Ì (`U+00CC`), Í (`U+00CD`), Î (`U+00CE`), Ï (`U+00CF`), Ĩ (`U+0128`), Ī (`U+012A`), Ĭ (`U+012C`), Į (`U+012E`), İ (`U+0130`), IJ (`U+0132`), Ɨ (`U+0197`), Ǐ (`U+01CF`), Ȉ (`U+0208`), Ȋ (`U+020A`), Ί (`U+038A`), Ι (`U+0399`), Ϊ (`U+03AA`), І (`U+0406`), Ї (`U+0407`), Ӏ (`U+04C0`), ᴵ (`U+1D35`), Ḭ (`U+1E2C`), Ḯ (`U+1E2E`), Ỉ (`U+1EC8`), Ị (`U+1ECA`), Ἰ (`U+1F38`), Ἱ (`U+1F39`), Ἲ (`U+1F3A`), Ἳ (`U+1F3B`), Ἴ (`U+1F3C`), Ἵ (`U+1F3D`), Ἶ (`U+1F3E`), Ἷ (`U+1F3F`), Ῐ (`U+1FD8`), Ῑ (`U+1FD9`), Ὶ (`U+1FDA`), Ί (`U+1FDB`), Ⅰ (`U+2160`), Ⅱ (`U+2161`), Ⅲ (`U+2162`), Ⅳ (`U+2163`), Ⅵ (`U+2165`), Ⅶ (`U+2166`), Ⅷ (`U+2167`), Ⅸ (`U+2168`), Ⅺ (`U+216A`), Ⅻ (`U+216B`), ␏ (`U+240F`), Ⓘ (`U+24BE`), Ꞽ (`U+A7BC`), ꟷ (`U+A7F7`), ꟾ (`U+A7FE`), 𜳞 (`U+1CCDE`), 𝐈 (`U+1D408`), 𝐼 (`U+1D43C`), 𝑰 (`U+1D470`), 𝖨 (`U+1D5A8`), 𝗜 (`U+1D5DC`), 𝘐 (`U+1D610`), 𝙄 (`U+1D644`), 𝙸 (`U+1D678`), 𝚰 (`U+1D6B0`), 𝛪 (`U+1D6EA`), 𝜤 (`U+1D724`), 𝝞 (`U+1D75E`), 𝞘 (`U+1D798`), 🄘 (`U+1F118`), 🄸 (`U+1F138`), 🅘 (`U+1F158`), 🅸 (`U+1F178`), 🆋 (`U+1F18B`), 🆔 (`U+1F194`), 🆨 (`U+1F1A8`) - `cv10`: - J (`U+004A`), IJ (`U+0132`), Ĵ (`U+0134`), LJ (`U+01C7`), NJ (`U+01CA`), Ɉ (`U+0248`), Ϳ (`U+037F`), Ј (`U+0408`), ᴊ (`U+1D0A`), ᴶ (`U+1D36`), Ⓙ (`U+24BF`), Ʝ (`U+A7B2`),  (`U+FFFC`), 𝐉 (`U+1D409`), 𝐽 (`U+1D43D`), 𝑱 (`U+1D471`), 𝖩 (`U+1D5A9`), 𝗝 (`U+1D5DD`), 𝘑 (`U+1D611`), 𝙅 (`U+1D645`), 𝙹 (`U+1D679`), 🄙 (`U+1F119`), 🄹 (`U+1F139`), 🅙 (`U+1F159`), 🅹 (`U+1F179`), 🆐 (`U+1F190`) + J (`U+004A`), IJ (`U+0132`), Ĵ (`U+0134`), LJ (`U+01C7`), NJ (`U+01CA`), Ɉ (`U+0248`), Ϳ (`U+037F`), Ј (`U+0408`), ᴊ (`U+1D0A`), ᴶ (`U+1D36`), Ⓙ (`U+24BF`), Ʝ (`U+A7B2`),  (`U+FFFC`), 𜳟 (`U+1CCDF`), 𝐉 (`U+1D409`), 𝐽 (`U+1D43D`), 𝑱 (`U+1D471`), 𝖩 (`U+1D5A9`), 𝗝 (`U+1D5DD`), 𝘑 (`U+1D611`), 𝙅 (`U+1D645`), 𝙹 (`U+1D679`), 🄙 (`U+1F119`), 🄹 (`U+1F139`), 🅙 (`U+1F159`), 🅹 (`U+1F179`), 🆐 (`U+1F190`) - `cv11`: - K (`U+004B`), Ķ (`U+0136`), Ƙ (`U+0198`), Ǩ (`U+01E8`), Κ (`U+039A`), Ϗ (`U+03CF`), ᴋ (`U+1D0B`), ᴷ (`U+1D37`), Ḱ (`U+1E30`), Ḳ (`U+1E32`), Ḵ (`U+1E34`), ₭ (`U+20AD`), K (`U+212A`), ␆ (`U+2406`), ␕ (`U+2415`), Ⓚ (`U+24C0`), Ⱪ (`U+2C69`), Ꝁ (`U+A740`), Ꝃ (`U+A742`), Ꝅ (`U+A744`), Ꞣ (`U+A7A2`), Ʞ (`U+A7B0`), 𝐊 (`U+1D40A`), 𝐾 (`U+1D43E`), 𝑲 (`U+1D472`), 𝖪 (`U+1D5AA`), 𝗞 (`U+1D5DE`), 𝘒 (`U+1D612`), 𝙆 (`U+1D646`), 𝙺 (`U+1D67A`), 𝚱 (`U+1D6B1`), 𝛫 (`U+1D6EB`), 𝜥 (`U+1D725`), 𝝟 (`U+1D75F`), 𝞙 (`U+1D799`), 𝼐 (`U+1DF10`), 🄚 (`U+1F11A`), 🄺 (`U+1F13A`), 🅚 (`U+1F15A`), 🅺 (`U+1F17A`), 🆗 (`U+1F197`), 🆝 (`U+1F19D`), 🆞 (`U+1F19E`), 🆟 (`U+1F19F`) + K (`U+004B`), Ķ (`U+0136`), Ƙ (`U+0198`), Ǩ (`U+01E8`), Κ (`U+039A`), Ϗ (`U+03CF`), ᴋ (`U+1D0B`), ᴷ (`U+1D37`), Ḱ (`U+1E30`), Ḳ (`U+1E32`), Ḵ (`U+1E34`), ₭ (`U+20AD`), K (`U+212A`), ␆ (`U+2406`), ␕ (`U+2415`), Ⓚ (`U+24C0`), Ⱪ (`U+2C69`), Ꝁ (`U+A740`), Ꝃ (`U+A742`), Ꝅ (`U+A744`), Ꞣ (`U+A7A2`), Ʞ (`U+A7B0`), 𜳠 (`U+1CCE0`), 𝐊 (`U+1D40A`), 𝐾 (`U+1D43E`), 𝑲 (`U+1D472`), 𝖪 (`U+1D5AA`), 𝗞 (`U+1D5DE`), 𝘒 (`U+1D612`), 𝙆 (`U+1D646`), 𝙺 (`U+1D67A`), 𝚱 (`U+1D6B1`), 𝛫 (`U+1D6EB`), 𝜥 (`U+1D725`), 𝝟 (`U+1D75F`), 𝞙 (`U+1D799`), 𝼐 (`U+1DF10`), 🄚 (`U+1F11A`), 🄺 (`U+1F13A`), 🅚 (`U+1F15A`), 🅺 (`U+1F17A`), 🆗 (`U+1F197`), 🆝 (`U+1F19D`), 🆞 (`U+1F19E`), 🆟 (`U+1F19F`) - `cv12`: - L (`U+004C`), Ĺ (`U+0139`), Ļ (`U+013B`), Ľ (`U+013D`), Ŀ (`U+013F`), Ł (`U+0141`), LJ (`U+01C7`), Lj (`U+01C8`), Ƚ (`U+023D`), ʟ (`U+029F`), ᴌ (`U+1D0C`), ᴸ (`U+1D38`), ᶫ (`U+1DAB`), ᷞ (`U+1DDE`), Ḷ (`U+1E36`), Ḹ (`U+1E38`), Ḻ (`U+1E3A`), Ḽ (`U+1E3C`), Ỻ (`U+1EFA`), ℡ (`U+2121`), ⅂ (`U+2142`), Ⅼ (`U+216C`), ␀ (`U+2400`), ␇ (`U+2407`), ␊ (`U+240A`), ␐ (`U+2410`), ␡ (`U+2421`), ␤ (`U+2424`), Ⓛ (`U+24C1`), Ⱡ (`U+2C60`), Ɫ (`U+2C62`), Ꝉ (`U+A748`), Ꞁ (`U+A780`), Ɬ (`U+A7AD`),  (`U+E0A1`), 𐞜 (`U+1079C`), 𝐋 (`U+1D40B`), 𝐿 (`U+1D43F`), 𝑳 (`U+1D473`), 𝖫 (`U+1D5AB`), 𝗟 (`U+1D5DF`), 𝘓 (`U+1D613`), 𝙇 (`U+1D647`), 𝙻 (`U+1D67B`), 𝼄 (`U+1DF04`), 🄛 (`U+1F11B`), 🄻 (`U+1F13B`), 🅛 (`U+1F15B`), 🅻 (`U+1F17B`), 🆑 (`U+1F191`), 🆒 (`U+1F192`), 🆩 (`U+1F1A9`) + L (`U+004C`), Ĺ (`U+0139`), Ļ (`U+013B`), Ľ (`U+013D`), Ŀ (`U+013F`), Ł (`U+0141`), LJ (`U+01C7`), Lj (`U+01C8`), Ƚ (`U+023D`), ʟ (`U+029F`), ᴌ (`U+1D0C`), ᴸ (`U+1D38`), ᶫ (`U+1DAB`), ᷞ (`U+1DDE`), Ḷ (`U+1E36`), Ḹ (`U+1E38`), Ḻ (`U+1E3A`), Ḽ (`U+1E3C`), Ỻ (`U+1EFA`), ℡ (`U+2121`), ⅂ (`U+2142`), Ⅼ (`U+216C`), ␀ (`U+2400`), ␇ (`U+2407`), ␊ (`U+240A`), ␐ (`U+2410`), ␡ (`U+2421`), ␤ (`U+2424`), Ⓛ (`U+24C1`), Ⱡ (`U+2C60`), Ɫ (`U+2C62`), Ꝉ (`U+A748`), Ꞁ (`U+A780`), Ɬ (`U+A7AD`),  (`U+E0A1`), 𐞜 (`U+1079C`), 𜳡 (`U+1CCE1`), 𝐋 (`U+1D40B`), 𝐿 (`U+1D43F`), 𝑳 (`U+1D473`), 𝖫 (`U+1D5AB`), 𝗟 (`U+1D5DF`), 𝘓 (`U+1D613`), 𝙇 (`U+1D647`), 𝙻 (`U+1D67B`), 𝼄 (`U+1DF04`), 🄛 (`U+1F11B`), 🄻 (`U+1F13B`), 🅛 (`U+1F15B`), 🅻 (`U+1F17B`), 🆑 (`U+1F191`), 🆒 (`U+1F192`), 🆩 (`U+1F1A9`) - `cv13`: - M (`U+004D`), Μ (`U+039C`), М (`U+041C`), Ӎ (`U+04CD`), ᴍ (`U+1D0D`), ᴹ (`U+1D39`), ᷟ (`U+1DDF`), Ḿ (`U+1E3E`), Ṁ (`U+1E40`), Ṃ (`U+1E42`), ℠ (`U+2120`), ™ (`U+2122`), Ⅿ (`U+216F`), ␙ (`U+2419`), Ⓜ (`U+24C2`), Ɱ (`U+2C6E`), Ꙧ (`U+A666`), ꟽ (`U+A7FD`), 𝐌 (`U+1D40C`), 𝑀 (`U+1D440`), 𝑴 (`U+1D474`), 𝖬 (`U+1D5AC`), 𝗠 (`U+1D5E0`), 𝘔 (`U+1D614`), 𝙈 (`U+1D648`), 𝙼 (`U+1D67C`), 𝚳 (`U+1D6B3`), 𝛭 (`U+1D6ED`), 𝜧 (`U+1D727`), 𝝡 (`U+1D761`), 𝞛 (`U+1D79B`), 🄜 (`U+1F11C`), 🄼 (`U+1F13C`), 🅋 (`U+1F14B`), 🅜 (`U+1F15C`), 🅪 (`U+1F16A`), 🅫 (`U+1F16B`), 🅬 (`U+1F16C`), 🅼 (`U+1F17C`), 🆭 (`U+1F1AD`) + M (`U+004D`), Μ (`U+039C`), М (`U+041C`), Ӎ (`U+04CD`), ᴍ (`U+1D0D`), ᴹ (`U+1D39`), ᷟ (`U+1DDF`), Ḿ (`U+1E3E`), Ṁ (`U+1E40`), Ṃ (`U+1E42`), ℠ (`U+2120`), ™ (`U+2122`), Ⅿ (`U+216F`), ␙ (`U+2419`), Ⓜ (`U+24C2`), Ɱ (`U+2C6E`), Ꙧ (`U+A666`), ꟽ (`U+A7FD`), 𜳢 (`U+1CCE2`), 𝐌 (`U+1D40C`), 𝑀 (`U+1D440`), 𝑴 (`U+1D474`), 𝖬 (`U+1D5AC`), 𝗠 (`U+1D5E0`), 𝘔 (`U+1D614`), 𝙈 (`U+1D648`), 𝙼 (`U+1D67C`), 𝚳 (`U+1D6B3`), 𝛭 (`U+1D6ED`), 𝜧 (`U+1D727`), 𝝡 (`U+1D761`), 𝞛 (`U+1D79B`), 🄜 (`U+1F11C`), 🄼 (`U+1F13C`), 🅋 (`U+1F14B`), 🅜 (`U+1F15C`), 🅪 (`U+1F16A`), 🅫 (`U+1F16B`), 🅬 (`U+1F16C`), 🅼 (`U+1F17C`), 🆭 (`U+1F1AD`) - `cv14`: - N (`U+004E`), Ñ (`U+00D1`), Ń (`U+0143`), Ņ (`U+0145`), Ň (`U+0147`), Ŋ (`U+014A`), Ɲ (`U+019D`), NJ (`U+01CA`), Nj (`U+01CB`), Ǹ (`U+01F8`), ɴ (`U+0274`), Ν (`U+039D`), ᴎ (`U+1D0E`), ᴺ (`U+1D3A`), ᴻ (`U+1D3B`), ᶰ (`U+1DB0`), ᷡ (`U+1DE1`), Ṅ (`U+1E44`), Ṇ (`U+1E46`), Ṉ (`U+1E48`), Ṋ (`U+1E4A`), ₦ (`U+20A6`), № (`U+2116`), ␀ (`U+2400`), ␅ (`U+2405`), ␕ (`U+2415`), ␖ (`U+2416`), ␘ (`U+2418`), ␤ (`U+2424`), Ⓝ (`U+24C3`), Ꞑ (`U+A790`), Ꞥ (`U+A7A4`),  (`U+E0A1`),  (`U+E0A3`), 𝐍 (`U+1D40D`), 𝑁 (`U+1D441`), 𝑵 (`U+1D475`), 𝖭 (`U+1D5AD`), 𝗡 (`U+1D5E1`), 𝘕 (`U+1D615`), 𝙉 (`U+1D649`), 𝙽 (`U+1D67D`), 𝚴 (`U+1D6B4`), 𝛮 (`U+1D6EE`), 𝜨 (`U+1D728`), 𝝢 (`U+1D762`), 𝞜 (`U+1D79C`), 🄝 (`U+1F11D`), 🄽 (`U+1F13D`), 🅝 (`U+1F15D`), 🅽 (`U+1F17D`), 🆕 (`U+1F195`), 🆖 (`U+1F196`), 🆜 (`U+1F19C`) + N (`U+004E`), Ñ (`U+00D1`), Ń (`U+0143`), Ņ (`U+0145`), Ň (`U+0147`), Ŋ (`U+014A`), Ɲ (`U+019D`), NJ (`U+01CA`), Nj (`U+01CB`), Ǹ (`U+01F8`), ɴ (`U+0274`), Ν (`U+039D`), ᴎ (`U+1D0E`), ᴺ (`U+1D3A`), ᴻ (`U+1D3B`), ᶰ (`U+1DB0`), ᷡ (`U+1DE1`), Ṅ (`U+1E44`), Ṇ (`U+1E46`), Ṉ (`U+1E48`), Ṋ (`U+1E4A`), ₦ (`U+20A6`), № (`U+2116`), ␀ (`U+2400`), ␅ (`U+2405`), ␕ (`U+2415`), ␖ (`U+2416`), ␘ (`U+2418`), ␤ (`U+2424`), Ⓝ (`U+24C3`), Ꞑ (`U+A790`), Ꞥ (`U+A7A4`),  (`U+E0A1`),  (`U+E0A3`), 𜳣 (`U+1CCE3`), 𝐍 (`U+1D40D`), 𝑁 (`U+1D441`), 𝑵 (`U+1D475`), 𝖭 (`U+1D5AD`), 𝗡 (`U+1D5E1`), 𝘕 (`U+1D615`), 𝙉 (`U+1D649`), 𝙽 (`U+1D67D`), 𝚴 (`U+1D6B4`), 𝛮 (`U+1D6EE`), 𝜨 (`U+1D728`), 𝝢 (`U+1D762`), 𝞜 (`U+1D79C`), 🄝 (`U+1F11D`), 🄽 (`U+1F13D`), 🅝 (`U+1F15D`), 🅽 (`U+1F17D`), 🆕 (`U+1F195`), 🆖 (`U+1F196`), 🆜 (`U+1F19C`) - `cv15`: - P (`U+0050`), Ƥ (`U+01A4`), Ρ (`U+03A1`), Р (`U+0420`), Ҏ (`U+048E`), Ԗ (`U+0516`), ᴘ (`U+1D18`), ᴩ (`U+1D29`), ᴾ (`U+1D3E`), Ṕ (`U+1E54`), Ṗ (`U+1E56`), Ῥ (`U+1FEC`), ₧ (`U+20A7`), ₱ (`U+20B1`), ₽ (`U+20BD`), ℗ (`U+2117`), ␠ (`U+2420`), Ⓟ (`U+24C5`), Ᵽ (`U+2C63`), Ꝑ (`U+A750`), ꟼ (`U+A7FC`), 𝐏 (`U+1D40F`), 𝑃 (`U+1D443`), 𝑷 (`U+1D477`), 𝖯 (`U+1D5AF`), 𝗣 (`U+1D5E3`), 𝘗 (`U+1D617`), 𝙋 (`U+1D64B`), 𝙿 (`U+1D67F`), 𝚸 (`U+1D6B8`), 𝛲 (`U+1D6F2`), 𝜬 (`U+1D72C`), 𝝦 (`U+1D766`), 𝞠 (`U+1D7A0`), 🄟 (`U+1F11F`), 🄿 (`U+1F13F`), 🅎 (`U+1F14E`), 🅟 (`U+1F15F`), 🅿 (`U+1F17F`), 🆌 (`U+1F18C`), 🆙 (`U+1F199`), 🆣 (`U+1F1A3`), 🆤 (`U+1F1A4`) + P (`U+0050`), Ƥ (`U+01A4`), Ρ (`U+03A1`), Р (`U+0420`), Ҏ (`U+048E`), Ԗ (`U+0516`), ᴘ (`U+1D18`), ᴩ (`U+1D29`), ᴾ (`U+1D3E`), Ṕ (`U+1E54`), Ṗ (`U+1E56`), Ῥ (`U+1FEC`), ₧ (`U+20A7`), ₱ (`U+20B1`), ₽ (`U+20BD`), ℗ (`U+2117`), ␠ (`U+2420`), Ⓟ (`U+24C5`), Ᵽ (`U+2C63`), Ꝑ (`U+A750`), ꟼ (`U+A7FC`), 𜳥 (`U+1CCE5`), 𝐏 (`U+1D40F`), 𝑃 (`U+1D443`), 𝑷 (`U+1D477`), 𝖯 (`U+1D5AF`), 𝗣 (`U+1D5E3`), 𝘗 (`U+1D617`), 𝙋 (`U+1D64B`), 𝙿 (`U+1D67F`), 𝚸 (`U+1D6B8`), 𝛲 (`U+1D6F2`), 𝜬 (`U+1D72C`), 𝝦 (`U+1D766`), 𝞠 (`U+1D7A0`), 🄟 (`U+1F11F`), 🄿 (`U+1F13F`), 🅎 (`U+1F14E`), 🅟 (`U+1F15F`), 🅿 (`U+1F17F`), 🆌 (`U+1F18C`), 🆙 (`U+1F199`), 🆣 (`U+1F1A3`), 🆤 (`U+1F1A4`) - `cv16`: - Q (`U+0051`), Ԛ (`U+051A`), ℺ (`U+213A`), ␅ (`U+2405`), Ⓠ (`U+24C6`), ꞯ (`U+A7AF`), ꟴ (`U+A7F4`), 𝐐 (`U+1D410`), 𝑄 (`U+1D444`), 𝑸 (`U+1D478`), 𝖰 (`U+1D5B0`), 𝗤 (`U+1D5E4`), 𝘘 (`U+1D618`), 𝙌 (`U+1D64C`), 𝚀 (`U+1D680`), 🄠 (`U+1F120`), 🅀 (`U+1F140`), 🅠 (`U+1F160`), 🆀 (`U+1F180`) + Q (`U+0051`), Ԛ (`U+051A`), ℺ (`U+213A`), ␅ (`U+2405`), Ⓠ (`U+24C6`), ꞯ (`U+A7AF`), ꟴ (`U+A7F4`), 𜳦 (`U+1CCE6`), 𝐐 (`U+1D410`), 𝑄 (`U+1D444`), 𝑸 (`U+1D478`), 𝖰 (`U+1D5B0`), 𝗤 (`U+1D5E4`), 𝘘 (`U+1D618`), 𝙌 (`U+1D64C`), 𝚀 (`U+1D680`), 🄠 (`U+1F120`), 🅀 (`U+1F140`), 🅠 (`U+1F160`), 🆀 (`U+1F180`) - `cv17`: - R (`U+0052`), ® (`U+00AE`), Ŕ (`U+0154`), Ŗ (`U+0156`), Ř (`U+0158`), Ʀ (`U+01A6`), Ȑ (`U+0210`), Ȓ (`U+0212`), Ɍ (`U+024C`), ʀ (`U+0280`), ʁ (`U+0281`), ʶ (`U+02B6`), ᴙ (`U+1D19`), ᴚ (`U+1D1A`), ᴿ (`U+1D3F`), ᷢ (`U+1DE2`), ᷣ (`U+1DE3`), Ṙ (`U+1E58`), Ṛ (`U+1E5A`), Ṝ (`U+1E5C`), Ṟ (`U+1E5E`), ₨ (`U+20A8`), ₹ (`U+20B9`), ␍ (`U+240D`), ␞ (`U+241E`), Ⓡ (`U+24C7`), Ɽ (`U+2C64`), Ꝛ (`U+A75A`), ꝛ (`U+A75B`), Ꞧ (`U+A7A6`), ꭆ (`U+AB46`), 𐞪 (`U+107AA`), 𝐑 (`U+1D411`), 𝑅 (`U+1D445`), 𝑹 (`U+1D479`), 𝖱 (`U+1D5B1`), 𝗥 (`U+1D5E5`), 𝘙 (`U+1D619`), 𝙍 (`U+1D64D`), 𝚁 (`U+1D681`), 🄡 (`U+1F121`), 🄬 (`U+1F12C`), 🅁 (`U+1F141`), 🅡 (`U+1F161`), 🅬 (`U+1F16C`), 🆁 (`U+1F181`), 🆓 (`U+1F193`), 🆜 (`U+1F19C`), 🆧 (`U+1F1A7`), 🆨 (`U+1F1A8`) + R (`U+0052`), ® (`U+00AE`), Ŕ (`U+0154`), Ŗ (`U+0156`), Ř (`U+0158`), Ʀ (`U+01A6`), Ȑ (`U+0210`), Ȓ (`U+0212`), Ɍ (`U+024C`), ʀ (`U+0280`), ʁ (`U+0281`), ʶ (`U+02B6`), ᴙ (`U+1D19`), ᴚ (`U+1D1A`), ᴿ (`U+1D3F`), ᷢ (`U+1DE2`), ᷣ (`U+1DE3`), Ṙ (`U+1E58`), Ṛ (`U+1E5A`), Ṝ (`U+1E5C`), Ṟ (`U+1E5E`), ₨ (`U+20A8`), ₹ (`U+20B9`), ␍ (`U+240D`), ␞ (`U+241E`), Ⓡ (`U+24C7`), Ɽ (`U+2C64`), Ꝛ (`U+A75A`), ꝛ (`U+A75B`), Ꞧ (`U+A7A6`), ꭆ (`U+AB46`), 𐞪 (`U+107AA`), 𜳧 (`U+1CCE7`), 𝐑 (`U+1D411`), 𝑅 (`U+1D445`), 𝑹 (`U+1D479`), 𝖱 (`U+1D5B1`), 𝗥 (`U+1D5E5`), 𝘙 (`U+1D619`), 𝙍 (`U+1D64D`), 𝚁 (`U+1D681`), 🄡 (`U+1F121`), 🄬 (`U+1F12C`), 🅁 (`U+1F141`), 🅡 (`U+1F161`), 🅬 (`U+1F16C`), 🆁 (`U+1F181`), 🆓 (`U+1F193`), 🆜 (`U+1F19C`), 🆧 (`U+1F1A7`), 🆨 (`U+1F1A8`) - `cv18`: - $ (`U+0024`), S (`U+0053`), Ś (`U+015A`), Ŝ (`U+015C`), Ş (`U+015E`), Š (`U+0160`), Ƨ (`U+01A7`), Ș (`U+0218`), Ѕ (`U+0405`), Ṡ (`U+1E60`), Ṣ (`U+1E62`), Ṥ (`U+1E64`), Ṧ (`U+1E66`), Ṩ (`U+1E68`), ₴ (`U+20B4`), ℠ (`U+2120`), ⅍ (`U+214D`), ␁ (`U+2401`), ␂ (`U+2402`), ␈ (`U+2408`), ␎ (`U+240E`), ␏ (`U+240F`), ␖ (`U+2416`), ␚ (`U+241A`), ␛ (`U+241B`), ␜ (`U+241C`), ␝ (`U+241D`), ␞ (`U+241E`), ␟ (`U+241F`), ␠ (`U+2420`), Ⓢ (`U+24C8`), Ȿ (`U+2C7E`), Ꙅ (`U+A644`), ꜱ (`U+A731`), Ꞩ (`U+A7A8`), Ʂ (`U+A7C5`), Ꟊ (`U+A7C9`), 𝐒 (`U+1D412`), 𝑆 (`U+1D446`), 𝑺 (`U+1D47A`), 𝖲 (`U+1D5B2`), 𝗦 (`U+1D5E6`), 𝘚 (`U+1D61A`), 𝙎 (`U+1D64E`), 𝚂 (`U+1D682`), 🄏 (`U+1F10F`), 🄢 (`U+1F122`), 🄪 (`U+1F12A`), 🅂 (`U+1F142`), 🅌 (`U+1F14C`), 🅍 (`U+1F14D`), 🅢 (`U+1F162`), 🆂 (`U+1F182`), 🆍 (`U+1F18D`), 🆘 (`U+1F198`), 🆚 (`U+1F19A`), 🆜 (`U+1F19C`), 🆨 (`U+1F1A8`), 🆩 (`U+1F1A9`), 🆪 (`U+1F1AA`) + $ (`U+0024`), S (`U+0053`), Ś (`U+015A`), Ŝ (`U+015C`), Ş (`U+015E`), Š (`U+0160`), Ƨ (`U+01A7`), Ș (`U+0218`), Ѕ (`U+0405`), Ṡ (`U+1E60`), Ṣ (`U+1E62`), Ṥ (`U+1E64`), Ṧ (`U+1E66`), Ṩ (`U+1E68`), ₴ (`U+20B4`), ℠ (`U+2120`), ⅍ (`U+214D`), ␁ (`U+2401`), ␂ (`U+2402`), ␈ (`U+2408`), ␎ (`U+240E`), ␏ (`U+240F`), ␖ (`U+2416`), ␚ (`U+241A`), ␛ (`U+241B`), ␜ (`U+241C`), ␝ (`U+241D`), ␞ (`U+241E`), ␟ (`U+241F`), ␠ (`U+2420`), Ⓢ (`U+24C8`), Ȿ (`U+2C7E`), Ꙅ (`U+A644`), ꜱ (`U+A731`), Ꞩ (`U+A7A8`), Ʂ (`U+A7C5`), Ꟊ (`U+A7C9`), 𜳨 (`U+1CCE8`), 𝐒 (`U+1D412`), 𝑆 (`U+1D446`), 𝑺 (`U+1D47A`), 𝖲 (`U+1D5B2`), 𝗦 (`U+1D5E6`), 𝘚 (`U+1D61A`), 𝙎 (`U+1D64E`), 𝚂 (`U+1D682`), 🄏 (`U+1F10F`), 🄢 (`U+1F122`), 🄪 (`U+1F12A`), 🅂 (`U+1F142`), 🅌 (`U+1F14C`), 🅍 (`U+1F14D`), 🅢 (`U+1F162`), 🆂 (`U+1F182`), 🆍 (`U+1F18D`), 🆘 (`U+1F198`), 🆚 (`U+1F19A`), 🆜 (`U+1F19C`), 🆨 (`U+1F1A8`), 🆩 (`U+1F1A9`), 🆪 (`U+1F1AA`) - `cv19`: - T (`U+0054`), Ţ (`U+0162`), Ť (`U+0164`), Ŧ (`U+0166`), Ƭ (`U+01AC`), Ʈ (`U+01AE`), Ț (`U+021A`), Ⱦ (`U+023E`), Τ (`U+03A4`), Т (`U+0422`), Ҭ (`U+04AC`), Ҵ (`U+04B4`), Ԏ (`U+050E`), ᲄ (`U+1C84`), ᴛ (`U+1D1B`), ᵀ (`U+1D40`), Ṫ (`U+1E6A`), Ṭ (`U+1E6C`), Ṯ (`U+1E6E`), Ṱ (`U+1E70`), ₮ (`U+20AE`), ₸ (`U+20B8`), ℡ (`U+2121`), ™ (`U+2122`), ␂ (`U+2402`), ␃ (`U+2403`), ␄ (`U+2404`), ␉ (`U+2409`), ␋ (`U+240B`), ␗ (`U+2417`), Ⓣ (`U+24C9`), ⷵ (`U+2DF5`), Ꚋ (`U+A68A`), Ꚍ (`U+A68C`), ꚍ (`U+A68D`), Ʇ (`U+A7B1`), 𝐓 (`U+1D413`), 𝑇 (`U+1D447`), 𝑻 (`U+1D47B`), 𝖳 (`U+1D5B3`), 𝗧 (`U+1D5E7`), 𝘛 (`U+1D61B`), 𝙏 (`U+1D64F`), 𝚃 (`U+1D683`), 𝚻 (`U+1D6BB`), 𝛵 (`U+1D6F5`), 𝜯 (`U+1D72F`), 𝝩 (`U+1D769`), 𝞣 (`U+1D7A3`), 🄣 (`U+1F123`), 🅃 (`U+1F143`), 🅣 (`U+1F163`), 🆃 (`U+1F183`) + T (`U+0054`), Ţ (`U+0162`), Ť (`U+0164`), Ŧ (`U+0166`), Ƭ (`U+01AC`), Ʈ (`U+01AE`), Ț (`U+021A`), Ⱦ (`U+023E`), Τ (`U+03A4`), Т (`U+0422`), Ҭ (`U+04AC`), Ҵ (`U+04B4`), Ԏ (`U+050E`), ᲄ (`U+1C84`), ᴛ (`U+1D1B`), ᵀ (`U+1D40`), Ṫ (`U+1E6A`), Ṭ (`U+1E6C`), Ṯ (`U+1E6E`), Ṱ (`U+1E70`), ₮ (`U+20AE`), ₸ (`U+20B8`), ℡ (`U+2121`), ™ (`U+2122`), ␂ (`U+2402`), ␃ (`U+2403`), ␄ (`U+2404`), ␉ (`U+2409`), ␋ (`U+240B`), ␗ (`U+2417`), Ⓣ (`U+24C9`), Ꚋ (`U+A68A`), Ꚍ (`U+A68C`), ꚍ (`U+A68D`), Ʇ (`U+A7B1`), 𜳩 (`U+1CCE9`), 𝐓 (`U+1D413`), 𝑇 (`U+1D447`), 𝑻 (`U+1D47B`), 𝖳 (`U+1D5B3`), 𝗧 (`U+1D5E7`), 𝘛 (`U+1D61B`), 𝙏 (`U+1D64F`), 𝚃 (`U+1D683`), 𝚻 (`U+1D6BB`), 𝛵 (`U+1D6F5`), 𝜯 (`U+1D72F`), 𝝩 (`U+1D769`), 𝞣 (`U+1D7A3`), 🄣 (`U+1F123`), 🅃 (`U+1F143`), 🅣 (`U+1F163`), 🆃 (`U+1F183`) - `cv20`: - U (`U+0055`), Ù (`U+00D9`), Ú (`U+00DA`), Û (`U+00DB`), Ü (`U+00DC`), Ũ (`U+0168`), Ū (`U+016A`), Ŭ (`U+016C`), Ů (`U+016E`), Ű (`U+0170`), Ų (`U+0172`), Ư (`U+01AF`), Ǔ (`U+01D3`), Ǖ (`U+01D5`), Ǘ (`U+01D7`), Ǚ (`U+01D9`), Ǜ (`U+01DB`), Ȕ (`U+0214`), Ȗ (`U+0216`), Ʉ (`U+0244`), ᴜ (`U+1D1C`), ᵁ (`U+1D41`), ᵾ (`U+1D7E`), ᶸ (`U+1DB8`), Ṳ (`U+1E72`), Ṵ (`U+1E74`), Ṷ (`U+1E76`), Ṹ (`U+1E78`), Ṻ (`U+1E7A`), Ụ (`U+1EE4`), Ủ (`U+1EE6`), Ứ (`U+1EE8`), Ừ (`U+1EEA`), Ử (`U+1EEC`), Ữ (`U+1EEE`), Ự (`U+1EF0`), ␀ (`U+2400`), ␚ (`U+241A`), ␟ (`U+241F`), Ⓤ (`U+24CA`), Ꜷ (`U+A736`), Ꞹ (`U+A7B8`), Ꞿ (`U+A7BE`), 𝐔 (`U+1D414`), 𝑈 (`U+1D448`), 𝑼 (`U+1D47C`), 𝖴 (`U+1D5B4`), 𝗨 (`U+1D5E8`), 𝘜 (`U+1D61C`), 𝙐 (`U+1D650`), 𝚄 (`U+1D684`), 🄤 (`U+1F124`), 🅄 (`U+1F144`), 🅤 (`U+1F164`), 🆄 (`U+1F184`), 🆙 (`U+1F199`), 🆫 (`U+1F1AB`) + U (`U+0055`), Ù (`U+00D9`), Ú (`U+00DA`), Û (`U+00DB`), Ü (`U+00DC`), Ũ (`U+0168`), Ū (`U+016A`), Ŭ (`U+016C`), Ů (`U+016E`), Ű (`U+0170`), Ų (`U+0172`), Ư (`U+01AF`), Ǔ (`U+01D3`), Ǖ (`U+01D5`), Ǘ (`U+01D7`), Ǚ (`U+01D9`), Ǜ (`U+01DB`), Ȕ (`U+0214`), Ȗ (`U+0216`), Ʉ (`U+0244`), ᴜ (`U+1D1C`), ᵁ (`U+1D41`), ᵾ (`U+1D7E`), ᶸ (`U+1DB8`), Ṳ (`U+1E72`), Ṵ (`U+1E74`), Ṷ (`U+1E76`), Ṹ (`U+1E78`), Ṻ (`U+1E7A`), Ụ (`U+1EE4`), Ủ (`U+1EE6`), Ứ (`U+1EE8`), Ừ (`U+1EEA`), Ử (`U+1EEC`), Ữ (`U+1EEE`), Ự (`U+1EF0`), ␀ (`U+2400`), ␚ (`U+241A`), ␟ (`U+241F`), Ⓤ (`U+24CA`), Ꜷ (`U+A736`), Ꞹ (`U+A7B8`), Ꞿ (`U+A7BE`), 𜳪 (`U+1CCEA`), 𝐔 (`U+1D414`), 𝑈 (`U+1D448`), 𝑼 (`U+1D47C`), 𝖴 (`U+1D5B4`), 𝗨 (`U+1D5E8`), 𝘜 (`U+1D61C`), 𝙐 (`U+1D650`), 𝚄 (`U+1D684`), 🄤 (`U+1F124`), 🅄 (`U+1F144`), 🅤 (`U+1F164`), 🆄 (`U+1F184`), 🆙 (`U+1F199`), 🆫 (`U+1F1AB`) - `cv21`: - V (`U+0056`), Ʋ (`U+01B2`), Ʌ (`U+0245`), Ѵ (`U+0474`), Ѷ (`U+0476`), ᴠ (`U+1D20`), Ṽ (`U+1E7C`), Ṿ (`U+1E7E`), Ⅳ (`U+2163`), Ⅴ (`U+2164`), Ⅵ (`U+2165`), Ⅶ (`U+2166`), Ⅷ (`U+2167`), ␋ (`U+240B`), Ⓥ (`U+24CB`), ⱽ (`U+2C7D`), Ꙋ (`U+A64A`), Ꙟ (`U+A65E`), 𝐕 (`U+1D415`), 𝑉 (`U+1D449`), 𝑽 (`U+1D47D`), 𝖵 (`U+1D5B5`), 𝗩 (`U+1D5E9`), 𝘝 (`U+1D61D`), 𝙑 (`U+1D651`), 𝚅 (`U+1D685`), 🄥 (`U+1F125`), 🅅 (`U+1F145`), 🅊 (`U+1F14A`), 🅋 (`U+1F14B`), 🅎 (`U+1F14E`), 🅥 (`U+1F165`), 🆅 (`U+1F185`), 🆚 (`U+1F19A`), 🆪 (`U+1F1AA`), 🆬 (`U+1F1AC`) + V (`U+0056`), Ʋ (`U+01B2`), Ʌ (`U+0245`), Ѵ (`U+0474`), Ѷ (`U+0476`), ᴠ (`U+1D20`), Ṽ (`U+1E7C`), Ṿ (`U+1E7E`), Ⅳ (`U+2163`), Ⅴ (`U+2164`), Ⅵ (`U+2165`), Ⅶ (`U+2166`), Ⅷ (`U+2167`), ␋ (`U+240B`), Ⓥ (`U+24CB`), ⱽ (`U+2C7D`), Ꙋ (`U+A64A`), Ꙟ (`U+A65E`), 𜳫 (`U+1CCEB`), 𝐕 (`U+1D415`), 𝑉 (`U+1D449`), 𝑽 (`U+1D47D`), 𝖵 (`U+1D5B5`), 𝗩 (`U+1D5E9`), 𝘝 (`U+1D61D`), 𝙑 (`U+1D651`), 𝚅 (`U+1D685`), 🄥 (`U+1F125`), 🅅 (`U+1F145`), 🅊 (`U+1F14A`), 🅋 (`U+1F14B`), 🅎 (`U+1F14E`), 🅥 (`U+1F165`), 🆅 (`U+1F185`), 🆚 (`U+1F19A`), 🆪 (`U+1F1AA`), 🆬 (`U+1F1AC`) - `cv22`: - W (`U+0057`), Ŵ (`U+0174`), Ԝ (`U+051C`), ᴡ (`U+1D21`), ᵂ (`U+1D42`), Ẁ (`U+1E80`), Ẃ (`U+1E82`), Ẅ (`U+1E84`), Ẇ (`U+1E86`), Ẉ (`U+1E88`), ₩ (`U+20A9`), Ⓦ (`U+24CC`), Ⱳ (`U+2C72`), 𝐖 (`U+1D416`), 𝑊 (`U+1D44A`), 𝑾 (`U+1D47E`), 𝖶 (`U+1D5B6`), 𝗪 (`U+1D5EA`), 𝘞 (`U+1D61E`), 𝙒 (`U+1D652`), 𝚆 (`U+1D686`), 🄦 (`U+1F126`), 🄮 (`U+1F12E`), 🅆 (`U+1F146`), 🅏 (`U+1F14F`), 🅦 (`U+1F166`), 🆆 (`U+1F186`), 🆏 (`U+1F18F`), 🆕 (`U+1F195`) + W (`U+0057`), Ŵ (`U+0174`), Ԝ (`U+051C`), ᴡ (`U+1D21`), ᵂ (`U+1D42`), Ẁ (`U+1E80`), Ẃ (`U+1E82`), Ẅ (`U+1E84`), Ẇ (`U+1E86`), Ẉ (`U+1E88`), ₩ (`U+20A9`), Ⓦ (`U+24CC`), Ⱳ (`U+2C72`), 𜳬 (`U+1CCEC`), 𝐖 (`U+1D416`), 𝑊 (`U+1D44A`), 𝑾 (`U+1D47E`), 𝖶 (`U+1D5B6`), 𝗪 (`U+1D5EA`), 𝘞 (`U+1D61E`), 𝙒 (`U+1D652`), 𝚆 (`U+1D686`), 🄦 (`U+1F126`), 🄮 (`U+1F12E`), 🅆 (`U+1F146`), 🅏 (`U+1F14F`), 🅦 (`U+1F166`), 🆆 (`U+1F186`), 🆏 (`U+1F18F`), 🆕 (`U+1F195`) - `cv23`: - X (`U+0058`), Χ (`U+03A7`), Х (`U+0425`), Ҳ (`U+04B2`), Ӽ (`U+04FC`), Ӿ (`U+04FE`), Ԕ (`U+0514`), Ԗ (`U+0516`), Ẋ (`U+1E8A`), Ẍ (`U+1E8C`), ℻ (`U+213B`), Ⅸ (`U+2168`), Ⅹ (`U+2169`), Ⅺ (`U+216A`), Ⅻ (`U+216B`), ␂ (`U+2402`), ␃ (`U+2403`), Ⓧ (`U+24CD`), Ꭓ (`U+A7B3`), 𝐗 (`U+1D417`), 𝑋 (`U+1D44B`), 𝑿 (`U+1D47F`), 𝖷 (`U+1D5B7`), 𝗫 (`U+1D5EB`), 𝘟 (`U+1D61F`), 𝙓 (`U+1D653`), 𝚇 (`U+1D687`), 𝚾 (`U+1D6BE`), 𝛸 (`U+1D6F8`), 𝜲 (`U+1D732`), 𝝬 (`U+1D76C`), 𝞦 (`U+1D7A6`), 🄧 (`U+1F127`), 🅇 (`U+1F147`), 🅧 (`U+1F167`), 🆇 (`U+1F187`) + X (`U+0058`), Χ (`U+03A7`), Х (`U+0425`), Ҳ (`U+04B2`), Ӽ (`U+04FC`), Ӿ (`U+04FE`), Ԕ (`U+0514`), Ԗ (`U+0516`), Ẋ (`U+1E8A`), Ẍ (`U+1E8C`), ℻ (`U+213B`), Ⅸ (`U+2168`), Ⅹ (`U+2169`), Ⅺ (`U+216A`), Ⅻ (`U+216B`), ␂ (`U+2402`), ␃ (`U+2403`), Ⓧ (`U+24CD`), Ꭓ (`U+A7B3`), 𜳭 (`U+1CCED`), 𝐗 (`U+1D417`), 𝑋 (`U+1D44B`), 𝑿 (`U+1D47F`), 𝖷 (`U+1D5B7`), 𝗫 (`U+1D5EB`), 𝘟 (`U+1D61F`), 𝙓 (`U+1D653`), 𝚇 (`U+1D687`), 𝚾 (`U+1D6BE`), 𝛸 (`U+1D6F8`), 𝜲 (`U+1D732`), 𝝬 (`U+1D76C`), 𝞦 (`U+1D7A6`), 🄧 (`U+1F127`), 🅇 (`U+1F147`), 🅧 (`U+1F167`), 🆇 (`U+1F187`) - `cv24`: - Y (`U+0059`), ¥ (`U+00A5`), Ý (`U+00DD`), Ŷ (`U+0176`), Ÿ (`U+0178`), Ƴ (`U+01B3`), Ȳ (`U+0232`), Ɏ (`U+024E`), ʏ (`U+028F`), Ύ (`U+038E`), Υ (`U+03A5`), Ϋ (`U+03AB`), ϒ (`U+03D2`), ϓ (`U+03D3`), ϔ (`U+03D4`), Ү (`U+04AE`), ү (`U+04AF`), Ұ (`U+04B0`), ұ (`U+04B1`), Ẏ (`U+1E8E`), Ỳ (`U+1EF2`), Ỵ (`U+1EF4`), Ỷ (`U+1EF6`), Ỹ (`U+1EF8`), Ỿ (`U+1EFE`), Ὑ (`U+1F59`), Ὓ (`U+1F5B`), Ὕ (`U+1F5D`), Ὗ (`U+1F5F`), Ῠ (`U+1FE8`), Ῡ (`U+1FE9`), Ὺ (`U+1FEA`), Ύ (`U+1FEB`), ⅄ (`U+2144`), ␖ (`U+2416`), Ⓨ (`U+24CE`), 𐞲 (`U+107B2`), 𝐘 (`U+1D418`), 𝑌 (`U+1D44C`), 𝒀 (`U+1D480`), 𝖸 (`U+1D5B8`), 𝗬 (`U+1D5EC`), 𝘠 (`U+1D620`), 𝙔 (`U+1D654`), 𝚈 (`U+1D688`), 𝚼 (`U+1D6BC`), 𝛶 (`U+1D6F6`), 𝜰 (`U+1D730`), 𝝪 (`U+1D76A`), 𝞤 (`U+1D7A4`), 𞁏 (`U+1E04F`), 𞁭 (`U+1E06D`), 🄨 (`U+1F128`), 🅈 (`U+1F148`), 🅨 (`U+1F168`), 🆈 (`U+1F188`) + Y (`U+0059`), ¥ (`U+00A5`), Ý (`U+00DD`), Ŷ (`U+0176`), Ÿ (`U+0178`), Ƴ (`U+01B3`), Ȳ (`U+0232`), Ɏ (`U+024E`), ʏ (`U+028F`), Ύ (`U+038E`), Υ (`U+03A5`), Ϋ (`U+03AB`), ϒ (`U+03D2`), ϓ (`U+03D3`), ϔ (`U+03D4`), Ү (`U+04AE`), ү (`U+04AF`), Ұ (`U+04B0`), ұ (`U+04B1`), Ẏ (`U+1E8E`), Ỳ (`U+1EF2`), Ỵ (`U+1EF4`), Ỷ (`U+1EF6`), Ỹ (`U+1EF8`), Ỿ (`U+1EFE`), Ὑ (`U+1F59`), Ὓ (`U+1F5B`), Ὕ (`U+1F5D`), Ὗ (`U+1F5F`), Ῠ (`U+1FE8`), Ῡ (`U+1FE9`), Ὺ (`U+1FEA`), Ύ (`U+1FEB`), ⅄ (`U+2144`), ␖ (`U+2416`), Ⓨ (`U+24CE`), 𐞲 (`U+107B2`), 𜳮 (`U+1CCEE`), 𝐘 (`U+1D418`), 𝑌 (`U+1D44C`), 𝒀 (`U+1D480`), 𝖸 (`U+1D5B8`), 𝗬 (`U+1D5EC`), 𝘠 (`U+1D620`), 𝙔 (`U+1D654`), 𝚈 (`U+1D688`), 𝚼 (`U+1D6BC`), 𝛶 (`U+1D6F6`), 𝜰 (`U+1D730`), 𝝪 (`U+1D76A`), 𝞤 (`U+1D7A4`), 𞁏 (`U+1E04F`), 𞁭 (`U+1E06D`), 🄨 (`U+1F128`), 🅈 (`U+1F148`), 🅨 (`U+1F168`), 🆈 (`U+1F188`) - `cv25`: - Z (`U+005A`), Ź (`U+0179`), Ż (`U+017B`), Ž (`U+017D`), Ƶ (`U+01B5`), Ʒ (`U+01B7`), Ƹ (`U+01B8`), DŽ (`U+01C4`), Ǯ (`U+01EE`), DZ (`U+01F1`), Ȥ (`U+0224`), Ζ (`U+0396`), Ӡ (`U+04E0`), ᴢ (`U+1D22`), ᴣ (`U+1D23`), Ẑ (`U+1E90`), Ẓ (`U+1E92`), Ẕ (`U+1E94`), Ⓩ (`U+24CF`), Ⱬ (`U+2C6B`), Ɀ (`U+2C7F`), Ꙁ (`U+A640`), Ꙃ (`U+A642`), Ᶎ (`U+A7C6`), 𝐙 (`U+1D419`), 𝑍 (`U+1D44D`), 𝒁 (`U+1D481`), 𝖹 (`U+1D5B9`), 𝗭 (`U+1D5ED`), 𝘡 (`U+1D621`), 𝙕 (`U+1D655`), 𝚉 (`U+1D689`), 𝚭 (`U+1D6AD`), 𝛧 (`U+1D6E7`), 𝜡 (`U+1D721`), 𝝛 (`U+1D75B`), 𝞕 (`U+1D795`), 🄩 (`U+1F129`), 🅉 (`U+1F149`), 🅩 (`U+1F169`), 🆉 (`U+1F189`) + Z (`U+005A`), Ź (`U+0179`), Ż (`U+017B`), Ž (`U+017D`), Ƶ (`U+01B5`), Ʒ (`U+01B7`), Ƹ (`U+01B8`), DŽ (`U+01C4`), Ǯ (`U+01EE`), DZ (`U+01F1`), Ȥ (`U+0224`), Ζ (`U+0396`), Ӡ (`U+04E0`), ᴢ (`U+1D22`), ᴣ (`U+1D23`), Ẑ (`U+1E90`), Ẓ (`U+1E92`), Ẕ (`U+1E94`), Ⓩ (`U+24CF`), Ⱬ (`U+2C6B`), Ɀ (`U+2C7F`), Ꙁ (`U+A640`), Ꙃ (`U+A642`), Ᶎ (`U+A7C6`), 𜳯 (`U+1CCEF`), 𝐙 (`U+1D419`), 𝑍 (`U+1D44D`), 𝒁 (`U+1D481`), 𝖹 (`U+1D5B9`), 𝗭 (`U+1D5ED`), 𝘡 (`U+1D621`), 𝙕 (`U+1D655`), 𝚉 (`U+1D689`), 𝚭 (`U+1D6AD`), 𝛧 (`U+1D6E7`), 𝜡 (`U+1D721`), 𝝛 (`U+1D75B`), 𝞕 (`U+1D795`), 🄩 (`U+1F129`), 🅉 (`U+1F149`), 🅩 (`U+1F169`), 🆉 (`U+1F189`) - `cv26`: @@ -616,7 +616,7 @@ - `cv38`: - m (`U+006D`), ɱ (`U+0271`), ͫ (`U+036B`), т (`U+0442`), ҭ (`U+04AD`), ԏ (`U+050F`), ᲅ (`U+1C85`), ᵐ (`U+1D50`), ᵯ (`U+1D6F`), ᶆ (`U+1D86`), ᶬ (`U+1DAC`), ḿ (`U+1E3F`), ṁ (`U+1E41`), ṃ (`U+1E43`), ₘ (`U+2098`), ₥ (`U+20A5`), ⅿ (`U+217F`), ≞ (`U+225E`), ⒨ (`U+24A8`), ⓜ (`U+24DC`), ⷮ (`U+2DEE`), ꚋ (`U+A68B`), ꬺ (`U+AB3A`), 𝐦 (`U+1D426`), 𝑚 (`U+1D45A`), 𝒎 (`U+1D48E`), 𝗆 (`U+1D5C6`), 𝗺 (`U+1D5FA`), 𝘮 (`U+1D62E`), 𝙢 (`U+1D662`), 𝚖 (`U+1D696`), 𞁀 (`U+1E040`) + m (`U+006D`), ɱ (`U+0271`), ͫ (`U+036B`), т (`U+0442`), ҭ (`U+04AD`), ԏ (`U+050F`), ᲅ (`U+1C85`), ᵐ (`U+1D50`), ᵯ (`U+1D6F`), ᶆ (`U+1D86`), ᶬ (`U+1DAC`), ḿ (`U+1E3F`), ṁ (`U+1E41`), ṃ (`U+1E43`), ₘ (`U+2098`), ₥ (`U+20A5`), ⅿ (`U+217F`), ≞ (`U+225E`), ⒨ (`U+24A8`), ⓜ (`U+24DC`), ⷮ (`U+2DEE`), ⷵ (`U+2DF5`), ꚋ (`U+A68B`), ꬺ (`U+AB3A`), 𝐦 (`U+1D426`), 𝑚 (`U+1D45A`), 𝒎 (`U+1D48E`), 𝗆 (`U+1D5C6`), 𝗺 (`U+1D5FA`), 𝘮 (`U+1D62E`), 𝙢 (`U+1D662`), 𝚖 (`U+1D696`), 𞁀 (`U+1E040`) - `cv39`: @@ -804,43 +804,43 @@ - `cv85`: - 0 (`U+0030`), ⁰ (`U+2070`), ₀ (`U+2080`), ⅒ (`U+2152`), ↉ (`U+2189`), ⍬ (`U+236C`), ⏨ (`U+23E8`), ⑩ (`U+2469`), ⑳ (`U+2473`), ⑽ (`U+247D`), ⒇ (`U+2487`), ⒑ (`U+2491`), ⒛ (`U+249B`), ⓪ (`U+24EA`), ⓴ (`U+24F4`), ⓾ (`U+24FE`), ⓿ (`U+24FF`), ❿ (`U+277F`), ➉ (`U+2789`), ➓ (`U+2793`), ㉚ (`U+325A`), ㊵ (`U+32B5`), ㊿ (`U+32BF`), 𝟎 (`U+1D7CE`), 𝟢 (`U+1D7E2`), 𝟬 (`U+1D7EC`), 𝟶 (`U+1D7F6`), 🄀 (`U+1F100`), 🄁 (`U+1F101`), 🄋 (`U+1F10B`), 🄌 (`U+1F10C`), 🄍 (`U+1F10D`), 🆣 (`U+1F1A3`), 🆤 (`U+1F1A4`) + 0 (`U+0030`), ⁰ (`U+2070`), ₀ (`U+2080`), ⅒ (`U+2152`), ↉ (`U+2189`), ⍬ (`U+236C`), ⏨ (`U+23E8`), ⑩ (`U+2469`), ⑳ (`U+2473`), ⑽ (`U+247D`), ⒇ (`U+2487`), ⒑ (`U+2491`), ⒛ (`U+249B`), ⓪ (`U+24EA`), ⓴ (`U+24F4`), ⓾ (`U+24FE`), ⓿ (`U+24FF`), ❿ (`U+277F`), ➉ (`U+2789`), ➓ (`U+2793`), ㉚ (`U+325A`), ㊵ (`U+32B5`), ㊿ (`U+32BF`), 𜳰 (`U+1CCF0`), 𝟎 (`U+1D7CE`), 𝟢 (`U+1D7E2`), 𝟬 (`U+1D7EC`), 𝟶 (`U+1D7F6`), 🄀 (`U+1F100`), 🄁 (`U+1F101`), 🄋 (`U+1F10B`), 🄌 (`U+1F10C`), 🄍 (`U+1F10D`), 🆣 (`U+1F1A3`), 🆤 (`U+1F1A4`) - `cv86`: - 1 (`U+0031`), ¹ (`U+00B9`), ¼ (`U+00BC`), ½ (`U+00BD`), ₁ (`U+2081`), ⅐ (`U+2150`), ⅑ (`U+2151`), ⅒ (`U+2152`), ⅓ (`U+2153`), ⅕ (`U+2155`), ⅙ (`U+2159`), ⅛ (`U+215B`), ⏨ (`U+23E8`), ␑ (`U+2411`), ① (`U+2460`), ⑩ (`U+2469`), ⑪ (`U+246A`), ⑫ (`U+246B`), ⑬ (`U+246C`), ⑭ (`U+246D`), ⑮ (`U+246E`), ⑯ (`U+246F`), ⑰ (`U+2470`), ⑱ (`U+2471`), ⑲ (`U+2472`), ⑴ (`U+2474`), ⑽ (`U+247D`), ⑾ (`U+247E`), ⑿ (`U+247F`), ⒀ (`U+2480`), ⒁ (`U+2481`), ⒂ (`U+2482`), ⒃ (`U+2483`), ⒄ (`U+2484`), ⒅ (`U+2485`), ⒆ (`U+2486`), ⒈ (`U+2488`), ⒑ (`U+2491`), ⒒ (`U+2492`), ⒓ (`U+2493`), ⒔ (`U+2494`), ⒕ (`U+2495`), ⒖ (`U+2496`), ⒗ (`U+2497`), ⒘ (`U+2498`), ⒙ (`U+2499`), ⒚ (`U+249A`), ⓫ (`U+24EB`), ⓬ (`U+24EC`), ⓭ (`U+24ED`), ⓮ (`U+24EE`), ⓯ (`U+24EF`), ⓰ (`U+24F0`), ⓱ (`U+24F1`), ⓲ (`U+24F2`), ⓳ (`U+24F3`), ⓵ (`U+24F5`), ⓾ (`U+24FE`), ❶ (`U+2776`), ❿ (`U+277F`), ➀ (`U+2780`), ➉ (`U+2789`), ➊ (`U+278A`), ➓ (`U+2793`), ㉑ (`U+3251`), ㉛ (`U+325B`), ㊶ (`U+32B6`), 𝟏 (`U+1D7CF`), 𝟣 (`U+1D7E3`), 𝟭 (`U+1D7ED`), 𝟷 (`U+1D7F7`), 🄂 (`U+1F102`), 🆠 (`U+1F1A0`), 🆡 (`U+1F1A1`), 🆤 (`U+1F1A4`) + 1 (`U+0031`), ¹ (`U+00B9`), ¼ (`U+00BC`), ½ (`U+00BD`), ₁ (`U+2081`), ⅐ (`U+2150`), ⅑ (`U+2151`), ⅒ (`U+2152`), ⅓ (`U+2153`), ⅕ (`U+2155`), ⅙ (`U+2159`), ⅛ (`U+215B`), ⏨ (`U+23E8`), ␑ (`U+2411`), ① (`U+2460`), ⑩ (`U+2469`), ⑪ (`U+246A`), ⑫ (`U+246B`), ⑬ (`U+246C`), ⑭ (`U+246D`), ⑮ (`U+246E`), ⑯ (`U+246F`), ⑰ (`U+2470`), ⑱ (`U+2471`), ⑲ (`U+2472`), ⑴ (`U+2474`), ⑽ (`U+247D`), ⑾ (`U+247E`), ⑿ (`U+247F`), ⒀ (`U+2480`), ⒁ (`U+2481`), ⒂ (`U+2482`), ⒃ (`U+2483`), ⒄ (`U+2484`), ⒅ (`U+2485`), ⒆ (`U+2486`), ⒈ (`U+2488`), ⒑ (`U+2491`), ⒒ (`U+2492`), ⒓ (`U+2493`), ⒔ (`U+2494`), ⒕ (`U+2495`), ⒖ (`U+2496`), ⒗ (`U+2497`), ⒘ (`U+2498`), ⒙ (`U+2499`), ⒚ (`U+249A`), ⓫ (`U+24EB`), ⓬ (`U+24EC`), ⓭ (`U+24ED`), ⓮ (`U+24EE`), ⓯ (`U+24EF`), ⓰ (`U+24F0`), ⓱ (`U+24F1`), ⓲ (`U+24F2`), ⓳ (`U+24F3`), ⓵ (`U+24F5`), ⓾ (`U+24FE`), ❶ (`U+2776`), ❿ (`U+277F`), ➀ (`U+2780`), ➉ (`U+2789`), ➊ (`U+278A`), ➓ (`U+2793`), ㉑ (`U+3251`), ㉛ (`U+325B`), ㊶ (`U+32B6`), 𜳱 (`U+1CCF1`), 𝟏 (`U+1D7CF`), 𝟣 (`U+1D7E3`), 𝟭 (`U+1D7ED`), 𝟷 (`U+1D7F7`), 🄂 (`U+1F102`), 🆠 (`U+1F1A0`), 🆡 (`U+1F1A1`), 🆤 (`U+1F1A4`) - `cv87`: - 2 (`U+0032`), ² (`U+00B2`), ½ (`U+00BD`), ƻ (`U+01BB`), ₂ (`U+2082`), ⅔ (`U+2154`), ⅖ (`U+2156`), ↊ (`U+218A`), ␒ (`U+2412`), ② (`U+2461`), ⑫ (`U+246B`), ⑳ (`U+2473`), ⑵ (`U+2475`), ⑿ (`U+247F`), ⒇ (`U+2487`), ⒉ (`U+2489`), ⒓ (`U+2493`), ⒛ (`U+249B`), ⓬ (`U+24EC`), ⓴ (`U+24F4`), ⓶ (`U+24F6`), ❷ (`U+2777`), ➁ (`U+2781`), ➋ (`U+278B`), ㉑ (`U+3251`), ㉒ (`U+3252`), ㉓ (`U+3253`), ㉔ (`U+3254`), ㉕ (`U+3255`), ㉖ (`U+3256`), ㉗ (`U+3257`), ㉘ (`U+3258`), ㉙ (`U+3259`), ㉜ (`U+325C`), ㊷ (`U+32B7`), 𝟐 (`U+1D7D0`), 𝟤 (`U+1D7E4`), 𝟮 (`U+1D7EE`), 𝟸 (`U+1D7F8`), 🄃 (`U+1F103`), 🆜 (`U+1F19C`), 🆝 (`U+1F19D`), 🆢 (`U+1F1A2`), 🆤 (`U+1F1A4`) + 2 (`U+0032`), ² (`U+00B2`), ½ (`U+00BD`), ƻ (`U+01BB`), ₂ (`U+2082`), ⅔ (`U+2154`), ⅖ (`U+2156`), ↊ (`U+218A`), ␒ (`U+2412`), ② (`U+2461`), ⑫ (`U+246B`), ⑳ (`U+2473`), ⑵ (`U+2475`), ⑿ (`U+247F`), ⒇ (`U+2487`), ⒉ (`U+2489`), ⒓ (`U+2493`), ⒛ (`U+249B`), ⓬ (`U+24EC`), ⓴ (`U+24F4`), ⓶ (`U+24F6`), ❷ (`U+2777`), ➁ (`U+2781`), ➋ (`U+278B`), ㉑ (`U+3251`), ㉒ (`U+3252`), ㉓ (`U+3253`), ㉔ (`U+3254`), ㉕ (`U+3255`), ㉖ (`U+3256`), ㉗ (`U+3257`), ㉘ (`U+3258`), ㉙ (`U+3259`), ㉜ (`U+325C`), ㊷ (`U+32B7`), 𜳲 (`U+1CCF2`), 𝟐 (`U+1D7D0`), 𝟤 (`U+1D7E4`), 𝟮 (`U+1D7EE`), 𝟸 (`U+1D7F8`), 🄃 (`U+1F103`), 🆜 (`U+1F19C`), 🆝 (`U+1F19D`), 🆢 (`U+1F1A2`), 🆤 (`U+1F1A4`) - `cv88`: - 3 (`U+0033`), ³ (`U+00B3`), ¾ (`U+00BE`), ₃ (`U+2083`), ⅓ (`U+2153`), ⅔ (`U+2154`), ⅗ (`U+2157`), ⅜ (`U+215C`), ↉ (`U+2189`), ↋ (`U+218B`), ∛ (`U+221B`), ␓ (`U+2413`), ③ (`U+2462`), ⑬ (`U+246C`), ⑶ (`U+2476`), ⒀ (`U+2480`), ⒊ (`U+248A`), ⒔ (`U+2494`), ⓭ (`U+24ED`), ⓷ (`U+24F7`), ❸ (`U+2778`), ➂ (`U+2782`), ➌ (`U+278C`), ㉓ (`U+3253`), ㉚ (`U+325A`), ㉛ (`U+325B`), ㉜ (`U+325C`), ㉝ (`U+325D`), ㉞ (`U+325E`), ㉟ (`U+325F`), ㊱ (`U+32B1`), ㊲ (`U+32B2`), ㊳ (`U+32B3`), ㊴ (`U+32B4`), ㊸ (`U+32B8`), 𝟑 (`U+1D7D1`), 𝟥 (`U+1D7E5`), 𝟯 (`U+1D7EF`), 𝟹 (`U+1D7F9`), 🄄 (`U+1F104`), 🆛 (`U+1F19B`) + 3 (`U+0033`), ³ (`U+00B3`), ¾ (`U+00BE`), ₃ (`U+2083`), ⅓ (`U+2153`), ⅔ (`U+2154`), ⅗ (`U+2157`), ⅜ (`U+215C`), ↉ (`U+2189`), ↋ (`U+218B`), ∛ (`U+221B`), ␓ (`U+2413`), ③ (`U+2462`), ⑬ (`U+246C`), ⑶ (`U+2476`), ⒀ (`U+2480`), ⒊ (`U+248A`), ⒔ (`U+2494`), ⓭ (`U+24ED`), ⓷ (`U+24F7`), ❸ (`U+2778`), ➂ (`U+2782`), ➌ (`U+278C`), ㉓ (`U+3253`), ㉚ (`U+325A`), ㉛ (`U+325B`), ㉜ (`U+325C`), ㉝ (`U+325D`), ㉞ (`U+325E`), ㉟ (`U+325F`), ㊱ (`U+32B1`), ㊲ (`U+32B2`), ㊳ (`U+32B3`), ㊴ (`U+32B4`), ㊸ (`U+32B8`), 𜳳 (`U+1CCF3`), 𝟑 (`U+1D7D1`), 𝟥 (`U+1D7E5`), 𝟯 (`U+1D7EF`), 𝟹 (`U+1D7F9`), 🄄 (`U+1F104`), 🆛 (`U+1F19B`) - `cv89`: - 4 (`U+0034`), ¼ (`U+00BC`), ¾ (`U+00BE`), ⁴ (`U+2074`), ₄ (`U+2084`), ⅘ (`U+2158`), ∜ (`U+221C`), ␔ (`U+2414`), ④ (`U+2463`), ⑭ (`U+246D`), ⑷ (`U+2477`), ⒁ (`U+2481`), ⒋ (`U+248B`), ⒕ (`U+2495`), ⓮ (`U+24EE`), ⓸ (`U+24F8`), ❹ (`U+2779`), ➃ (`U+2783`), ➍ (`U+278D`), ㉔ (`U+3254`), ㉞ (`U+325E`), ㊵ (`U+32B5`), ㊶ (`U+32B6`), ㊷ (`U+32B7`), ㊸ (`U+32B8`), ㊹ (`U+32B9`), ㊺ (`U+32BA`), ㊻ (`U+32BB`), ㊼ (`U+32BC`), ㊽ (`U+32BD`), ㊾ (`U+32BE`), 𝟒 (`U+1D7D2`), 𝟦 (`U+1D7E6`), 𝟰 (`U+1D7F0`), 𝟺 (`U+1D7FA`), 🄅 (`U+1F105`), 🆞 (`U+1F19E`) + 4 (`U+0034`), ¼ (`U+00BC`), ¾ (`U+00BE`), ⁴ (`U+2074`), ₄ (`U+2084`), ⅘ (`U+2158`), ∜ (`U+221C`), ␔ (`U+2414`), ④ (`U+2463`), ⑭ (`U+246D`), ⑷ (`U+2477`), ⒁ (`U+2481`), ⒋ (`U+248B`), ⒕ (`U+2495`), ⓮ (`U+24EE`), ⓸ (`U+24F8`), ❹ (`U+2779`), ➃ (`U+2783`), ➍ (`U+278D`), ㉔ (`U+3254`), ㉞ (`U+325E`), ㊵ (`U+32B5`), ㊶ (`U+32B6`), ㊷ (`U+32B7`), ㊸ (`U+32B8`), ㊹ (`U+32B9`), ㊺ (`U+32BA`), ㊻ (`U+32BB`), ㊼ (`U+32BC`), ㊽ (`U+32BD`), ㊾ (`U+32BE`), 𜳴 (`U+1CCF4`), 𝟒 (`U+1D7D2`), 𝟦 (`U+1D7E6`), 𝟰 (`U+1D7F0`), 𝟺 (`U+1D7FA`), 🄅 (`U+1F105`), 🆞 (`U+1F19E`) - `cv90`: - 5 (`U+0035`), Ƽ (`U+01BC`), ƽ (`U+01BD`), ⁵ (`U+2075`), ₅ (`U+2085`), ⅕ (`U+2155`), ⅖ (`U+2156`), ⅗ (`U+2157`), ⅘ (`U+2158`), ⅚ (`U+215A`), ⅝ (`U+215D`), ⑤ (`U+2464`), ⑮ (`U+246E`), ⑸ (`U+2478`), ⒂ (`U+2482`), ⒌ (`U+248C`), ⒖ (`U+2496`), ⓯ (`U+24EF`), ⓹ (`U+24F9`), ❺ (`U+277A`), ➄ (`U+2784`), ➎ (`U+278E`), ㉕ (`U+3255`), ㉟ (`U+325F`), ㊺ (`U+32BA`), ㊿ (`U+32BF`), 𝟓 (`U+1D7D3`), 𝟧 (`U+1D7E7`), 𝟱 (`U+1D7F1`), 𝟻 (`U+1D7FB`), 🄆 (`U+1F106`), 🆠 (`U+1F1A0`) + 5 (`U+0035`), Ƽ (`U+01BC`), ƽ (`U+01BD`), ⁵ (`U+2075`), ₅ (`U+2085`), ⅕ (`U+2155`), ⅖ (`U+2156`), ⅗ (`U+2157`), ⅘ (`U+2158`), ⅚ (`U+215A`), ⅝ (`U+215D`), ⑤ (`U+2464`), ⑮ (`U+246E`), ⑸ (`U+2478`), ⒂ (`U+2482`), ⒌ (`U+248C`), ⒖ (`U+2496`), ⓯ (`U+24EF`), ⓹ (`U+24F9`), ❺ (`U+277A`), ➄ (`U+2784`), ➎ (`U+278E`), ㉕ (`U+3255`), ㉟ (`U+325F`), ㊺ (`U+32BA`), ㊿ (`U+32BF`), 𜳵 (`U+1CCF5`), 𝟓 (`U+1D7D3`), 𝟧 (`U+1D7E7`), 𝟱 (`U+1D7F1`), 𝟻 (`U+1D7FB`), 🄆 (`U+1F106`), 🆠 (`U+1F1A0`) - `cv91`: - 6 (`U+0036`), ⁶ (`U+2076`), ₆ (`U+2086`), ⅙ (`U+2159`), ⅚ (`U+215A`), ⑥ (`U+2465`), ⑯ (`U+246F`), ⑹ (`U+2479`), ⒃ (`U+2483`), ⒍ (`U+248D`), ⒗ (`U+2497`), ⓰ (`U+24F0`), ⓺ (`U+24FA`), ❻ (`U+277B`), ➅ (`U+2785`), ➏ (`U+278F`), ㉖ (`U+3256`), ㊱ (`U+32B1`), ㊻ (`U+32BB`), 𝟔 (`U+1D7D4`), 𝟨 (`U+1D7E8`), 𝟲 (`U+1D7F2`), 𝟼 (`U+1D7FC`), 🄇 (`U+1F107`), 🆣 (`U+1F1A3`) + 6 (`U+0036`), ⁶ (`U+2076`), ₆ (`U+2086`), ⅙ (`U+2159`), ⅚ (`U+215A`), ⑥ (`U+2465`), ⑯ (`U+246F`), ⑹ (`U+2479`), ⒃ (`U+2483`), ⒍ (`U+248D`), ⒗ (`U+2497`), ⓰ (`U+24F0`), ⓺ (`U+24FA`), ❻ (`U+277B`), ➅ (`U+2785`), ➏ (`U+278F`), ㉖ (`U+3256`), ㊱ (`U+32B1`), ㊻ (`U+32BB`), 𜳶 (`U+1CCF6`), 𝟔 (`U+1D7D4`), 𝟨 (`U+1D7E8`), 𝟲 (`U+1D7F2`), 𝟼 (`U+1D7FC`), 🄇 (`U+1F107`), 🆣 (`U+1F1A3`) - `cv92`: - 7 (`U+0037`), ⁷ (`U+2077`), ₇ (`U+2087`), ⅐ (`U+2150`), ⅞ (`U+215E`), ⑦ (`U+2466`), ⑰ (`U+2470`), ⑺ (`U+247A`), ⒄ (`U+2484`), ⒎ (`U+248E`), ⒘ (`U+2498`), ⓱ (`U+24F1`), ⓻ (`U+24FB`), ❼ (`U+277C`), ➆ (`U+2786`), ➐ (`U+2790`), ㉗ (`U+3257`), ㊲ (`U+32B2`), ㊼ (`U+32BC`), 𝟕 (`U+1D7D5`), 𝟩 (`U+1D7E9`), 𝟳 (`U+1D7F3`), 𝟽 (`U+1D7FD`), 🄈 (`U+1F108`), 🆡 (`U+1F1A1`) + 7 (`U+0037`), ⁷ (`U+2077`), ₇ (`U+2087`), ⅐ (`U+2150`), ⅞ (`U+215E`), ⑦ (`U+2466`), ⑰ (`U+2470`), ⑺ (`U+247A`), ⒄ (`U+2484`), ⒎ (`U+248E`), ⒘ (`U+2498`), ⓱ (`U+24F1`), ⓻ (`U+24FB`), ❼ (`U+277C`), ➆ (`U+2786`), ➐ (`U+2790`), ㉗ (`U+3257`), ㊲ (`U+32B2`), ㊼ (`U+32BC`), 𜳷 (`U+1CCF7`), 𝟕 (`U+1D7D5`), 𝟩 (`U+1D7E9`), 𝟳 (`U+1D7F3`), 𝟽 (`U+1D7FD`), 🄈 (`U+1F108`), 🆡 (`U+1F1A1`) - `cv93`: - 8 (`U+0038`), ⁸ (`U+2078`), ₈ (`U+2088`), ⅛ (`U+215B`), ⅜ (`U+215C`), ⅝ (`U+215D`), ⅞ (`U+215E`), ⑧ (`U+2467`), ⑱ (`U+2471`), ⑻ (`U+247B`), ⒅ (`U+2485`), ⒏ (`U+248F`), ⒙ (`U+2499`), ⓲ (`U+24F2`), ⓼ (`U+24FC`), ❽ (`U+277D`), ➇ (`U+2787`), ➑ (`U+2791`), ㉘ (`U+3258`), ㊳ (`U+32B3`), ㊽ (`U+32BD`), 𝟖 (`U+1D7D6`), 𝟪 (`U+1D7EA`), 𝟴 (`U+1D7F4`), 𝟾 (`U+1D7FE`), 🄉 (`U+1F109`), 🆟 (`U+1F19F`) + 8 (`U+0038`), ⁸ (`U+2078`), ₈ (`U+2088`), ⅛ (`U+215B`), ⅜ (`U+215C`), ⅝ (`U+215D`), ⅞ (`U+215E`), ⑧ (`U+2467`), ⑱ (`U+2471`), ⑻ (`U+247B`), ⒅ (`U+2485`), ⒏ (`U+248F`), ⒙ (`U+2499`), ⓲ (`U+24F2`), ⓼ (`U+24FC`), ❽ (`U+277D`), ➇ (`U+2787`), ➑ (`U+2791`), ㉘ (`U+3258`), ㊳ (`U+32B3`), ㊽ (`U+32BD`), 𜳸 (`U+1CCF8`), 𝟖 (`U+1D7D6`), 𝟪 (`U+1D7EA`), 𝟴 (`U+1D7F4`), 𝟾 (`U+1D7FE`), 🄉 (`U+1F109`), 🆟 (`U+1F19F`) - `cv94`: - 9 (`U+0039`), ⁹ (`U+2079`), ₉ (`U+2089`), ⅑ (`U+2151`), ⑨ (`U+2468`), ⑲ (`U+2472`), ⑼ (`U+247C`), ⒆ (`U+2486`), ⒐ (`U+2490`), ⒚ (`U+249A`), ⓳ (`U+24F3`), ⓽ (`U+24FD`), ❾ (`U+277E`), ➈ (`U+2788`), ➒ (`U+2792`), ㉙ (`U+3259`), ㊴ (`U+32B4`), ㊾ (`U+32BE`), 𝟗 (`U+1D7D7`), 𝟫 (`U+1D7EB`), 𝟵 (`U+1D7F5`), 𝟿 (`U+1D7FF`), 🄊 (`U+1F10A`) + 9 (`U+0039`), ⁹ (`U+2079`), ₉ (`U+2089`), ⅑ (`U+2151`), ⑨ (`U+2468`), ⑲ (`U+2472`), ⑼ (`U+247C`), ⒆ (`U+2486`), ⒐ (`U+2490`), ⒚ (`U+249A`), ⓳ (`U+24F3`), ⓽ (`U+24FD`), ❾ (`U+277E`), ➈ (`U+2788`), ➒ (`U+2792`), ㉙ (`U+3259`), ㊴ (`U+32B4`), ㊾ (`U+32BE`), 𜳹 (`U+1CCF9`), 𝟗 (`U+1D7D7`), 𝟫 (`U+1D7EB`), 𝟵 (`U+1D7F5`), 𝟿 (`U+1D7FF`), 🄊 (`U+1F10A`) - `cv95`: diff --git a/doc/packages-sha.txt b/doc/packages-sha.txt index d23f4df015..04799cbbcd 100644 --- a/doc/packages-sha.txt +++ b/doc/packages-sha.txt @@ -1,452 +1,452 @@ -2fc90fedf4f6b9e92919d8643fc71f12f0c71f9f208e5643050a018b7070a65a undefined -282fb1cd60ede070e6cc045b1971cf40ea474960eaa0153706733b5e0d5f2200 undefined -6400686b1bd099ea60c7f15a990c143074cfc7f6d0a3b5f52955f1a1829bf198 undefined -976ca83f5287d2dc42e6909256c6fe2451ea5c424ac51dcee258aded0a3d475d undefined -3d5fd85dc3d74549724cde9ae6660c1ae3edbda66f4ce0f76370bb98d8683e39 undefined -cbe19e034403cd973444982c06ad43378a30e623c125248d306a34a513eed295 undefined -49313695b06fcc4b47a9bf1ac53fb90db7c33c6ebf2b6f869aa3ba71cf3a158a undefined -d573d9cef4376590ce88af4536ea9a46a74b299299477eea153f81ca6b31c223 undefined -c7d2c76f408cbad16dbfafd6da9ef969a5d1dccda181efe6c195b47b9f6fb595 undefined -c38765e18f634b2789eb02a2286e2db40128560589137717863b992ff2b3fb2d undefined -f3f722dc1494345ef4dc46c5a60c5affad486f3da572dd66a296d0c8a184fd32 undefined -57d6b7a56d1abb2663a30019b3d52b2f629326169d9bb6dbe7689550e831bf6f undefined -759d20336f09fdbbf21fb41df0382fa985baa1fadc3a8183a21caecfbc7d3e21 undefined -60ed05ca41679e1ecbdf89774f5ec00e57f9fff1dd75f9a33a171dc9f3006a15 undefined -cbb91d3af5b5ad4cfa96ee8c559fa52c8cf73871a258381dec795179dfafc4e2 undefined -89fe05d3b0c539ee579fa5f8f23e3b56957c2f141c0dc2e8c97e8f89dda43f1d undefined -771ca367358963442db45ceded03fbda38e2bae11037d1af07d200352bafd3dd undefined -534ea8a1c3f4c2301a3c8e2a13dd05d26a62e58cbf4cffd28920fdce9537a55e undefined -29eae0a8dc20473a673c90eee8988cd740feaf757aa166256aef4edffd3faf2c undefined -0d54746da3d97daf812e192c041f7a53774f0be994409c70e2dd868d3da7c3a6 undefined -97b63e01360524ca44b05c0a8754bd4d167b2547c4bd2beafc54a902fab752f6 undefined -87bb0a149a82566f29f8bb2f6bd9095e2be20609b5daf1919d8f6dfa8df58fb6 undefined -2dfd81e4c17ab34da337f2e55b79e6713a982367cc8ac24624941b84bfcb4c15 undefined -99f937ad80ce411def1da5d76ac023a9fc6401e04c7f6e8a1a04507aa09df0c5 undefined -b9dbac55fe561f545cd2230f042e288f1bbc3e4ff5acccfc35f1ae2a5314eed3 undefined -e35df26521ab5ffed8318ee35dc238d0d1a78ca657f70edec21036178501e279 undefined -2171e1e46715f751f866c0cf4c69704504c84d57b6a3ea5afcae212358c3c546 undefined -6ef3278d3785dc8335235abcdbbaee88d47200d389f2550793efcff05ec8d2ba undefined -a8fb90d508b88cf30264a7ac81814714f887a649305a089d30e479fb612b5349 undefined -0d94b40666d80db89ca7c3fbd8100203d5f5ce81050e48f1d4e775169670063d undefined -2c2e170138436bb20a01e90264dfbc6c7a9884e43ec81fb1983e1a4de3aca783 undefined -8fa09b7f00c0826d519fca05e648ee40ba35479e92d59928d8cd53e8bc5541fb undefined -23467d35e94d6c85412f1d68a805462d426f21c9270ad94f0aba3fd601d9d4e2 undefined -907b5b8436a4089167f5c58258cf812685e958f2533d80c3d8236836ba107595 undefined -47c3badbcb3a7317250947b351441c8a2da18d52731abdc68d8ac7f182b4920c undefined -6eb7e2d8d10f35cf03b71c55a7ad044c3a35bd2a8ab402c47d180e5fc5cfa3c9 undefined -bb13dafe18b452ee3b5dacd2e265efc5bf28350f48bce2b94ff6448bce3944ef undefined -be76572954ed2961a3e2ec08b43d89597a93ca5f881cd17a82deba379a535169 undefined -0cf1cc736348280afe3df48c58687bdfa6f4cf203ab43c9b8c5eb9890583c2d5 undefined -999c8359809282f41fca1cc89d41de895117291abe3342161a47c33387ddf040 undefined -afe4ba130ba40d9c86571a419724182f6a8fe5f140c3e8c0479a655ccfc4fa0f undefined -85e8da83853caeea33e7614f8ef7af22062276c602df99e71d25ad42bb429720 undefined -2b96fee04ec8e87eb3535f61cdfa46d5e189fff44452fa4126336952d393d155 undefined -de8b29400022a680e7f3823cfd14aca57d70cd92addf505321ab55492db76dc3 undefined -8a258158b6aafd756593852c9882a4cd47f2cd47c1c7909e95d31275067ffebf undefined -16cfad4184f17df35b08528e2790a65e95d6dabfb4dc5d05dbef4cf8a4a2c0dd undefined -8ab3dbe8635fdd562173c2881dd096a846fb148ff17e2451ea9c3e78f59b2875 undefined -d2e01d8e9f8c794dfdb48200f13754f1bcc24149619db0bc98ea540693f81c5a undefined -e0c312e9caf28c0753b54d7ead5537d1ca6f216965f8f0f67488fb0541c87132 undefined -db633798f85317121599cac8252b5f3d36b96f45a8ddf13042bfe1195a820917 undefined -c717c82fb8ff0720e18fda2f1372f9d0c86a41be4ffea4506a8f479d797e52bf undefined -24321557b25de17909841cbcb1fd536e1080ca602a19f9acd43bca00a8421d97 undefined -38bfa2d89dc69778e5fd61d83c0c62bab2e169b47b63cbd8ed600d4f9b9ad800 undefined -f41d27503d085bd4d56f7d59aa73cff71d1b3c5337e42e99dd9474d7d3ece579 undefined -3415d91fe6ad794189aba52d291842309dda5254d674f8fd59934965f0615dde undefined -730a1861463651e0f034b622e7a866482d1c29af95f9390f0cbb1ee0dd9d6390 undefined -9e72654c9c95c0067a8307be7b46e512a422f977308cd96d6cf2675c1fb8a01e undefined -31d8233a07cea9289a49d54aba62b9e816174de22bf21f1c71f2785bc27a7667 undefined -046b3e78056575c17ed21887f64eeede9f78111f6d33c533288c84534adc2418 undefined -d2a7d2c65e7287a3e5dcbbec7ff0aa9b8f813a8dc44fe2de037adbe72d720f50 undefined -8fd84694cc44308faacb15f79ded1ff3a49b9a12ed3e89dc76a830b9edbc91d5 undefined -9fe1eeec65b2a317f89c868c04ba2ba24bb3a67d47bffd3952f6ecb3684d5c75 undefined -6613f849f8d7126fd436abbb527dd1b87c5caf712980a562df612125fae354b2 undefined -e113fc5f6a1edf8bfccc16708fcaddac8cfd2817e57493b59ac0859ee206ac4d undefined -741ed301ec758e13494cc8719ba2dea5c7b7b297122509a7849f98e0eee0accb undefined -2e8204b85cb2adc0f774dea72fd3fa56810ead6a38ba94cbbd54441bd6ece26e undefined -c5568fc23c4c2d1bac0aca98f4e910eb5b68ff72f7505bd6a72069ddf2feef1e undefined -cef92e30ee04f60099f1d11b9325f111eaccfc5506df348f8aee5b0e1c920bfa undefined -d8126cf5d0c4a83bea0ef346b61ff456fced55c0120b9cd691832363209f028a undefined -7dbc187ad141fdfbfe04d275d724505c4c7ca548b79a2df3c72d9e9c223b564a undefined -eb87d7b59dc00124641357f68a75dfcbda8eb455af69cace0967210c0ff73df4 undefined -73ad1fd1d54b539c0da7c7cb03af0a312a2ea9d4ead64f50b59a76ff7a08631f undefined -9bbe5cced44147a7a8f4619dd33f4c068f3e5f768b3d9f5440988015c44a770e undefined -035585d9ae29504344ab29da06456c3502192a794b848cd5d7ee4212c7c18f23 undefined -194d134eb48e727c6a610c488ace2e37359159659aac2719ba1317b970b56faf undefined -b73e74bf664b9e62215a3981a1f4968e57d72a974e14ef9d40d7a0355642cb95 undefined -1adceb2f22bd983a0c36223b22527dc50593389cc8c870ca477a6f8ae58cbf9a undefined -53edfb049ccc795aeda8108490c5a1403725d8e0caaf1e85ce4e322a9567c90d undefined -ffd0d630058a42a5d08419121cd81fa5d0872227a7c9a70b81819ddeb7eefa96 undefined -c5089ebf0be3bf8c8a57a2a277594867c7ef013ba3d62fb006ce6a4ba11d83aa undefined -3f4ec8582c2988870aab391714a49cf4be743f304c021f4b5db7f696fcc8fa4c undefined -87c5999460dca70dddc32456f2992caf7b27a2718f1e75b6b299ebb16a7d9492 undefined -579c0f699e7df58615c15d0a4018beb58652b84256a5cf84808dc4cf8324f675 undefined -59c4fd370f5eecad36cc033ef8b18c7cd9ad2be6d8d657dbd073631bd9468ae8 undefined -ca6e5c1ab57da5ebd24f602ee675439dfb481875ff9697ccdc2a3cdbabe246da undefined -ae3a7553ad119320fb469f5c5ee78419942dbf55c63b986234cec6e95217c485 undefined -e937367b95ddf0ecbec8e1979151ef96782bf7191d43f114549eac6e34ca362c undefined -bf131a1c5256ed5482162f43af78bd7b43fb83d74024dd073a8d33f480ecc6f4 undefined -b1db04276e910064d3314b75d463177065f29fa8b506497c5ca71cc2ff125344 undefined -b7070ddbed3683f45d3e17bc248efbf52d5331a5a96d7c27eec109fa1848db56 undefined -2bd1753c9d019a4a47182dd36dae19b8e8c5b326c2adad4c7fb18959d14114e1 undefined -8131a3bb9a622d0808427a9ad1f46eb1a91f868379c6f1c88e3db8c767d6ed27 undefined -2d4d6914c9cc52d70dd4b65e369c0386298b78046b98c24b3ec70266cd074828 undefined -47ca0901f5fa8dd927cf6b13861434f9d679e3e6f5a9333f1ceb21b0fff23ef2 undefined -87ba25ffe2425149d2b46dbaf218b6d128fa4086d01fdbb2461da1a62040bcb0 undefined -c9948e51e892d7bc9bedf2f14840a1faf0aa8cd9df4686c50cd5013f28e2b6c9 undefined -fa92a3d9939ca4cde656a37eb56a149f28167175407865154a6bdf12124de0d6 undefined -f0a2b30f2f25fdbcf4cd45d3b512abbd61f7696dfc690f887da39e86789fd309 undefined -d0c6d613d54da0b26a0f744b49cc6c99be2f8894d228f329e403bd2b12923a81 undefined -adcf02a8234a1be81bacc8da1a095f7ca981a401a6a321e5d64f7fb80c59abbd undefined -68112ffa633d4eea28084526141fb4e64d0f3ae72ba14179109f094981e6476e undefined -e07728899d3c0d0d3f3d8f26a78893ab0cf2920cf2f16554620c832fc0764318 undefined -43ada4def6a56fc5cfb4f3e67c88bea177b94a80d70f04304c97377e8b1ebc7b undefined -8f627d4cc762289c0ee0304812cee6f3e393528ba41ac229c7809e4326034e33 undefined -d2ab0b7f12b7d40aaa4d008a96784371f3caa85ed72d31550cc8b80775e408f7 undefined -6b3eb695c243f6d49f3b2d4e87dc1361ceb7415e538c9dc8c37ec5b0214d124d undefined -dc47ccf377b306236a9dfb3b3d415a48f9cbb2eec35541996c8557895743de7d undefined -1da411b45b87fe7376c6ef5046ae1c50215da2af8f12decfa3b49401e1a18240 undefined -71daf9e33b9f33cc50fa91bb5fe681d1a88130fe86b78910cf4ff9f7736539c5 undefined -73406bc7e3938b7ee0d3604e4a7ffa69129c601bf7339e7320fc59ff68ae2af0 undefined -c321ce559aa0f4ce6eaf6f1b17d37460c671fbc3c3e9174402c863c014fac892 undefined -9c86c9da95bda9278bf119c969cd225db5152868a1f4bb54fe16a8271d8ea601 undefined -abe6e6577cabf7ba84dd2a561ea70322a63d7f99dabdc305b1ff7d831dde27db undefined -f3c43bbe1e74dc8185a13bb3028abfbaca2f946522b164c5af042bc26eca4056 undefined -fa1d87e80abda016895c5beaf39baeb0c1f6fa4280a794de62f3c92ec1b00593 undefined -108bae5e8c2d374ab6bb02c6c4438b1c45114583a7faedc57f6d663833709c32 undefined -92fe50f66780be6bda96f0acb1ac03385beacd330158ac662139f2de4229be97 undefined -cd756c1f60870c41d789be8231f9afca627798f13150fb14557e1d12a53f3bdc undefined -f5766eaa969dbd374bd655a1655daf2b5bea3d007ff394da05725e4178d1577a undefined -4100ead8b86ff48d0068f799f92e2f2922f2ef3bc6cb96619c930262c8c4207b undefined -25bc55e0e6434c2d28efca3d8b201e270ef94e84d87c874b3482f97b30e70212 undefined -45b650ee85399c8fabecf0f11909da94dd23d3092c0c7b8fe9179b913dc565ed undefined -603f15f8ae3db3015277df2cc74f3be4bae5e4f8e3204c4e36aeb953fb5463d8 undefined -cb4dc0ef6d40e829609801fcb3d2f24281b8876d18f87f88167046657971c94a undefined -cb7ee9b6af497c414572a5a83a9a12a4a9cb9ca6437f5a3dd43d23d57c1ccf67 undefined -d1756c2d660c4513a2f661f622a5f4a283dc4afc8b9bc426787d78d619846b8b undefined -d7e528a23af930a242a551dd47408a073bcd6180a017997cbd25b303f22bea37 undefined -b8da6bce3d2f91a390cbfd97cb4217cb6f516a9e2fccfbe33f976f7949e1d37b undefined -095c090f4a10f14e0918b533383715c261f6212b758f441a871a96bc1205b0f7 undefined -16fc65f777c2321b36a15ea272ef256a3f1e01f61aa22426c69031eafafb82e1 undefined -d28e1f0b52bee227dd321772a7025443f64fa7272a2acb1eb769f3ebea0f6bf0 undefined -b9edcf0056b930e7a80e1b6dedf1d753aa7289a0950e659411df22c53e145db5 undefined -97881b4807b9ede05f31f9670c7fc94750510a77358e44d5700aeba747f7b8fd undefined -75f6529c7dd7a136656b903f26ec1e77af70580c8bee67f1a7f0a8d66cd7ed74 undefined -ca5b60d4abe3a86da27b62d34297142bcbe79952eddfc724a69a553773de45ad undefined -cb3fb885b3fe1d8049c9d98b4ee8093205ef8c19c640defe3506384089fc3325 undefined -ddceab254e62390d7625e51dd84661b948a57da2aaf9352d9830ca76411a831f undefined -a9e6f5262b4971da77790de6ee4dcaeab7e88fc79fa6eca206a57d9de86da1d3 undefined -58656695f0562ce15081566724070205d31bb3f674a30aa60a9ab058649ee31e undefined -4449389b5bcdd00d2498d5947d94dd361d0acede42826d420e560f5b7454e94f undefined -6898432af96c9b07f9a3db410ad24dceb9ade3a0e837010a6810828f96ee1486 undefined -584e49a4bd1f74ec8657d521934625d1a479f37d3c22cfd507d9148f7fb26cd9 undefined -71cc046e95ccf2debd42e24ef9e6e149e2628071c2642574ad149cd0cbb94898 undefined -80121e35e17685936625ceaf46616a9e93264fb85a500237a5f805a6aa4236cf undefined -136dc89aae99748c6ef5facfe2b1cb86a8437e4cc6b684d0c2e4f291a2ee8072 undefined -09dc6c1d38ff0bd73e3a6965559b280e5a3d92445bc3c88029f179bfa7efd06f undefined -521e72a5cfe961cfc77a78f9030f73f8f1cdfb65fa3b745e9b1abbd282439fc6 undefined -bf9ee7e36468f76b57c2c0481ae785914f7089b3e14d0440cdc00a1d8a4f8809 undefined -8ad4e315adb9ad629b984c7917bcf0283202ea43c781bf5020dc54dfb5c99f78 undefined -49b00eac723014b06152e80d7598fc893160dd74348fbb17fa9cfc883f572811 undefined -478795581ded9fdc55600c6a1683b57260123809b0e3d7d49883461e9ae6faf0 undefined -cbab45222e928b817b0bcd8ec493914b7c973e519a66d388b15770377692f13f undefined -92f12e915cc1379ada82fd55b56e007a54d4d93862a1674aba4c335bf701d95b undefined -90499c8288863af17b810ce2c88c6ab79b093fac28f9ff96024da8820a9cd4cc undefined -e188bd01c489ccadf112b145100b0972fa8a1f291ec801b44c0949279a7479b0 undefined -be0ee6096083effe1cadfc14ccfbf537285764354a10ca6ae603dd2c3023fc7f undefined -9bde51cbc83dcb671f681c2dd2016e22405593bbbb93ec775e98fb3bb7d54dc2 undefined -8ee42ba025f052af77dcd7a00d3141ab8b823039903a29bfc0697864b0676856 undefined -273f42ae7b4762a7aa2ce9cfce82ed1a1081357bd2e7a0340cff7b4e2a8c6930 undefined -8562d7424519a267f1a04bda3c8fe0b705023e244299221e057b6a77f586b3e7 undefined -67c35c85c77855654423298212bde071ab69b08fe4ab935786694bf645eef76c undefined -ff5d684134254ffe3d86d6041823d3471a21f74af4b5f9616195d7ac8b28cbbb undefined -b64966772af725d2e7cc5078a86d3f38399e29cc1189ff1fcc16fdc68bc541ce undefined -a3d9d0008ca0b6c58c511d29f6a737430c9bd28094a868aa15d2d2b8766d817e undefined -3d6cf5a09600a6fbe8103e5de35a4cc8e3418d2e4e3b9e19faee6004875f4fae undefined -0501b1ea9257ace9dd716826f06514363bc37fcfafa318363bbd36bf1f076691 undefined -c409e7e5b86525bf379af3409cc74230ac63721f7d56a2e2a034bd871e2d9ed9 undefined -478e2dbd6d3bd6c5974774731f50d416728d44e7ac590f353e9778ed6e154116 undefined -65c4abaafce2ffe5261584a5ec9e04bb08c8e94de1d13dd98f6458f01077f8df undefined -875a58cc5e1e945df37b22ac340a2aa4f9eff21dd3bfc10a2477b616577d586e undefined -994053a077de692830adc5796c1cfb12fb4c4fc8fd117b53280767702b25df7e undefined -82f0f39ba8040d2154d67f63d452009b5bfee812485ec6f6819929b40aaaa7c5 undefined -9cf781a15801c629a6a4b9e7d21753e0e95921d3b6b79985a67b1282c705cc20 undefined -952fb5b7ec864a3922194b6ac7212dcc0a904b6881954d83bf6bb6d18211a068 undefined -293bf8cdd51a0ac71bf762d545dea862597e64bea5b20060c41e573f9e9e4c5c undefined -617387000d3d20843bfa365bf8615a17113c8f760a216431643cd4fb3112283c undefined -50d6c35882e2644be5adef4e2ca43ddb041ced355007cd7f556cac453789bc54 undefined -c8e955d5c2d237df35602928c88de7f484259d65202d43ae86fc797a81eb64a0 undefined -3da03794f973324055a89481794408c56bc9a2904c5e3ceb50aa0a36ce81684d undefined -51bd7bd1a5a18bc09b36c1aed10c7eae549f300c28823edfece4b1c197f6bc52 undefined -bca24073fb46b3a404dc146fd2566f162c6259cd3a52bfb80054705f631380df undefined -2e5ab3113fa1e06e1a6fe346fd85b684012ba215c049250ec51a759c3b9b71e0 undefined -3b33ce77dd192175d36b000cd68c8a8a4eb24a4053452bb5aded615858224987 undefined -71a3f2c54068fa311a11277d8ef8798d10321b699ca2b3c7769fde6443fa82fa undefined -1263e92a81baed9748d82adf7fc0a58008a81bdb04abbeb32a8acd39f4ae281e undefined -93adaf3bf5151a2ed64f713fe82943107422435f2533108cc0fbbf2e5479b6b7 undefined -2e3d19fcedf560bbe145b9baff0b4c828aba20dd291b4776ce05cf5b35491421 undefined -5f24dd14de08a60d2c95bff9af672ce7662eeee2e50586d43a78413c4db5ef7a undefined -95d31c76af582319f2fd8b147d855596db3cc99f175b6f2d7570753784116b4c undefined -f3171ad94694ea45aca7e4c266128fa3ecf804ae9646fa0202579b7610783257 undefined -1360037547f001d27ea08a9c931b0e733859ff03b36d8108b7678a93c14d93e8 undefined -47a746df7975b3ae92f80abc009eee4ca91317ad5cde696b3e7254c87ceec453 undefined -876ea320f5f4bc3e471a72c8529e55811a91c77309eed53e45841f3417f040b0 undefined -80b591894b640ac3b07a3a4ef5b7ce9475f0c4e6f2c52c16cc2d11c98a81695c undefined -564943f45d36e8ef0235de28eac313a115f0bdd7add09c6e5d21b7def9a4d313 undefined -9416a06c788b1eb0524f799c4e41810028ede660c8c539b907db76738de38b8a undefined -f912b85f7ad910684216cf7ccb0954c31688a147b3febfbe297bcc48643c5790 undefined -9bdfca9883b64c796896ba47be1c584ff07fff590b542685a879a37783e52594 undefined -53661b909e45ab4ed18f5982ee4568947b3ff16936789b1ef4464de731a3bb54 undefined -a8c48390a504d3d332ba35573763f8e0557d190f0521d0291a7744740328d241 undefined -8da5fb73e19cace143a6189887bca42687b7fd4520bdd91379110dfb2b13f127 undefined -f46b1c2d97b7566e726243ab7b0f4b1a2e9052a93c9c1df8c4a011369fadab56 undefined -39a66958a7bc7dc325fadca90f24b2b3e634479fb51304beaa537de19f21025c undefined -82486a17bc7f0606634a4f401328bdf134070b2143352ed9ec1c690c8a9d684b undefined -86ac6b1f4d837457bda1a2a59875e18a9a3d6419c8fd2e4077f53870cf091442 undefined -abf33ccea74dfd8a1e3005ee26e7fa50705b8c9bce055cea5f3a5c364c620ac8 undefined -ab9520b6cc51d6d12b717a8f86f0c0bd73b5d75250ec9b9f2216d36ff914355a undefined -078803bbd197776106a69095d7429f33f1202b143a8807cdcebb92c18895dd80 undefined -bbb2a736ce9bc4195eb3213dac6b11364206eba01cab859af43dc4bee0fff1fe undefined -f6ee184867567602e4d2a1912c9628b4d365f9acf8817795ab7ae97eb34f0b12 undefined -109eff15b63b8492a5434f724f210f71f8676682dcca3a9683bae5afe7980928 undefined -51d9425a2e3a86ddfb805a327e999e98868675ef34aded217eda639f5b74d752 undefined -4920736ab13c20654cf711610b96af25fa4bf20efe322e2f1b7418fb406e8320 undefined -196d083b5c3dfd878a7a4f434b0d284a1d707d16d01a87791bd2486a64cf2003 undefined -7c9c05bdad5c0689fd57c35d9530cb85076f50dbffebde08b20d03523917a10c undefined -3d47fc217cd9df75f42b443fd6c19f09e1a803ce5ee975f13316c81cd97517c3 undefined -c12c28d89d269e2c2afa012beda923ae6a2e2b406b73f6f0c29de5194459a85e undefined -c681216344fff5639cf414cd759d164d5d815b0fa84aa56df06ce988420cdf51 undefined -005db6e2c24278c8c4660ce9a9e543df4d518c94776703196ecd3b0299fb0e7c undefined -3be0a916b9bdef78d5e3e32ed6137d4a494b8e7ec83248ec718784d14cc594f8 undefined -7c5063d180a5c3d7dd72097a569c9717fc1234b25429372bdb27b64ba351042e undefined -19f6e500e26189e4bfb1a197fcf1f5e67af4cb2002aa6fec7d2da6d0f69ca9a2 undefined -6fa78f53daed571c530b96afd8d7f62dfc85aa7ee24c9ffed53ff38c44f349c1 undefined -7132ef78f9b3a19abcdd453cf85d37bcc74053dd3d6215663e8ba05dd9c03dcd undefined -1b399ef367be351e53995d1aad260352a4c5e6d6b71d281ae4d6ca851212f2d9 undefined -180e1ea6250fb5065890ec8672374400f74d429b645cbc168c40c08ca833fce1 undefined -06b14cf727ad8872141e1e9981f1d2ba5d6eac3778ac55f8e5dd476676b0653f undefined -7b5cf92adf4f4a24091b72fbe41a35b22e1213e65d2075b58034b0f096755fbf undefined -cabcf7e0575635c09a713f9c91181bfbca54e73fef176535de9bd8a3fe92f8a6 undefined -c2110eba876eb057ebc693917b5d559607519522e439f7e5ac00b90be99b1e58 undefined -34dad11c0ee9fefb974c4b7f445fd0ab151a701780a33b439f042845fe9916b7 undefined -750cb1ba0e22e65708121df4ff2b5e30936dd841b1dcbc77ba007716ea0bc4a4 undefined -02d8360fb161b48795b43829cf67ee336d8854faa1dbbb3e64d9d1d941440d93 undefined -7844ddb1e3d0c298b0ae0969437fb0ff116829c19c81296fa95113e47e0255bc undefined -531301906717919f4b282349dbd4b4f749827fd0cdb9f15bca4b1cdb83d20d54 undefined -534ed8a20ccaf262f0ec59652b1981750104f11f6f714ed4782d6448e46a9912 undefined -1e795911751a14a586b1e1b9f02b804d43bc54bc3a410700fa4a61b410cf152f undefined -8ac3953288a1b5d9d4d4153aaff8227f97da657ab71616e963acd1f47b070df9 undefined -61beec492395c67c4c1e3ee1093312b954a675279331fd2cab4b762edc50af2d undefined -5d2835745a63ef79968bee20fae8f67ee64f72bc9eae866106ad6fc1d5aa0e3a undefined -2d4ed7b8aeec455ffbf609b59768af3ca444378d82931059304553b90e896fb6 undefined -79c7fb5e87efb89702b1abc66d639c11de073ed6c3b35baf8b33541e85d6fe6f undefined -c7be589948cc34a772298034fec3b0750851bc5c9271f62db693358515042271 undefined -62a724ce1f16259653d548039cc0bfd7bed173fb22d60cd22618505a00d5ab11 undefined -e8a809ed1bb6ff1c2d08a1d10711903b21876d61b0f368ab39992d25ead4b2da undefined -4b366339eda851a5a41b8ef2b197d9587a3986916d608d6d538f7da5b503205c undefined -2f95e670921d901ebbe495a806d2921a8c985fbc75712c8b03273d8df1c2fcbe undefined -da768087c4901538f79e98f1308d2819b6672f16c443c74e0e675c86d9c996dd undefined -e4e0d3b657eab599ff5f1f55a6a686bc134db0f9aff91b5d226bd36445c5de0b undefined -0a016caf23ab312ba8e0f15878420aa9747400120e83b208d76b09c68fb0e837 undefined -85e51ff06a45d94b12d1d3adc6dc294c73536d4bdbdef07b755fb121217162d6 undefined -1a5f47e79c15125a5f3f49b552452aaf23d4c530841ded62adea68d0886934aa undefined -defbb8527fc5ea074ca97b7580d521c1fe68a7949cfab27aa07b65b4d64e2b1e undefined -86e89cd89f145ca89ba7f4136c4da96d412f82501e7d89c55367ed53c921e640 undefined -e74295047b3a270f2ae389cfeaa5e6df62e7f64bc077df1f0d490fd4e1c5b685 undefined -c3e8e53f7443b7b44c5359c09b3018ac473cf2a8fef64f6550d23d275faea373 undefined -1837d1cd0bfb8f64b4bbc6d069e2b3ab95e240427066a4ad145e8cf31d855d4a undefined -4efd7e3ca7436e2eaf547cdf8d4d500ea418bcf911d7b5455d2e3d521a98efe0 undefined -de03c94f9cba4c851a022ddb7f00223d199a5284aeeb21afb71dd58c9ca623e2 undefined -40d71d88a9e2f36b640d79d642664ab7a73fade4c07dd1be75291d0de6cc7ae1 undefined -b2515712b4c54e5608514f0b9da7ee1d39404910d0f0b7e5e5d6a6576f7d5e35 undefined -686ccd57b470b97569a8ed76ead5e94d1ddf4855fbf550884ffbdd68eac65f66 undefined -88ba0c8165c7b444d00b339588f4eaaae460ac657bec18c72e0b05f25405cd53 undefined -e48dcfe38e6375c10062a2b4fc4eb23abf977bd8478ab1d99cd5cf9da2c7a866 undefined -adb3e6a872eb6e11182c2e8b2166fb7b280c6e450b0eccc90f513ddbc4ab48f4 undefined -1c547ef5a4789cc72d05baf4024a8c25871f8c4fa440fd67a5b984f837d6e8fe undefined -d2915244ab1917b3fd56171628d950ca2fbb3d024bade490c3efea372f4b0225 undefined -86ab86664d40a28cd9676f550d572fbf54dfc687d1029ab913997c991cdbcf1d undefined -07b438659910e01250b6f1957bd3c8d869caa35efbbefd88be0807ff0d68263b undefined -067244238b5b9de2284a992fbb99ecbfa9d91e1081d82d4f5e543978e23daa8b undefined -d60cb4ede70f644d85037795421b875cbdb1141077d5534d06984fcaa1ac39a0 undefined -ab2d4485bd59bb3ae3b5799c96decdf373d11f8611729ea5cbbb407172a65033 undefined -330c330f7718326526dbf55ed031a6ace27f52dc656dd85eebe15fec883b8fe9 undefined -29b26473cf6e5ff4db2347488a809c704841467aa181125ccf238d6b6b93f582 undefined -eb0093d3fb5171b8433ed232491c85d3c22f2134a47b972107c4a4412ecfcee9 undefined -1ee841cb5c1b0eb88c90f9e3a7bd12fa1470634ed1a05f521c974126db15b969 undefined -05eb5835beacaa2fd0cd341b9b8ce7f9db3bce430d9506c259d342d5ab309ed6 undefined -cdf0dc462110f72550e9f582e727a6c687c592367736e54b620d6cf57d79e6a0 undefined -532487905a87dfb552f0747fbb27d24d4a5e54e32ad78f2dc669c31ef4687d4c undefined -0e34a2d13ab35dd26c307e9bf6e12518dee965735fee1549fb0bc73009d1a1cd undefined -e0abe7f6cce229a335a5d45402e9d4dd19279c7cd5651378c7098cd38af1a524 undefined -4e5a4c71525805ff4977994817267bd87ab15d3c41ffe1547b3c509cbf17d57f undefined -92366bacc61194d46796592fde7a9eac013437cff221d16aa4d8ec5d856e9836 undefined -d79a6601755fe8c5d0c8dc6a0c378a5a44bc34434265cf4bdb777e56bec9dc82 undefined -7f628799cadba30abc17806753443e4603b7e5098d3aab8c2b58c6d5a5338699 undefined -f92bf07369f4731c4b94cb8a9f1352e4cde79a8ab3f6c1c9d028285f26d408ee undefined -16ae9e37d925acc0a139906e1070006374932add656aa877131a343e4aecb4c1 undefined -0ece4983173daeaaef38feb711491bc92283791b785053f5989256d9db5c852f undefined -d89f7f688e18fd9c9ca73a88a12f29256e46d31d2d4c3a1f1aa4caad179bf228 undefined -acf45df6421b5d26794c527788a0cdb38c99e83785f418fc4aa78648910bb772 undefined -001fa418570498611ff79f646dd1de568a12d3e67cbf7317a006735ea60c9c9a undefined -f55822170dd3dc7778d8748ecd98dea5fc8a9703d5c3a4be18c4b430fc157eca undefined -47e05fa9512e32849834f4711b1e35060af5984b72ea75dbac427c3ea741bdbc undefined -500ee683a24793cc20f150441d1e6d3a5f743dd9b4f26bad38633f3f407265a1 undefined -1fe9f4fe0131d956ac4b40937666cb1bf5a257db3c48d8debce4e42a78a5b1c2 undefined -48e6cb84014182a9ee6e434505dd0025df6fbe25c43747ae879800389a213a68 undefined -f963f4d1b4a649e97f59d21137df330dc4b9b3a57de800d8bf3acf9f57d2536c undefined -54d9b3dd873f43aeb1d90fef36d54d42d86bac421f43ef8e950233a324008b6c undefined -b9a2b951e4b4b466eec45ae9747b58ff3644c22eb08d267a3aa98cef5315c431 undefined -ce0a6aed3c768239653d8a95c53b4231c6c4fc492eabb2fc7925c9a8ff865801 undefined -6121e69b999b581e83ea557ac63427b62a887c32422b7c8126f7791976b2900b undefined -fe558ee2d376e2a4b979f87e91d06c2eed0946d76eaa9ad48e34e613043b1c3c undefined -ed7ac0d1489d184da510faffac157b79b960134c66092bc3a15d2773af38f08d undefined -49f933704273127d965cc3ebd42d401384c61fc92012913c67d8bd8543d39c28 undefined -315212002c260ca00f65db4fae10040d1ab5673ecd6cf2de91642dcc9524d508 undefined -718894afd5c04b7fa3fea79f3219e31fd8fcaf246a27c8eafedc2e9195bbdb5a undefined -dc451d8813cb1020ed7729de2ac6a0b5dedb2bbfc728b6cdf7241734c06773e0 undefined -efe733b94d58613e332c5bdf9cc15e7ea49b2d580bdd7e031de5fd338f56765e undefined -459139b2341919f85c5940002442ef5c957ba44ec39967bdf80852e273057bc2 undefined -26eaa5789df72cc2bde6b9b82b8a75cb658c942333ca9083eeb9be58c6f4b93b undefined -d0f2f86ad47f2fb8c008f878a8e5e05dce55464e6f79e6496f8c086e355ab535 undefined -2393c401facdeff9c1107f91c2ab0df42b9f3592267c733f23c9196fe2357aa3 undefined -0b1d1a805424785ecc9fe9d228fa9f9f09ff69bf0783e14dff3aba208a29f363 undefined -64a53c6a90e0c3d80aba1a5b8cf5db3240906aec88448ed9909be865b973fb26 undefined -62e55fc2c8a7afa9888d0f9af260418c0fade81af58e5b63d6f9595e3eb032f9 undefined -64cd62dc64aa0d88f7e7aab520511afe50272a774f4ce2aedd9c3cfac3aeb257 undefined -2e400caad1c779f2bf155d6f09aca226fb4531833ab2646294628985eb6dec95 undefined -32f1dffffbdbddb89413fd096538978646c292798830b9dd21bab2ea6266c863 undefined -96263acd3592c6f5793d415379047e9bb703bdb53072c37dc5f54b309c91add8 undefined -5d44c3f633fdfd8ca7412d6377cd1d3a9d7e7680504efbb7a5fc3c82cb9aadec undefined -e72050e2d180a140f7ee512136346ab5ea86124cd9a62d9553746b1dfeba4421 undefined -9e43fd96551f2d714fbdf2b903deccf60f20ba473c155164082f6fce09f7dc2e undefined -84f91862615122b51816cdd5860b6e6b48e399f816992227ece2ef4eb0e229b5 undefined -fabee7e7de2406491f800c91fcb146350d0b25eec4222ac674587912ed948629 undefined -71a4bfd03793fd80b5460fb90c55cf25cee0b929be9d652a201375b58519fa22 undefined -fe7cd646192dae204897fd2b55b08435c884872c9acf4aac065f6ae4a5771837 undefined -917b535634ea7687ecf31b105695e7f413bb60f719b248f4943d6d5b3b1f69bc undefined -b4fd5cb6e64e82da329b995e49044b401bbe58d715561b329c2aa7e765bf83d7 undefined -0d7880a5d6af1149ecab2626a930a85e81e71df7a49431188171852004952bec undefined -177f3ac7f643d258a56008b6b3bdfc31731b25b218adbc7cdd0bdeec96c0311d undefined -45bfccc7cbc78f984f55aab238d631dc5be8d2d64e7be9c378f0b614cfd2988b undefined -02c66465d8c02c00f6eab562d38e770de52099262f3cc29be0c2223bc0d6ad0b undefined -9c2018d96123df2db3160ff38fdb04da9e8ba2c0db276371857e8debb3d0b117 undefined -5df459baa70d131539cb09e328ff511431bbd2261c6073e67478a6c8cf07acdd undefined -d6e4ad38c95bd2d54f8fc7f21d0e068acb21da1c01b40534a80572bdab6331ca undefined -7933978465d4c39c490c5e0814284eea15bed291d90d0a107ea2535f480a6fc6 undefined -194cd98e6f1ac62c71be60a135873181e3a3ed6d608e2141e13e6923f0813bf2 undefined -e19d3d3c677c6858a1d3b3ef5e9f4827307c4ba10690a986e8e848925c04978e undefined -2d3fde2b48787427af56301131447461237b9f12248a48516ffd58264c0eb1b9 undefined -f2b46b8e4db9baaca186d3fc0fd64e81d79b7bfcd4bc16a530d3ddb77ebd23c2 undefined -d6180f9227560759430291cddfe05396bafa80655be8c00a3cc1afbafb3997f1 undefined -d1acd3a78fa4e5ede83b4bdb488faf317823fa8b141d22e922971fa6074a462d undefined -d49c76ae6a5cbb7751508f1aadc6aedd5439ce788907e414f76a1408cda41763 undefined -c89b9f9e3da9d3cf7eb94e11f12b351a3cbacbe9db1420b6f9b404c960257b46 undefined -1ae81bb505f72bc372a9a4c691ec35cc7826d2a46ad3671384be0b89f369b98f undefined -a55d8fea8b2da988cc0bdbfc189066a2b23b36f5bd2dcd6edf2e41f4124e1963 undefined -3b4c7eeb253c567fa677365b0cdff26727395c8f993527c24afbdc008c5ce218 undefined -2f3f4980751a6ee5b08594a41c064b0e6f3be3ccf700a600ab97d741dde538ce undefined -ddddd5e1db2279acf4b1da8b3d145c162821a0d8f15791b2320470c6e048feab undefined -056eedbd79e5b4d2294ccfe48252dabfe53b459871f484e1c69961604cc7b310 undefined -24ca8993fd984a1af209916f6272c4ea7c14f1d720a556aed8c463c7bf1d8a76 undefined -078d1dbb0421ff35a202c11597f06ce0f631d3dfbd47dfcb074dfb40c538a26b undefined -7855f30f6ed25753339b35e936fd0ca13e4d5e12dd47c9d5159f3cbe24fcd263 undefined -5cee0d08849792329ca49d37b37d8beddfc947b966167f8fc4b3f72fe2a9ae73 undefined -5b4bad41e69bc643005ef5587e9347a8b9a85fd549b729da951970bb7f570aaa undefined -9db1af9f8a825d652741bb96968d5c1f3f2ca73c799dbe585d7bedff2fe1dfa4 undefined -d26c0271d5bd5c0111adab9fb371a0a2df94e6144158a224928534834fdcb0fd undefined -1cd0ddc6f6c92575377c5275ba45cb91e0c81f789c75a64a3f5c80f524e7a298 undefined -def64060457095530205660152aad858cd38e77deed84eb9bf919fc68dc7be3b undefined -63ee96fddd73716d6e2cf9c31cbeb2a5791c3c8035c9074845294e7fb55d873f undefined -24fde0084f5d798cc198a7241907531820bddd3493f56603241fc248257fc45d undefined -9ff6ce9c49851ebc0ade43a7b54381f9cd0cb3b03f2c9729bce7eba3bd951d3b undefined -26ac189499ec3141dad87560161faf713b5554c4fc939a2ac9347b2eaa7de112 undefined -b0a33f60971309596111bab9b047a6b60a8f8055493f93cc469f88cfe25c98ea undefined -dbb4a8b11e84db4954def17f1b3437455d32b5abda7b37682635338f781f370a undefined -7be3b522269a26aa99f82bb4e20111f3f0c38a2b72d5860657b523bb83b37994 undefined -00f569a502418cba4761c50b9e3eb9c7541963b17b6e28aef4e3a4eb97dcc147 undefined -a11d3437606d6ebb56b69d0c9f26f453e8215ef602b3e1a68da0c1ae2cb42653 undefined -8113b5802c82c37d08888d991cc13d330a5e224afe80d2df373796c6c2010259 undefined -18d1228ed7a27ead9e94405d6e920a2539ae6d37f988f720290f6b19bf289bd4 undefined -e1eac600afa1b1c43aa4159bfd1862a0096d97b0d30f820a3849211d14b17e97 undefined -ceded73a34e8a35b43114047b3eb607f2529c80bd29949ac238fdae0884143ee undefined -8924b835d004816b4fb6020e47cf3fa96589294c8c5815d08b3d79ba0c6cbb6c undefined -b0f961bc62039ef68720fba54820db34ca2c234829e49afa7ad9eb3320ce42d9 undefined -b043b95290b763338c060f258138fde06abb103e4df7b3d0d74809d4c5e03c54 undefined -5a3648d128728ad6cb4bf2707fede26ad335c12fa466432e4278be7cb6808292 undefined -adf021363be9b3a61fd45fccde43719393c12e142a90c937e20b55edb152a7d2 undefined -bff2460be8e7b16b159f73b0fd4c7cddf43d54e7cb71ffd0f14f4adffeb94878 undefined -dfadac8d7d4e0a4db315186a7b06ae9828e735b64ca73fcb7ed3562df33afbd9 undefined -bb222cef07fed4742586e0f2b942e6abe367f4ad95cd2be09b8b38f3d5efd133 undefined -7bf50afada5e72959827ba50ef27289ea356196a0c036636defbe418a3bb3fbe undefined -39da02b29c5cb451a5a4686295b04223c3dcc1c5ecdaf37b269c8a8f3b03c8f2 undefined -6f88d62c45aa54a06e629bb0c3ca3467ae418aadb824c8a8484b82c779da3799 undefined -6bd4cce47cd1eb44d6ff1c8b30392e73d01ceb5b103c4a69c2c995ed301e465b undefined -685c6b20a37c54ad3b7150bf82b60c10d7870d34dadcf037671ed0a103744bf8 undefined -478e51721d8ee3ed6c7e113953c3a369270f42c789bb0d9b40e1d0254d3d1026 undefined -e3125fc9e9b79b5cd001bf165348ff7874b5e83c948166c204cea301f7fa46de undefined -2c7fd14e2547af0ac656e9c2023eb9ea6d889695914875856cc6783598d51f0f undefined -b73697a98282202c7a21bc8be0e7fa5cedf3854fab70f409a5e59de76f7e4741 undefined -d74990792b17fb3ab2ca426148a1b882965bfb20287acad935835c6b3c39e408 undefined -ba104ff6b46fad7d89c1a2a39c0bfcbf454eacfc766a382492917e3db45ca742 undefined -e1344fd9f3ea15ad9745748c30f47a35220f7ab6b7547cf033f9b8e5c1479108 undefined -3c78fb93ac456199e21c7c5fc3f3b518176300d4f87f3b4302df31b5ef27aeee undefined -24605c2261b21d0e131c181ea4e4049313e01a6c518227fa019bfd2947da8cfe undefined -6bffbf2c818ba7ebbdf2a8f089e950660c28bdafdc3f728177fdf5fec137e3e8 undefined -536bf63fb14a7ace81d47c181f2f1743adc7cd8487394959aebd51e4f89ffa74 undefined -f096b25045c717495eb43a2cc9fcd5a7a6d2f8590fba114eba7e84794edb18c5 undefined -209203f3ab7513d3452dacdb6a4581ce4b020a34cd8ebe1a28ab8c12e0931c5f undefined -7ae470db5f9bdfb17e63670ef116c04d4ddd4c683c04fb1a58e72eccc8fe0615 undefined -c76fde75404292cf512149e9833b183693f35836fa0e1a0fcd726a10dd7ec252 undefined -ad598fef47973ec807bc07cc74ada5aa0421908b8b1d55d3d36191c13b206d55 undefined -a327794c23388a993aa0184565967b63fcb2a0c182d20817e166fe841ad205e4 undefined -cfe76dd41daa6e7cfdbda1f683d73a2ea637f2924e9494524554829be8807964 undefined -d3f29f94cc42d12b908640ea7ed09990c0553cb5aa85aae37b76069a3e34eed6 undefined -8183ecb33d3c2f217e5c6ffb3006bb505c267d2f7cb9a62110eee54f687867bb undefined -953cebb5c9aea9ce4b21d3a3a26cceffb63e69a9a95fa19fc9d253b46ae78250 undefined -05b44633398a2b2a8c74516f5b40b810bc0f905c909c3395fb53249f97e080c7 undefined -55b97e0cb5064496d55c5967d1ab6763528961079dd68a03ffd544a43b0cd7a7 undefined -0e49750041379da8505dba50807236f7bce0aba2137743e495c27c7b141db29d undefined -57d03da7812b9d43a0c4a514f402d7eb4e4e73692e5418d2a7d539699403b4e2 undefined -c5fb02120c27e89512e73f5dc94ca2658021939ae79245f74a9106f0e0b3a5c0 undefined -72354d572c4bfa63327acfdbd282696908bfdc9037fc9c5050fa04e93b784b10 undefined -1f658065024b8556823a902f3765b1659a94b59e011bb3230b3be40f3c4c4711 undefined -90c776333ef7efd7e35b50979e50f8b72ed1ec0fff2f1fa3e7975cd6026e37be undefined -8eccfe5a8660310b388363a05b8aed9195c26381957027959f3c94363e7b065e undefined -7c1a0fd8098060095664c9c7c6a187780fd666d5cad2dd13d9090f115f7c4e29 undefined -1e34c2267cb6232de0eb290024d9f175929837ba5a33f3b17d77d500afb67ff1 undefined -8f6eed8247143088eb266968ed46131ea0afd4b52a6058102a6c0ddda85ac164 undefined -c45bf05de9a7f6b98377f5240c56f451d7e344fd03e44851f6cd76b40302745c undefined -4d56208073c2e29252dda2b1ce7ac2a75cc3d5cd368636f314e3f5ce9186a258 undefined -3762f4d379597a9830d0aba2e5ac15962f625f34bbcae11696658cf3898f479f undefined -0f3c64d899b205128f2ee0a9a5d7699503171754c46925feb9653e03bf90b166 undefined -8029efa11a43cdcace540f409d373ce0235fa4c562f525ecb5798a3b9b2c159f undefined -23c6c812761085da832ff95f49d90bcc36740759e638d09436dcebefc6167140 undefined -3f1344d99e9fda672d529f7de6f67133f291ec65b288b0cfd33773b95e80384d undefined -6784ab806e506dc7dee363d95e638a8f719817377ec2c0cf51abd30438c90b75 undefined -c5cb52f0df0ae824dbba4174417efcedf0bb60a614bb819646f6637c7f74810a undefined -d47639cf11e3b1c655a745b3902997062d96f366603c068cb2055c807df429da undefined -06c64e10e00196c677fb44640cf40958d802ad3193177a24f44dbcb151c44746 undefined -6a888486a2e573d9d8b162401aa262608639a9e6dc8552093f7ec8c367c6798a undefined -bc833ac92abb6124a19dab497fd0459677b90b8074ba841fc59772fb5eb6597f undefined -518525992a90cbf94e10425a8f5778f7f95d528118c0d45bf512b9765f6dc306 undefined -44187cdf9a0bc8e59114e517691c9c8904bb8568f51c64958b9dada425e06939 undefined -b73036db53cba7d8802097fe0b8ec3b528672f4350b1d19c8531dda2678526e3 undefined -10bb8881979329cc26a1b40ee50cd26b0a74da306c14b47ac76d4fb8d67eed36 undefined -d3338e3fd2b695a6b1e128bc01da43082b61bde5e7df866524dbe2ac2959c9bd undefined -09e8212d56ccc2290e6577f0b838c31e042588d876482797875e887e47bc9943 undefined -01f0d48239af2e9ee6f1d1f4f2cf49ec464d747a010563f67daa8ecea2568370 undefined -fcca40c4fd56dbfb4ba88ff7521a480a77d288465c85359b0099bd4dea03285a undefined -3bf0194f2f0f9811c4c91c07b45c3abf82cc5c420c7fd73ddfa3af5aac4a197d undefined -49bafbcb115ed2b15a1c5501252888b1ce9de85c15a8bb16d9b5a53cc882b688 undefined -08acf8f589c5c2511ecd3e81aff6b3272e7f7bb4915c816b8465e08c2367f58e undefined -eb8f5902ff02792ecf961726a15c1b3a6447ca5f8a0ee0d4677b90b612ebde81 undefined -de33f6edf42563cb97afa48e1335ec138018b40627ab2a5c083bd1082dea94b6 undefined -1136da4c851bc7a74badac7f04d3447982aaad8de6ce001599dfbc4cbad4a9c7 undefined -9d9bc47e6e902cf7d54ea22f03157a8d3a0106601d6000b7d4579751095f8f96 undefined -5758b099590078defbe103b565aad9049f525cd0813ac395294fb6499a4ed434 undefined -c3878023b979d6daea69c1ae7253a68463a3915d930c317b675aec38a76361ce undefined -e264555676d4569e9ba2c0c461c6cfad1b5869800cd06d0a712e847bbc3b90f2 undefined -8333286cf1a4c9894e69db4a1a1a8d9e97770171ca01745a83a646bc02caac28 undefined -cdab9cd821eac99ef1011fa3583711db30f04ceb96457b1b9611634d1878edac undefined -a90ee2d7fb7ec2df0b5009ade45f319e916ea72c1ea87f46bd3880844902f62b undefined +8180eb43c5f6ffa09c2fb14304930c45bdd5013d6714d7dec21245873b2c2b31 undefined +536a6f7387ac385037bcad6bf050832adb89299e45e40570c87e466d631b84f5 undefined +954d9ae953cb969575593917bc5a544e08b62fb357814c163eef7bf5580f196c undefined +c82c91e16441b01804e7698aae710d8ffdc7087a7c54fda91ebda38baaea48e6 undefined +1be3d9df8049b6e616daba33f6710c720b5bb74da03fd1ffa35cbb16338ed2c2 undefined +8b6a63665137d714128237c9af530d274da3d24c4172e29e45a57ea15eaad1a8 undefined +2411bc1d08bd2632eb2625f78cf15ac3cfd12a269bd96d9254eb5b1dbc8729a1 undefined +9eb94fb9f21a04dfa608d8a5eeaf092d14c8db16adc21e86a6be709841dbd351 undefined +559ed7fc2860ba895eb0f83088c322ec7e2f1a49adf671ddf893695351023680 undefined +4c33072f9309dc69cb6b9129bd1f557520383285128d654a7021813a74ce42a2 undefined +06ad63203743a6873f018ae815705e707b5540a04a587a3eb0ca4886616781ca undefined +7ae42041f15319c4ae1143bc31501d957ff87b041b3572350477297e7f7afa2f undefined +c10753e8e79ef42ea09a2550e4a74f3e1b094c19746cf73e7a8659675b73753d undefined +7f97e55377c118c2058b0cc194515810d4b9aa88ccd925e6c1b398329380d0f9 undefined +0b8b54c29d3db0cbdbc0a4a0798dde6cbf1ddca7e0692c3eacead7dd3bf31d61 undefined +c9fb3689d0da864ea28946628e90526d8f23563248cdff1055fb22d1425fae33 undefined +cd9f581ad6c5e02dd2af966904fa009d9789fd0b679d2775dc64f1bf543f5d49 undefined +838c34fee093ee23d73eda2e5575397dbbaed9b3d37ae51b5ee9944f23daae80 undefined +480fa0b7973ef95e12be3e9e932e0a382d27430c4ba1b06d0b93a212e468efb4 undefined +8ac89242ed5c6b81c95bda5fb47660ac781d09ce232f1366215386a64cf4025b undefined +a52c121670738b5d55571860429c0d4af825a985981f679b9be0a98336c50e5f undefined +e19e777992cc5b8f5a1ee6cd40e06f90a46e919ade92a317f9889d7f68c65f8c undefined +145c3dd7519cf36ca047b100ef729c0d1a78167ac23806e2635d3d6dfdc21eb2 undefined +4fb58ebd344ff0ce03fc4e74aede0c6baf4abccfdd926947309cfb82b44241c9 undefined +ab6257d4a3617407f6a0fafe9247d166dd60853e2ec625f0303787e289bf7b88 undefined +f308b9f577e0b2b9ed915424dae71f39c7a3a03e756f044cc2b9863f6dd7fd58 undefined +7efdcdf11717c0e762b7be9b55cd2291de6c30d1afd19974f396eea592b20723 undefined +3a7c9a8b2436a785044d3bd3bb3614cd09850a053ec5f4a84777fd63bb893e78 undefined +f867d002f595a3173197a306d6dbf411ccf5a905dff7c8a259be8ea4e31e482f undefined +04424bec675654aa802f603b3b2978c838b22dccd220521bb75974e72406a03e undefined +135b48b1dc5b1f53b37462bcbb5dfe601c90e0c3c7b13a9b8977d05c99cdd736 undefined +441f64eeeb1cf369bfc24f37171eac3deacbc88ca4d7321bf0480c0cfec8c97a undefined +aafef47ec35c7cc98b197bff63108481d679082dce831dae61b6c773045605af undefined +1c02aac0abd6ce7d94b0c5877b91619a5db8892206df9882a0214b0ad6a96b65 undefined +b75c72626e8e5f4d2c8fa55816cd071b10bc26ca127263d5f28a4afad547fa85 undefined +14d20c8c55bdfe074d9d6883f74b4309124ff4c12cd07a74c4e8a8f2afedeea2 undefined +56fee28179f823b6a1169d05af45932cd9afca4dec2b6a3c9633f0c4c7980f72 undefined +cb2e6d3dee04e5bbe8bf10a0a7991bc2552f686f6a25f044c22093494f0f31a1 undefined +0aacd6975b491add4f1dcdc3b2c463bbc1360c56c0aed349d3385ea463001713 undefined +f2a9dbb1a37446b80bfb8cfeb66b0c2cb56055f5bfb8c659509868f9c417dc77 undefined +43768c868910d111b99f53c9868bed238f3a4f246db3f4806db93ffe8bcdd817 undefined +ec3aba99e8f5415e7e011d21d1f481ed3130c52e73ec6f7a326dde1c63e7814e undefined +f2aa3e19fac0b2069e0e2a26c62a8f7cf829d6a0a74e6b8422278569a2a063e5 undefined +ea67a20d27165f552e27a80b1854959070b46f61413c887b7172d9d995240894 undefined +2c91c3aeda3c37dafdaa9b020c9a865568b5e0379d5751294c528bcdbdf12ab7 undefined +30608829b5236024bdd337c78fe97cc0ef888b1b97f54df9407cc9b07d6733b2 undefined +efb974d784ffe8abe0f9fd03e8c737d91dcbea61129c21a86952e5d11db97557 undefined +1fcabb93efd682d4fb821718745e0c63d23384e4b4c1e1c514581c2313876fda undefined +489e1fa217d98fb1b9729c62ff8149128487c76759e7d04d338910844a7db50f undefined +b99e882c61b7a4a43be3ebe1de45a331928e2dfe6a78740a1c9555e03369cd7a undefined +cebe496e5d5b3958591978caf6f82fe3bc609e799a8288ce10b29bfdc931e98e undefined +75f3f6e9a6b0c5dcba78cd08659382fff4326714165973f27bbdce2ef4b237f1 undefined +0fc4d9b1640a2b73acd131e429e5a11efe5d827c9531ed81c110c633baac49b7 undefined +914b6ba64a20564e3c78b6d54d078a21e2fa0a9e421bd4783febfb50fd6552d8 undefined +fdbd9d3eeba9774db337a6e55c8d5ed5e2ceb0e426af9fb4edf62d679c310d22 undefined +3d746f9889d6805e4b21fd605d5dede4f139dc6921f1b6a5aa56edfdd8dd32d3 undefined +d2073abc967a177bc6680f045f2ed07c7ef9e7e1ea0d449a1abb2c0e414b25d5 undefined +197a7235de5ead95695c43ddece88b0a500bea01c88c88e85e05b6bdd4ab25e0 undefined +654c757df9802af08f4472ec7fec315b90157b18cf1310381a2b07334601875b undefined +17b50a4cde32cc95bcab0731c246396edeee88be7763930192e952559abaa7c6 undefined +586adf9077a3d83d2e9d17f224f654de220283ab374d73a5681c748bd728c3da undefined +e1608497d823fff722f0403a5c4c105ecbcdecbf8abb538183c0351391cb8d34 undefined +e52c04e8ba366f8e02623093a2e9189de84df5287970d20509e64d63216f8cd9 undefined +d0ce4f9a50307d9b9668a05a7702216fa42fe91dbde93b42c42044e16b90f9cd undefined +ad3022dfd211c98bf0e7c0d88ad3bdc27221d95aa8bb7e223d81b03ff91956ef undefined +acb406726051e08c3e6c69a703f2f5ad24b3068350aae82c3f08462cabcca130 undefined +18f8c6493ea7c762b2aaecfb0bacc9b9d79814c8d7d990e06d990ef59f20b933 undefined +c45da79aed2de2387538a15ee92a347066428063b8fc1fa9582605a184673204 undefined +e795a550aea72efe7a702c86cf3d337a444ed76f6facf800093d48fad5c5f7e0 undefined +92356aaedb4b4211feb57d9be8959478a22f7ead0a76c9b28a85027da128f276 undefined +571f01beb24266c6287afcfc2a2c599d7c4f2884f3564373f4b8eaea52b1b25f undefined +2d0b1d0caf12fcbc14bf630a07e372018981a61e8af5aa9fef7c791f682e8ccf undefined +cb25a6448c6d93c28b47845bfff0441c27cb93c6595a63a6619b9064e13933eb undefined +9170560b051f9392856073cb8bfe0e8a27a02257b0438383cf49158b57ee804e undefined +9e6e04cb7bf126b8e2468ee953ef410a091bf5666861391ea42769ecf202a066 undefined +285149ba7792e423e7f2603c9cc3a38a3eb7b6cb44e5aba0a483f181ae1e25c6 undefined +a58856122a74bd802d3ef577eb10de55441da39bcbfcdb79e900dec40e0f86dd undefined +ef6626fcbfa451ad35cfefd5460a3cd5e90538cef5e72455872753b220a411da undefined +260f4bb5acb7f5ee766c7a8501ebb3e517e61813247a081e789a76b052f7e09a undefined +bedcb682b61d1cbb5092142af381245de8faab09a685b4bf1b1e568b4c337ef6 undefined +9ee7bc60f819290ad6fa58f7140d1f6cb0780fa10dd5c6e8431c80a43c25b715 undefined +a33e12353c870b0753c7f58fa07668f41b3d486a560261656be16f52398e3c15 undefined +8eb8d9560e83cf6cf5bee3d9ca12e9301ce1dfcdfcb8613ce1fde42d72bb8aeb undefined +a2bbc233f2dfc29be7816620330da03048bd8f9776089b3034af85ef45c66c01 undefined +68244732de1bf90722adc3fbeb318332f5833869467dede28ef4361111f638f3 undefined +82990b3a21a3bb87d7f7a9e75e4eb7eb496d6099c8876939ca5ed7351eb4331f undefined +26171b52081c4936bc481173bfb0abf5c8138e8f70f7ca7f0c1cdb9520a6b5bf undefined +cfae8945d8b01c0d5c6c4df44185b5af790dad49f7fa61049d3529eacd1c4c70 undefined +f077855d778611ac5bf1e0b8c106608cddd475dbf80f21d40552f17e075f96bf undefined +8fff7b0b3ce9e2a1e4700834b01b0f2e96b08290bc71e6a392e118ef03fd2420 undefined +3ba0a89dfb29231a2669b78e2684351fffde30d1d96b3f2e93a39704d0b4b7bc undefined +47614d665496ff8cd8b48e552548377fdcd91f63a361a2ca5b08f180166bc648 undefined +7196bfffa2ecd904dc1c152b211e86732e3f6a3e580f9d50da527ce18beadae4 undefined +62d1d0b05c341cee881f659d5882b1af8d15d50fbf72a0749fe242e3016431a5 undefined +1b73c805e76c7354567e4f10840608537ffb758b63d7cecb78dbeec8d196ae2c undefined +deba93f6e00c7997c4710da13e49985faa5a32f6414149cacf99f9f83fa6edd9 undefined +a5d95ba4a9ba7455ce84fd6038605df4a0b034981dece6b47cd0322bfe00b763 undefined +5c3ff0c3d6cd1a71891ef6e496d1e231b43e5b16d56454c0df577cf350171b22 undefined +a4bc3fe83535802ac737fb4bee5893e1dd558490fe28e45a10c08031c96c6536 undefined +5ae0cbba176c40069770743726f1f63c571ddb54b779a38f9213a4fedbed003e undefined +20d45ee6a517f2a1e47d805cf0359ced2d8c52d4986b38ef07a56f7117effdc6 undefined +eb59813ebb6493b46cb17b7a310522a06125d69e2f8e87547973a6b78a773f23 undefined +ec34f6411c6874bf2c58549d4875d0cb3e002fee64915937961610b4ab98a1c6 undefined +69dedaa72e63528b0cd40fb997467c22b3be2c0b30a4799a982611dd4d79d9e7 undefined +f44b26d45899c00f892e77f85c52bf9320ee9614891ce02ac692f4c4f354997e undefined +a7931623b6b14426bfac86001ddff78f49f0fbd519146a7e092e149d36f380d1 undefined +a6c45d695ca09030b0316178df205f4d35cebab2764932c41925861363024610 undefined +ceac6154e3a4823722418a205c9ad9c483d04cdf7661f1ccd27ef79c15886dc7 undefined +dcc491016e4803ab2c9a6a2cbefe5249791eb620a49058afec56176f4c3b49be undefined +06dc72a88aa7da761b7536cbd06d41e8a442ce951da58b01db0624214da67ceb undefined +6274c1545f521aca3fbf77ef0d3f494ce3e6052592fc070e30fe919995364744 undefined +375f6827611f28b5bee60b3624785e10a0b4de1ff2850f2f13e2e0e7f6c626ae undefined +72aa4f0f842037e7acd27fe06d6fe88f994f010a81cda55df75921b7b7a7aca3 undefined +141087329908aaf5bece625ef5c3a6196e03952e07977ee64a5f9578b000d92f undefined +2afadb822a73489387f3ae76b1fd61f905f365fbca3d04983b7f5c97c970a974 undefined +73fdf71d5edf506fa49ee77bc339e7272d311b69fdd4bf5af5fcd0de54feb038 undefined +9b4b8d8b9478867c2cd1cef70a5f7112904a5ee9053246a32f246ae1242d6890 undefined +cc0e5defc612e3ad7f146d92a42870448a4068dc1f38def205ffe1fd05decc6b undefined +1b8282bd1c1f32f961906cc138f68dbbce581884f7bb69733d31605f3903d439 undefined +5279c921f6ca00444a06972b938f7bb45e8dc40cc756b8b60f90a48c347d5970 undefined +80ee3009882c43efb5790c305e8754d3bfdb34cef3b052d8b8c210ee8b92f34c undefined +9efcdcb77363a7e33ca2dc28ddf1ec41b59778bc816e03748970a1245996f90c undefined +49132853f8b2f87627aa2f600c92f1e0b99e678636695d215374f2550edd8893 undefined +d2a5253ed14511d9462a54b394f25abdf79a642d99cedae2446efd7acf86805c undefined +6738709d7c4dd889eb8d32a90d2142ac6082b29c712c1a9c6fa0c52ffaf5669b undefined +577a112f8033a7702b9399b4408f6b85fedaa3bd09ce7f0bf8018a1a81d8c37b undefined +a4478f834f7f968909fd75609915f87f93548b5bbcf3e80baf0ced381d846efa undefined +c26ba5a3408adcb339bc96805a8c6ad89689cbbdfa15cc8ee09eda4da9191f6d undefined +00532a6d8fab0f2e8e653f188cb952fd01b3ec6eba7cde4b72a3846f3e661500 undefined +63d043acdeac5d52329d528f8790097546eea0b88531d4cdbfc8b5cd626c70a1 undefined +ed8925d6937df2c07e679cc925d2bf73c655d3257101914ee58dd2e547b39fea undefined +7d6eb04b4216fd8fad37f6ec9f64dad6654405ba6f4db7d8b6970ae8bb7cccbf undefined +86ea1cdece92c05973e4c16881672cc8b6882afa025ec338f8282dd76f26f2ff undefined +ccf3e0f2fbdd5b1d5c4382f8f82e1c6dc98711e4f4692d7b853b913e91067c45 undefined +575b39e956a54268d6994b270179c07a8db27ce6486da46178eaaeccb1a74586 undefined +b6ea6ffd7d5fbc1559ed8370d9b00a80c87e0d35329e97557b846229c7783ad9 undefined +19467e5ee30a4a50950bc739d1e19b350af954fbb1633b6b495921295bd04706 undefined +d91fde24066eba62a666254de5c0e6717ff926c058786dfad13a3b010b22f65a undefined +2c9350d82210f0400647333405810a31adc9bedb5e54951c0b12537ce43aa42d undefined +541cbd17757dabb61b05c4cddc3bc10bbacd0945c233fd4910ca5fd23f4ee2dc undefined +9f9e3be1d4807a9a517ad35a6b91b47def552ea830761ce7b5c49de8ac10e64c undefined +c5f02c6a123f3e356baa56b48a57bdd939a2db27e109c4c34a85182f740bd2b9 undefined +9587ac730eb7dec01c9e676eabb1fffe5782e6634cb11c8cc5060b99b6774131 undefined +5e0f3e96ad5538632429be12f708cada970c3ac72b97153e889fd1e19a2db4f4 undefined +10b2bb83a6c052a45b9ed54bc84b423fcc71b734b350f2ea990d222925c9fd55 undefined +92432f58b4079fd003ba4d60ab4b9067c0cbd22a940a7d2b2480f922f089b874 undefined +8df310a1e62ed1b0e95f001e53303cb06737bbd0ee5a01ec93627bd8d26a35f6 undefined +0e9e887f5c7f230b839ea6bd703ee64a652a0489f30dcef125e20d2fd6d955fd undefined +ed53662a62375ed0b8a5f8207632fdbc451d7449b817e011116fbe55be382f8f undefined +12b9eac9f336aac75cb57279ec5481baed9267c7c0fe55d5b7ccd73b11e6c10e undefined +c65194ec750b412b44e4a0cad879bea8fdb9bd540d6b6186c9da8f58818db4b7 undefined +f3a0fde5edbececa7164bd923ac07c6b339b34b8db7645dde40281cd536d2aed undefined +30842fd49359b685e449c35e033c10df093344db88a255e27f6c934103a8db1c undefined +9d9144db8d068b5c0d0e7675d07ba25ac8219d4d71796b5e804fa547a9d1752b undefined +556689ceb98e3be22cfebc3b36dd63ef1e9af3b7107415401271c519b83b289d undefined +00c76fe8f1fd29a51a7a2a37f118b74a7a6bcc77af4508b2d4f8afa0f30ab286 undefined +faf1c0afda223ed3ea5f7489cc932d67b3b437fbc757f17a305e030cf522a553 undefined +f95b6405289f17000b1d3ff3a5622bb5287298a6243eb595bf08fd52d92f8967 undefined +8220c065fbbf189864b5c69a3030b4442127c5b14ba8d16cc2812603acdf458b undefined +8c44e804e8d46f8b30abbd26c7f555edc04660796554f39d9cea83ba0f6c4a2d undefined +350ac302de4edfd6e0da56d2809f815a3ddc293c1038d372206e327ee46cdd4e undefined +8680d89cd33ae2a3e517ddf42608ccca5133d74a3024f876ed8b00cca09a849b undefined +3c877410e5762a68e5c711f681d377109f51a1a1b7b6818330c678dd6648429e undefined +7a34e7afacb31f07180a6a7fe761e17ad183846a0e2653099da6598b47ecb060 undefined +a640c23cdf72775db905d3d548a2698da7b14114c6efd76f654c258451755196 undefined +7bdbcba53ab09765ef30e09bcd4b80888226f67a9c02e1403cfad4531afa4938 undefined +56e27738058b50089e281da81fb6c02f99b3a911fc43f0568664ce87460885ce undefined +53238032980b97ca6bdf3d475de8d5a96938dd2e08147a91a4e138cb662ef357 undefined +12061b27dcce1ec10528668b46beeaae3e696f17f33237ea0bd71ca5d57ac53d undefined +7978432678cedc2e0e8569821cbeb9322fb25608894f5bff255a10550623dc17 undefined +8deec0d122a8ef9be87ee8f9c69d89d83881add87db7cd209e9c459cd2235c8f undefined +e7ab164517a4750c92137d6f5a1ca93f469c303e59e159f6011a1ef46f52da5f undefined +d56d31384359c98bdb725f1219e3071dd030237688f101ef8654c813bdb3446c undefined +375a6d58e075cbb083c9d431cebe012dbe292fe0b140cc3f2c64fe8e960e5457 undefined +5ea400b4ff6bed10c53249ef87cdc234a37056542231be589f86b879ee1691eb undefined +5b91e7f247fd8117d0ace526383a1ad4191669e1eb1f155b887af692c7cf8ce9 undefined +36183aec1fe24f7aaee492152febd345455a5b152718cbd7e85ce81d10ec3841 undefined +aae303adba1d66b1e0f24f2424d912e1d8f300e21e5228d5bc454ec8b5a44c37 undefined +2822c4deb1fccf8d76479ab178fc0d8d6175f2be92f84346010d5fb5d594659c undefined +40bc4c8b34142a6c9e9cbb8d00fcab0b4fc74864054582d776a9a1c70bda7a78 undefined +fc5677faf43b70a81f7a3a56c2ccba63f2b371ef927f5b789adca6c9cba3598a undefined +491dfb39a9e31de6ed6059d3c22179f84601b4e7f026d32a990ac46ae5ada712 undefined +2a509bbcc6afe9eff34091187923f91e6298c45640a9c619731cc61c0c584047 undefined +d8f58641f00fc6eddb339dcc23c9bcb0f3ac568070a3807125920a0d372d896e undefined +47d0a70ab899c2952374ee54c060393bcd527b35bea8a7150e96b2211a12f969 undefined +2a9a0cb11c09dfd6b7ed85d895a181d489a8424d7bb47c8d2f1fd6811ca8636f undefined +0c36b5751de0c12f3dc8f62041949a6709c1a534859b8613ca1b0ca6d0c0bd58 undefined +4da15ea2d72ad4a7be99295ae8981a8d65c4808bd0ee8ada67567fe10c00e9a9 undefined +d39daed2546f1f9166b70e40c572d0283aac19c94459bbd104351eb64f8d782c undefined +ea789b3aa66faf8307da7135922ef7ae626d51eeba259b398d0b40a57359b605 undefined +a1f0da59f567674e95706c696afc51b50195d3f840d63f7edc7bcdda794ccba0 undefined +5c341fd5407602ed4e6f90a54a292bc71a8d82818f8fb3e960ae535ec44b3a65 undefined +a99f47c62aa6d3a8d323561292d2d0bb779223a60af488294cf710796c94bbd5 undefined +1f1550ce63fcc2a799a87c4af471ef846786aa48d154efbc1187a372219a9c12 undefined +99f7a62e30863f6cebf4641096647b19142fdbcffe097f9704ceb21f7c38d9df undefined +a3a6e18de9f888347f45443d231622528de39ecae466f3b0e51abb8157157e16 undefined +1bbb7d724669320fcb85efb233e8952dd9661e0a2086a8f990af6d71941770b4 undefined +8df80ee852bda9d9852a2cb467583d7f8aafd74f311540bd4dfaffcaf73b1e7c undefined +7ce71c34b6745a27705ea8b0ce6f2a23a997c8953fbdb8eda42ec0177da6bd35 undefined +ad668df5591a59ad8867fb1f6606f147cdda5f4c3637d71f8a806d76ed98df90 undefined +e9511d08de35658c4d25986cfccbcb977533ae5f42e2c5cfbc92ba7ccde528dd undefined +eb699995868522801a2699fcc808969737f12a82e4b2ef20f755ed7949fd58cc undefined +54aad64468d589941f921ac594eac0e0dcccc0ca0e3673a8649cfad233cd5554 undefined +f70c95db6ff5d9e37cd104d9028047a62e544cce34452a58ed47f9c1985aa5c4 undefined +0f9bdc0eced9d0711b1e39f5aff4d557eb8e483895e211bb3d7525601600bfbc undefined +9ac005a53f27441029ed23be12a83ccc04ff7feecd2642edc30c7688ca06552c undefined +0ad67feaf30bdeca1733150dd6803594f5e2c52e61d672f1d64d5b0670793adf undefined +81965395de04f93afa40c9a8fc4056e5ba3d43f1d0c68de2a47d301b12dd40df undefined +37317d22c326e41721df99c7df9dd3d39745cd0a03c9f8289e9de0a96cf0f75a undefined +ec1f470e718be260a34338079d185a79802ede3cf500fa430422c63da30a64e1 undefined +77b43ab1a4387c59aa0b3568ca0c0fc19183708518d0fc18b237a3ae73555cde undefined +00bd5422721e2524702dba7231d71bb435149371f5a9c0efef71401a2b2ecdc1 undefined +ab69c96d3532d2b2335c011cf74c2216cc7fc14a7cd41fe1f60dc4ed27df3bd1 undefined +c289e4b296d266e4570f3ab691603e0ea3525283e2b5b4e68c069e9e738c02ee undefined +d51562952455e5014d40ab48fa98f267e5e575f2b64ac21fedc09a8cd550872b undefined +21d57c9e4f323b22d6c50d7f5557d0f54fba126fbb112ad6570de31240fa90bf undefined +297b978ffb950783d250eb3658679ea49a8fb45b28fd99c2f92efc7553802341 undefined +36f2a38804350bd910ee8abe312e38be268d297d290819f728ea7d04d99a4ee4 undefined +b009f8510672963ccd9340da849341daaad5613223194a0db152b96c6c12fa8b undefined +cf3f950c545eba6fc6d6e467850222795c2475066f5307ad52b28624d929bc05 undefined +af8253d4e2ca4c07fb25fa0f3515465077cd40610e8ec5d140c81a0f77e6961d undefined +be79856bda439aedd86374a93ebd0d2c1532de98503309836ecc9251a19a05ac undefined +449a7e1d2a0bcadd0627059d60dbd378f4e3877ec5344f01dfa81bcdfd157bdf undefined +e1cf490134357ee178c47e761413c3ee3d9d2585ad27800009ce77b8f7cb8400 undefined +9a1511dda79958f5d5f6de8acae1efe4148141e00df445ce2146ea8b27543cde undefined +0349260cf6c24a1af0461ad5bee99bbbd094b18ff27eb6e95cb5bf4e4f63ee70 undefined +6686eb8d7af9728f610ac253ee80c8458f121f2485dcd6d3a59d75902d354e9e undefined +c67f2c0a232c45ee5b5e9d68e7ed2f46da55ebeb7ac5eb49ea3f7de4ebba96ee undefined +0aa2a481cfe7825c6badd34f8455e0e147a4bcace6028e9ea22437dd4b70db42 undefined +bab4b385871bb42dc31236397305ac290622b19c67ca0629556f092860841762 undefined +1c690fb60993743ef123845b5e9202e8967495898a01bca8d95b97541a66966e undefined +0b461e090645accd42f0de163ef155d61c6e83d11ef334a000565b6b9d24f9fb undefined +6fe9a06fb9e6f6afa5ad83bc74ce4d3c12aea70c31be8356c1ed2cb87402832a undefined +c4696fd547e5ccaa9734025eb14622c23d10336f647a0977b6d9b7cafbfc4188 undefined +43084eff59b231a5e6cefa802ffc631ec185e94ca692ed5406cb44ead88402e3 undefined +7acc35d866ad60b164b71b316198025f901c31009e1278d28587528eac06903a undefined +86eb8ff1a0cd76174e57bcf6fb84c763502da2e44b40e887f4b40deb6bbf8c03 undefined +d4e4ba015f69931d33fa5d1b8d89912b3e01771af7b83ecd23bad418f6679e23 undefined +b4a8750183a43deb5db4e6a47a1bfd25506c896476ce660b9e3fe6866e44a89a undefined +c1bec94342de3044bb170693b2f51551d9f5ee4b07fad95a4f9b057c6fe5dd80 undefined +083e76510f872a53824d3a109bd9e389683b9ed1df67a6651fabbaf526236d65 undefined +d65fc0acf067b9468d830ca059316aa839878973ff322cbc61a4cf77b21ec495 undefined +e9cc1371328b7fdf1ce121172423a0dcd01e46828ac71d69cf241dd273652ed6 undefined +cbeae8ef360d55d8604e30e8e82adbd5062ff6c07588053e2f4c953662f09d1e undefined +9361b16af13f7e335336a9dd0bc5516a606f195ba0f58444a54b125ab13cd6d4 undefined +9aefb684edadfcc4d86a2726cd30acc3aae9aba0e06bb749621e994172809bf5 undefined +443cf4b440d476d7c63e681cccc80505e237f8531b38369964752e57d5a8a474 undefined +9efd9efc82769a99cb29ac195a0d9574d97d8035b659242e69f258c3a07e8333 undefined +0ad5b273e05357bcfdb37521869a4c77e1738ea6b11c4faf93f09af487f3c29f undefined +e22f06cf8ad814ca2be3d8201661e478b2f3535e28e4d1a64f74730a8ca47812 undefined +9cb2edfd5788b0f4cdf3f24b30516eb5a3c9f6a21b3fb9badb93a4454f1e1aa2 undefined +c880988fdfaf8e9d916bfa341cc259899f2a93688c7a5d53aee76827855960d1 undefined +3f7b5e8d47ccbee5da9ef0a763489a59ae129cf5a37a4afc5dbe82a48d44ad69 undefined +a89523576631b48b2c14d0860b862b49810a9c848e44609b41eef615f819b9f8 undefined +e4831e6e1b86fb1b46f4edc9600ef76a1601e8230e8e895ef77f0d590db43cbe undefined +6d2aa54435867dbbcb423e1a44b1a0bc1bd927afcb977c96b1ea4fb4cb98cef9 undefined +3abc3060da008ab20d2be3849fe8f39a992986f082c55127ad915b686b26de89 undefined +bbe6b827c066439db40a389cf49c8f9540e5bcb0f5b03ded09244fbd06d0ce51 undefined +396398035127d682df2e515824454527643277abdba2fa7cffb61a76cb1df1be undefined +ffc7842ded5add0ea1ca190a03805cee4896ed58e1097be33b8ccbdf497006fc undefined +7dce606be7ac516e0ec2323c530b348b02e273482faf52595f3e23b842491713 undefined +19d9378a9559bdc54490203f34633181ac5f508919d90accc68a6afff296608a undefined +5cf33d59d70ea031ffa9bdf810abf20d448745072ddd0e9eda3dc144ca220739 undefined +61209a2b8e029d364046b6a8180352cca418bf517c87d62310f095e7d2d3adaf undefined +e7b3af0d80bcd055f976acbacbb84d2e5b8b023e2b82c6872c178429446c2446 undefined +9c19a6d0768b102e720d69873eec867e50049b945eda1328ca79ec514c83de72 undefined +7b82ca3c37954c6192542f8600955f9bfdfba826d3f6fa6c6bed66ae88acfae9 undefined +acef27db2d21e9a96889b0243adc4732ceea9e6536912a45fb9142c321a97e71 undefined +03d585b351558e03966c4749fafff57e729c9bdf8bc0625f667ef0cc4c024bad undefined +e0be738976942a7c0e9186366c7b19ed2dace21c6e6fd82adfe4e7720bbf98fd undefined +9304bf524f6793955741a754d2b93d5f1a1c0d81b11a3e1781f194f446bf7c8e undefined +184be5236833d1ad9605dd27c0a3813ff9cf94ff537d94e3d7743f232e5eb782 undefined +effcd9d5ca95a1e645f8eabc22b99132c444f49ac6e73ff98bd8c0c253d7c7f8 undefined +d2534ff9efae1030289a5eee1d05a82b4250df94c33b70c93012575c3b2d7443 undefined +a4b7c0f81a52bb69642ef206593aa7c781fb6ca4c823a50e50d0b8d3c33aca88 undefined +cfa78c6d98b1e5652395a4d2d9947d7732b7b0bfb125d691d56dfa275fb85f54 undefined +ee83853a19e03c611d6508a9b8b9c844880d097ebf20b3920c9a21770510f72b undefined +505d331858c06aeebd783da4304cda685b1bbd040f349c78494e1284d1601277 undefined +0f456d8ac7414ddcda2c8199ed28cc4edceb5c99c0494f706607bcc538d233a1 undefined +48502230983c5b3b056f592aad46e8c9ff059f3b3ada1f5bf420fca5613d4266 undefined +e8306f7d47ed39e9751c3b7e600ecae0474c1022f69dc8476e07297adf01d513 undefined +8ab8dfd837d1c6a2031af36a53a8584d1c7a9bbed5e3205d1355862be0843ef7 undefined +4acf6e0fbf3b5565309605d38afa582684db1b6c64cfbaff4e8ceba186dc5e71 undefined +930cbd1ecdebda00c7a779cb8154c1a1a83c79842debb48005e260e41eac22ff undefined +80e81b8e0d5af7e00cb9137e205421ddc9565c8455f377164a3d9c72dfc6cdb5 undefined +e13dde851aaf201a8a69f20a149b37bcfe8f276bba171e749bd298d854c65326 undefined +b187874c60cb10e3f0b9b7e590b34a0d3d4cbdee3fc62a1ec08fecfd8e069062 undefined +0e93715a994b613d882ed28c1a58c03642cda0edf3def0b39792577553b8fb6e undefined +b4c5c76d45344a734824ca946f7e74976f722ea8f923b3a5fff730bb256e8c09 undefined +7f47fb5c6e1d36d23c2f4dcd11769697a369b9b9bd7033844a2b683918029db2 undefined +e75bcbcea1edb3eea9e70f6eb462e1dc6c935b0a8401ea5ea450e456767e1223 undefined +b12b1c823084505452641dd16e0dcaa92952c014257812c0c1fb159e633fe435 undefined +b4c60a3b9ea7bb7b298b1668f790985c1aa509c84ef02019cbdef400eb3a11af undefined +c2d9908f9f9483b26fc8f647068f71794c78816251b8eb18d52f09bea609bd0d undefined +826834c36229a8cc74c9100bc0c138ce5d8d8ae31d283a71936d995b7515f4bb undefined +b93d6cc4e3be7049eb5cd67e4418b570040b76ab1a493121eb98430a4b99f997 undefined +c7053854fcb8bd90019d5904d4c516530da543ed15faad061981f23b8377f6a8 undefined +3bc3224e03f81d4f3ae15f5f52dedfc0599c2b61e633a514e8ff39920a8034bf undefined +0c42f62ba0f758aa2d56f1eee684623a9a36877ed4fd1dd6f81ad8f7cfe3d65d undefined +63933a65c14a2ce196347fee9028b6b55c1d1787c5a300b4127ba3fa5e75bfc6 undefined +6f67f2137c4f7e0ebbbea7b0932c29cf399cebf58173b0e1c65b05bfb59a7724 undefined +d34a60a575f8544ec07ddb384430c6e9241d485a84cf342a57e377ae871259fd undefined +07f8a58d666d885d21f54d16a7981e95f4a0a7be55ae24aa3d542d4a88083b31 undefined +e08eb5d960003e406a06d374d0d2b6d4bbf0c74a1d85b521d422e1cd63f1fd11 undefined +21863756722ec0caee67b38df0fd6a20c2eedd3a043cf87e683d18ef01d44f5f undefined +60f03c564bce96ff71dba10827da75c9975ca59d8ea215bb5e8076c645864813 undefined +85b8a414c8153f4c9da829f31578cfcd5327008aad9fb6f80dbff21c9d4205fd undefined +0e9bd714046074147ab0f8304e98802cd27a2553209314c0d0fc330947bda5aa undefined +3980e55d04c31c1b3bf9f4969ea249b66988c05e8be142132318e8bea2cf300c undefined +1a4c260bb5713e1efb60cc714b320db770925d15368641a718fe7dbc45a6ede1 undefined +be4755f473b4e188e6ba773439c85270ddc985f151ce591dfafcd06346f332a7 undefined +c87e64ce1bb41db4518fcd61250792a0bd849e460c6141c4b154917d225c8cb0 undefined +0a261ababf7b8b90ea121b6fb0b21b52fdabc7f2b75d47f4ed494bf0183b3413 undefined +c9d513563542ad2271a5bdc732c2e7f9f1157c488f36334d0a9e314b484268f2 undefined +9cdf740b2733523c570dc8d636fce31978d2f31a680b82417a1553ca9cbead2a undefined +9dd5b5289046e084e8a41b28ebe2fc50193b5974ac4a5be3674fc9e6cfbbd666 undefined +2e560b6e7c6d0d70a95bee77fe9eb94c710c82c10dbe8862c7258f1d8c5d2298 undefined +218fc410a981ae825c0d25496bbb6e94376036aabe5c1d9e45773031d75716f2 undefined +46ff1cc27e392f65e744356139b9c245e678c3d4ff9467072075bcfa6c967f3d undefined +849337a7b7c646391be1ce7a477c632b8579d3aa98d95c24643862947b6d55d3 undefined +b018750d7e57b53c3966eb7ad21ef6a09d435ef639513a5ed80c19e12eff9501 undefined +be5b1af565df5527a6845f2fd502855e1b57faeec2785da565432a7a40c00359 undefined +224b01b864d850436f60294aaf413a99b16555232108b9bc4cc503d0dfabc57c undefined +41026f640c42dabe32cf554f716285b98362d7811c13c2ca77c00ac266ea9bc3 undefined +2faf12778fb0ad5cc485321d66b1743e6403eec1837965339cc0f516aee4d4d1 undefined +7427058b9f2443c4106bb913b8fbf67f8a582525b279a85cf6ca169ff70b5205 undefined +8b0968f1e2059f14388d2e9b97f02ba91fc464756f338699416ed4aa99a78cf5 undefined +5fede47789117f75e4ffdb84526609ed95211fadbfeb069ff1c236962e7392e9 undefined +1cf63d625560f9dafb86c3c5f0449b087443793b940d573a9bc51b8b7d223b90 undefined +daac28f485b52d87f61f8a307f6b957d5d0499d4908ba095893f7a8643a2be11 undefined +3cb58d91cf901eac1c1660855215b0fdee6ad7995e6010a64c145b1e71e160c0 undefined +03b51c0e161d8351a2e7704af2be5540bd50d0730e9608d1ea9eeebe3741ccb3 undefined +e3eede48d0856b77b02a77cf0e804cc64a1c2bd3e6c315156f37f5bec80d2f93 undefined +e0004835741ab5cc54210b1ada9d18a62106cfef80c52eae137975774dfb38ab undefined +9d1640119173cc815dfe2585b60c304c7eb04edd28b8ab4493be645e1ecb2f20 undefined +1bf20c49e3b59248c72b4ed82aa3f7965616c35d1c60c2262086acc8fefba30d undefined +b964b4ef5996ec90172875fb5cb3b99db5be83cb0141b558e66bde043755d436 undefined +2cc09c1b087f906824025314968090397b7bac6aa051596f6a97c0f628c7bbe6 undefined +f368034f2bf3bd31820c8c68ef48b3a48d75311081b42ae73b7f81141e123521 undefined +8412f7231a5df139cb3ff0bb3369c34100cefd7ee0e580ddfd3fa41f5979d499 undefined +e2cb36510a2b17470819abcebe6fd850705cd2dd8be8d5b159f5443732467b4b undefined +90697c7e37c602319bd8c0116c987c33172099c3dcb223b181f2d5ecf6874f44 undefined +a36a5e879ac7d202cf8b250a6ce5cdb7023bda76908fc421961333866badfaaf undefined +f7a2801f1ae98ffbda8faec436f64bbbf01f8b6860b62afc44ca5b4e167e9314 undefined +416cb98593dae9eaeaf2ade0e705fc245b739a5c942c887bb09f929b62ed20fa undefined +f2fd1db127713f643d1e5bf8d933dba44498a908f6d7ea5dc2c66a01f18ca319 undefined +219ba97564a5f7b7a87267b78722df2e21d53487b40f5def7c07e0e9bb495e5b undefined +944ac8431163dabaca48400eb7d536b00e0f5d186a4740016686a6b7947ea71b undefined +1c4d2df36f4ca80aa242c9dd4d7c82d9420fdb7955b72f7a0abf472359549674 undefined +9c88a67ca8da7681ee8a3556fa7c3b9e54b8c37479ae2872a233f5e1505801b6 undefined +c2a297e1c66eec3cf10cb9820eef9a44a0908805bf9b1475dc19d1e29c3def12 undefined +07e4b00dabbc498858060be306229bf2dac5579fe5803f642da43b6ee30b1c00 undefined +ccc422589003feb274d01494bbbda394dd99d523525951b8d6df3dc17374c628 undefined +d0c63cb6c7ad8fb2b405ebb66a38d7c5b0e950fa389b235fa4fdf5b47a2861b2 undefined +192f53587f9fa0e7c26c03ec7117fa2063b201a543ec27c81c6aca7ffc2d44ae undefined +21cef8bf8a4101f6e068f518b99a1b02bdb7e7430956c4897e2ff9c13064ca22 undefined +9633db3338990db3cb994e899a9b48b1b1404ce5187edd8ba30fda5b12208d3e undefined +e64aa6012be2555e851455fcf2aba6abe1a26dedd69c66d0251bf9cf9df42947 undefined +8d951a926d097b61d392811e21d9399f78024272a095311863b1cfa206a74784 undefined +8d9e9f379371b85b2b65bb03fb60bc628e28e3f7f7e3609545bfbf6fdbb49441 undefined +b118bb6a94cb27b984e1cdaec1c99915c5aaa48f6f77f72cdbb5cd0fb1896a1c undefined +223c198d4ddb3b98b56cc61ae955bfffc043d106da6b797531d0b6bd80b98d27 undefined +81a2988f75e6b38d1849bf10921591c1ede959860788253ed936f35fa797ad2d undefined +a5ca5991d64d82bc66021f9ee275a42610ffe8fdf757648242756e7c9884a2df undefined +71e1c6bd94ecb15640969dcc59e1de6d684f3ab2a6bfcf540272dc5d072d524d undefined +25ed878e6315c8e57ea95cf00ed4934c7e29074ff9e1fc8b33c3997039f10e58 undefined +92ae2335774a06e4c63fefb8cfb82b7d1a5c7b39e38d28a04f2a2d17d39153fb undefined +040510bf1bed16c88e8007da60c12dfe5d194b557706e6c1c9af3394192ff970 undefined +a59f7100a2292f1071711b99eca40c4d460df356509dddf62f0ee2549dde2761 undefined +5e595f19d59a487139c938014af181bf195df439b587255d9f5615fa60530c77 undefined +3b07ee2f778b6cfb44ab6a0d246e844d0304a5b2ca17ff90504f6ac502713f17 undefined +34a42b6d58ec3cb5f835e1b5a39dea370eabb77e5864e40c185a185af641a067 undefined +3b01bc1ebc9e4fcee170a54550de85e392d0ff4cebebd942f6a31e055d29b0cb undefined +64c579bc38331f0d32fd1dbc0ec1843c289223fedf38f41223f66a8d26f44345 undefined +080a3a71f1605b1ef85cb0388f00d99cffd4f9f4afcf830b4f313e285d6bd9ee undefined +cecfc38b3cdebb00d985f401072a179db63720232fcc3cfc98978b70fa407254 undefined +f0ae832843292201300fa5755066e3eeb56b95da50a49a69576d2991d57d8d60 undefined +172621129c8cc043f1c7ed14d67f59a03ea32b64b701c374e952e695d4f5d983 undefined +a230e92354c058b517dd3939dcd86c06560b0ed59b20465a6e680ae5f14cb132 undefined +18eff5040ad7e9b2e1455186bf2a416dca4c12ace46b9ea77a4e8f2f9876d0ef undefined +5983fe64b2708c316eaa19d56f8cf25fa6e36628e94a01e0eafa6652fcf3a202 undefined +e383a27f46a7fb200083f0e67715667f896dd5de2cf718b54821122770ac2b39 undefined +829e985e3983433fc7e042122e420bf8573df44c89a8a9ca14f133be69fbff65 undefined +83ae578838b4b6c782e5e789aa6d1b6202323558cbab26cad6b90813a99f43ac undefined +97f8454394e32626eca962b6d5f0518a5d6d34c0510073e4492dd634cd86b856 undefined +19bccf3d1d60a038e2d565ff056273173c8068f5fda143b21b5930b8153e9ec8 undefined +ece4186e64145ed8aed4b73b2c0bf18a70d84f0a612440713de599fa008cd303 undefined +3470792f12393571bee8ad1412237e6a9a8bd1bf4dcc27e19b2ae76c7ad4746a undefined +f5d43934bd602f11cb5b8040d02eb38d4ad4c784f734bc8102cbfc5e90c2aa2f undefined +498a88c3d920ede6d7fc13ce92368391638d49e3d81d9069cdbf0dd2460a71fb undefined +051f8f0e9c141d3eb19a650ae26aed937c8f921f9abe3d90de60fcd20163a4fb undefined +fe2e11938ecbee5a9e93a3233c2daed53a0302915c0c926525a11aab8a512b21 undefined +f95cdc1fbe6663a5c2b1340447673583d77c158589ca757d0ce87aa99dee3a11 undefined +2531da0328bae393bdec6d08ba6e7356a48d782460301fb32d1012759010c8a0 undefined +667596e29a688ea5b55ea0c597551da8d9300637c63c4cbb8a93e2411a600d3c undefined +480af52ead65c364c0b46a8dbefb63d61517e156e4a7ed0996ed11f6b5cb38f0 undefined +da4e4631c39919f740cc74bddb2b8065eaaa5c213f3b1c19d33d218ec111664d undefined +e04f67be955ab095688188f1b12755ff78c15bd863f5556ccd2a9c1803754d16 undefined +6be574c2eeee7a26bc4956439a273b2a881661719f9b077ef41a8d5ecaabf8b0 undefined +44627026daf89397b5785a35f9209303d3ba377819d03bf2252b618df36889b4 undefined +e16bf7bb3d81e2003c301d60f137530be257374c684394351c332e719ace1228 undefined +4bdf34cb3d163dc6dbe3aba99bbc85eb3e833f6aee8719570d471730f7121498 undefined +ef2f657dcd855ccb11730c74272f68d7251c143e5d52898350f6af1dc35d0238 undefined +a767deb31bd525145085aa0266d04534040089f5fa9b0b76dbcdf8a60d5ae142 undefined +97df3dd32106517df97f66bda56780510ae9f6797bf79982ff66e1ab42c61833 undefined +9b93d7daf7213a6fa110d4335759c3443a63baaf02caff85b050b93e2fa7e08a undefined +3a73e26402f39e5f01d29b1da2bf52384bca37a75493e5d2cbdd9d9e16a00c6a undefined +405294a4ef4bd3970ecaba6cf0e6e7df79e70e3c1b852a430632ba13554d722c undefined +a8d05f277eb2ca8007a2d0eb514a056d6a065d5d66db5966a0b492683fcabb25 undefined +d04aa4f9da0e35ff36c2973ce9fd92e25d4af7054ca3adb79cf8ebac5af7c0b8 undefined +ae1907d41e0d3707cc51aba098a68408a61920a8e0dbb361c40edcca09360c6e undefined +6fbcb61be8cd342d851cf3707079f763a7edb4fd3385ba113288da4d5c2d93a0 undefined +2f3881870514e5ee13a59ff53a4c64abe6ab1a7c2f106768f2fdef3a829afe71 undefined +decd0a2c9902837d81bfa566eeb831a328254735d2c7115e653c28b5d81b59a0 undefined +df83bbabf3d3957a88783f0d76762cc42e0603cea4d0968aee90781e994e1067 undefined +80afdc6d02405dd21d13e4d58bd5202367191c78409c77de7578ae756f0f7b9b undefined +6bdbfc3052a7a7a0ef173638e57c98cc76a6d4db9e4c2181237bb7fdaf9d4169 undefined +9356e01b5e1fe32a773f73d4a448400a510c841fb6508fa02f2c8923c0ce6fab undefined +99977cc0e63a2a0a45833abaa953ec08a0db3c5452f62fd7938980462f638c8d undefined +2ef70f006e32eeae6d72cfd5d92e966f0e49c86b94c3b947cf21757576c5d954 undefined +81ffbceedc3307a7ac7026c7267b6d8af98f37bfc0baa9bc78ab9f7fdcbfaf7b undefined +4f7f83601b11574198bfb4c953392a97a13435930f86736be944ba2253809d9b undefined +8a0c91a128cd1b132936ea6fd9ce4644018f39eda46e758ca31b103f2926f993 undefined +a5004568db6cba1cb5d62a7d746ccafd1862e509ba52cfec928bbc6da7dbaa18 undefined +f60e9307874ba26716fef5094196efbedf064d4da4dceb1831479c4fd5b035af undefined +411375b7360b34ae5966a82b0f3adc65f9897963e044b827a198e454f80ad330 undefined +40c8f89f169c5f279998763b298a3f29386b5412c07d138ae2ecd597603b9643 undefined +558a1e87dfac396b4eacf2bb75a39208a67b424415727b114081c251c2219e86 undefined +7d5638fd9f240a6015ff701c3f9346c045e9a92b1f6c750cfbc7bd6b0ec5b092 undefined +dcbe1adeea2ed0c25a2dc3e3dafe20391ff005439c9d1785876acf01291f004a undefined +a935d0a04203323bc3c8a9d1df77dae656e01f605947be8ebf5ae68b77d4ed46 undefined +0d9fde8ff36196a70e020bc8f5b1bfde13f380821f485928c1ed645fa2739724 undefined +9fb86193e60699e4b4bc65f45dff6e600aef04411432d94dc83447eb1ad254d1 undefined +5652df97e0c8707cb7b072fd20d5bf8968684ad89de6a5cd64028cfcd3b1a313 undefined +5dd9e8b0499a611292131369157dc87727631c381a800fe6ccece7eafca54997 undefined +e7d93f100a4f5f23608267b36558d910471426009708b8910447910970c010e3 undefined +19c02e71a9b35fa26bcb7d87844f61d715da3d440e522a391f81b27008f156d9 undefined +3438dffb4b10a738a92fcffcb53409730957a4103fa0feea87b662bbcf32b0aa undefined +5c6ac7632d0b339d26af1a5a67f380b383001327e7d8317e167f7b11cbf1ac09 undefined +db6f178cfdb06c29ff8dc72e721da34344fab70ac35d332d2e0cfca19345ac1d undefined +021c7bdbddbef863b9cf8879ce83ddfd69dec7c56082eebc6a67eb4504b83858 undefined +1ec1cb9305de93a135f16137ea3ff2e984a3ca4a0eb1469a9864a275b59c3526 undefined +0cf15720c2fb614bcaa94a82b7354e7c63a3aa8a270233409b298cca19f436dc undefined +3cc822516ceb5f626f0ba10d0105aa1a2020104711ca6479a4f3fb9afbd80524 undefined +2a9295bfc1b82166e077e973e450679d02ee2947ea5d5481308a37f325f0daa5 undefined +593667165e8197d89313997696c14b609b16bfcab5bee9de80a238eb5c0011e4 undefined +86cd3c76d23fba5e59244c5af99d44af7bccaf2b891ce171aaeef609fe8ee8e2 undefined +e38e93fc1d5d9791bbaa82aac0db93c69db9307f8b9ed8b117752b7423571483 undefined +7c24bd9013371428e21677e6e6b05a02c0854ed7c53dcf15a338ed884ebc0bf8 undefined +f1db829afefbe25e092395c5d42882d7a365403d5b260c54f7e82e78768c5f9d undefined +ea05b200b9a872ffd4ccf757bc69de89d5d9eea3d80713c85be707322b43ff4e undefined +376ba40d335cfa1015ad55e3c94a85404100bcf21d699476bf809b38eef91b29 undefined diff --git a/images/button-release.dark.svg b/images/button-release.dark.svg index 374d5b6c65..a5275bf06b 100644 --- a/images/button-release.dark.svg +++ b/images/button-release.dark.svg @@ -9,8 +9,8 @@ - - + + @@ -22,7 +22,7 @@ - + diff --git a/images/button-release.light.svg b/images/button-release.light.svg index 39a962a622..699a267bf7 100644 --- a/images/button-release.light.svg +++ b/images/button-release.light.svg @@ -9,8 +9,8 @@ - - + + @@ -22,7 +22,7 @@ - + diff --git a/images/cs-block-cyrillic-extended-a.dark.svg b/images/cs-block-cyrillic-extended-a.dark.svg index dd0c2e29d0..6cbbe59045 100644 --- a/images/cs-block-cyrillic-extended-a.dark.svg +++ b/images/cs-block-cyrillic-extended-a.dark.svg @@ -41,7 +41,7 @@ - + diff --git a/images/cs-block-cyrillic-extended-a.light.svg b/images/cs-block-cyrillic-extended-a.light.svg index 9d09653905..56a48fb2c5 100644 --- a/images/cs-block-cyrillic-extended-a.light.svg +++ b/images/cs-block-cyrillic-extended-a.light.svg @@ -41,7 +41,7 @@ - + diff --git a/images/cs-block-enclosed-alphanumeric-supplement.dark.svg b/images/cs-block-enclosed-alphanumeric-supplement.dark.svg index 547745597f..c6f7186683 100644 --- a/images/cs-block-enclosed-alphanumeric-supplement.dark.svg +++ b/images/cs-block-enclosed-alphanumeric-supplement.dark.svg @@ -62,7 +62,7 @@ - + diff --git a/images/cs-block-enclosed-alphanumeric-supplement.light.svg b/images/cs-block-enclosed-alphanumeric-supplement.light.svg index e56c5b1861..6b91fff654 100644 --- a/images/cs-block-enclosed-alphanumeric-supplement.light.svg +++ b/images/cs-block-enclosed-alphanumeric-supplement.light.svg @@ -62,7 +62,7 @@ - + diff --git a/images/cs-block-letterlike-symbols.dark.svg b/images/cs-block-letterlike-symbols.dark.svg index 87cfd1a0a1..d51829a2c0 100644 --- a/images/cs-block-letterlike-symbols.dark.svg +++ b/images/cs-block-letterlike-symbols.dark.svg @@ -69,7 +69,7 @@ - + diff --git a/images/cs-block-letterlike-symbols.light.svg b/images/cs-block-letterlike-symbols.light.svg index 5be5f2d380..f075daf432 100644 --- a/images/cs-block-letterlike-symbols.light.svg +++ b/images/cs-block-letterlike-symbols.light.svg @@ -69,7 +69,7 @@ - + diff --git a/images/cs-block-mathematical-alphanumeric-symbols.dark.svg b/images/cs-block-mathematical-alphanumeric-symbols.dark.svg index 22f931c7ed..463881ad0e 100644 --- a/images/cs-block-mathematical-alphanumeric-symbols.dark.svg +++ b/images/cs-block-mathematical-alphanumeric-symbols.dark.svg @@ -73,7 +73,7 @@ - + @@ -99,16 +99,16 @@ - + - + - + - + @@ -116,7 +116,7 @@ - + @@ -125,7 +125,7 @@ - + @@ -151,16 +151,16 @@ - + - + - + - + @@ -168,7 +168,7 @@ - + @@ -278,20 +278,20 @@ - + - + - + - + - + @@ -352,7 +352,7 @@ - + @@ -365,7 +365,7 @@ - + @@ -398,7 +398,7 @@ - + @@ -408,7 +408,7 @@ - + @@ -422,7 +422,7 @@ - + diff --git a/images/cs-block-mathematical-alphanumeric-symbols.light.svg b/images/cs-block-mathematical-alphanumeric-symbols.light.svg index beb046b140..533c958396 100644 --- a/images/cs-block-mathematical-alphanumeric-symbols.light.svg +++ b/images/cs-block-mathematical-alphanumeric-symbols.light.svg @@ -73,7 +73,7 @@ - + @@ -99,16 +99,16 @@ - + - + - + - + @@ -116,7 +116,7 @@ - + @@ -125,7 +125,7 @@ - + @@ -151,16 +151,16 @@ - + - + - + - + @@ -168,7 +168,7 @@ - + @@ -278,20 +278,20 @@ - + - + - + - + - + @@ -352,7 +352,7 @@ - + @@ -365,7 +365,7 @@ - + @@ -398,7 +398,7 @@ - + @@ -408,7 +408,7 @@ - + @@ -422,7 +422,7 @@ - + diff --git a/images/cs-block-miscellaneous-mathematical-symbols-b.dark.svg b/images/cs-block-miscellaneous-mathematical-symbols-b.dark.svg index 02bc702b8e..82a03417cc 100644 --- a/images/cs-block-miscellaneous-mathematical-symbols-b.dark.svg +++ b/images/cs-block-miscellaneous-mathematical-symbols-b.dark.svg @@ -50,27 +50,28 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -568,8 +569,8 @@ - - + + @@ -619,37 +620,37 @@ - + - + - + - + - + - + - + @@ -689,7 +690,7 @@ - + @@ -719,17 +720,17 @@ - + - + - + @@ -739,17 +740,17 @@ - + - + - + @@ -759,7 +760,7 @@ - + @@ -814,22 +815,22 @@ - + - + - + - + @@ -844,12 +845,12 @@ - + - + diff --git a/images/cs-block-miscellaneous-mathematical-symbols-b.light.svg b/images/cs-block-miscellaneous-mathematical-symbols-b.light.svg index bde7104d22..468a6b901a 100644 --- a/images/cs-block-miscellaneous-mathematical-symbols-b.light.svg +++ b/images/cs-block-miscellaneous-mathematical-symbols-b.light.svg @@ -50,27 +50,28 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -568,8 +569,8 @@ - - + + @@ -619,37 +620,37 @@ - + - + - + - + - + - + - + @@ -689,7 +690,7 @@ - + @@ -719,17 +720,17 @@ - + - + - + @@ -739,17 +740,17 @@ - + - + - + @@ -759,7 +760,7 @@ - + @@ -814,22 +815,22 @@ - + - + - + - + @@ -844,12 +845,12 @@ - + - + diff --git a/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg b/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg index 2ab69cff73..e3752f8341 100644 --- a/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg +++ b/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg @@ -116,31 +116,34 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1273,18 +1276,18 @@ - - + + - - + + - - + + @@ -1314,47 +1317,47 @@ - + - + - + - + - + - + - + - + - + @@ -1364,32 +1367,32 @@ - + - + - + - + - + - + @@ -1414,7 +1417,7 @@ - + @@ -1534,42 +1537,42 @@ - + - + - + - + - + - + - + - + @@ -1654,7 +1657,7 @@ - + diff --git a/images/cs-block-miscellaneous-symbols-and-arrows.light.svg b/images/cs-block-miscellaneous-symbols-and-arrows.light.svg index c238ca8bf4..a033f42ac0 100644 --- a/images/cs-block-miscellaneous-symbols-and-arrows.light.svg +++ b/images/cs-block-miscellaneous-symbols-and-arrows.light.svg @@ -116,31 +116,34 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1273,18 +1276,18 @@ - - + + - - + + - - + + @@ -1314,47 +1317,47 @@ - + - + - + - + - + - + - + - + - + @@ -1364,32 +1367,32 @@ - + - + - + - + - + - + @@ -1414,7 +1417,7 @@ - + @@ -1534,42 +1537,42 @@ - + - + - + - + - + - + - + - + @@ -1654,7 +1657,7 @@ - + diff --git a/images/cs-block-miscellaneous-symbols.dark.svg b/images/cs-block-miscellaneous-symbols.dark.svg index dd53c9d863..de3f3f2f17 100644 --- a/images/cs-block-miscellaneous-symbols.dark.svg +++ b/images/cs-block-miscellaneous-symbols.dark.svg @@ -88,6 +88,7 @@ + @@ -1560,8 +1561,8 @@ - - + + diff --git a/images/cs-block-miscellaneous-symbols.light.svg b/images/cs-block-miscellaneous-symbols.light.svg index 87334fdbaf..81438f585c 100644 --- a/images/cs-block-miscellaneous-symbols.light.svg +++ b/images/cs-block-miscellaneous-symbols.light.svg @@ -88,6 +88,7 @@ + @@ -1560,8 +1561,8 @@ - - + + diff --git a/images/cs-block-miscellaneous-technical.dark.svg b/images/cs-block-miscellaneous-technical.dark.svg index 525463eb71..c8c610e895 100644 --- a/images/cs-block-miscellaneous-technical.dark.svg +++ b/images/cs-block-miscellaneous-technical.dark.svg @@ -143,26 +143,32 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1285,33 +1291,33 @@ - - + + - - + + - - + + - - + + - - + + - - + + @@ -1411,7 +1417,7 @@ - + @@ -1556,42 +1562,42 @@ - + - + - + - + - + - + - + - + @@ -1626,57 +1632,57 @@ - + - + - + - + - + - + - + - + - + - + - + diff --git a/images/cs-block-miscellaneous-technical.light.svg b/images/cs-block-miscellaneous-technical.light.svg index d4e8cfe95b..4f785661a1 100644 --- a/images/cs-block-miscellaneous-technical.light.svg +++ b/images/cs-block-miscellaneous-technical.light.svg @@ -143,26 +143,32 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1285,33 +1291,33 @@ - - + + - - + + - - + + - - + + - - + + - - + + @@ -1411,7 +1417,7 @@ - + @@ -1556,42 +1562,42 @@ - + - + - + - + - + - + - + - + @@ -1626,57 +1632,57 @@ - + - + - + - + - + - + - + - + - + - + - + diff --git a/images/cs-block-symbols-for-legacy-computing-supplement-purposed.dark.svg b/images/cs-block-symbols-for-legacy-computing-supplement-purposed.dark.svg new file mode 100644 index 0000000000..bfc5430f04 --- /dev/null +++ b/images/cs-block-symbols-for-legacy-computing-supplement-purposed.dark.svg @@ -0,0 +1,2713 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/cs-block-symbols-for-legacy-computing-supplement-purposed.light.svg b/images/cs-block-symbols-for-legacy-computing-supplement-purposed.light.svg new file mode 100644 index 0000000000..2855b5bcce --- /dev/null +++ b/images/cs-block-symbols-for-legacy-computing-supplement-purposed.light.svg @@ -0,0 +1,2713 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/languages.dark.svg b/images/languages.dark.svg index 0513e9f408..59ae9360d6 100644 --- a/images/languages.dark.svg +++ b/images/languages.dark.svg @@ -4,8 +4,8 @@ - - + + @@ -54,7 +54,7 @@ - + @@ -112,8 +112,8 @@ - - + + @@ -137,7 +137,7 @@ - + @@ -256,66 +256,64 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1828,13 +1826,13 @@ - + - + @@ -1843,7 +1841,7 @@ - + @@ -1856,29 +1854,29 @@ - + - + - + - + - + - + - + - + @@ -1912,7 +1910,7 @@ - + @@ -1939,9 +1937,9 @@ - + - + @@ -1960,10 +1958,10 @@ - + - + @@ -1983,7 +1981,7 @@ - + @@ -2010,7 +2008,7 @@ - + @@ -2019,7 +2017,7 @@ - + @@ -2053,26 +2051,26 @@ - + - + - + - + - + @@ -2095,7 +2093,7 @@ - + @@ -2119,7 +2117,7 @@ - + @@ -2137,14 +2135,14 @@ - + - + - + @@ -2175,7 +2173,7 @@ - + @@ -2187,20 +2185,20 @@ - + - + - + - + @@ -2219,7 +2217,7 @@ - + @@ -2231,7 +2229,7 @@ - + @@ -2245,7 +2243,7 @@ - + @@ -2256,7 +2254,7 @@ - + @@ -2296,7 +2294,7 @@ - + @@ -2309,7 +2307,7 @@ - + @@ -2336,7 +2334,7 @@ - + @@ -2354,20 +2352,20 @@ - + - + - + - + @@ -2378,18 +2376,18 @@ - + - + - + - + - + - + @@ -2402,7 +2400,7 @@ - + @@ -2447,7 +2445,7 @@ - + @@ -2485,7 +2483,7 @@ - + @@ -2499,7 +2497,7 @@ - + @@ -2553,7 +2551,7 @@ - + @@ -2566,9 +2564,9 @@ - + - + @@ -2580,8 +2578,8 @@ - - + + @@ -2595,7 +2593,7 @@ - + @@ -2603,7 +2601,7 @@ - + @@ -2615,7 +2613,7 @@ - + @@ -2632,7 +2630,7 @@ - + @@ -2640,8 +2638,8 @@ - - + + @@ -2650,25 +2648,25 @@ - + - + - - + + - - + + - + - - + + @@ -2676,20 +2674,20 @@ - + - + - + - + @@ -2711,7 +2709,7 @@ - + @@ -2721,7 +2719,7 @@ - + @@ -2737,7 +2735,7 @@ - + @@ -2775,13 +2773,13 @@ - + - + diff --git a/images/languages.light.svg b/images/languages.light.svg index 3d5efda997..94dc567aec 100644 --- a/images/languages.light.svg +++ b/images/languages.light.svg @@ -4,8 +4,8 @@ - - + + @@ -54,7 +54,7 @@ - + @@ -112,8 +112,8 @@ - - + + @@ -137,7 +137,7 @@ - + @@ -256,66 +256,64 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1828,13 +1826,13 @@ - + - + @@ -1843,7 +1841,7 @@ - + @@ -1856,29 +1854,29 @@ - + - + - + - + - + - + - + - + @@ -1912,7 +1910,7 @@ - + @@ -1939,9 +1937,9 @@ - + - + @@ -1960,10 +1958,10 @@ - + - + @@ -1983,7 +1981,7 @@ - + @@ -2010,7 +2008,7 @@ - + @@ -2019,7 +2017,7 @@ - + @@ -2053,26 +2051,26 @@ - + - + - + - + - + @@ -2095,7 +2093,7 @@ - + @@ -2119,7 +2117,7 @@ - + @@ -2137,14 +2135,14 @@ - + - + - + @@ -2175,7 +2173,7 @@ - + @@ -2187,20 +2185,20 @@ - + - + - + - + @@ -2219,7 +2217,7 @@ - + @@ -2231,7 +2229,7 @@ - + @@ -2245,7 +2243,7 @@ - + @@ -2256,7 +2254,7 @@ - + @@ -2296,7 +2294,7 @@ - + @@ -2309,7 +2307,7 @@ - + @@ -2336,7 +2334,7 @@ - + @@ -2354,20 +2352,20 @@ - + - + - + - + @@ -2378,18 +2376,18 @@ - + - + - + - + - + - + @@ -2402,7 +2400,7 @@ - + @@ -2447,7 +2445,7 @@ - + @@ -2485,7 +2483,7 @@ - + @@ -2499,7 +2497,7 @@ - + @@ -2553,7 +2551,7 @@ - + @@ -2566,9 +2564,9 @@ - + - + @@ -2580,8 +2578,8 @@ - - + + @@ -2595,7 +2593,7 @@ - + @@ -2603,7 +2601,7 @@ - + @@ -2615,7 +2613,7 @@ - + @@ -2632,7 +2630,7 @@ - + @@ -2640,8 +2638,8 @@ - - + + @@ -2650,25 +2648,25 @@ - + - + - - + + - - + + - + - - + + @@ -2676,20 +2674,20 @@ - + - + - + - + @@ -2711,7 +2709,7 @@ - + @@ -2721,7 +2719,7 @@ - + @@ -2737,7 +2735,7 @@ - + @@ -2775,13 +2773,13 @@ - + - + diff --git a/images/package-sample-IosevkaAile.dark.svg b/images/package-sample-IosevkaAile.dark.svg index 1fc781553c..611ea48301 100644 --- a/images/package-sample-IosevkaAile.dark.svg +++ b/images/package-sample-IosevkaAile.dark.svg @@ -138,7 +138,7 @@ - + @@ -151,7 +151,7 @@ - + @@ -219,9 +219,9 @@ - - - + + + @@ -285,9 +285,9 @@ - - - + + + @@ -350,9 +350,9 @@ - - - + + + @@ -370,7 +370,7 @@ - + @@ -385,7 +385,7 @@ - + @@ -403,18 +403,18 @@ - - - - - - - - - - - + + + + + + + + + + + - + \ No newline at end of file diff --git a/images/package-sample-IosevkaAile.light.svg b/images/package-sample-IosevkaAile.light.svg index 5d812a1610..0cbd11c817 100644 --- a/images/package-sample-IosevkaAile.light.svg +++ b/images/package-sample-IosevkaAile.light.svg @@ -138,7 +138,7 @@ - + @@ -151,7 +151,7 @@ - + @@ -219,9 +219,9 @@ - - - + + + @@ -285,9 +285,9 @@ - - - + + + @@ -350,9 +350,9 @@ - - - + + + @@ -370,7 +370,7 @@ - + @@ -385,7 +385,7 @@ - + @@ -403,18 +403,18 @@ - - - - - - - - - - - + + + + + + + + + + + - + \ No newline at end of file diff --git a/images/package-sample-IosevkaEtoile.dark.svg b/images/package-sample-IosevkaEtoile.dark.svg index 6e9bd626ac..8dfe68ea05 100644 --- a/images/package-sample-IosevkaEtoile.dark.svg +++ b/images/package-sample-IosevkaEtoile.dark.svg @@ -139,7 +139,7 @@ - + @@ -152,7 +152,7 @@ - + @@ -220,9 +220,9 @@ - - - + + + @@ -286,9 +286,9 @@ - - - + + + @@ -351,9 +351,9 @@ - - - + + + @@ -371,7 +371,7 @@ - + @@ -386,7 +386,7 @@ - + @@ -404,18 +404,18 @@ - - - - - - - - - - - + + + + + + + + + + + - + \ No newline at end of file diff --git a/images/package-sample-IosevkaEtoile.light.svg b/images/package-sample-IosevkaEtoile.light.svg index b7bf9f13d0..418e4f7118 100644 --- a/images/package-sample-IosevkaEtoile.light.svg +++ b/images/package-sample-IosevkaEtoile.light.svg @@ -139,7 +139,7 @@ - + @@ -152,7 +152,7 @@ - + @@ -220,9 +220,9 @@ - - - + + + @@ -286,9 +286,9 @@ - - - + + + @@ -351,9 +351,9 @@ - - - + + + @@ -371,7 +371,7 @@ - + @@ -386,7 +386,7 @@ - + @@ -404,18 +404,18 @@ - - - - - - - - - - - + + + + + + + + + + + - + \ No newline at end of file diff --git a/images/ss-i-off-0.dark.svg b/images/ss-i-off-0.dark.svg index a7d0117037..ac12753c27 100644 --- a/images/ss-i-off-0.dark.svg +++ b/images/ss-i-off-0.dark.svg @@ -3,7 +3,7 @@ - + @@ -30,16 +30,16 @@ - + - + - + - + @@ -47,7 +47,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -117,11 +117,11 @@ - + - + diff --git a/images/ss-i-off-0.light.svg b/images/ss-i-off-0.light.svg index 68c245f7ce..fe1a3a8f30 100644 --- a/images/ss-i-off-0.light.svg +++ b/images/ss-i-off-0.light.svg @@ -3,7 +3,7 @@ - + @@ -30,16 +30,16 @@ - + - + - + - + @@ -47,7 +47,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -117,11 +117,11 @@ - + - + diff --git a/images/ss-i-ss01-1.dark.svg b/images/ss-i-ss01-1.dark.svg index 96e90fcf91..353e76436d 100644 --- a/images/ss-i-ss01-1.dark.svg +++ b/images/ss-i-ss01-1.dark.svg @@ -3,7 +3,7 @@ - + @@ -30,9 +30,9 @@ - + - + @@ -47,7 +47,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -117,7 +117,7 @@ - + diff --git a/images/ss-i-ss01-1.light.svg b/images/ss-i-ss01-1.light.svg index ee2b2f181e..7810adf4e1 100644 --- a/images/ss-i-ss01-1.light.svg +++ b/images/ss-i-ss01-1.light.svg @@ -3,7 +3,7 @@ - + @@ -30,9 +30,9 @@ - + - + @@ -47,7 +47,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -117,7 +117,7 @@ - + diff --git a/images/ss-i-ss02-1.dark.svg b/images/ss-i-ss02-1.dark.svg index 8156bfb545..97a05e51b6 100644 --- a/images/ss-i-ss02-1.dark.svg +++ b/images/ss-i-ss02-1.dark.svg @@ -3,7 +3,7 @@ - + @@ -30,9 +30,9 @@ - + - + @@ -47,7 +47,7 @@ - + @@ -59,7 +59,7 @@ - + diff --git a/images/ss-i-ss02-1.light.svg b/images/ss-i-ss02-1.light.svg index e0d033827c..73645ae992 100644 --- a/images/ss-i-ss02-1.light.svg +++ b/images/ss-i-ss02-1.light.svg @@ -3,7 +3,7 @@ - + @@ -30,9 +30,9 @@ - + - + @@ -47,7 +47,7 @@ - + @@ -59,7 +59,7 @@ - + diff --git a/images/ss-i-ss03-1.dark.svg b/images/ss-i-ss03-1.dark.svg index 6376a040cd..5db7fd7d79 100644 --- a/images/ss-i-ss03-1.dark.svg +++ b/images/ss-i-ss03-1.dark.svg @@ -3,7 +3,7 @@ - + @@ -30,16 +30,16 @@ - + - + - + - + @@ -47,7 +47,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -117,11 +117,11 @@ - + - + diff --git a/images/ss-i-ss03-1.light.svg b/images/ss-i-ss03-1.light.svg index f9d76cea84..0a2e33fa60 100644 --- a/images/ss-i-ss03-1.light.svg +++ b/images/ss-i-ss03-1.light.svg @@ -3,7 +3,7 @@ - + @@ -30,16 +30,16 @@ - + - + - + - + @@ -47,7 +47,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -117,11 +117,11 @@ - + - + diff --git a/images/ss-i-ss04-1.dark.svg b/images/ss-i-ss04-1.dark.svg index 81eac8bc12..f2e33cd6b4 100644 --- a/images/ss-i-ss04-1.dark.svg +++ b/images/ss-i-ss04-1.dark.svg @@ -3,7 +3,7 @@ - + @@ -30,9 +30,9 @@ - + - + @@ -59,7 +59,7 @@ - + diff --git a/images/ss-i-ss04-1.light.svg b/images/ss-i-ss04-1.light.svg index fc0f55cb3c..ddde9220ee 100644 --- a/images/ss-i-ss04-1.light.svg +++ b/images/ss-i-ss04-1.light.svg @@ -3,7 +3,7 @@ - + @@ -30,9 +30,9 @@ - + - + @@ -59,7 +59,7 @@ - + diff --git a/images/ss-i-ss05-1.dark.svg b/images/ss-i-ss05-1.dark.svg index c9ea55a384..84507c3dc3 100644 --- a/images/ss-i-ss05-1.dark.svg +++ b/images/ss-i-ss05-1.dark.svg @@ -3,7 +3,7 @@ - + @@ -30,9 +30,9 @@ - + - + @@ -47,7 +47,7 @@ - + @@ -59,7 +59,7 @@ - + diff --git a/images/ss-i-ss05-1.light.svg b/images/ss-i-ss05-1.light.svg index 9308d410ed..54ea870e62 100644 --- a/images/ss-i-ss05-1.light.svg +++ b/images/ss-i-ss05-1.light.svg @@ -3,7 +3,7 @@ - + @@ -30,9 +30,9 @@ - + - + @@ -47,7 +47,7 @@ - + @@ -59,7 +59,7 @@ - + diff --git a/images/ss-i-ss06-1.dark.svg b/images/ss-i-ss06-1.dark.svg index 6557569107..73b3b29e84 100644 --- a/images/ss-i-ss06-1.dark.svg +++ b/images/ss-i-ss06-1.dark.svg @@ -3,7 +3,7 @@ - + @@ -30,9 +30,9 @@ - + - + @@ -47,7 +47,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -117,7 +117,7 @@ - + diff --git a/images/ss-i-ss06-1.light.svg b/images/ss-i-ss06-1.light.svg index 885e330ac8..4f100845f6 100644 --- a/images/ss-i-ss06-1.light.svg +++ b/images/ss-i-ss06-1.light.svg @@ -3,7 +3,7 @@ - + @@ -30,9 +30,9 @@ - + - + @@ -47,7 +47,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -117,7 +117,7 @@ - + diff --git a/images/ss-i-ss07-1.dark.svg b/images/ss-i-ss07-1.dark.svg index cbbd4308ac..4a3591476c 100644 --- a/images/ss-i-ss07-1.dark.svg +++ b/images/ss-i-ss07-1.dark.svg @@ -3,7 +3,7 @@ - + @@ -30,9 +30,9 @@ - + - + @@ -47,7 +47,7 @@ - + @@ -59,7 +59,7 @@ - + diff --git a/images/ss-i-ss07-1.light.svg b/images/ss-i-ss07-1.light.svg index e62370c9dd..315179c9ea 100644 --- a/images/ss-i-ss07-1.light.svg +++ b/images/ss-i-ss07-1.light.svg @@ -3,7 +3,7 @@ - + @@ -30,9 +30,9 @@ - + - + @@ -47,7 +47,7 @@ - + @@ -59,7 +59,7 @@ - + diff --git a/images/ss-i-ss08-1.dark.svg b/images/ss-i-ss08-1.dark.svg index 4368b55e99..0e30316293 100644 --- a/images/ss-i-ss08-1.dark.svg +++ b/images/ss-i-ss08-1.dark.svg @@ -3,7 +3,7 @@ - + @@ -30,9 +30,9 @@ - + - + @@ -47,7 +47,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -117,11 +117,11 @@ - + - + diff --git a/images/ss-i-ss08-1.light.svg b/images/ss-i-ss08-1.light.svg index ad244f6cce..daefafc9d6 100644 --- a/images/ss-i-ss08-1.light.svg +++ b/images/ss-i-ss08-1.light.svg @@ -3,7 +3,7 @@ - + @@ -30,9 +30,9 @@ - + - + @@ -47,7 +47,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -117,11 +117,11 @@ - + - + diff --git a/images/ss-i-ss09-1.dark.svg b/images/ss-i-ss09-1.dark.svg index 8642bc4107..d6e5520584 100644 --- a/images/ss-i-ss09-1.dark.svg +++ b/images/ss-i-ss09-1.dark.svg @@ -3,7 +3,7 @@ - + @@ -30,16 +30,16 @@ - + - + - + - + @@ -47,7 +47,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -117,7 +117,7 @@ - + diff --git a/images/ss-i-ss09-1.light.svg b/images/ss-i-ss09-1.light.svg index f07c5587d0..e1a3b73e46 100644 --- a/images/ss-i-ss09-1.light.svg +++ b/images/ss-i-ss09-1.light.svg @@ -3,7 +3,7 @@ - + @@ -30,16 +30,16 @@ - + - + - + - + @@ -47,7 +47,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -117,7 +117,7 @@ - + diff --git a/images/ss-i-ss10-1.dark.svg b/images/ss-i-ss10-1.dark.svg index c042b2959e..126f620cfa 100644 --- a/images/ss-i-ss10-1.dark.svg +++ b/images/ss-i-ss10-1.dark.svg @@ -3,7 +3,7 @@ - + @@ -30,9 +30,9 @@ - + - + @@ -59,7 +59,7 @@ - + diff --git a/images/ss-i-ss10-1.light.svg b/images/ss-i-ss10-1.light.svg index ec44a0c3dc..41fed29cea 100644 --- a/images/ss-i-ss10-1.light.svg +++ b/images/ss-i-ss10-1.light.svg @@ -3,7 +3,7 @@ - + @@ -30,9 +30,9 @@ - + - + @@ -59,7 +59,7 @@ - + diff --git a/images/ss-i-ss11-1.dark.svg b/images/ss-i-ss11-1.dark.svg index dba49ce045..3644ceee18 100644 --- a/images/ss-i-ss11-1.dark.svg +++ b/images/ss-i-ss11-1.dark.svg @@ -3,7 +3,7 @@ - + @@ -30,16 +30,16 @@ - + - + - + - + @@ -47,7 +47,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -117,11 +117,11 @@ - + - + diff --git a/images/ss-i-ss11-1.light.svg b/images/ss-i-ss11-1.light.svg index 9a41b8fed3..524906c4e4 100644 --- a/images/ss-i-ss11-1.light.svg +++ b/images/ss-i-ss11-1.light.svg @@ -3,7 +3,7 @@ - + @@ -30,16 +30,16 @@ - + - + - + - + @@ -47,7 +47,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -117,11 +117,11 @@ - + - + diff --git a/images/ss-i-ss12-1.dark.svg b/images/ss-i-ss12-1.dark.svg index f76a3ef3a6..1e3e7dc497 100644 --- a/images/ss-i-ss12-1.dark.svg +++ b/images/ss-i-ss12-1.dark.svg @@ -3,7 +3,7 @@ - + @@ -30,16 +30,16 @@ - + - + - + - + @@ -47,7 +47,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -116,11 +116,11 @@ - + - + diff --git a/images/ss-i-ss12-1.light.svg b/images/ss-i-ss12-1.light.svg index 9edb9df7e5..b96909af0c 100644 --- a/images/ss-i-ss12-1.light.svg +++ b/images/ss-i-ss12-1.light.svg @@ -3,7 +3,7 @@ - + @@ -30,16 +30,16 @@ - + - + - + - + @@ -47,7 +47,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -116,11 +116,11 @@ - + - + diff --git a/images/ss-i-ss13-1.dark.svg b/images/ss-i-ss13-1.dark.svg index b56ec71fa2..f0cddf6173 100644 --- a/images/ss-i-ss13-1.dark.svg +++ b/images/ss-i-ss13-1.dark.svg @@ -3,7 +3,7 @@ - + @@ -30,9 +30,9 @@ - + - + @@ -47,7 +47,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -117,7 +117,7 @@ - + diff --git a/images/ss-i-ss13-1.light.svg b/images/ss-i-ss13-1.light.svg index b983fcb8c6..8e48f6fc12 100644 --- a/images/ss-i-ss13-1.light.svg +++ b/images/ss-i-ss13-1.light.svg @@ -3,7 +3,7 @@ - + @@ -30,9 +30,9 @@ - + - + @@ -47,7 +47,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -117,7 +117,7 @@ - + diff --git a/images/ss-i-ss14-1.dark.svg b/images/ss-i-ss14-1.dark.svg index 178b8b8ebb..ea0f97b41a 100644 --- a/images/ss-i-ss14-1.dark.svg +++ b/images/ss-i-ss14-1.dark.svg @@ -3,7 +3,7 @@ - + @@ -30,9 +30,9 @@ - + - + @@ -59,7 +59,7 @@ - + diff --git a/images/ss-i-ss14-1.light.svg b/images/ss-i-ss14-1.light.svg index 34802315fc..ed4834ab7d 100644 --- a/images/ss-i-ss14-1.light.svg +++ b/images/ss-i-ss14-1.light.svg @@ -3,7 +3,7 @@ - + @@ -30,9 +30,9 @@ - + - + @@ -59,7 +59,7 @@ - + diff --git a/images/ss-i-ss15-1.dark.svg b/images/ss-i-ss15-1.dark.svg index d41ce4972e..1dcbbb5d86 100644 --- a/images/ss-i-ss15-1.dark.svg +++ b/images/ss-i-ss15-1.dark.svg @@ -3,7 +3,7 @@ - + @@ -30,9 +30,9 @@ - + - + @@ -59,7 +59,7 @@ - + diff --git a/images/ss-i-ss15-1.light.svg b/images/ss-i-ss15-1.light.svg index 4136dec400..dbf4955e89 100644 --- a/images/ss-i-ss15-1.light.svg +++ b/images/ss-i-ss15-1.light.svg @@ -3,7 +3,7 @@ - + @@ -30,9 +30,9 @@ - + - + @@ -59,7 +59,7 @@ - + diff --git a/images/ss-i-ss16-1.dark.svg b/images/ss-i-ss16-1.dark.svg index 531b7fc076..3e45fae45b 100644 --- a/images/ss-i-ss16-1.dark.svg +++ b/images/ss-i-ss16-1.dark.svg @@ -30,9 +30,9 @@ - + - + @@ -47,7 +47,7 @@ - + @@ -59,7 +59,7 @@ - + diff --git a/images/ss-i-ss16-1.light.svg b/images/ss-i-ss16-1.light.svg index 8f21419cbe..ac08ba59af 100644 --- a/images/ss-i-ss16-1.light.svg +++ b/images/ss-i-ss16-1.light.svg @@ -30,9 +30,9 @@ - + - + @@ -47,7 +47,7 @@ - + @@ -59,7 +59,7 @@ - + diff --git a/images/ss-i-ss17-1.dark.svg b/images/ss-i-ss17-1.dark.svg index cd99113357..753ffa4f75 100644 --- a/images/ss-i-ss17-1.dark.svg +++ b/images/ss-i-ss17-1.dark.svg @@ -3,7 +3,7 @@ - + @@ -30,9 +30,9 @@ - + - + @@ -59,7 +59,7 @@ - + diff --git a/images/ss-i-ss17-1.light.svg b/images/ss-i-ss17-1.light.svg index 85087c627a..3a5ca870ae 100644 --- a/images/ss-i-ss17-1.light.svg +++ b/images/ss-i-ss17-1.light.svg @@ -3,7 +3,7 @@ - + @@ -30,9 +30,9 @@ - + - + @@ -59,7 +59,7 @@ - + diff --git a/images/ss-i-ss18-1.dark.svg b/images/ss-i-ss18-1.dark.svg index 6785149da2..b8e13b8ed6 100644 --- a/images/ss-i-ss18-1.dark.svg +++ b/images/ss-i-ss18-1.dark.svg @@ -3,7 +3,7 @@ - + @@ -30,9 +30,9 @@ - + - + @@ -47,7 +47,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -117,7 +117,7 @@ - + diff --git a/images/ss-i-ss18-1.light.svg b/images/ss-i-ss18-1.light.svg index f6a07c6470..46a2a7bebe 100644 --- a/images/ss-i-ss18-1.light.svg +++ b/images/ss-i-ss18-1.light.svg @@ -3,7 +3,7 @@ - + @@ -30,9 +30,9 @@ - + - + @@ -47,7 +47,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -117,7 +117,7 @@ - + diff --git a/images/ss-i-ss20-1.dark.svg b/images/ss-i-ss20-1.dark.svg index 8b7ccfadc8..d577cd28db 100644 --- a/images/ss-i-ss20-1.dark.svg +++ b/images/ss-i-ss20-1.dark.svg @@ -3,7 +3,7 @@ - + @@ -30,16 +30,16 @@ - + - + - + - + @@ -47,7 +47,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -117,11 +117,11 @@ - + - + diff --git a/images/ss-i-ss20-1.light.svg b/images/ss-i-ss20-1.light.svg index ffc7bf164c..2079a71b5d 100644 --- a/images/ss-i-ss20-1.light.svg +++ b/images/ss-i-ss20-1.light.svg @@ -3,7 +3,7 @@ - + @@ -30,16 +30,16 @@ - + - + - + - + @@ -47,7 +47,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -117,11 +117,11 @@ - + - + diff --git a/package-lock.json b/package-lock.json index 1b4e5d76be..a23dbe5c34 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@iosevka/monorepo", - "version": "28.0.7", + "version": "28.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@iosevka/monorepo", - "version": "28.0.7", + "version": "28.1.0", "workspaces": [ "packages/*", "tools/*" @@ -3974,16 +3974,16 @@ }, "packages/font": { "name": "@iosevka/font", - "version": "28.0.7", + "version": "28.1.0", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/font-glyphs": "28.0.7", - "@iosevka/font-otl": "28.0.7", - "@iosevka/geometry": "28.0.7", - "@iosevka/geometry-cache": "28.0.7", - "@iosevka/glyph": "28.0.7", - "@iosevka/param": "28.0.7", - "@iosevka/util": "28.0.7", + "@iosevka/font-glyphs": "28.1.0", + "@iosevka/font-otl": "28.1.0", + "@iosevka/geometry": "28.1.0", + "@iosevka/geometry-cache": "28.1.0", + "@iosevka/glyph": "28.1.0", + "@iosevka/param": "28.1.0", + "@iosevka/util": "28.1.0", "harfbuzzjs": "^0.3.4", "ot-builder": "^1.7.3", "semver": "^7.5.4" @@ -3991,100 +3991,100 @@ }, "packages/font-glyphs": { "name": "@iosevka/font-glyphs", - "version": "28.0.7", + "version": "28.1.0", "dependencies": { - "@iosevka/font-kits": "28.0.7", - "@iosevka/geometry": "28.0.7", - "@iosevka/geometry-cache": "28.0.7", - "@iosevka/glyph": "28.0.7", - "@iosevka/util": "28.0.7", + "@iosevka/font-kits": "28.1.0", + "@iosevka/geometry": "28.1.0", + "@iosevka/geometry-cache": "28.1.0", + "@iosevka/glyph": "28.1.0", + "@iosevka/util": "28.1.0", "typo-geom": "^0.14.0" } }, "packages/font-kits": { "name": "@iosevka/font-kits", - "version": "28.0.7", + "version": "28.1.0", "dependencies": { - "@iosevka/geometry": "28.0.7", - "@iosevka/glyph": "28.0.7", - "@iosevka/util": "28.0.7" + "@iosevka/geometry": "28.1.0", + "@iosevka/glyph": "28.1.0", + "@iosevka/util": "28.1.0" } }, "packages/font-otl": { "name": "@iosevka/font-otl", - "version": "28.0.7", + "version": "28.1.0", "dependencies": { - "@iosevka/font-glyphs": "28.0.7", - "@iosevka/glyph": "28.0.7", + "@iosevka/font-glyphs": "28.1.0", + "@iosevka/glyph": "28.1.0", "toposort": "^2.0.2" } }, "packages/geometry": { "name": "@iosevka/geometry", - "version": "28.0.7", + "version": "28.1.0", "dependencies": { - "@iosevka/util": "28.0.7", + "@iosevka/util": "28.1.0", "spiro": "^3.0.0", "typo-geom": "^0.14.0" } }, "packages/geometry-cache": { "name": "@iosevka/geometry-cache", - "version": "28.0.7", + "version": "28.1.0", "dependencies": { - "@iosevka/geometry": "28.0.7", + "@iosevka/geometry": "28.1.0", "@msgpack/msgpack": "^2.8.0" } }, "packages/glyph": { "name": "@iosevka/glyph", - "version": "28.0.7", + "version": "28.1.0", "dependencies": { - "@iosevka/geometry": "28.0.7" + "@iosevka/geometry": "28.1.0" } }, "packages/param": { "name": "@iosevka/param", - "version": "28.0.7", + "version": "28.1.0", "dependencies": { - "@iosevka/util": "28.0.7" + "@iosevka/util": "28.1.0" } }, "packages/util": { "name": "@iosevka/util", - "version": "28.0.7" + "version": "28.1.0" }, "tools/amend-readme": { "name": "@iosevka/amend-readme", - "version": "28.0.7", + "version": "28.1.0", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "28.0.7", + "@iosevka/param": "28.1.0", "@unicode/unicode-15.1.0": "^1.5.2" } }, "tools/data-export": { "name": "@iosevka/data-export", - "version": "28.0.7", + "version": "28.1.0", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "28.0.7", + "@iosevka/param": "28.1.0", "@unicode/unicode-15.1.0": "^1.5.2", "cldr": "^7.5.0" } }, "tools/generate-samples": { "name": "@iosevka/generate-samples", - "version": "28.0.7", + "version": "28.1.0", "dependencies": { - "@iosevka/data-export": "28.0.7" + "@iosevka/data-export": "28.1.0" } }, "tools/misc": { "name": "@iosevka/misc", - "version": "28.0.7", + "version": "28.1.0", "dependencies": { - "@iosevka/util": "28.0.7", + "@iosevka/util": "28.1.0", "semver": "^7.5.4", "wawoff2": "^2.0.1" } diff --git a/package.json b/package.json index ff0f08d4b2..bed8890e8e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/monorepo", - "version": "28.0.7", + "version": "28.1.0", "workspaces": [ "packages/*", "tools/*" diff --git a/packages/font-glyphs/package.json b/packages/font-glyphs/package.json index f5dff8bd91..3097fb63f2 100644 --- a/packages/font-glyphs/package.json +++ b/packages/font-glyphs/package.json @@ -1,18 +1,18 @@ { - "name": "@iosevka/font-glyphs", - "version": "28.0.7", - "private": true, - "exports": { - ".": "./src/index.mjs", - "./aesthetics": "./src/meta/aesthetics.mjs", - "./unicode-knowledge": "./src/meta/unicode-knowledge.mjs" - }, - "dependencies": { - "@iosevka/font-kits": "28.0.7", - "@iosevka/geometry": "28.0.7", - "@iosevka/geometry-cache": "28.0.7", - "@iosevka/glyph": "28.0.7", - "@iosevka/util": "28.0.7", - "typo-geom": "^0.14.0" - } + "name": "@iosevka/font-glyphs", + "version": "28.1.0", + "private": true, + "exports": { + ".": "./src/index.mjs", + "./aesthetics": "./src/meta/aesthetics.mjs", + "./unicode-knowledge": "./src/meta/unicode-knowledge.mjs" + }, + "dependencies": { + "@iosevka/font-kits": "28.1.0", + "@iosevka/geometry": "28.1.0", + "@iosevka/geometry-cache": "28.1.0", + "@iosevka/glyph": "28.1.0", + "@iosevka/util": "28.1.0", + "typo-geom": "^0.14.0" + } } diff --git a/packages/font-kits/package.json b/packages/font-kits/package.json index 6b4dd3eb9f..b7d2313873 100644 --- a/packages/font-kits/package.json +++ b/packages/font-kits/package.json @@ -1,14 +1,14 @@ { "name": "@iosevka/font-kits", - "version": "28.0.7", + "version": "28.1.0", "private": true, "exports": { "./boole-kit": "./src/boole-kit.mjs", "./spiro-kit": "./src/spiro-kit.mjs" }, "dependencies": { - "@iosevka/geometry": "28.0.7", - "@iosevka/glyph": "28.0.7", - "@iosevka/util": "28.0.7" + "@iosevka/geometry": "28.1.0", + "@iosevka/glyph": "28.1.0", + "@iosevka/util": "28.1.0" } } diff --git a/packages/font-otl/package.json b/packages/font-otl/package.json index ae3d1c7c9c..329d304fc3 100644 --- a/packages/font-otl/package.json +++ b/packages/font-otl/package.json @@ -1,13 +1,13 @@ { "name": "@iosevka/font-otl", - "version": "28.0.7", + "version": "28.1.0", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { - "@iosevka/font-glyphs": "28.0.7", - "@iosevka/glyph": "28.0.7", + "@iosevka/font-glyphs": "28.1.0", + "@iosevka/glyph": "28.1.0", "toposort": "^2.0.2" } } diff --git a/packages/font/package.json b/packages/font/package.json index b0e1484f29..cf0b46f620 100644 --- a/packages/font/package.json +++ b/packages/font/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font", - "version": "28.0.7", + "version": "28.1.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -10,13 +10,13 @@ }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/font-glyphs": "28.0.7", - "@iosevka/font-otl": "28.0.7", - "@iosevka/geometry": "28.0.7", - "@iosevka/geometry-cache": "28.0.7", - "@iosevka/glyph": "28.0.7", - "@iosevka/param": "28.0.7", - "@iosevka/util": "28.0.7", + "@iosevka/font-glyphs": "28.1.0", + "@iosevka/font-otl": "28.1.0", + "@iosevka/geometry": "28.1.0", + "@iosevka/geometry-cache": "28.1.0", + "@iosevka/glyph": "28.1.0", + "@iosevka/param": "28.1.0", + "@iosevka/util": "28.1.0", "harfbuzzjs": "^0.3.4", "ot-builder": "^1.7.3", "semver": "^7.5.4" diff --git a/packages/geometry-cache/package.json b/packages/geometry-cache/package.json index ca69a7c2ff..96a4df326b 100644 --- a/packages/geometry-cache/package.json +++ b/packages/geometry-cache/package.json @@ -1,12 +1,12 @@ { "name": "@iosevka/geometry-cache", - "version": "28.0.7", + "version": "28.1.0", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { - "@iosevka/geometry": "28.0.7", + "@iosevka/geometry": "28.1.0", "@msgpack/msgpack": "^2.8.0" } } diff --git a/packages/geometry/package.json b/packages/geometry/package.json index dbc6bd5bb7..acae86ac59 100644 --- a/packages/geometry/package.json +++ b/packages/geometry/package.json @@ -1,20 +1,20 @@ { - "name": "@iosevka/geometry", - "version": "28.0.7", - "private": true, - "exports": { - ".": "./src/index.mjs", - "./anchor": "./src/anchor.mjs", - "./box": "./src/box.mjs", - "./segment": "./src/segment.mjs", - "./curve-util": "./src/curve-util.mjs", - "./point": "./src/point.mjs", - "./transform": "./src/transform.mjs", - "./spiro-control": "./src/spiro-control.mjs" - }, - "dependencies": { - "@iosevka/util": "28.0.7", - "spiro": "^3.0.0", - "typo-geom": "^0.14.0" - } + "name": "@iosevka/geometry", + "version": "28.1.0", + "private": true, + "exports": { + ".": "./src/index.mjs", + "./anchor": "./src/anchor.mjs", + "./box": "./src/box.mjs", + "./segment": "./src/segment.mjs", + "./curve-util": "./src/curve-util.mjs", + "./point": "./src/point.mjs", + "./transform": "./src/transform.mjs", + "./spiro-control": "./src/spiro-control.mjs" + }, + "dependencies": { + "@iosevka/util": "28.1.0", + "spiro": "^3.0.0", + "typo-geom": "^0.14.0" + } } diff --git a/packages/glyph/package.json b/packages/glyph/package.json index 90b33932ca..2303cfa787 100644 --- a/packages/glyph/package.json +++ b/packages/glyph/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/glyph", - "version": "28.0.7", + "version": "28.1.0", "private": true, "exports": { ".": "./src/glyph.mjs", @@ -9,6 +9,6 @@ "./relation": "./src/relation.mjs" }, "dependencies": { - "@iosevka/geometry": "28.0.7" + "@iosevka/geometry": "28.1.0" } } diff --git a/packages/param/package.json b/packages/param/package.json index 5d2a032824..39d1f1896a 100644 --- a/packages/param/package.json +++ b/packages/param/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/param", - "version": "28.0.7", + "version": "28.1.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -9,6 +9,6 @@ "./metric-override": "./src/metric-override.mjs" }, "dependencies": { - "@iosevka/util": "28.0.7" + "@iosevka/util": "28.1.0" } } diff --git a/packages/util/package.json b/packages/util/package.json index 69a7ffef99..92c2dbac62 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/util", - "version": "28.0.7", + "version": "28.1.0", "private": true, "exports": { ".": "./src/index.mjs", diff --git a/tools/amend-readme/package.json b/tools/amend-readme/package.json index 938e4dcfea..8f7528f0be 100644 --- a/tools/amend-readme/package.json +++ b/tools/amend-readme/package.json @@ -1,13 +1,13 @@ { - "name": "@iosevka/amend-readme", - "version": "28.0.7", - "private": true, - "exports": { - ".": "./src/index.mjs" - }, - "dependencies": { - "@iarna/toml": "^2.2.5", - "@iosevka/param": "28.0.7", - "@unicode/unicode-15.1.0": "^1.5.2" - } + "name": "@iosevka/amend-readme", + "version": "28.1.0", + "private": true, + "exports": { + ".": "./src/index.mjs" + }, + "dependencies": { + "@iarna/toml": "^2.2.5", + "@iosevka/param": "28.1.0", + "@unicode/unicode-15.1.0": "^1.5.2" + } } diff --git a/tools/data-export/package.json b/tools/data-export/package.json index ec6f315b00..97d2366602 100644 --- a/tools/data-export/package.json +++ b/tools/data-export/package.json @@ -1,17 +1,17 @@ { - "name": "@iosevka/data-export", - "version": "28.0.7", - "private": true, - "exports": { - ".": "./src/index.mjs", - "./ligation-data": "./src/ligation-data.mjs", - "./variants-data": "./src/variants-data.mjs", - "./supported-languages": "./src/supported-languages.mjs" - }, - "dependencies": { - "@iarna/toml": "^2.2.5", - "@iosevka/param": "28.0.7", - "@unicode/unicode-15.1.0": "^1.5.2", - "cldr": "^7.5.0" - } + "name": "@iosevka/data-export", + "version": "28.1.0", + "private": true, + "exports": { + ".": "./src/index.mjs", + "./ligation-data": "./src/ligation-data.mjs", + "./variants-data": "./src/variants-data.mjs", + "./supported-languages": "./src/supported-languages.mjs" + }, + "dependencies": { + "@iarna/toml": "^2.2.5", + "@iosevka/param": "28.1.0", + "@unicode/unicode-15.1.0": "^1.5.2", + "cldr": "^7.5.0" + } } diff --git a/tools/generate-samples/package.json b/tools/generate-samples/package.json index 8fa40085fa..b5d6f5c73d 100644 --- a/tools/generate-samples/package.json +++ b/tools/generate-samples/package.json @@ -1,11 +1,11 @@ { "name": "@iosevka/generate-samples", - "version": "28.0.7", + "version": "28.1.0", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { - "@iosevka/data-export": "28.0.7" + "@iosevka/data-export": "28.1.0" } } diff --git a/tools/misc/package.json b/tools/misc/package.json index 99a214ade9..ec97719d69 100644 --- a/tools/misc/package.json +++ b/tools/misc/package.json @@ -1,10 +1,10 @@ { "name": "@iosevka/misc", - "version": "28.0.7", + "version": "28.1.0", "private": true, "dependencies": { "semver": "^7.5.4", "wawoff2": "^2.0.1", - "@iosevka/util": "28.0.7" + "@iosevka/util": "28.1.0" } }