diff --git a/sources/FONT b/sources/FONT
index ab26c93f..0adb0713 100644
--- a/sources/FONT
+++ b/sources/FONT
@@ -1,12 +1,12 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
 
-(FILECREATED " 8-Dec-2025 22:19:01" {WMEDLEY}<sources>FONT.;645 281352 
+(FILECREATED "25-Dec-2025 10:58:30" {WMEDLEY}<sources>FONT.;654 285466 
 
       :EDIT-BY rmk
 
-      :CHANGES-TO (MACROS SPREADFONTSPEC)
+      :CHANGES-TO (FNS \CREATEFONT)
 
-      :PREVIOUS-DATE " 4-Dec-2025 09:46:06" {WMEDLEY}<sources>FONT.;644)
+      :PREVIOUS-DATE "22-Dec-2025 23:00:57" {WMEDLEY}<sources>FONT.;652)
 
 
 (PRETTYCOMPRINT FONTCOMS)
@@ -28,7 +28,7 @@
               (FNS FONTCREATE FONTCREATE1 FONTCREATE.SLUGFD \FONT.CHECKARGS1 \FONTCREATE1.NOFN 
                    FONTFILEP \READCHARSET)
               (FNS \FONT.CHECKARGS \CHARSET.CHECK)
-              (FNS COERCEFONTSPEC)
+              (FNS COERCEFONTSPEC COERCEFONTSPEC.TARGETFACE)
               (DECLARE%: EVAL@COMPILE DONTCOPY (MACROS COERCEFONTSPEC.MATCH COERCEFONTSPEC.TARGET))
               (MACROS SPREADFONTSPEC)
               (FNS MAKEFONTSPEC)
@@ -891,7 +891,11 @@
 (DEFINEQ
 
 (COERCEFONTSPEC
-  [LAMBDA (FONTSPEC COERCIONS)                               (* ; "Edited  9-Nov-2025 17:54 by rmk")
+  [LAMBDA (FONTSPEC COERCIONS ALL)                           (* ; "Edited 22-Dec-2025 22:56 by rmk")
+                                                             (* ; "Edited 18-Dec-2025 16:06 by rmk")
+                                                             (* ; "Edited  2-Dec-2025 17:24 by rmk")
+                                                             (* ; "Edited 25-Nov-2025 20:37 by rmk")
+                                                             (* ; "Edited  9-Nov-2025 17:54 by rmk")
                                                              (* ; "Edited  5-Oct-2025 09:41 by rmk")
                                                              (* ; "Edited 28-Aug-2025 14:41 by rmk")
                                                              (* ; "Edited 25-Aug-2025 10:22 by rmk")
@@ -902,44 +906,77 @@
                                                              (* ; "Edited  5-Aug-2025 17:27 by rmk")
                                                              (* ; "Edited 23-Jul-2025 15:39 by rmk")
 
-    (* ;; "Produces a list of coerced fontspecs, one for each coercion whose right side matches the given FONTSPEC parameters.")
+    (* ;; "If ALL, produces a list of coerced fontspecs, one for each coercion to an existing font whose right side matches the given FONTSPEC parameters.  Otherwise, returns the first matching coercion.")
 
-    (* ;; "Doesn't make sense to coerce the device, DEVICE and also CHARSET are just carried along.")
+    (* ;; "The recursion allows for coercions on multiple dimensions (e.g. family, and then size).")
 
+    (* ;; "Doesn't make sense to coerce the device, DEVICE is just carried along.")
+
+    (DECLARE (SPECVARS FONTSPEC))
     (CL:WHEN (LITATOM COERCIONS)
         [SETQ COERCIONS (FONTDEVICEPROP FONTSPEC (OR COERCIONS 'FONTCOERCIONS])
+    (for C RESULT MATCH TARGET MFAMILY MSIZE MFACE MROTATION TFAMILY TSIZE TFACE TROTATION COERCED 
+         FAMILY SIZE FACE ROTATION DEVICE in COERCIONS declare (SPECVARS FAMILY SIZE FACE ROTATION 
+                                                                      DEVICE)
+       first (SPREADFONTSPEC FONTSPEC)
+       when [SETQ COERCED (if (AND C (LITATOM C))
+                              then (APPLY* C FONTSPEC FAMILY SIZE FACE ROTATION DEVICE)
+                            else (SETQ MATCH (MKLIST (CAR C)))
+                                 (CL:WHEN [AND (COERCEFONTSPEC.MATCH (pop MATCH)
+                                                      FAMILY)
+                                               (COERCEFONTSPEC.MATCH (pop MATCH)
+                                                      SIZE)
+                                               (MATCHFONTFACE (\FONTFACE (OR (pop MATCH)
+                                                                             '*))
+                                                      FACE)
+                                               (COERCEFONTSPEC.MATCH (CAR MATCH)
+                                                      ROTATION)
+                                               (PROGN (SETQ TARGET (MKLIST (CADR C)))
+                                                      (SETQ TFAMILY (COERCEFONTSPEC.TARGET
+                                                                     (pop TARGET)
+                                                                     FAMILY))
+                                                      (SETQ TSIZE (COERCEFONTSPEC.TARGET (pop TARGET)
+                                                                         SIZE))
+                                                      (SETQ TFACE (COERCEFONTSPEC.TARGETFACE
+                                                                   (pop TARGET)
+                                                                   FACE))
+                                                      (SETQ TROTATION (COERCEFONTSPEC.TARGET
+                                                                       ROTATION
+                                                                       (pop TARGET)))
 
-    (* ;; "A NIL match component matches everything, and a NIL target component denotes the corresponding argument.")
+                                                      (* ;; 
+                                "Don't include the input in the output, if the coercions have a loop")
 
-    (for C MATCH TARGET MFAMILY MSIZE MFACE MROTATION TFAMILY TSIZE TFACE TROTATION COERCED FAMILY 
-         SIZE FACE ROTATION DEVICE in COERCIONS first (SPREADFONTSPEC FONTSPEC)
-       eachtime (SETQ MATCH (MKLIST (CAR C)))
-       when [AND (COERCEFONTSPEC.MATCH (pop MATCH)
-                        FAMILY)
-                 (COERCEFONTSPEC.MATCH (pop MATCH)
-                        SIZE)
-                 (MATCHFONTFACE (\FONTFACE (OR (pop MATCH)
-                                               '*))
-                        FACE)
-                 (COERCEFONTSPEC.MATCH (CAR MATCH)
-                        ROTATION)
-                 (PROGN (SETQ TARGET (MKLIST (CADR C)))
-                        (SETQ TFAMILY (COERCEFONTSPEC.TARGET (pop TARGET)
-                                             FAMILY))
-                        (SETQ TSIZE (COERCEFONTSPEC.TARGET (pop TARGET)
-                                           SIZE))
-                        (SETQ TFACE (COERCEFONTSPEC.TARGET (pop TARGET)
-                                           FACE))
-                        (SETQ TROTATION (COERCEFONTSPEC.TARGET ROTATION (pop TARGET)))
+                                                      (NOT (AND (EQ FAMILY TFAMILY)
+                                                                (EQ SIZE TSIZE)
+                                                                (EQUAL FACE TFACE)
+                                                                (EQ ROTATION TROTATION]
+                                        (MAKEFONTSPEC TFAMILY TSIZE TFACE TROTATION DEVICE]
+       unless (MEMBER COERCED RESULT)
+       when (SETQ COERCED (if (FONTEXISTS? COERCED NIL NIL NIL NIL T)
+                              then (CONS COERCED)
+                            elseif ALL
+                              then (COERCEFONTSPEC COERCED COERCIONS T)
+                            elseif (SETQ COERCED (COERCEFONTSPEC COERCED COERCIONS))
+                              then (CONS COERCED))) do 
 
-                        (* ;; "Don't include the input in the output, if the coercions have a loop")
+                                              (* ;; "If COERCED exists, it's a singleton whether or not ALL.  We always inflate it to a list, to simplify code")
 
-                        (NOT (AND (EQ FAMILY TFAMILY)
-                                  (EQ SIZE TSIZE)
-                                  (EQUAL FACE TFACE)
-                                  (EQ ROTATION TROTATION]
-       unless (MEMBER (SETQ COERCED (MAKEFONTSPEC TFAMILY TSIZE TFACE TROTATION DEVICE))
-                     $$VAL) collect COERCED])
+                                                       (for C in COERCED
+                                                          unless (MEMBER C RESULT)
+                                                          do (push RESULT C))
+       finally (RETURN (DREVERSE RESULT])
+
+(COERCEFONTSPEC.TARGETFACE
+  [LAMBDA (TFACE FFACE)                                      (* ; "Edited 22-Dec-2025 22:54 by rmk")
+    (if (MEMB TFACE '(NIL *))
+        then FFACE
+      else (MAKEFONTFACE (COERCEFONTSPEC.TARGET (fetch (FONTFACE WEIGHT) of TFACE)
+                                (fetch (FONTFACE WEIGHT) of FFACE))
+                  (COERCEFONTSPEC.TARGET (fetch (FONTFACE SLOPE) of TFACE)
+                         (fetch (FONTFACE SLOPE) of FFACE))
+                  (COERCEFONTSPEC.TARGET (fetch (FONTFACE EXPANSION) of TFACE)
+                         (fetch (FONTFACE EXPANSION) of FFACE])
 )
 (DECLARE%: EVAL@COMPILE DONTCOPY 
 (DECLARE%: EVAL@COMPILE 
@@ -2333,7 +2370,8 @@
            (SHOULDNT])
 
 (\COERCECHARSET
-  [LAMBDA (FONTSPEC CHARSET CODE COERCIONS FONT)             (* ; "Edited  7-Oct-2025 17:25 by rmk")
+  [LAMBDA (FONTSPEC CHARSET CODE COERCIONS FONT)             (* ; "Edited 17-Dec-2025 21:51 by rmk")
+                                                             (* ; "Edited  7-Oct-2025 17:25 by rmk")
                                                              (* ; "Edited 31-Aug-2025 00:00 by rmk")
                                                              (* ; "Edited 28-Aug-2025 23:07 by rmk")
                                                              (* ; "Edited 27-Aug-2025 17:08 by rmk")
@@ -2345,7 +2383,7 @@
                                                              (* ; "Edited  7-Jun-2025 13:39 by rmk")
                                                              (* ; "Edited 21-May-2025 10:50 by rmk")
 
-    (* ;; "Returns the CHARSET's CSINFO from the first font that the requested font coerces to and that has a non-slug entry for THINCODE (if given). ")
+    (* ;; "Returns the CHARSET's CSINFO from the first font that the requested font coerces to and that has a non-slug entry for CODE (if given). ")
 
     (if (NULL COERCIONS)
         then [SETQ COERCIONS (FONTDEVICEPROP FONTSPEC (CL:IF CODE
@@ -2353,10 +2391,18 @@
                                                           'FONTCOERCIONS)]
       elseif (LITATOM COERCIONS)
         then (SETQ COERCIONS (FONTDEVICEPROP FONTSPEC COERCIONS)))
-    (for CFS CFONT CSINFO in (COERCEFONTSPEC FONTSPEC COERCIONS)
-       when (AND (SETQ CFONT (FONTCREATE1 CFS CHARSET))
-                 (SETQ CSINFO (\INSURECHARSETINFO CFONT CHARSET)))
-       unless (AND CODE (SLUGCHARP.DISPLAY CODE CFONT))
+
+    (* ;; "This creates a list of fontspecs for the coercions of FONTSPEC that exist, then looks for the first one with the required character. If we stopped at the first coercion and it failed, we wouldn't know how to continue the iteration")
+
+    (for CFS CFONT CSINFO in (COERCEFONTSPEC FONTSPEC COERCIONS T) eachtime 
+
+                                                                         (* ;; 
+                                                            "Font CFS exists, FONTCREATE1 can't fail")
+
+                                                                         (SETQ CFONT (FONTCREATE1
+                                                                                      CFS CHARSET))
+       when (SETQ CSINFO (\INSURECHARSETINFO CFONT CHARSET)) unless (AND CODE (SLUGCHARP.DISPLAY
+                                                                               CODE CFONT))
        do (CL:WHEN FONT
               (replace (FONTDESCRIPTOR FONTCHARENCODING) of FONT with (fetch (FONTDESCRIPTOR 
                                                                                     FONTCHARENCODING)
@@ -2794,7 +2840,9 @@
                                then FILEFONTS)))])
 
 (FONTEXISTS?
-  [LAMBDA (FAMILY SIZE FACE ROTATION DEVICE NOCOERCIONS)     (* ; "Edited 26-Sep-2025 10:10 by rmk")
+  [LAMBDA (FAMILY SIZE FACE ROTATION DEVICE NOCOERCIONS)     (* ; "Edited 18-Dec-2025 13:10 by rmk")
+                                                             (* ; "Edited 25-Nov-2025 20:18 by rmk")
+                                                             (* ; "Edited 26-Sep-2025 10:10 by rmk")
                                                              (* ; "Edited 28-Aug-2025 22:16 by rmk")
                                                              (* ; "Edited 23-Aug-2025 12:45 by rmk")
                                                              (* ; "Edited 16-Aug-2025 17:49 by rmk")
@@ -2808,46 +2856,37 @@
  "Tries device specific coercions if the original request can't be satisfied and NOCOERCIONS is NIL.")
 
     (DECLARE (GLOBALVARS \FONTSINCORE \FONTEXISTS?-CACHE IMAGESTREAMTYPES))
-    (LET ((FONTSPEC (\FONT.CHECKARGS FAMILY SIZE FACE ROTATION DEVICE))
+    (LET ((FONTSPEC (\FONT.CHECKARGS FAMILY SIZE FACE ROTATION DEVICE T))
           VAL DEVICE)
-         (if (type? FONTDESCRIPTOR FONTSPEC)
-             then 
-                  (* ;; 
-                  "FAMILY was a font descriptor, unmodified by other args: record that it exists")
 
-                  (STOREMULTI \FONTEXISTS?-CACHE FONTSPEC T)
-           else (if (FETCHMULTI \FONTSINCORE FONTSPEC T)
-                  elseif (SETQ VAL (FETCHMULTI \FONTEXISTS?-CACHE FONTSPEC T))
-                    then (CL:UNLESS (EQ VAL 'NO)
-                                VAL)
-                  else                                       (* ; 
+         (* ;; "SASSOC everywhere because of face")
+
+         (if (FETCHMULTI \FONTSINCORE FONTSPEC 'SASSOC)
+           elseif (SETQ VAL (FETCHMULTI \FONTEXISTS?-CACHE FONTSPEC 'SASSOC))
+             then (CL:UNLESS (EQ VAL 'NO)
+                         VAL)
+           else                                              (* ; 
                                                    "Only 0 really exists.  Cache just the first file")
-                       (SETQ DEVICE (fetch (FONTSPEC FSDEVICE) of FONTSPEC))
-                       (SETQ VAL (OR (CAR (FONTFILES (CL:IF (MEMB (fetch (FONTSPEC FSROTATION)
-                                                                     of FONTSPEC)
-                                                                  '(90 270))
-                                                         (create FONTSPEC using FONTSPEC FSROTATION _
-                                                                                0)
-                                                         FONTSPEC)))
-                                     (APPLY* (OR (CAR (GETMULTI IMAGESTREAMTYPES DEVICE 'FONTEXISTS?)
-                                                      )
-                                                 (CAR (GETMULTI IMAGESTREAMTYPES DEVICE 
-                                                             'FONTSAVAILABLE))
-                                                 (FUNCTION TRUE))
-                                            FONTSPEC)))
-                       (if VAL
-                           then (STOREMULTI \FONTEXISTS?-CACHE FONTSPEC VAL T)
-                         elseif [AND (NOT NOCOERCIONS)
-                                     (find FS in (COERCEFONTSPEC FONTSPEC (FONTDEVICEPROP
-                                                                           DEVICE
-                                                                           'FONTCOERCIONS))
-                                        suchthat (SETQ VAL (FONTEXISTS? FS NIL NIL NIL NIL T]
-                           then 
-                                (* ;; "It's coerceable...but not yet coerced.")
+                (SETQ DEVICE (fetch (FONTSPEC FSDEVICE) of FONTSPEC))
+                (SETQ VAL (OR (CAR (FONTFILES (CL:IF (MEMB (fetch (FONTSPEC FSROTATION) of FONTSPEC)
+                                                           '(90 270))
+                                                  (create FONTSPEC using FONTSPEC FSROTATION _ 0)
+                                                  FONTSPEC)))
+                              (APPLY* (OR (CAR (GETMULTI IMAGESTREAMTYPES DEVICE 'FONTEXISTS?))
+                                          (CAR (GETMULTI IMAGESTREAMTYPES DEVICE 'FONTSAVAILABLE))
+                                          (FUNCTION NILL))
+                                     FONTSPEC)))
+                (if VAL
+                    then (STOREMULTI \FONTEXISTS?-CACHE FONTSPEC VAL |(QUOTE SASSOC)|)
+                  elseif [AND (NOT NOCOERCIONS)
+                              (SETQ VAL (COERCEFONTSPEC FONTSPEC (FONTDEVICEPROP DEVICE 
+                                                                        'FONTCOERCIONS]
+                    then 
+                         (* ;; "It's coerceable...even though coercion may not yet be instantiated")
 
-                                (STOREMULTI \FONTEXISTS?-CACHE FONTSPEC VAL T)
-                         else (STOREMULTI \FONTEXISTS?-CACHE FONTSPEC 'NO T)
-                              NIL])
+                         (STOREMULTI \FONTEXISTS?-CACHE FONTSPEC VAL 'SASSOC)
+                  else (STOREMULTI \FONTEXISTS?-CACHE FONTSPEC 'NO 'SASSOC)
+                       NIL])
 
 (\SEARCHFONTFILES
   [LAMBDA (FONTSPEC)                                         (* ; "Edited 28-Aug-2025 14:47 by rmk")
@@ -3586,7 +3625,8 @@
 (DEFINEQ
 
 (\CREATEFONT
-  [LAMBDA (FONTSPEC)                                         (* ; "Edited 25-Sep-2025 21:24 by rmk")
+  [LAMBDA (FONTSPEC)                                         (* ; "Edited 25-Dec-2025 10:58 by rmk")
+                                                             (* ; "Edited 25-Sep-2025 21:24 by rmk")
                                                              (* ; "Edited 28-Aug-2025 14:30 by rmk")
                                                              (* ; "Edited 18-Aug-2025 00:17 by rmk")
                                                              (* ; "Edited 16-Aug-2025 20:52 by rmk")
@@ -3598,14 +3638,22 @@
 
     (* ;; "")
 
-    (LET [(FN (CAR (GETMULTI IMAGESTREAMTYPES (fetch (FONTSPEC FSDEVICE) of FONTSPEC)
+    (LET ([FN (CAR (GETMULTI IMAGESTREAMTYPES (fetch (FONTSPEC FSDEVICE) of FONTSPEC)
                           'FONTCREATE]
+          FONT)
          (CL:WHEN FN
-             (if (EQ (NARGS FN)
-                     1)
-                 then (APPLY* FN FONTSPEC)
-               else                                          (* ; "Old form: spreading FONTSPEC")
-                    (APPLY FN FONTSPEC)))])
+             (SETQ FONT (if (EQ (NARGS FN)
+                                1)
+                            then (APPLY* FN FONTSPEC)
+                          else                               (* ; "Old form: spreading FONTSPEC")
+                               (APPLY FN FONTSPEC)))
+             (CL:UNLESS FONT
+                 (CL:WHEN (SETQ FONTSPEC (COERCEFONTSPEC FONTSPEC))
+                     (SETQ FONT (if (EQ (NARGS FN)
+                                        1)
+                                    then (APPLY* FN FONTSPEC)
+                                  else (APPLY FN FONTSPEC))))))
+         FONT])
 
 (\CREATECHARSET
   [LAMBDA (CHARSET FONT)                                     (* ; "Edited 25-Sep-2025 21:24 by rmk")
@@ -3871,7 +3919,8 @@
          CSINFO])
 
 (\FONTEXISTS?.DISPLAY
-  [LAMBDA (FONTSPEC)                                         (* ; "Edited 28-Aug-2025 22:12 by rmk")
+  [LAMBDA (FONTSPEC)                                         (* ; "Edited 17-Dec-2025 20:56 by rmk")
+                                                             (* ; "Edited 28-Aug-2025 22:12 by rmk")
                                                              (* ; "Edited 25-Aug-2025 15:04 by rmk")
                                                              (* ; "Edited 17-Aug-2025 09:56 by rmk")
                                                              (* ; "Edited  8-Aug-2025 10:03 by rmk")
@@ -3896,9 +3945,8 @@
                   (FONTEXISTS? (create FONTSPEC using FONTSPEC FSFACE _
                                                       (create FONTFACE using FACE EXPANSION _
                                                                              'REGULAR]
-             (for FS VAL in [COERCEFONTSPEC FONTSPEC (APPEND (FONTDEVICEPROP 'DISPLAY 'FONTCOERCIONS)
-                                                            (FONTDEVICEPROP 'DISPLAY 'CHARCOERCIONS]
-                when (SETQ VAL (FONTEXISTS? FS)) do (RETURN VAL])
+             (COERCEFONTSPEC FONTSPEC (APPEND (FONTDEVICEPROP 'DISPLAY 'FONTCOERCIONS)
+                                             (FONTDEVICEPROP 'DISPLAY 'CHARCOERCIONS])
 )
 (DEFINEQ
 
@@ -4597,44 +4645,44 @@
 (ADDTOVAR LAMA FONTCOPY)
 )
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (12152 21865 (CHARWIDTH 12162 . 12947) (CHARWIDTHY 12949 . 14466) (STRINGWIDTH 14468 . 
-15561) (\CHARWIDTH.DISPLAY 15563 . 15976) (\STRINGWIDTH.DISPLAY 15978 . 16402) (\STRINGWIDTH.GENERIC 
-16404 . 21863)) (21866 28386 (DEFAULTFONT 21876 . 23161) (FONTCLASS 23163 . 25325) (FONTCLASSUNPARSE 
-25327 . 26226) (FONTCLASSCOMPONENT 26228 . 26816) (SETFONTCLASSCOMPONENT 26818 . 27260) (
-GETFONTCLASSCOMPONENT 27262 . 28384)) (30099 47603 (FONTCREATE 30109 . 33354) (FONTCREATE1 33356 . 
-35971) (FONTCREATE.SLUGFD 35973 . 37455) (\FONT.CHECKARGS1 37457 . 41980) (\FONTCREATE1.NOFN 41982 . 
-42196) (FONTFILEP 42198 . 43086) (\READCHARSET 43088 . 47601)) (47604 54680 (\FONT.CHECKARGS 47614 . 
-54363) (\CHARSET.CHECK 54365 . 54678)) (54681 57941 (COERCEFONTSPEC 54691 . 57939)) (60136 61475 (
-MAKEFONTSPEC 60146 . 61473)) (61476 69653 (COMPLETE.FONT 61486 . 64009) (COMPLETEFONTP 64011 . 64634) 
-(COMPLETE.CHARSET 64636 . 67321) (PRUNESLUGCSINFOS 67323 . 68248) (MONOSPACEFONTP 68250 . 69651)) (
-69692 77947 (FONTASCENT 69702 . 70086) (FONTDESCENT 70088 . 70573) (FONTHEIGHT 70575 . 70977) (
-FONTPROP 70979 . 77224) (\AVGCHARWIDTH 77226 . 77945)) (78604 79512 (FONTDEVICEPROP 78614 . 79510)) (
-79558 80412 (EDITCHAR 79568 . 80410)) (80458 92648 (GETCHARBITMAP 80468 . 81592) (PUTCHARBITMAP 81594
- . 83752) (\GETCHARBITMAP.CSINFO 83754 . 85770) (\PUTCHARBITMAP.CSINFO 85772 . 92646)) (92649 113129 (
-MOVECHARBITMAP 92659 . 94553) (MOVEFONTCHARS 94555 . 98515) (\MOVEFONTCHAR 98517 . 103360) (
-\MOVEFONTCHARS.SOURCEDATA 103362 . 109467) (\MAKESLUGCHAR 109469 . 112004) (SLUGCHARP.DISPLAY 112006
- . 113127)) (114062 135227 (FONTFILES 114072 . 115905) (\FINDFONTFILE 115907 . 118216) (\FONTFILENAMES
- 118218 . 119213) (\FONTFILENAME 119215 . 123198) (\FONTFILENAME.OLD 123200 . 126149) (
-\FONTFILENAME.NEW 126151 . 128408) (FONTSPECFROMFILENAME 128410 . 132946) (\FONTINFOFROMFILENAME.OLD 
-132948 . 135225)) (135494 171297 (FONTCOPY 135504 . 140567) (FONTP 140569 . 140868) (FONTUNPARSE 
-140870 . 142589) (SETFONTDESCRIPTOR 142591 . 144055) (\STREAMCHARWIDTH 144057 . 148221) (
-\COERCECHARSET 148223 . 150818) (\BUILDSLUGCSINFO 150820 . 154443) (\FONTSYMBOL 154445 . 155095) (
-\DEVICESYMBOL 155097 . 155966) (\FONTFACE 155968 . 163158) (\FONTFACE.COLOR 163160 . 170080) (
-SETFONTCHARENCODING 170082 . 171295)) (171298 191597 (FONTSAVAILABLE 171308 . 176662) (FONTEXISTS? 
-176664 . 180642) (\SEARCHFONTFILES 180644 . 183729) (FLUSHFONTCACHE 183731 . 185954) (FLUSHFONTSINCORE
- 185956 . 186153) (FINDFONTFILES 186155 . 189369) (SORTFONTSPECS 189371 . 191595)) (191598 195207 (
-MATCHFONTFACE 191608 . 192423) (MAKEFONTFACE 192425 . 193451) (FONTFACETOATOM 193453 . 195205)) (
-195838 196330 (\UNITWIDTHSVECTOR 195848 . 196328)) (210924 212991 (FONTDESCRIPTOR.DEFPRINT 210934 . 
-212513) (FONTCLASS.DEFPRINT 212515 . 212989)) (216820 219610 (\CREATEKERNELEMENT 216830 . 217188) (
-\FSETLEFTKERN 217190 . 217681) (\FGETLEFTKERN 217683 . 219608)) (219611 229247 (\CREATEFONT 219621 . 
-221060) (\CREATECHARSET 221062 . 224998) (\INSTALLCHARSETINFO 225000 . 228334) (
-\INSTALLCHARSETINFO.CHARENCODING 228336 . 229245)) (229569 230933 (\FONTRESETCHARWIDTHS 229579 . 
-230931)) (231563 241610 (\CREATEDISPLAYFONT 231573 . 233422) (\CREATECHARSET.DISPLAY 233424 . 239133) 
-(\FONTEXISTS?.DISPLAY 239135 . 241608)) (241611 256476 (STRIKEFONT.FILEP 241621 . 242509) (
-STRIKEFONT.GETCHARSET 242511 . 248103) (WRITESTRIKEFONTFILE 248105 . 253016) (STRIKECSINFO 253018 . 
-256474)) (256507 272824 (MAKEBOLD.CHARSET 256517 . 260166) (MAKEBOLD.CHAR 260168 . 261920) (
-MAKEITALIC.CHARSET 261922 . 265595) (MAKEITALIC.CHAR 265597 . 267943) (\SFMAKEBOLD 267945 . 270169) (
-\SFMAKEITALIC 270171 . 272822)) (272825 276974 (\SFMAKEROTATEDFONT 272835 . 274236) (\SFROTATECSINFO 
-274238 . 274875) (\SFROTATEFONTCHARACTERS 274877 . 275257) (\SFROTATECSINFOOFFSETS 275259 . 276972)) (
-276975 278356 (\SFMAKECOLOR 276985 . 278354)))))
+  (FILEMAP (NIL (12172 21885 (CHARWIDTH 12182 . 12967) (CHARWIDTHY 12969 . 14486) (STRINGWIDTH 14488 . 
+15581) (\CHARWIDTH.DISPLAY 15583 . 15996) (\STRINGWIDTH.DISPLAY 15998 . 16422) (\STRINGWIDTH.GENERIC 
+16424 . 21883)) (21886 28406 (DEFAULTFONT 21896 . 23181) (FONTCLASS 23183 . 25345) (FONTCLASSUNPARSE 
+25347 . 26246) (FONTCLASSCOMPONENT 26248 . 26836) (SETFONTCLASSCOMPONENT 26838 . 27280) (
+GETFONTCLASSCOMPONENT 27282 . 28404)) (30119 47623 (FONTCREATE 30129 . 33374) (FONTCREATE1 33376 . 
+35991) (FONTCREATE.SLUGFD 35993 . 37475) (\FONT.CHECKARGS1 37477 . 42000) (\FONTCREATE1.NOFN 42002 . 
+42216) (FONTFILEP 42218 . 43106) (\READCHARSET 43108 . 47621)) (47624 54700 (\FONT.CHECKARGS 47634 . 
+54383) (\CHARSET.CHECK 54385 . 54698)) (54701 61312 (COERCEFONTSPEC 54711 . 60623) (
+COERCEFONTSPEC.TARGETFACE 60625 . 61310)) (63507 64846 (MAKEFONTSPEC 63517 . 64844)) (64847 73024 (
+COMPLETE.FONT 64857 . 67380) (COMPLETEFONTP 67382 . 68005) (COMPLETE.CHARSET 68007 . 70692) (
+PRUNESLUGCSINFOS 70694 . 71619) (MONOSPACEFONTP 71621 . 73022)) (73063 81318 (FONTASCENT 73073 . 73457
+) (FONTDESCENT 73459 . 73944) (FONTHEIGHT 73946 . 74348) (FONTPROP 74350 . 80595) (\AVGCHARWIDTH 80597
+ . 81316)) (81975 82883 (FONTDEVICEPROP 81985 . 82881)) (82929 83783 (EDITCHAR 82939 . 83781)) (83829 
+96019 (GETCHARBITMAP 83839 . 84963) (PUTCHARBITMAP 84965 . 87123) (\GETCHARBITMAP.CSINFO 87125 . 89141
+) (\PUTCHARBITMAP.CSINFO 89143 . 96017)) (96020 116500 (MOVECHARBITMAP 96030 . 97924) (MOVEFONTCHARS 
+97926 . 101886) (\MOVEFONTCHAR 101888 . 106731) (\MOVEFONTCHARS.SOURCEDATA 106733 . 112838) (
+\MAKESLUGCHAR 112840 . 115375) (SLUGCHARP.DISPLAY 115377 . 116498)) (117433 138598 (FONTFILES 117443
+ . 119276) (\FINDFONTFILE 119278 . 121587) (\FONTFILENAMES 121589 . 122584) (\FONTFILENAME 122586 . 
+126569) (\FONTFILENAME.OLD 126571 . 129520) (\FONTFILENAME.NEW 129522 . 131779) (FONTSPECFROMFILENAME 
+131781 . 136317) (\FONTINFOFROMFILENAME.OLD 136319 . 138596)) (138865 175440 (FONTCOPY 138875 . 143938
+) (FONTP 143940 . 144239) (FONTUNPARSE 144241 . 145960) (SETFONTDESCRIPTOR 145962 . 147426) (
+\STREAMCHARWIDTH 147428 . 151592) (\COERCECHARSET 151594 . 154961) (\BUILDSLUGCSINFO 154963 . 158586) 
+(\FONTSYMBOL 158588 . 159238) (\DEVICESYMBOL 159240 . 160109) (\FONTFACE 160111 . 167301) (
+\FONTFACE.COLOR 167303 . 174223) (SETFONTCHARENCODING 174225 . 175438)) (175441 195201 (FONTSAVAILABLE
+ 175451 . 180805) (FONTEXISTS? 180807 . 184246) (\SEARCHFONTFILES 184248 . 187333) (FLUSHFONTCACHE 
+187335 . 189558) (FLUSHFONTSINCORE 189560 . 189757) (FINDFONTFILES 189759 . 192973) (SORTFONTSPECS 
+192975 . 195199)) (195202 198811 (MATCHFONTFACE 195212 . 196027) (MAKEFONTFACE 196029 . 197055) (
+FONTFACETOATOM 197057 . 198809)) (199442 199934 (\UNITWIDTHSVECTOR 199452 . 199932)) (214528 216595 (
+FONTDESCRIPTOR.DEFPRINT 214538 . 216117) (FONTCLASS.DEFPRINT 216119 . 216593)) (220424 223214 (
+\CREATEKERNELEMENT 220434 . 220792) (\FSETLEFTKERN 220794 . 221285) (\FGETLEFTKERN 221287 . 223212)) (
+223215 233367 (\CREATEFONT 223225 . 225180) (\CREATECHARSET 225182 . 229118) (\INSTALLCHARSETINFO 
+229120 . 232454) (\INSTALLCHARSETINFO.CHARENCODING 232456 . 233365)) (233689 235053 (
+\FONTRESETCHARWIDTHS 233699 . 235051)) (235683 245724 (\CREATEDISPLAYFONT 235693 . 237542) (
+\CREATECHARSET.DISPLAY 237544 . 243253) (\FONTEXISTS?.DISPLAY 243255 . 245722)) (245725 260590 (
+STRIKEFONT.FILEP 245735 . 246623) (STRIKEFONT.GETCHARSET 246625 . 252217) (WRITESTRIKEFONTFILE 252219
+ . 257130) (STRIKECSINFO 257132 . 260588)) (260621 276938 (MAKEBOLD.CHARSET 260631 . 264280) (
+MAKEBOLD.CHAR 264282 . 266034) (MAKEITALIC.CHARSET 266036 . 269709) (MAKEITALIC.CHAR 269711 . 272057) 
+(\SFMAKEBOLD 272059 . 274283) (\SFMAKEITALIC 274285 . 276936)) (276939 281088 (\SFMAKEROTATEDFONT 
+276949 . 278350) (\SFROTATECSINFO 278352 . 278989) (\SFROTATEFONTCHARACTERS 278991 . 279371) (
+\SFROTATECSINFOOFFSETS 279373 . 281086)) (281089 282470 (\SFMAKECOLOR 281099 . 282468)))))
 STOP
diff --git a/sources/FONT.LCOM b/sources/FONT.LCOM
index 7cb640d7..be8d605b 100644
Binary files a/sources/FONT.LCOM and b/sources/FONT.LCOM differ
