summaryrefslogtreecommitdiff
path: root/fonts/obnov
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/obnov
Initial commit
Diffstat (limited to 'fonts/obnov')
-rw-r--r--fonts/obnov/README34
-rw-r--r--fonts/obnov/example_obn.pdfbin0 -> 1335968 bytes
-rw-r--r--fonts/obnov/example_obn.tex560
-rw-r--r--fonts/obnov/lcyw.cmap134
-rw-r--r--fonts/obnov/lcywobn.fd42
-rw-r--r--fonts/obnov/obn10.mf3486
-rw-r--r--fonts/obnov/obn12.mf3485
-rw-r--r--fonts/obnov/obn17.mf3482
-rw-r--r--fonts/obnov/obn7.mf3486
-rw-r--r--fonts/obnov/obn_lcyw_code.mf70
-rw-r--r--fonts/obnov/obnb10.mf3488
-rw-r--r--fonts/obnov/obnb12.mf3491
-rw-r--r--fonts/obnov/obnb17.mf3490
-rw-r--r--fonts/obnov/obnb7.mf3485
-rw-r--r--fonts/obnov/obnit10.mf3565
-rw-r--r--fonts/obnov/obnit12.mf3567
-rw-r--r--fonts/obnov/obnit17.mf3566
-rw-r--r--fonts/obnov/obnit7.mf3564
-rw-r--r--fonts/obnov/obnitb10.mf3575
-rw-r--r--fonts/obnov/obnitb12.mf3568
-rw-r--r--fonts/obnov/obnitb17.mf3571
-rw-r--r--fonts/obnov/obnsc10.mf3462
-rw-r--r--fonts/obnov/obnsc12.mf3462
-rw-r--r--fonts/obnov/obnsc17.mf3460
-rw-r--r--fonts/obnov/obnsc7.mf3462
-rw-r--r--fonts/obnov/obnsl10.mf3708
-rw-r--r--fonts/obnov/obnsl12.mf3705
-rw-r--r--fonts/obnov/obnsl17.mf3703
-rw-r--r--fonts/obnov/obnsl7.mf3703
29 files changed, 82374 insertions, 0 deletions
diff --git a/fonts/obnov/README b/fonts/obnov/README
new file mode 100644
index 0000000000..1e7a7cfa16
--- /dev/null
+++ b/fonts/obnov/README
@@ -0,0 +1,34 @@
+written by Basil Solomykov, Russia
+
+Font "Obyknovennaya Novaya", english and cyrillic letters. Shapes: normal, italic, bold, bold italic, slanted and small caps. The font is supplied as MetaFont source.
+If there are some troubles, feedbacks or ideas how to improve this package, please write to solvasya@yandex.ru
+For correct work you need to install package 'texlive-lang-cyrillic'.
+The Obyknovennaya Novaya (Ordinary New Face) typeface was widely used in the USSR for scientific and technical publications, as well as textbooks.
+
+(C) Copyright 2011 LPPL (LaTeX Project Public License)
+
+Font Ordinary New (Obyknovennaya novaya)
+
+Description of files:
+
+obn7.mf, obn10.mf, obn12.mf, obn17.mf : metafont source files for normal shape, size 7,10,12,17pt;
+obnb7.mf, obnb10.mf, obnb12.mf, obnb17.mf : metafont source files for bold shape, size 7,10,12,17pt;
+obnit7.mf, obnit10.mf, obnit12.mf, obnit17.mf : metafont source files for italic shape, size 7,10,12,17pt;
+obnitb10.mf, obnitb12.mf, obnitb17.mf : metafont source files for bold italic shape, size 10,12,17pt;
+obnsl7.mf, obnsl10.mf, obnsl12.mf, obnsl17.mf : metafont source files for slanted shape, size 7,10,12,17pt;
+
+obn_lcyw_code.mf : file for LCYW codetable;
+
+lcywobn.fd : *.fd file for LaTeX;
+
+lcyw.cmap : *.cmap file for LaTeX;
+
+example_obn.tex : file of the examples of font;
+
+example_obn.pdf : file of the examples of font in PDF.
+
+
+
+
+
+
diff --git a/fonts/obnov/example_obn.pdf b/fonts/obnov/example_obn.pdf
new file mode 100644
index 0000000000..bb40d9579c
--- /dev/null
+++ b/fonts/obnov/example_obn.pdf
Binary files differ
diff --git a/fonts/obnov/example_obn.tex b/fonts/obnov/example_obn.tex
new file mode 100644
index 0000000000..42a776fadb
--- /dev/null
+++ b/fonts/obnov/example_obn.tex
@@ -0,0 +1,560 @@
+\documentclass[a4paper]{article}
+\usepackage{cmap}
+\usepackage[LCYW]{fontenc}
+\usepackage[koi8-r]{inputenc}
+\usepackage[english,russian]{babel}
+\pagestyle{empty}
+\oddsidemargin=-10.4mm
+\textwidth=18cm
+\topmargin=-25.4mm
+\textheight=27cm
+
+\begin{document}
+
+\fontfamily{obn}\selectfont
+
+\large \underline{Примеры начертаний шрифта <Обыкновенная новая>, разработанных Василием Соломыковым.}
+
+\large \underline{The examples of font ``Obyknovennaya novaya'' developed by Basil Solomykov.}
+
+\bigskip
+\normalsize \underline{Нормальное начертание, размер 7pt.}
+
+\footnotesize Достоинство \TeX'а --- независимость от платформы. Текст, формулы, форматирование документа описываются текстовыми директивами. Текст набирается в любом текстовом редакторе. После набора текст компилируется в файл dvi, формат которого также не зависит от платформы. dvi-файл можно печатать, просматривать, отсылать в редакцию. Оформление текста совершенно не зависит от устройства, на которое производится вывод, поэтому в каком виде вы увидите документ на экране, таким вы его получите на принтере.
+
+Система \TeX{} особенно полезна, когда документ содержит математические формулы и когда желательно, чтобы документ выглядел, как книга. Это независимая от компьютерного устройства система, работающая на большом количестве платформ, от персональных компьютеров до больших вычислительных машин. Она ведет себя одинаково на всех машинах --- важный факт для научно-технического сообщества.
+Т.к. \TeX'овский файл --- это обычный текстовый файл (plain text), он имеет очень малый размер. Книгу в 500 страниц с сотнями и тысячами формул можно уместить на дискете или послать по почте: страница плотного текста это примерно 2000 символов, умножить на количество страниц и получается не более 1 мегабайта. После архивации это число станет раза в три меньше. Если текст содержит формулы, то каждый математический значок занимает более одного байта (в среднем три-пять), потому что он представляется командой \TeX'а, но ведь и формула замещает на странице минимум три-четыре абзаца.
+
+АБВГДЕЁЖЗИЙЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ
+
+абвгдеёжзийклмнопрстуфхцчшщъыьэюя 0123456789
+
+\normalsize \underline{Normal shape, size 7pt.}
+
+\footnotesize \TeX{} is a typesetting program designed for high-quality composition of material that contains a lot of mathematical and technical expressions. It has been adopted by many authors and publishers who generate technical books and papers. It was created by Professor Donald Knuth of Stanford University, originally for preparation of his book series ``The Art of Computer Programming''. \TeX{} has been made freely available by Knuth in a generic form. \TeX's original (and still supported) output format is a ``DeVice Independent'' (DVI) file that is then translated to a device-specific form for printing or display. Today there is another option: widely-used extensions of \TeX, such as pdf\TeX, Xe\TeX, and \LaTeX, can directly write PDF output, as well as DVI.
+
+\TeX{} implementations are governed by the principle that the same input should produce the same output, modulo font availability and output device resolution. All implementations wishing to call themselves ``\TeX'' must pass a ``trip test'' that assures adherence to these guidelines. \TeX{} has been tailored for and installed on almost every platform (computer + operating system) that one can imagine, and is available as freeware, shareware and commercial implementations. The \TeX{} program is usually accompanied by other software to form a complete and usable system.
+
+ABCDEFGHIJKLMNOPQRSTUVWXYZ \~n \'a \`a \~N \'E \`E \"o \"O \.e \=y \=T \^e
+
+abcdefghijklmnopqrstuvwxyz .,!?():;-----`''``+=\%\#@\&*\symbol{"B9}\symbol{"7E}
+
+\normalsize \underline{Полужирное начертание, размер 7pt.}
+
+\footnotesize \textbf{Достоинство \TeX'а --- независимость от платформы. Текст, формулы, форматирование документа описываются текстовыми директивами. Текст набирается в любом текстовом редакторе. После набора текст компилируется в файл dvi, формат которого также не зависит от платформы. dvi-файл можно печатать, просматривать, отсылать в редакцию. Оформление текста совершенно не зависит от устройства, на которое производится вывод, поэтому в каком виде вы увидите документ на экране, таким вы его получите на принтере.}
+
+\textbf{Система \TeX{} особенно полезна, когда документ содержит математические формулы и когда желательно, чтобы документ выглядел, как книга. Это независимая от компьютерного устройства система, работающая на большом количестве платформ, от персональных компьютеров до больших вычислительных машин. Она ведет себя одинаково на всех машинах --- важный факт для научно-технического сообщества.
+Т.к. \TeX'овский файл --- это обычный текстовый файл (plain text), он имеет очень малый размер. Книгу в 500 страниц с сотнями и тысячами формул можно уместить на дискете или послать по почте: страница плотного текста это примерно 2000 символов, умножить на количество страниц и получается не более 1 мегабайта. После архивации это число станет раза в три меньше. Если текст содержит формулы, то каждый математический значок занимает более одного байта (в среднем три-пять), потому что он представляется командой \TeX'а, но ведь и формула замещает на странице минимум три-четыре абзаца.}
+
+\textbf{АБВГДЕЁЖЗИЙЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ}
+
+\textbf{абвгдеёжзийклмнопрстуфхцчшщъыьэюя 0123456789}
+
+\normalsize \underline{Bold shape, size 7pt.}
+
+\footnotesize \textbf{\TeX{} is a typesetting program designed for high-quality composition of material that contains a lot of mathematical and technical expressions. It has been adopted by many authors and publishers who generate technical books and papers. It was created by Professor Donald Knuth of Stanford University, originally for preparation of his book series ``The Art of Computer Programming''. \TeX{} has been made freely available by Knuth in a generic form. \TeX's original (and still supported) output format is a ``DeVice Independent'' (DVI) file that is then translated to a device-specific form for printing or display. Today there is another option: widely-used extensions of \TeX, such as pdf\TeX, Xe\TeX, and \LaTeX, can directly write PDF output, as well as DVI.}
+
+\textbf{\TeX{} implementations are governed by the principle that the same input should produce the same output, modulo font availability and output device resolution. All implementations wishing to call themselves ``\TeX'' must pass a ``trip test'' that assures adherence to these guidelines. \TeX{} has been tailored for and installed on almost every platform (computer + operating system) that one can imagine, and is available as freeware, shareware and commercial implementations. The \TeX{} program is usually accompanied by other software to form a complete and usable system.}
+
+\textbf{ABCDEFGHIJKLMNOPQRSTUVWXYZ \~n \'a \`a \~N \'E \`E \"o \"O \.e \=y \=T \^e}
+
+\textbf{abcdefghijklmnopqrstuvwxyz .,!?():;-----`''``+=\%\#@\&*\symbol{"B9}\symbol{"7E}}
+
+\newpage
+\normalsize \underline{Курсивное начертание, размер 7pt}
+
+\footnotesize \textit{Достоинство \TeX'а --- независимость от платформы. Текст, формулы, форматирование документа описываются текстовыми директивами. Текст набирается в любом текстовом редакторе. После набора текст компилируется в файл dvi, формат которого также не зависит от платформы. dvi-файл можно печатать, просматривать, отсылать в редакцию. Оформление текста совершенно не зависит от устройства, на которое производится вывод, поэтому в каком виде вы увидите документ на экране, таким вы его получите на принтере.}
+
+\textit{Система \TeX{} особенно полезна, когда документ содержит математические формулы и когда желательно, чтобы документ выглядел, как книга. Это независимая от компьютерного устройства система, работающая на большом количестве платформ, от персональных компьютеров до больших вычислительных машин. Она ведет себя одинаково на всех машинах --- важный факт для научно-технического сообщества.
+Т.к. \TeX'овский файл --- это обычный текстовый файл (plain text), он имеет очень малый размер. Книгу в 500 страниц с сотнями и тысячами формул можно уместить на дискете или послать по почте: страница плотного текста это примерно 2000 символов, умножить на количество страниц и получается не более 1 мегабайта. После архивации это число станет раза в три меньше. Если текст содержит формулы, то каждый математический значок занимает более одного байта (в среднем три-пять), потому что он представляется командой \TeX'а, но ведь и формула замещает на странице минимум три-четыре абзаца.}
+
+\textit{АБВГДЕЁЖЗИЙЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ}
+
+\textit{абвгдеёжзийклмнопрстуфхцчшщъыьэюя 0123456789}
+
+\normalsize \underline{Italic shape, size 7pt.}
+
+\footnotesize \textit{\TeX{} is a typesetting program designed for high-quality composition of material that contains a lot of mathematical and technical expressions. It has been adopted by many authors and publishers who generate technical books and papers. It was created by Professor Donald Knuth of Stanford University, originally for preparation of his book series ``The Art of Computer Programming''. \TeX{} has been made freely available by Knuth in a generic form. \TeX's original (and still supported) output format is a ``DeVice Independent'' (DVI) file that is then translated to a device-specific form for printing or display. Today there is another option: widely-used extensions of \TeX, such as pdf\TeX, Xe\TeX, and \LaTeX, can directly write PDF output, as well as DVI.}
+
+\textit{\TeX{} implementations are governed by the principle that the same input should produce the same output, modulo font availability and output device resolution. All implementations wishing to call themselves ``\TeX'' must pass a ``trip test'' that assures adherence to these guidelines. \TeX{} has been tailored for and installed on almost every platform (computer + operating system) that one can imagine, and is available as freeware, shareware and commercial implementations. The \TeX{} program is usually accompanied by other software to form a complete and usable system.}
+
+\textit{ABCDEFGHIJKLMNOPQRSTUVWXYZ \~n \'a \`a \~N \'E \`E \"o \"O \.e \=y \=T \^e}
+
+\textit{abcdefghijklmnopqrstuvwxyz .,!?():;-----`''``+=\%\#@\&*\symbol{"B9}\symbol{"7E}}
+
+\normalsize \underline{Наклонное начертание, размер 7pt.}
+
+\footnotesize \textsl{Достоинство \TeX'а --- независимость от платформы. Текст, формулы, форматирование документа описываются текстовыми директивами. Текст набирается в любом текстовом редакторе. После набора текст компилируется в файл dvi, формат которого также не зависит от платформы. dvi-файл можно печатать, просматривать, отсылать в редакцию. Оформление текста совершенно не зависит от устройства, на которое производится вывод, поэтому в каком виде вы увидите документ на экране, таким вы его получите на принтере.}
+
+\textsl{Система \TeX{} особенно полезна, когда документ содержит математические формулы и когда желательно, чтобы документ выглядел, как книга. Это независимая от компьютерного устройства система, работающая на большом количестве платформ, от персональных компьютеров до больших вычислительных машин. Она ведет себя одинаково на всех машинах --- важный факт для научно-технического сообщества.
+Т.к. \TeX'овский файл --- это обычный текстовый файл (plain text), он имеет очень малый размер. Книгу в 500 страниц с сотнями и тысячами формул можно уместить на дискете или послать по почте: страница плотного текста это примерно 2000 символов, умножить на количество страниц и получается не более 1 мегабайта. После архивации это число станет раза в три меньше. Если текст содержит формулы, то каждый математический значок занимает более одного байта (в среднем три-пять), потому что он представляется командой \TeX'а, но ведь и формула замещает на странице минимум три-четыре абзаца.}
+
+\textsl{АБВГДЕЁЖЗИЙЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ}
+
+\textsl{абвгдеёжзийклмнопрстуфхцчшщъыьэюя 0123456789}
+
+\normalsize \underline{Slanted shape, size 7pt.}
+
+\footnotesize \textsl{\TeX{} is a typesetting program designed for high-quality composition of material that contains a lot of mathematical and technical expressions. It has been adopted by many authors and publishers who generate technical books and papers. It was created by Professor Donald Knuth of Stanford University, originally for preparation of his book series ``The Art of Computer Programming''. \TeX{} has been made freely available by Knuth in a generic form. \TeX's original (and still supported) output format is a ``DeVice Independent'' (DVI) file that is then translated to a device-specific form for printing or display. Today there is another option: widely-used extensions of \TeX, such as pdf\TeX, Xe\TeX, and \LaTeX, can directly write PDF output, as well as DVI.}
+
+\textsl{\TeX{} implementations are governed by the principle that the same input should produce the same output, modulo font availability and output device resolution. All implementations wishing to call themselves ``\TeX'' must pass a ``trip test'' that assures adherence to these guidelines. \TeX{} has been tailored for and installed on almost every platform (computer + operating system) that one can imagine, and is available as freeware, shareware and commercial implementations. The \TeX{} program is usually accompanied by other software to form a complete and usable system.}
+
+\textsl{ABCDEFGHIJKLMNOPQRSTUVWXYZ \~n \'a \`a \~N \'E \`E \"o \"O \.e \=y \=T \^e}
+
+\textsl{abcdefghijklmnopqrstuvwxyz .,!?( ):;-----`'' ``+=\%\#@\&*\symbol{"B9}\symbol{"7E}}
+
+\normalsize \underline{Начертание Капитель, размер 7pt.}
+
+\footnotesize \textsc{Достоинство \TeX'а --- независимость от платформы. Текст, формулы, форматирование документа описываются текстовыми директивами. Текст набирается в любом текстовом редакторе. После набора текст компилируется в файл dvi, формат которого также не зависит от платформы. dvi-файл можно печатать, просматривать, отсылать в редакцию. Оформление текста совершенно не зависит от устройства, на которое производится вывод, поэтому в каком виде вы увидите документ на экране, таким вы его получите на принтере.}
+
+\textsc{Система \TeX{} особенно полезна, когда документ содержит математические формулы и когда желательно, чтобы документ выглядел, как книга. Это независимая от компьютерного устройства система, работающая на большом количестве платформ, от персональных компьютеров до больших вычислительных машин. Она ведет себя одинаково на всех машинах --- важный факт для научно-технического сообщества.
+Т.к. \TeX'овский файл --- это обычный текстовый файл (plain text), он имеет очень малый размер. Книгу в 500 страниц с сотнями и тысячами формул можно уместить на дискете или послать по почте: страница плотного текста это примерно 2000 символов, умножить на количество страниц и получается не более 1 мегабайта. После архивации это число станет раза в три меньше. Если текст содержит формулы, то каждый математический значок занимает более одного байта (в среднем три-пять), потому что он представляется командой \TeX'а, но ведь и формула замещает на странице минимум три-четыре абзаца.}
+
+\textsc{АБВГДЕЁЖЗИЙЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ}
+
+\textsc{абвгдеёжзийклмнопрстуфхцчшщъыьэюя 0123456789}
+
+\normalsize \underline{Small Capitals shape, size 7pt.}
+
+\footnotesize \textsc{\TeX{} is a typesetting program designed for high-quality composition of material that contains a lot of mathematical and technical expressions. It has been adopted by many authors and publishers who generate technical books and papers. It was created by Professor Donald Knuth of Stanford University, originally for preparation of his book series ``The Art of Computer Programming''. \TeX{} has been made freely available by Knuth in a generic form. \TeX's original (and still supported) output format is a ``DeVice Independent'' (DVI) file that is then translated to a device-specific form for printing or display. Today there is another option: widely-used extensions of \TeX, such as pdf\TeX, Xe\TeX, and \LaTeX, can directly write PDF output, as well as DVI.}
+
+\textsc{\TeX{} implementations are governed by the principle that the same input should produce the same output, modulo font availability and output device resolution. All implementations wishing to call themselves ``\TeX'' must pass a ``trip test'' that assures adherence to these guidelines. \TeX{} has been tailored for and installed on almost every platform (computer + operating system) that one can imagine, and is available as freeware, shareware and commercial implementations. The \TeX{} program is usually accompanied by other software to form a complete and usable system.}
+
+\textsc{ABCDEFGHIJKLMNOPQRSTUVWXYZ \~n \'a \`a \~N \'E \`E \"o \"O \.e \=y \=T \^e}
+
+\textsc{abcdefghijklmnopqrstuvwxyz .,!?( ):;-----`'' ``+=\%\#@\&*\symbol{"B9}\symbol{"7E}}
+\newpage
+\normalsize \underline{Нормальное начертание, размер 10pt.}
+
+\normalsize Достоинство \TeX'а --- независимость от платформы. Текст, формулы, форматирование документа описываются текстовыми директивами. Текст набирается в любом текстовом редакторе. После набора текст компилируется в файл dvi, формат которого также не зависит от платформы. dvi-файл можно печатать, просматривать, отсылать в редакцию. Оформление текста совершенно не зависит от устройства, на которое производится вывод, поэтому в каком виде вы увидите документ на экране, таким вы его получите на принтере.
+
+Система \TeX{} особенно полезна, когда документ содержит математические формулы и когда желательно, чтобы документ выглядел, как книга. Это независимая от компьютерного устройства система, работающая на большом количестве платформ, от персональных компьютеров до больших вычислительных машин. Она ведет себя одинаково на всех машинах --- важный факт для научно-технического сообщества.
+Т.к. \TeX'овский файл --- это обычный текстовый файл (plain text), он имеет очень малый размер. Книгу в 500 страниц с сотнями и тысячами формул можно уместить на дискете или послать по почте: страница плотного текста это примерно 2000 символов, умножить на количество страниц и получается не более 1 мегабайта. После архивации это число станет раза в три меньше. Если текст содержит формулы, то каждый математический значок занимает более одного байта (в среднем три-пять), потому что он представляется командой \TeX'а, но ведь и формула замещает на странице минимум три--четыре абзаца.
+
+АБВГДЕЁЖЗИЙЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ
+
+абвгдеёжзийклмнопрстуфхцчшщъыьэюя 0123456789
+
+\normalsize \underline{Normal shape, size 10pt.}
+
+\TeX{} is a typesetting program designed for high-quality composition of material that contains a lot of mathematical and technical expressions. It has been adopted by many authors and publishers who generate technical books and papers. It was created by Professor Donald Knuth of Stanford University, originally for preparation of his book series ``The Art of Computer Programming''. \TeX{} has been made freely available by Knuth in a generic form. \TeX's original (and still supported) output format is a ``DeVice Independent'' (DVI) file that is then translated to a device-specific form for printing or display. Today there is another option: widely-used extensions of \TeX, such as pdf\TeX, Xe\TeX, and \LaTeX, can directly write PDF output, as well as DVI.
+
+\TeX{} implementations are governed by the principle that the same input should produce the same output, modulo font availability and output device resolution. All implementations wishing to call themselves ``\TeX'' must pass a ``trip test'' that assures adherence to these guidelines. \TeX{} has been tailored for and installed on almost every platform (computer + operating system) that one can imagine, and is available as freeware, shareware and commercial implementations. The \TeX{} program is usually accompanied by other software to form a complete and usable system.
+
+ABCDEFGHIJKLMNOPQRSTUVWXYZ \~n \'a \`a \~N \'E \`E \"o \"O \.e \=y \=T \^e
+
+abcdefghijklmnopqrstuvwxyz \mbox{.,!?():;-----`''``+=\%\#@\&*\symbol{"B9}\symbol{"7E}}
+
+\normalsize \underline{Полужирное начертание, размер 10pt.}
+
+\textbf{Достоинство \TeX'а --- независимость от платформы. Текст, формулы, форматирование документа описываются текстовыми директивами. Текст набирается в любом текстовом редакторе. После набора текст компилируется в файл dvi, формат которого также не зависит от платформы. dvi-файл можно печатать, просматривать, отсылать в редакцию. Оформление текста совершенно не зависит от устройства, на которое производится вывод, поэтому в каком виде вы увидите документ на экране, таким вы его получите на принтере.}
+
+\textbf{Система \TeX{} особенно полезна, когда документ содержит математические формулы и когда желательно, чтобы документ выглядел, как книга. Это независимая от компьютерного устройства система, работающая на большом количестве платформ, от персональных компьютеров до больших вычислительных машин. Она ведет себя одинаково на всех машинах --- важный факт для научно-технического сообщества.
+Т.к. \TeX'овский файл --- это обычный текстовый файл (plain text), он имеет очень малый размер. Книгу в 500 страниц с сотнями и тысячами формул можно уместить на дискете или послать по почте: страница плотного текста это примерно 2000 символов, умножить на количество страниц и получается не более 1 мегабайта. После архивации это число станет раза в три меньше. Если текст содержит формулы, то каждый математический значок занимает более одного байта (в среднем три-пять), потому что он представляется командой \TeX'а, но ведь и формула замещает на странице минимум три-четыре абзаца.}
+
+\textbf{АБВГДЕЁЖЗИЙЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ}
+
+\textbf{абвгдеёжзийклмнопрстуфхцчшщъыьэюя 0123456789}
+\newpage
+\normalsize \underline{Bold shape, size 10pt.}
+
+\textbf{\TeX{} is a typesetting program designed for high-quality composition of material that contains a lot of mathematical and technical expressions. It has been adopted by many authors and publishers who generate technical books and papers. It was created by Professor Donald Knuth of Stanford University, originally for preparation of his book series ``The Art of Computer Programming''. \TeX{} has been made freely available by Knuth in a generic form. \TeX's original (and still supported) output format is a ``DeVice Independent'' (DVI) file that is then translated to a device-specific form for printing or display. Today there is another option: widely-used extensions of \TeX, such as pdf\TeX, Xe\TeX, and \LaTeX, can directly write PDF output, as well as DVI.}
+
+\textbf{\TeX{} implementations are governed by the principle that the same input should produce the same output, modulo font availability and output device resolution. All implementations wishing to call themselves ``\TeX'' must pass a ``trip test'' that assures adherence to these guidelines. \TeX{} has been tailored for and installed on almost every platform (computer + operating system) that one can imagine, and is available as freeware, shareware and commercial implementations. The \TeX{} program is usually accompanied by other software to form a complete and usable system.}
+
+\textbf{ABCDEFGHIJKLMNOPQRSTUVWXYZ \~n \'a \`a \~N \'E \`E \"o \"O \.e \=y \=T \^e}
+
+\textbf{abcdefghijklmnopqrstuvwxyz .,!?():;-----`''``+=\%\#@\&*\symbol{"B9}\symbol{"7E}}
+
+\normalsize \underline{Курсивное начертание, размер 10pt}
+
+\textit{Достоинство \TeX'а --- независимость от платформы. Текст, формулы, форматирование документа описываются текстовыми директивами. Текст набирается в любом текстовом редакторе. После набора текст компилируется в файл dvi, формат которого также не зависит от платформы. dvi-файл можно печатать, просматривать, отсылать в редакцию. Оформление текста совершенно не зависит от устройства, на которое производится вывод, поэтому в каком виде вы увидите документ на экране, таким вы его получите на принтере.}
+
+\textit{Система \TeX{} особенно полезна, когда документ содержит математические формулы и когда желательно, чтобы документ выглядел, как книга. Это независимая от компьютерного устройства система, работающая на большом количестве платформ, от персональных компьютеров до больших вычислительных машин. Она ведет себя одинаково на всех машинах --- важный факт для научно-технического сообщества.
+Т.к. \TeX'овский файл --- это обычный текстовый файл (plain text), он имеет очень малый размер. Книгу в 500 страниц с сотнями и тысячами формул можно уместить на дискете или послать по почте: страница плотного текста это примерно 2000 символов, умножить на количество страниц и получается не более 1 мегабайта. После архивации это число станет раза в три меньше. Если текст содержит формулы, то каждый математический значок занимает более одного байта (в среднем три-пять), потому что он представляется командой \TeX'а, но ведь и формула замещает на странице минимум три-четыре абзаца.}
+
+\textit{АБВГДЕЁЖЗИЙЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ}
+
+\textit{абвгдеёжзийклмнопрстуфхцчшщъыьэюя 0123456789}
+
+\normalsize \underline{Italic shape, size 10pt.}
+
+\textit{\TeX{} is a typesetting program designed for high-quality composition of material that contains a lot of mathematical and technical expressions. It has been adopted by many authors and publishers who generate technical books and papers. It was created by Professor Donald Knuth of Stanford University, originally for preparation of his book series ``The Art of Computer Programming''. \TeX{} has been made freely available by Knuth in a generic form. \TeX's original (and still supported) output format is a ``DeVice Independent'' (DVI) file that is then translated to a device-specific form for printing or display. Today there is another option: widely-used extensions of \TeX, such as pdf\TeX, Xe\TeX, and \LaTeX, can directly write PDF output, as well as DVI.}
+
+\textit{\TeX{} implementations are governed by the principle that the same input should produce the same output, modulo font availability and output device resolution. All implementations wishing to call themselves ``\TeX'' must pass a ``trip test'' that assures adherence to these guidelines. \TeX{} has been tailored for and installed on almost every platform (computer + operating system) that one can imagine, and is available as freeware, shareware and commercial implementations. The \TeX{} program is usually accompanied by other software to form a complete and usable system.}
+
+\textit{ABCDEFGHIJKLMNOPQRSTUVWXYZ \~n \'a \`a \~N \'E \`E \"o \"O \.e \=y \=T \^e}
+
+\textit{abcdefghijklmnopqrstuvwxyz .,!?():;-----`''``+=\%\#@\&*\symbol{"B9}\symbol{"7E}}
+\newpage
+\normalsize \underline{Полужирное курсивное начертание, размер 10pt}
+
+\textit{\textbf{Достоинство \TeX'а --- независимость от платформы. Текст, формулы, форматирование документа описываются текстовыми директивами. Текст набирается в любом текстовом редакторе. После набора текст компилируется в файл dvi, формат которого также не зависит от платформы. dvi-файл можно печатать, просматривать, отсылать в редакцию. Оформление текста совершенно не зависит от устройства, на которое производится вывод, поэтому в каком виде вы увидите документ на экране, таким вы его получите на принтере.}}
+
+\textit{\textbf{Система \TeX{} особенно полезна, когда документ содержит математические формулы и когда желательно, чтобы документ выглядел, как книга. Это независимая от компьютерного устройства система, работающая на большом количестве платформ, от персональных компьютеров до больших вычислительных машин. Она ведет себя одинаково на всех машинах --- важный факт для научно-технического сообщества.
+Т.к. \TeX'овский файл --- это обычный текстовый файл (plain text), он имеет очень малый размер. Книгу в 500 страниц с сотнями и тысячами формул можно уместить на дискете или послать по почте: страница плотного текста это примерно 2000 символов, умножить на количество страниц и получается не более 1 мегабайта. После архивации это число станет раза в три меньше.}}
+
+\textit{\textbf{АБВГДЕЁЖЗИЙЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ}}
+
+\textit{\textbf{абвгдеёжзийклмнопрстуфхцчшщъыьэюя 0123456789}}
+
+\normalsize \underline{Bold italic shape, size 10pt.}
+
+\textit{\textbf{\TeX{} is a typesetting program designed for high-quality composition of material that contains a lot of mathematical and technical expressions. It has been adopted by many authors and publishers who generate technical books and papers. It was created by Professor Donald Knuth of Stanford University, originally for preparation of his book series ``The Art of Computer Programming''. \TeX{} has been made freely available by Knuth in a generic form. \TeX's original (and still supported) output format is a ``DeVice Independent'' (DVI) file that is then translated to a device-specific form for printing or display. Today there is another option: widely-used extensions of \TeX, such as pdf\TeX, Xe\TeX, and \LaTeX, can directly write PDF output, as well as DVI.}}
+
+\textit{\textbf{\TeX{} implementations are governed by the principle that the same input should produce the same output, modulo font availability and output device resolution. All implementations wishing to call themselves ``\TeX'' must pass a ``trip test'' that assures adherence to these guidelines. \TeX{} has been tailored for and installed on almost every platform (computer + operating system) that one can imagine, and is available as freeware, shareware and commercial implementations.}}
+
+\textit{\textbf{ABCDEFGHIJKLMNOPQRSTUVWXYZ \~n \'a \`a \~N \'E \`E \"o \"O \.e \=y \=T \^e}}
+
+\textit{\textbf{abcdefghijklmnopqrstuvwxyz .,!?():;-----`''``+=\%\#@\&*\symbol{"B9}\symbol{"7E}}}
+
+\normalsize \underline{Наклонное начертание, размер 10pt.}
+
+\textsl{Достоинство \TeX'а --- независимость от платформы. Текст, формулы, форматирование документа описываются текстовыми директивами. Текст набирается в любом текстовом редакторе. После набора текст компилируется в файл dvi, формат которого также не зависит от платформы. dvi-файл можно печатать, просматривать, отсылать в редакцию. Оформление текста совершенно не зависит от устройства, на которое производится вывод, поэтому в каком виде вы увидите документ на экране, таким вы его получите на принтере.}
+
+\textsl{Система \TeX{} особенно полезна, когда документ содержит математические формулы и когда желательно, чтобы документ выглядел, как книга. Это независимая от компьютерного устройства система, работающая на большом количестве платформ, от персональных компьютеров до больших вычислительных машин. Она ведет себя одинаково на всех машинах --- важный факт для научно-технического сообщества.
+Т.к. \TeX'овский файл --- это обычный текстовый файл (plain text), он имеет очень малый размер. Книгу в 500 страниц с сотнями и тысячами формул можно уместить на дискете или послать по почте: страница плотного текста это примерно 2000 символов, умножить на количество страниц и получается не более 1 мегабайта. После архивации это число станет раза в три меньше.}
+
+\textsl{АБВГДЕЁЖЗИЙЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ}
+
+\textsl{абвгдеёжзийклмнопрстуфхцчшщъыьэюя 0123456789}
+
+\normalsize \underline{Slanted shape, size 10pt.}
+
+\textsl{\TeX{} is a typesetting program designed for high-quality composition of material that contains a lot of mathematical and technical expressions. It has been adopted by many authors and publishers who generate technical books and papers. It was created by Professor Donald Knuth of Stanford University, originally for preparation of his book series ``The Art of Computer Programming''. \TeX{} has been made freely available by Knuth in a generic form. \TeX's original (and still supported) output format is a ``DeVice Independent'' (DVI) file that is then translated to a device-specific form for printing or display. Today there is another option: widely-used extensions of \TeX, such as pdf\TeX, Xe\TeX, and \LaTeX, can directly write PDF output, as well as DVI.}
+
+\textsl{\TeX{} implementations are governed by the principle that the same input should produce the same output, modulo font availability and output device resolution. All implementations wishing to call themselves ``\TeX'' must pass a ``trip test'' that assures adherence to these guidelines. \TeX{} has been tailored for and installed on almost every platform (computer + operating system) that one can imagine, and is available as freeware, shareware and commercial implementations.}
+
+\textsl{ABCDEFGHIJKLMNOPQRSTUVWXYZ \~n \'a \`a \~N \'E \`E \"o \"O \.e \=y \=T \^e}
+
+\textsl{abcdefghijklmnopqrstuvwxyz .,!?( ):;-----`'' ``+=\%\#@\&*\symbol{"B9}\symbol{"7E}}
+\newpage
+\normalsize \underline{Начертание Капитель, размер 10pt.}
+
+\textsc{Достоинство \TeX'а --- независимость от платформы. Текст, формулы, форматирование документа описываются текстовыми директивами. Текст набирается в любом текстовом редакторе. После набора текст компилируется в файл dvi, формат которого также не зависит от платформы. dvi-файл можно печатать, просматривать, отсылать в редакцию. Оформление текста совершенно не зависит от устройства, на которое производится вывод, поэтому в каком виде вы увидите документ на экране, таким вы его получите на принтере.}
+
+\textsc{Система \TeX{} особенно полезна, когда документ содержит математические формулы и когда желательно, чтобы документ выглядел, как книга. Это независимая от компьютерного устройства система, работающая на большом количестве платформ, от персональных компьютеров до больших вычислительных машин. Она ведет себя одинаково на всех машинах --- важный факт для научно-технического сообщества.
+Т.к. \TeX'овский файл --- это обычный текстовый файл (plain text), он имеет очень малый размер. Книгу в 500 страниц с сотнями и тысячами формул можно уместить на дискете или послать по почте: страница плотного текста это примерно 2000 символов, умножить на количество страниц и получается не более 1 мегабайта. После архивации это число станет раза в три меньше.}
+
+\textsc{АБВГДЕЁЖЗИЙЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ}
+
+\textsc{абвгдеёжзийклмнопрстуфхцчшщъыьэюя 0123456789}
+
+\normalsize \underline{Small Capitals shape, size 10pt.}
+
+\textsc{\TeX{} is a typesetting program designed for high-quality composition of material that contains a lot of mathematical and technical expressions. It has been adopted by many authors and publishers who generate technical books and papers. It was created by Professor Donald Knuth of Stanford University, originally for preparation of his book series ``The Art of Computer Programming''. \TeX{} has been made freely available by Knuth in a generic form. \TeX's original (and still supported) output format is a ``DeVice Independent'' (DVI) file that is then translated to a device-specific form for printing or display. Today there is another option: widely-used extensions of \TeX, such as pdf\TeX, Xe\TeX, and \LaTeX, can directly write PDF output, as well as DVI.}
+
+\textsc{\TeX{} implementations are governed by the principle that the same input should produce the same output, modulo font availability and output device resolution. All implementations wishing to call themselves ``\TeX'' must pass a ``trip test'' that assures adherence to these guidelines. \TeX{} has been tailored for and installed on almost every platform (computer + operating system) that one can imagine, and is available as freeware, shareware and commercial implementations.}
+
+\textsc{ABCDEFGHIJKLMNOPQRSTUVWXYZ \~n \'a \`a \~N \'E \`E \"o \"O \.e \=y \=T \^e}
+
+\textsc{abcdefghijklmnopqrstuvwxyz .,!?( ):;-----`'' ``+=\%\#@\&*\symbol{"B9}\symbol{"7E}}
+\newpage
+\normalsize \underline{Нормальное начертание, размер 12pt.}
+
+\large Достоинство \TeX'а --- независимость от платформы. Текст, формулы, форматирование документа описываются текстовыми директивами. Текст набирается в любом текстовом редакторе. После набора текст компилируется в файл dvi, формат которого также не зависит от платформы. dvi-файл можно печатать, просматривать, отсылать в редакцию. Оформление текста совершенно не зависит от устройства, на которое производится вывод, поэтому в каком виде вы увидите документ на экране, таким вы его получите на принтере.
+
+Система \TeX{} особенно полезна, когда документ содержит математические формулы и когда желательно, чтобы документ выглядел, как книга. Это независимая от компьютерного устройства система, работающая на большом количестве платформ, от персональных компьютеров до больших вычислительных машин. Она ведет себя одинаково на всех машинах --- важный факт для научно-технического сообщества.
+Т.к. \TeX'овский файл --- это обычный текстовый файл (plain text), он имеет очень малый размер. Книгу в 500 страниц с сотнями и тысячами формул можно уместить на дискете или послать по почте: страница плотного текста это примерно 2000 символов, умножить на количество страниц и получается не более 1 мегабайта. После архивации это число станет раза в три меньше.
+
+АБВГДЕЁЖЗИЙЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ
+
+абвгдеёжзийклмнопрстуфхцчшщъыьэюя 0123456789
+
+\normalsize \underline{Normal shape, size 12pt.}
+
+\large \TeX{} is a typesetting program designed for high-quality composition of material that contains a lot of mathematical and technical expressions. It has been adopted by many authors and publishers who generate technical books and papers. It was created by Professor Donald Knuth of Stanford University, originally for preparation of his book series ``The Art of Computer Programming''. \TeX{} has been made freely available by Knuth in a generic form. \TeX's original (and still supported) output format is a ``DeVice Independent'' (DVI) file that is then translated to a device-specific form for printing or display. Today there is another option: widely-used extensions of \TeX, such as pdf\TeX, Xe\TeX, and \LaTeX, can directly write PDF output, as well as DVI.
+
+\TeX{} implementations are governed by the principle that the same input should produce the same output, modulo font availability and output device resolution. All implementations wishing to call themselves ``\TeX'' must pass a ``trip test'' that assures adherence to these guidelines. \TeX{} has been tailored for and installed on almost every platform (computer + operating system) that one can imagine, and is available as freeware, shareware and commercial implementations. The \TeX{} program is usually accompanied by other software to form a complete and usable system.
+
+ABCDEFGHIJKLMNOPQRSTUVWXYZ \~n \'a \`a \~N \'E \`E \"o \"O \.e \=y \=T \^e
+
+abcdefghijklmnopqrstuvwxyz .,!?():;-----`''``+=\%\#@\&*\symbol{"B9}\symbol{"7E}
+
+\normalsize \underline{Полужирное начертание, размер 12pt.}
+
+\large \textbf{Достоинство \TeX'а --- независимость от платформы. Текст, формулы, форматирование документа описываются текстовыми директивами. Текст набирается в любом текстовом редакторе. После набора текст компилируется в файл dvi, формат которого также не зависит от платформы. dvi-файл можно печатать, просматривать, отсылать в редакцию. Оформление текста совершенно не зависит от устройства, на которое производится вывод, поэтому в каком виде вы увидите документ на экране, таким вы его получите на принтере.}
+
+\textbf{Система \TeX{} особенно полезна, когда документ содержит математические формулы и когда желательно, чтобы документ выглядел, как книга. Это независимая от компьютерного устройства система, работающая на большом количестве платформ, от персональных компьютеров до больших вычислительных машин. Она ведет себя одинаково на всех машинах --- важный факт для научно-технического сообщества.
+Т.к. \TeX'овский файл --- это обычный текстовый файл (plain text), он имеет очень малый размер. Книгу в 500 страниц с сотнями и тысячами формул можно уместить на дискете или послать по почте: страница плотного текста это примерно 2000 символов, умножить на количество страниц и получается не более 1 мегабайта. После архивации это число станет раза в три меньше.}
+
+\textbf{АБВГДЕЁЖЗИЙЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ}
+
+\textbf{абвгдеёжзийклмнопрстуфхцчшщъыьэюя 0123456789}
+\newpage
+\normalsize \underline{Bold shape, size 12pt.}
+
+\large \textbf{\TeX{} is a typesetting program designed for high-quality composition of material that contains a lot of mathematical and technical expressions. It has been adopted by many authors and publishers who generate technical books and papers. It was created by Professor Donald Knuth of Stanford University, originally for preparation of his book series ``The Art of Computer Programming''. \TeX{} has been made freely available by Knuth in a generic form. \TeX's original (and still supported) output format is a ``DeVice Independent'' (DVI) file that is then translated to a device-specific form for printing or display. Today there is another option: widely-used extensions of \TeX, such as pdf\TeX, Xe\TeX, and \LaTeX, can directly write PDF output, as well as DVI.}
+
+\textbf{\TeX{} implementations are governed by the principle that the same input should produce the same output, modulo font availability and output device resolution. All implementations wishing to call themselves ``\TeX'' must pass a ``trip test'' that assures adherence to these guidelines. \TeX{} has been tailored for and installed on almost every platform (computer + operating system) that one can imagine, and is available as freeware, shareware and commercial implementations. The \TeX{} program is usually accompanied by other software to form a complete and usable system.}
+
+\textbf{ABCDEFGHIJKLMNOPQRSTUVWXYZ \~n \'a \`a \~N \'E \`E \"o \"O \.e \=y \=T \^e}
+
+\textbf{abcdefghijklmnopqrstuvwxyz .,!?():;-----`''``+=\%\#@\&*\symbol{"B9}\symbol{"7E}}
+
+\normalsize \underline{Курсивное начертание, размер 12pt}
+
+\large \textit{Достоинство \TeX'а --- независимость от платформы. Текст, формулы, форматирование документа описываются текстовыми директивами. Текст набирается в любом текстовом редакторе. После набора текст компилируется в файл dvi, формат которого также не зависит от платформы. dvi-файл можно печатать, просматривать, отсылать в редакцию. Оформление текста совершенно не зависит от устройства, на которое производится вывод, поэтому в каком виде вы увидите документ на экране, таким вы его получите на принтере.}
+
+\textit{Система \TeX{} особенно полезна, когда документ содержит математические формулы и когда желательно, чтобы документ выглядел, как книга. Это независимая от компьютерного устройства система, работающая на большом количестве платформ, от персональных компьютеров до больших вычислительных машин. Она ведет себя одинаково на всех машинах --- важный факт для научно-технического сообщества.
+Т.к. \TeX'овский файл --- это обычный текстовый файл (plain text), он имеет очень малый размер. Книгу в 500 страниц с сотнями и тысячами формул можно уместить на дискете или послать по почте: страница плотного текста это примерно 2000 символов, умножить на количество страниц и получается не более 1 мегабайта. После архивации это число станет раза в три меньше. Если текст содержит формулы, то каждый математический значок занимает более одного байта (в среднем три-пять), потому что он представляется командой \TeX'а, но ведь и формула замещает на странице минимум три-четыре абзаца.}
+
+\textit{АБВГДЕЁЖЗИЙЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ}
+
+\textit{абвгдеёжзийклмнопрстуфхцчшщъыьэюя 0123456789}
+\newpage
+\normalsize \underline{Italic shape, size 12pt.}
+
+\large \textit{\TeX{} is a typesetting program designed for high-quality composition of material that contains a lot of mathematical and technical expressions. It has been adopted by many authors and publishers who generate technical books and papers. It was created by Professor Donald Knuth of Stanford University, originally for preparation of his book series ``The Art of Computer Programming''. \TeX{} has been made freely available by Knuth in a generic form. \TeX's original (and still supported) output format is a ``DeVice Independent'' (DVI) file that is then translated to a device-specific form for printing or display. Today there is another option: widely-used extensions of \TeX, such as pdf\TeX, Xe\TeX, and \LaTeX, can directly write PDF output, as well as DVI.}
+
+\textit{\TeX{} implementations are governed by the principle that the same input should produce the same output, modulo font availability and output device resolution. All implementations wishing to call themselves ``\TeX'' must pass a ``trip test'' that assures adherence to these guidelines. \TeX{} has been tailored for and installed on almost every platform (computer + operating system) that one can imagine, and is available as freeware, shareware and commercial implementations. The \TeX{} program is usually accompanied by other software to form a complete and usable system.}
+
+\textit{ABCDEFGHIJKLMNOPQRSTUVWXYZ \~n \'a \`a \~N \'E \`E \"o \"O \.e \=y \=T \^e}
+
+\textit{abcdefghijklmnopqrstuvwxyz .,!?():;-----`''``+=\%\#@\&*\symbol{"B9}\symbol{"7E}}
+
+\normalsize \underline{Полужирное курсивное начертание, размер 12pt}
+
+\large \textit{\textbf{Достоинство \TeX'а --- независимость от платформы. Текст, формулы, форматирование документа описываются текстовыми директивами. Текст набирается в любом текстовом редакторе. После набора текст компилируется в файл dvi, формат которого также не зависит от платформы. dvi-файл можно печатать, просматривать, отсылать в редакцию. Оформление текста совершенно не зависит от устройства, на которое производится вывод, поэтому в каком виде вы увидите документ на экране, таким вы его получите на принтере.}}
+
+\textit{\textbf{Система \TeX{} особенно полезна, когда документ содержит математические формулы и когда желательно, чтобы документ выглядел, как книга. Это независимая от компьютерного устройства система, работающая на большом количестве платформ, от персональных компьютеров до больших вычислительных машин. Она ведет себя одинаково на всех машинах --- важный факт для научно-технического сообщества.
+Т.к. \TeX'овский файл --- это обычный текстовый файл (plain text), он имеет очень малый размер. Книгу в 500 страниц с сотнями и тысячами формул можно уместить на дискете или послать по почте: страница плотного текста это примерно 2000 символов, умножить на количество страниц и получается не более 1 мегабайта. После архивации это число станет раза в три меньше.}}
+
+\textit{\textbf{АБВГДЕЁЖЗИЙЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ}}
+
+\textit{\textbf{абвгдеёжзийклмнопрстуфхцчшщъыьэюя 0123456789}}
+
+\normalsize \underline{Bold italic shape, size 12pt.}
+
+\large \textit{\textbf{\TeX{} is a typesetting program designed for high-quality composition of material that contains a lot of mathematical and technical expressions. It has been adopted by many authors and publishers who generate technical books and papers. It was created by Professor Donald Knuth of Stanford University, originally for preparation of his book series ``The Art of Computer Programming''. \TeX{} has been made freely available by Knuth in a generic form. \TeX's original (and still supported) output format is a ``DeVice Independent'' (DVI) file that is then translated to a device-specific form for printing or display. Today there is another option: widely-used extensions of \TeX, such as pdf\TeX, Xe\TeX, and \LaTeX, can directly write PDF output, as well as DVI.}}
+
+\textit{\textbf{\TeX{} implementations are governed by the principle that the same input should produce the same output, modulo font availability and output device resolution. All implementations wishing to call themselves ``\TeX'' must pass a ``trip test'' that assures adherence to these guidelines. \TeX{} has been tailored for and installed on almost every platform (computer + operating system) that one can imagine, and is available as freeware, shareware and commercial implementations.}}
+
+\textit{\textbf{ABCDEFGHIJKLMNOPQRSTUVWXYZ \~n \'a \`a \~N \'E \`E \"o \"O \.e \=y \=T \^e}}
+
+\textit{\textbf{abcdefghijklmnopqrstuvwxyz .,!?():;-----`''``+=\%\#@\&*\symbol{"B9}\symbol{"7E}}}
+
+\normalsize \underline{Наклонное начертание, размер 12pt.}
+
+\large \textsl{Достоинство \TeX'а --- независимость от платформы. Текст, формулы, форматирование документа описываются текстовыми директивами. Текст набирается в любом текстовом редакторе. После набора текст компилируется в файл dvi, формат которого также не зависит от платформы. dvi-файл можно печатать, просматривать, отсылать в редакцию. Оформление текста совершенно не зависит от устройства, на которое производится вывод, поэтому в каком виде вы увидите документ на экране, таким вы его получите на принтере.}
+
+\textsl{Система \TeX{} особенно полезна, когда документ содержит математические формулы и когда желательно, чтобы документ выглядел, как книга. Это независимая от компьютерного устройства система, работающая на большом количестве платформ, от персональных компьютеров до больших вычислительных машин. Она ведет себя одинаково на всех машинах --- важный факт для научно-технического сообщества.
+Т.к. \TeX'овский файл --- это обычный текстовый файл (plain text), он имеет очень малый размер. Книгу в 500 страниц с сотнями и тысячами формул можно уместить на дискете или послать по почте: страница плотного текста это примерно 2000 символов, умножить на количество страниц и получается не более 1 мегабайта. После архивации это число станет раза в три меньше.}
+
+\textsl{АБВГДЕЁЖЗИЙЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ}
+
+\textsl{абвгдеёжзийклмнопрстуфхцчшщъыьэюя 0123456789}
+
+\normalsize \underline{Slanted shape, size 12pt.}
+
+\large \textsl{\TeX{} is a typesetting program designed for high-quality composition of material that contains a lot of mathematical and technical expressions. It has been adopted by many authors and publishers who generate technical books and papers. It was created by Professor Donald Knuth of Stanford University, originally for preparation of his book series ``The Art of Computer Programming''. \TeX{} has been made freely available by Knuth in a generic form. \TeX's original (and still supported) output format is a ``DeVice Independent'' (DVI) file that is then translated to a device-specific form for printing or display. Today there is another option: widely-used extensions of \TeX, such as pdf\TeX, Xe\TeX, and \LaTeX, can directly write PDF output, as well as DVI.}
+
+\textsl{\TeX{} implementations are governed by the principle that the same input should produce the same output, modulo font availability and output device resolution. All implementations wishing to call themselves ``\TeX'' must pass a ``trip test'' that assures adherence to these guidelines. \TeX{} has been tailored for and installed on almost every platform (computer + operating system) that one can imagine, and is available as freeware, shareware and commercial implementations.}
+
+\textsl{ABCDEFGHIJKLMNOPQRSTUVWXYZ \~n \'a \`a \~N \'E \`E \"o \"O \.e \=y \=T \^e}
+
+\textsl{abcdefghijklmnopqrstuvwxyz .,!?( ):;-----`'' ``+=\%\#@\&*\symbol{"B9}\symbol{"7E}}
+
+\normalsize \underline{Начертание Капитель, размер 12pt.}
+
+\large \textsc{Достоинство \TeX'а --- независимость от платформы. Текст, формулы, форматирование документа описываются текстовыми директивами. Текст набирается в любом текстовом редакторе. После набора текст компилируется в файл dvi, формат которого также не зависит от платформы. dvi-файл можно печатать, просматривать, отсылать в редакцию. Оформление текста совершенно не зависит от устройства, на которое производится вывод, поэтому в каком виде вы увидите документ на экране, таким вы его получите на принтере.}
+
+\textsc{Система \TeX{} особенно полезна, когда документ содержит математические формулы и когда желательно, чтобы документ выглядел, как книга. Это независимая от компьютерного устройства система, работающая на большом количестве платформ, от персональных компьютеров до больших вычислительных машин. Она ведет себя одинаково на всех машинах --- важный факт для научно-технического сообщества.
+Т.к. \TeX'овский файл --- это обычный текстовый файл (plain text), он имеет очень малый размер. Книгу в 500 страниц с сотнями и тысячами формул можно уместить на дискете или послать по почте: страница плотного текста это примерно 2000 символов, умножить на количество страниц и получается не более 1 мегабайта. После архивации это число станет раза в три меньше.}
+
+\textsc{АБВГДЕЁЖЗИЙЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ}
+
+\textsc{абвгдеёжзийклмнопрстуфхцчшщъыьэюя 0123456789}
+\newpage
+\normalsize \underline{Small Capitals shape, size 12pt.}
+
+\large \textsc{\TeX{} is a typesetting program designed for high-quality composition of material that contains a lot of mathematical and technical expressions. It has been adopted by many authors and publishers who generate technical books and papers. It was created by Professor Donald Knuth of Stanford University, originally for preparation of his book series ``The Art of Computer Programming''. \TeX{} has been made freely available by Knuth in a generic form. \TeX's original (and still supported) output format is a ``DeVice Independent'' (DVI) file that is then translated to a device-specific form for printing or display. Today there is another option: widely-used extensions of \TeX, such as pdf\TeX, Xe\TeX, and \LaTeX, can directly write PDF output, as well as DVI.}
+
+\textsc{\TeX{} implementations are governed by the principle that the same input should produce the same output, modulo font availability and output device resolution. All implementations wishing to call themselves ``\TeX'' must pass a ``trip test'' that assures adherence to these guidelines. \TeX{} has been tailored for and installed on almost every platform (computer + operating system) that one can imagine, and is available as freeware, shareware and commercial implementations.}
+
+\textsc{ABCDEFGHIJKLMNOPQRSTUVWXYZ \~n \'a \`a \~N \'E \`E \"o \"O \.e \=y \=T \^e}
+
+\textsc{abcdefghijklmnopqrstuvwxyz .,!?( ):;-----`'' ``+=\%\#@\&*\symbol{"B9}\symbol{"7E}}
+\newpage
+\normalsize \underline{Нормальное начертание, размер 17pt.}
+
+\huge Достоинство \TeX'а --- независимость от платформы. Текст, формулы, форматирование документа описываются текстовыми директивами. Текст набирается в любом текстовом редакторе. После набора текст компилируется в файл dvi, формат которого также не зависит от платформы. dvi-файл можно печатать, просматривать, отсылать в редакцию. Оформление текста совершенно не зависит от устройства, на которое производится вывод, поэтому в каком виде вы увидите документ на экране, таким вы его получите на принтере.
+
+Система \TeX{} особенно полезна, когда документ содержит математические формулы и когда желательно, чтобы документ выглядел, как книга. Это независимая от компьютерного устройства система, работающая на большом количестве платформ, от персональных компьютеров до больших вычислительных машин. Она ведет себя одинаково на всех машинах --- важный факт для научно-технического сообщества.
+Т.к. \TeX'овский файл --- это обычный текстовый файл (plain text), он имеет очень малый размер. Книгу в 500 страниц с сотнями и тысячами формул можно уместить на дискете или послать по почте: страница плотного текста это примерно 2000 символов, умножить на количество страниц и получается не более 1 мегабайта. После архивации это число станет раза в три меньше. Если текст содержит формулы, то каждый математический значок занимает более одного байта (в среднем три-пять), потому что он представляется командой \TeX'а, но ведь и формула замещает на странице минимум три--четыре абзаца.
+
+АБВГДЕЁЖЗИЙЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ
+
+абвгдеёжзийклмнопрстуфхцчшщъыьэюя 0123456789
+\newpage
+\normalsize \underline{Normal shape, size 17pt.}
+
+\huge \TeX{} is a typesetting program designed for high-quality composition of material that contains a lot of mathematical and technical expressions. It has been adopted by many authors and publishers who generate technical books and papers. It was created by Professor Donald Knuth of Stanford University, originally for preparation of his book series ``The Art of Computer Programming''. \TeX{} has been made freely available by Knuth in a generic form. \TeX's original (and still supported) output format is a ``DeVice Independent'' (DVI) file that is then translated to a device-specific form for printing or display. Today there is another option: widely-used extensions of \TeX, such as pdf\TeX, Xe\TeX, and \LaTeX, can directly write PDF output, as well as DVI.
+
+\TeX{} implementations are governed by the principle that the same input should produce the same output, modulo font availability and output device resolution. All implementations wishing to call themselves ``\TeX'' must pass a ``trip test'' that assures adherence to these guidelines. \TeX{} has been tailored for and installed on almost every platform (computer + operating system) that one can imagine, and is available as freeware, shareware and commercial implementations. The \TeX{} program is usually accompanied by other software to form a complete and usable system.
+
+ABCDEFGHIJKLMNOPQRSTUVWXYZ
+
+abcdefghijklmnopqrstuvwxyz .,!?():;-----`''``+=\%\#@\&*\symbol{"B9}\symbol{"7E}
+
+ \~n \'a \`a \~N \'E \`E \"o \"O \.e \=y \=T \^e
+
+\newpage
+\normalsize \underline{Полужирное начертание, размер 17pt.}
+
+\huge \textbf{Достоинство \TeX'а --- независимость от платформы. Текст, формулы, форматирование документа описываются текстовыми директивами. Текст набирается в любом текстовом редакторе. После набора текст компилируется в файл dvi, формат которого также не зависит от платформы. dvi-файл можно печатать, просматривать, отсылать в редакцию. Оформление текста совершенно не зависит от устройства, на которое производится вывод, поэтому в каком виде вы увидите документ на экране, таким вы его получите на принтере.}
+
+\textbf{Система \TeX{} особенно полезна, когда документ содержит математические формулы и когда желательно, чтобы документ выглядел, как книга. Это независимая от компьютерного устройства система, работающая на большом количестве платформ, от персональных компьютеров до больших вычислительных машин. Она ведет себя одинаково на всех машинах --- важный факт для научно-технического сообщества.
+Т.к. \TeX'овский файл --- это обычный текстовый файл (plain text), он имеет очень малый размер. Книгу в 500 страниц с сотнями и тысячами формул можно уместить на дискете или послать по почте: страница плотного текста это примерно 2000 символов, умножить на количество страниц и получается не более 1 мегабайта. После архивации это число станет раза в три меньше.}
+
+\textbf{АБВГДЕЁЖЗИЙЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ}
+
+\textbf{абвгдеёжзийклмнопрстуфхцчшщъыьэюя 0123456789}
+\newpage
+\normalsize \underline{Bold shape, size 17pt.}
+
+\huge \textbf{\TeX{} is a typesetting program designed for high-quality composition of material that contains a lot of mathematical and technical expressions. It has been adopted by many authors and publishers who generate technical books and papers. It was created by Professor Donald Knuth of Stanford University, originally for preparation of his book series ``The Art of Computer Programming''. \TeX{} has been made freely available by Knuth in a generic form. \TeX's original (and still supported) output format is a ``DeVice Independent'' (DVI) file that is then translated to a device-specific form for printing or display. Today there is another option: widely-used extensions of \TeX{}, such as pdf\TeX, Xe\TeX, and \LaTeX, can directly write PDF output, as well as DVI.}
+
+\textbf{\TeX{} implementations are governed by the principle that the same input should produce the same output, modulo font availability and output device resolution. All implementations wishing to call themselves ``\TeX'' must pass a ``trip test'' that assures adherence to these guidelines. \TeX{} has been tailored for and installed on almost every platform (computer + operating system) that one can imagine, and is available as freeware, shareware and commercial implementations. The \TeX{} program is usually accompanied by other software to form a complete and usable system.}
+
+\textbf{ABCDEFGHIJKLMNOPQRSTUVWXYZ}
+
+\textbf{abcdefghijklmnopqrstuvwxyz .,!?():;-----`''``+=\%\#@\&*\symbol{"B9}\symbol{"7E}}
+
+\textbf{\~n \'a \`a \~N \'E \`E \"o \"O \.e \=y \=T \^e}
+\newpage
+\normalsize \underline{Курсивное начертание, размер 17pt}
+
+\huge \textit{Достоинство \TeX'а --- независимость от платформы. Формулы, текст, форматирование документа описываются текстовыми директивами. Текст набирается в любом текстовом редакторе. После набора текст компилируется в файл dvi, формат которого также не зависит от платформы. dvi-файл можно печатать, просматривать, отсылать в редакцию. Оформление текста совершенно не зависит от устройства, на которое производится вывод, поэтому в каком виде вы увидите документ на экране, таким вы его получите на принтере.}
+
+\textit{Система \TeX{} особенно полезна, когда документ содержит математические формулы и когда желательно, чтобы документ выглядел, как книга. Это независимая от компьютерного устройства система, работающая на большом количестве платформ, от персональных компьютеров до больших вычислительных машин. Она ведет себя одинаково на всех машинах --- важный факт для научно-технического сообщества.
+Т.к. \TeX'овский файл --- это обычный текстовый файл (plain text), он имеет очень малый размер. Книгу в 500 страниц с сотнями и тысячами формул можно уместить на дискете или послать по почте: страница плотного текста это примерно 2000 символов, умножить на количество страниц и получается не более 1 мегабайта. После архивации это число станет раза в три меньше.}
+
+\textit{АБВГДЕЁЖЗИЙЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ}
+
+\textit{абвгдеёжзийклмнопрстуфхцчшщъыьэюя 0123456789}
+\newpage
+\normalsize \underline{Italic shape, size 17pt.}
+
+\huge \textit{\TeX{} is a typesetting program designed for high-quality composition of material that contains a lot of mathematical and technical expressions. It has been adopted by many authors and publishers who generate technical books and papers. It was created by Professor Donald Knuth of Stanford University, originally for preparation of his book series ``The Art of Computer Programming''. \TeX{} has been made freely available by Knuth in a generic form. \TeX's original (and still supported) output format is a ``DeVice Independent'' (DVI) file that is then translated to a device-specific form for printing or display. Today there is another option: widely-used extensions of \TeX, such as pdf\TeX, Xe\TeX, and \LaTeX, can directly write PDF output, as well as DVI.}
+
+\textit{\TeX{} implementations are governed by the principle that the same input should produce the same output, modulo font availability and output device resolution. All implementations wishing to call themselves ``\TeX'' must pass a ``trip test'' that assures adherence to these guidelines. \TeX{} has been tailored for and installed on almost every platform (computer + operating system) that one can imagine, and is available as freeware, shareware and commercial implementations. The \TeX{} program is usually accompanied by other software to form a complete and usable system.}{\sloppy
+
+}
+
+\textit{ABCDEFGHIJKLMNOPQRSTUVWXYZ}
+
+\textit{abcdefghijklmnopqrstuvwxyz .,!?():;-----`''``+=\%\#@\&*\symbol{"B9}\symbol{"7E}}
+
+\textit{\~n \'a \`a \~N \'E \`E \"o \"O \.e \=y \=T \^e}
+\newpage
+\normalsize \underline{Полужирное курсивное начертание, размер 17pt}
+
+\huge \textit{\textbf{Достоинство \TeX'а --- независимость от платформы. Текст, формулы, форматирование документа описываются текстовыми директивами. Текст набирается в любом текстовом редакторе. После набора текст компилируется в файл dvi, формат которого также не зависит от платформы. dvi-файл можно печатать, просматривать, отсылать в редакцию. Оформление текста совершенно не зависит от устройства, на которое производится вывод, поэтому в каком виде вы увидите документ на экране, таким вы его получите на принтере.}}
+
+\textit{\textbf{Система \TeX{} особенно полезна, когда документ содержит математические формулы и когда желательно, чтобы документ выглядел, как книга. Это независимая от компьютерного устройства система, работающая на большом количестве платформ, от персональных компьютеров до больших вычислительных машин. Она ведет себя одинаково на всех машинах --- важный факт для научно-технического сообщества.
+Т.к. \TeX'овский файл --- это обычный текстовый файл (plain text), он имеет очень малый размер. Книгу в 500 страниц с сотнями и тысячами формул можно уместить на дискете или послать по почте: страница плотного текста это примерно 2000 символов, умножить на количество страниц и получается не более 1 мегабайта. После архивации это число станет раза в три меньше.}}
+
+\textit{\textbf{АБВГДЕЁЖЗИЙЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ}}
+
+\textit{\textbf{абвгдеёжзийклмнопрстуфхцчшщъыьэюя 0123456789}}
+\newpage
+\normalsize \underline{Bold italic shape, size 17pt.}
+
+\huge \textit{\textbf{\TeX{} is a typesetting program designed for high-quality composition of material that contains a lot of mathematical and technical expressions. It has been adopted by many authors and publishers who generate technical books and papers. It was created by Professor Donald Knuth of Stanford University, originally for preparation of his book series ``The Art of Computer Programming''. \TeX{} has been made freely available by Knuth in a generic form. \TeX's original (and still supported) output format is a ``DeVice Independent'' file that is then translated to a device-specific form for printing or display. Today there is another option: widely-used extensions of \TeX, such as pdf\TeX, Xe\TeX, and \LaTeX, can directly write PDF output, as well as DVI.}}
+
+\textit{\textbf{\TeX{} implementations are governed by the principle that the same input should produce the same output, modulo font availability and output device resolution. All implementations wishing to call themselves ``\TeX'' must pass a ``trip test'' that assures adherence to these guidelines. \TeX{} has been tailored for and installed on almost every platform that one can imagine, and is available as freeware, shareware and commercial implementations.}}
+
+\textit{\textbf{ABCDEFGHIJKLMNOPQRSTUVWXYZ}}
+
+\textit{\textbf{abcdefghijklmnopqrstuvwxyz .,!?():;-----`''``+=\%\#@\&*\symbol{"B9}\symbol{"7E}}}
+
+ \textit{\textbf{\~n \'a \`a \~N \'E \`E \"o \"O \.e \=y \=T \^e}}
+\newpage
+\normalsize \underline{Наклонное начертание, размер 17pt.}
+
+\huge \textsl{Достоинство \TeX'а --- независимость от платформы. Текст, формулы, форматирование документа описываются текстовыми директивами. Текст набирается в любом текстовом редакторе. После набора текст компилируется в файл dvi, формат которого также не зависит от платформы. Оформление текста совершенно не зависит от устройства, на которое производится вывод, поэтому в каком виде вы увидите документ на экране, таким вы его получите на принтере.}
+
+\textsl{Система \TeX{} особенно полезна, когда документ содержит математические формулы и когда желательно, чтобы документ выглядел, как книга. Это независимая от компьютерного устройства система, работающая на большом количестве платформ, от персональных компьютеров до больших вычислительных машин. Она ведет себя одинаково на всех машинах --- важный факт для научно-технического сообщества.
+Т.к. \TeX'овский файл --- это обычный текстовый файл (plain text), он имеет очень малый размер. Книгу в 500 страниц с сотнями и тысячами формул можно уместить на дискете или послать по почте: страница плотного текста это примерно 2000 символов, умножить на количество страниц и получается не более 1 мегабайта. После архивации это число станет раза в три меньше.}
+
+\textsl{АБВГДЕЁЖЗИЙЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ}
+
+\textsl{абвгдеёжзийклмнопрстуфхцчшщъыьэюя 0123456789}
+\newpage
+\normalsize \underline{Slanted shape, size 17pt.}
+
+\huge \textsl{\TeX{} is a typesetting program designed for high-quality composition of material that contains a lot of mathematical and technical expressions. It has been adopted by many authors and publishers who generate technical books and papers. It was created by Professor Donald Knuth of Stanford University, originally for preparation of his book series ``The Art of Computer Programming''. \TeX{} has been made freely available by Knuth in a generic form. \TeX's original (and still supported) output format is a ``DeVice Independent'' (DVI) file that is then translated to a device-specific form for printing or display. Today there is another option: widely-used extensions of \TeX, such as pdf\TeX, Xe\TeX, and \LaTeX, can directly write PDF output, as well as DVI.}
+
+\textsl{\TeX{} implementations are governed by the principle that the same input should produce the same output, modulo font availability and output device resolution. All implementations wishing to call themselves ``\TeX'' must pass a ``trip test'' that assures adherence to these guidelines. \TeX{} has been tailored for and installed on almost every platform (computer + operating system) that one can imagine, and is available as freeware, shareware and commercial implementations.}
+
+\textsl{ABCDEFGHIJKLMNOPQRSTUVWXYZ}
+
+\textsl{abcdefghijklmnopqrstuvwxyz .,!?( ):;-----`'' ``+=\%\#@\&*\symbol{"B9}\symbol{"7E}}
+
+\textsl{\~n \'a \`a \~N \'E \`E \"o \"O \.e \=y \=T \^e}
+\newpage
+\normalsize \underline{Начертание Капитель, размер 17pt.}
+
+\huge \textsc{Достоинство \TeX'а --- независимость от платформы. Текст, формулы, форматирование документа описываются текстовыми директивами. Текст набирается в любом текстовом редакторе. После набора текст компилируется в файл dvi, формат которого также не зависит от платформы. Оформление текста совершенно не зависит от устройства, на которое производится вывод, поэтому в каком виде вы увидите документ на экране, таким вы его получите на принтере.}
+
+\textsc{Система \TeX{} особенно полезна, когда документ содержит математические формулы и когда желательно, чтобы документ выглядел, как книга. Это независимая от компьютерного устройства система, работающая на большом количестве платформ, от персональных компьютеров до больших вычислительных машин. Она ведет себя одинаково на всех машинах --- важный факт для научно-технического сообщества.
+Т.к. \TeX'овский файл --- это обычный текстовый файл (plain text), он имеет очень малый размер. Книгу в 500 страниц с сотнями и тысячами формул можно уместить на дискете или послать по почте: страница плотного текста это примерно 2000 символов, умножить на количество страниц и получается не более 1 мегабайта. После архивации это число станет раза в три меньше.}
+
+\textsc{АБВГДЕЁЖЗИЙЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ}
+
+\textsc{абвгдеёжзийклмнопрстуфхцчшщъыьэюя 0123456789}
+\newpage
+\normalsize \underline{Small Capitals shape, size 17pt.}
+
+\huge \textsc{\TeX{} is a typesetting program designed for high-quality composition of material that contains a lot of mathematical and technical expressions. It has been adopted by many authors and publishers who generate technical books and papers. It was created by Professor Donald Knuth of Stanford University, originally for preparation of his book series ``The Art of Computer Programming''. \TeX{} has been made freely available by Knuth in a generic form. \TeX's original (and still supported) output format is a ``DeVice Independent'' (DVI) file that is then translated to a device-specific form for printing or display. Today there is another option: widely-used extensions of \TeX, such as pdf\TeX, Xe\TeX, and \LaTeX, can directly write PDF output, as well as DVI.}
+
+\textsc{\TeX{} implementations are governed by the principle that the same input should produce the same output, modulo font availability and output device resolution. All implementations wishing to call themselves ``\TeX'' must pass a ``trip test'' that assures adherence to these guidelines. \TeX{} has been tailored for and installed on almost every platform (computer + operating system) that one can imagine, and is available as freeware, shareware and commercial implementations.}{\sloppy
+
+}
+
+\textsc{ABCDEFGHIJKLMNOPQRSTUVWXYZ}
+
+\textsc{abcdefghijklmnopqrstuvwxyz .,!?( ):;-----`'' ``+=\%\#@\&*\symbol{"B9}\symbol{"7E}}
+
+\textsc{\~n \'a \`a \~N \'E \`E \"o \"O \.e \=y \=T \^e}
+\normalsize
+\newpage
+
+\newif\ifext
+\long\def\showfnt{\font\fn=\mfn
+\centerline{\tt\mfn}
+\nobreak\smallskip
+\centerline{\vbox{\offinterlineskip\halign{\hfil\strut{\tt ##}\kern2pt\hfil\vrule&&
+\quad\hfil\fn##\hfil\cr
+\noalign{\hrule}
+\ &\tt0&\tt1&\tt2&\tt3&\tt4&\tt5&\tt6&\tt7&\tt8&\tt9&\tt A&\tt B&\tt C&\tt D&\tt E&\tt F\cr
+\noalign{\hrule}
+00&\char0&\char1&\char2&\char3&\char4&\char5&\char6&\char7&\char8&\char9&\char10&\char11&\char12&\char13&\char14&\char15\cr
+10&\char16&\char17&\char18&\char19&\char20&\char21&\char22&\char23&\char24&\char25&\char26&\char27&\char28&\char29&\char30&\char31\cr
+20&\char32&\char33&\char34&\char35&\char36&\char37&\char38&\char39&\char40&\char41&\char42&\char43&\char44&\char45&\char46&\char47\cr
+30&\char48&\char49&\char50&\char51&\char52&\char53&\char54&\char55&\char56&\char57&\char58&\char59&\char60&\char61&\char62&\char63\cr
+40&\char64&\char65&\char66&\char67&\char68&\char69&\char70&\char71&\char72&\char73&\char74&\char75&\char76&\char77&\char78&\char79\cr
+50&\char80&\char81&\char82&\char83&\char84&\char85&\char86&\char87&\char88&\char89&\char90&\char91&\char92&\char93&\char94&\char95\cr
+60&\char96&\char97&\char98&\char99&\char100&\char101&\char102&\char103&\char104&\char105&\char106&\char107&\char108&\char109&\char110&\char111\cr
+70&\char112&\char113&\char114&\char115&\char116&\char117&\char118&\char119&\char120&\char121&\char122&\char123&\char124&\char125&\char126&\char127\cr
+\ifext
+80&\char128&\char129&\char130&\char131&\char132&\char133&\char134&\char135&\char136&\char137&\char138&\char139&\char140&\char141&\char142&\char143\cr
+90&\char144&\char145&\char146&\char147&\char148&\char149&\char150&\char151&\char152&\char153&\char154&\char155&\char156&\char157&\char158&\char159\cr
+A0&\char160&\char161&\char162&\char163&\char164&\char165&\char166&\char167&\char168&\char169&\char170&\char171&\char172&\char173&\char174&\char175\cr
+B0&\char176&\char177&\char178&\char179&\char180&\char181&\char182&\char183&\char184&\char185&\char186&\char187&\char188&\char189&\char190&\char191\cr
+C0&\char192&\char193&\char194&\char195&\char196&\char197&\char198&\char199&\char200&\char201&\char202&\char203&\char204&\char205&\char206&\char207\cr
+D0&\char208&\char209&\char210&\char211&\char212&\char213&\char214&\char215&\char216&\char217&\char218&\char219&\char220&\char221&\char222&\char223\cr
+E0&\char224&\char225&\char226&\char227&\char228&\char229&\char230&\char231&\char232&\char233&\char234&\char235&\char236&\char237&\char238&\char239\cr
+F0&\char240&\char241&\char242&\char243&\char244&\char245&\char246&\char247&\char248&\char249&\char250&\char251&\char252&\char253&\char254&\char255\cr
+\fi\noalign{\hrule}}}}
+\bigskip}
+\def\mfn{obn12}\exttrue\showfnt
+\def\mfn{obnb12}\exttrue\showfnt
+\def\mfn{obnit12}\exttrue\showfnt
+\vfill\eject
+\def\mfn{obnitb12}\exttrue\showfnt
+\def\mfn{obnsl12}\exttrue\showfnt
+\def\mfn{obnsc12}\exttrue\showfnt
+\vfill\eject
+\end{document} \ No newline at end of file
diff --git a/fonts/obnov/lcyw.cmap b/fonts/obnov/lcyw.cmap
new file mode 100644
index 0000000000..8901db6630
--- /dev/null
+++ b/fonts/obnov/lcyw.cmap
@@ -0,0 +1,134 @@
+%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (TeX-LCYW-0)
+%%Title: (TeX-LCYW-0 TeX LCYW 0)
+%%Version: 1.000
+%%EndComments
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<< /Registry (TeX)
+/Ordering (LCYW)
+/Supplement 0
+>> def
+/CMapName /TeX-LCYW-0 def
+/CMapType 2 def
+1 begincodespacerange
+<00> <FF>
+endcodespacerange
+4 beginbfrange
+<21> <26> <0021>
+<28> <5F> <0028>
+<61> <7E> <0061>
+<C0> <FF> <0410>
+endbfrange
+34 beginbfchar
+<00> <0060>
+<01> <00B4>
+<02> <02C6>
+<03> <02DC>
+<04> <00A8>
+<05> <02DD>
+<06> <02DA>
+<07> <02C7>
+<08> <02D8>
+<09> <00AF>
+<0A> <02D9>
+<0B> <00B8>
+<0C> <02DB>
+<0D> <04C0>
+<0E> <2329>
+<0F> <232A>
+<10> <201C>
+<11> <201D>
+<12> <F6D5>
+<13> <F6D6>
+<14> <F6D4>
+<15> <2013>
+<16> <2014>
+<17> <200C>
+<19> <0131>
+<1B> <00660066>
+<1C> <00660069>
+<1D> <0066006C>
+<1E> <006600660069>
+<1F> <00660066006C>
+<20> <2423>
+<27> <2019>
+<60> <2018>
+<7F> <002D>
+endbfchar
+64 beginbfchar
+<80> <0490>
+<81> <0492>
+<82> <0402>
+<83> <040B>
+<84> <04BA>
+<85> <0496>
+<86> <0498>
+<87> <0409>
+<88> <0407>
+<89> <049A>
+<8A> <04A0>
+<8B> <049C>
+<8C> <04D4>
+<8D> <04A2>
+<8E> <04A4>
+<8F> <0405>
+<90> <04E8>
+<91> <04AA>
+<92> <040E>
+<93> <04AE>
+<94> <04B0>
+<95> <04B2>
+<96> <040F>
+<97> <04B8>
+<98> <04B6>
+<99> <0404>
+<9A> <04D8>
+<9B> <040A>
+<9C> <0401>
+<9D> <2116>
+<9E> <00A4>
+<9F> <00A7>
+<A0> <0491>
+<A1> <0493>
+<A2> <0452>
+<A3> <045B>
+<A4> <04BB>
+<A5> <0497>
+<A6> <0499>
+<A7> <0459>
+<A8> <0457>
+<A9> <049B>
+<AA> <04A1>
+<AB> <049D>
+<AC> <04D5>
+<AD> <04A3>
+<AE> <04A5>
+<AF> <0455>
+<B0> <04E9>
+<B1> <04AB>
+<B2> <045E>
+<B3> <04AF>
+<B4> <04B1>
+<B5> <04B3>
+<B6> <045F>
+<B7> <04B9>
+<B8> <04B7>
+<B9> <0454>
+<BA> <04D9>
+<BB> <045A>
+<BC> <0451>
+<BD> <201E>
+<BE> <00AB>
+<BF> <00BB>
+endbfchar
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+%%EndResource
+%%EOF
diff --git a/fonts/obnov/lcywobn.fd b/fonts/obnov/lcywobn.fd
new file mode 100644
index 0000000000..6050d1602d
--- /dev/null
+++ b/fonts/obnov/lcywobn.fd
@@ -0,0 +1,42 @@
+\ProvidesFile{lcywobn.fd}
+ [2010/02/28 v1.1 OBN Cyrillic font definitions]
+\DeclareFontFamily{LCYW}{obn}{}
+\DeclareFontShape{LCYW}{obn}{m}{n}{%
+ <5><6><8><9>obn7%
+ <7><10><12>gen*obn%
+ <10.95>obn10%
+ <14.4>obn12%
+ <17.28><20.74><24.88><29.86><35.83>obn17}{}
+\DeclareFontShape{LCYW}{obn}{m}{sl}{
+ <5><6><8><9>obnsl7%
+ <7><10><12>gen*obnsl%
+ <10.95>obnsl10%
+ <14.4>obnsl12%
+ <17.28><20.74><24.88><29.86><35.83>obnsl17}{}
+\DeclareFontShape{LCYW}{obn}{m}{it}{
+ <5><6><8><9>obnit7%
+ <7><10><12>gen*obnit%
+ <10.95>obnit10%
+ <14.4>obnit12%
+ <17.28><20.74><24.88><29.86><35.83>obnit17}{}
+\DeclareFontShape{LCYW}{obn}{bx}{n}{
+ <5><6><8><9>obnb7%
+ <7><10><12>gen*obnb%
+ <10.95>obnb10%
+ <14.4>obnb12%
+ <17.28><20.74><24.88><29.86><35.83>obnb17}{}
+\DeclareFontShape{LCYW}{obn}{bx}{it}{
+ <5><6><7><8><9>obnitb10%
+ <10><12>gen*obnitb%
+ <10.95>obnitb10%
+ <14.4>obnitb12%
+ <17.28><20.74><24.88><29.86><35.83>obnitb17}{}
+\DeclareFontShape{LCYW}{obn}{m}{sc}{
+ <5><6><8><9>obnsc7%
+ <7><10><12>gen*obnsc%
+ <10.95>obnsc10%
+ <14.4>obnsc12%
+ <17.28><20.74><24.88><29.86><35.83>obnsc17}{}
+\endinput
+%%
+%% End of file `lcywobn.fd'.
diff --git a/fonts/obnov/obn10.mf b/fonts/obnov/obn10.mf
new file mode 100644
index 0000000000..7e7957b586
--- /dev/null
+++ b/fonts/obnov/obn10.mf
@@ -0,0 +1,3486 @@
+%written by Basil Solomykov, Russia
+%(C) Copyright 2011 LPPL (LaTeX Project Public License)
+%Font Ordinary New (Obyknovennaya novaya)
+
+design_size := 10pt#;
+o# := .45pt#;
+u# := 18.52/35pt#;
+bar# := 10/36pt#;
+slab# := 10/36pt#;
+cap_bar# := 10/36pt#;
+vair# := 10/36pt#;
+hair# := 10/36pt#;
+jut# := 20/36pt#;
+cap_jut# := 26/36pt#;
+stem# := 30/36pt#;
+curve# := 31/36pt#;
+cap_stem# := 36/36pt#;
+cap_curve# := 37.2/36pt#;
+s# := 0.4pt#;
+c# := .2pt#;
+
+input obn_lcyw_code.mf;
+font_identifier "OBN";
+mode_setup;
+clear_pen_memory;
+
+font_size design_size*pt#;
+asc_height# := 24/36*design_size*pt#;
+cap_height# := 24/36*design_size*pt#;
+body_height# := 27/36*design_size*pt#;
+x_height# := 15.4/36*design_size*pt#;
+desc_depth# := 8/36*design_size*pt#;
+body_depth# := 9/36*design_size*pt#;
+comma_depth# := 5/36*design_size*pt#;
+x_depth# := 4/5comma_depth#;
+bar_height# := .52x_height#;
+cap_bar_height# := .52cap_height#;
+cap_bar2_height# := .45cap_height#;
+border_height# := comma_depth#;
+cap_drop_round# := 4*slab#;
+drop_round# := 6.3/8cap_drop_round#;
+
+bracket# := pt#;
+
+font_x_height x_height#;
+font_normal_space .5*10pt#;
+font_normal_stretch 4u#;
+font_normal_shrink 2u#;
+font_quad 16u#;
+font_extra_space 6u#;
+
+k# := .8u#;
+kk# := 1.5u#;
+kkk# := 3u#;
+
+%autorounding:=2; smoothing:=2;
+%def autorounded = interim autorounding:=2 enddef;
+serif_darkness := 1/30;
+define_pixels(bracket,cap_o_width,sss_width,css_width);
+define_pixels(c,s,cap_bar_height,cap_bar2_height);
+define_pixels(border_height,A_bracket,cap_drop_round,x_depth,drop_round);
+define_whole_blacker_pixels(stem,cap_stem,curve,cap_curve,bar,slab,cap_bar,vair,hair);
+define_whole_pixels(asc_height,cap_height,x_height,u,desc_depth,comma_depth,bar_height,body_height,body_depth,u,o,cap_jut,jut);
+%define_corrected_pixels();
+lowres_fix(stem,curve) 1.2;
+lowres_fix(cap_stem,cap_curve) 1.2;
+if jut=cap_jut: jut:=jut-1; fi
+
+def serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g if left_jut=0: -1/2slab fi +1/2slab; x$d=x$e=x$h if right_jut=0: +1/2slab fi-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def serif_edge suffix $ =
+(serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse serif_bracket($f,$r,$e)) enddef;
+
+def serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...serif_darkness[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def T_serif(suffix $)(expr slab, bord_height, direction)= %Direction: 0-left, 1-right;
+penpos$(slab,if direction=1: - fi 90);
+x$=x$a=x$g; y$g-y$=y$-y$a=1/2slab;
+x$b=x$a + if direction=0: - fi .882bord_height; y$b=y$d=y$c+1/2slab;
+x$c=x$b + if direction=0: - fi 1/2slab; y$c=y$a-bord_height;
+x$d=x$e=x$b + if direction=0: - fi slab;
+y$e=y$g-1/2slab; y$f=y$g; x$f=x$c;
+labels($a,$b,$c,$d,$e,$f,$g) enddef;
+
+def T_edge suffix $ =
+(z$a..{down}z$b..z$c..z$d--z$e{up}..z$f--z$g--cycle) enddef;
+
+def A_serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g+1/2slab; x$d=x$e=x$h-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def A_serif_edge suffix $ =
+(A_serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse A_serif_bracket($f,$r,$e)) enddef;
+
+def A_serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...0.6[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def ur_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a= 1/2slab;
+x$e=x$a + drop_length; y$e=y$f- drop_height;
+x$d=x$e - 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e - drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d - 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ur_drop_edge suffix $ =
+(z$f{right}..tension.9..{down}z$e{down}..{left}z$d{left}..{up}z$c{up}..z$b...{left}z$a--cycle) enddef;
+
+def ul_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$f- drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d + 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ul_drop_edge suffix $ =
+(z$f{left}..tension.9..{down}z$e{down}..{right}z$d{right}..{up}z$c{up}..z$b...{right}z$a--cycle) enddef;
+
+def dl_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, -90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$a + drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e + 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d - drop_round); x$b=x$d + 1/90drop_round;
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def dl_drop_edge suffix $ =
+(z$a{left}..tension.9..{up}z$e{up}..{right}z$d{right}..{down}z$c..{dir 250}z$b{dir -80}..{right}z$f--cycle) enddef;
+
+def S_serif (suffix $)(expr serif_slab, serif_length, serif_height)=
+%penpos$(serif_slab,90);
+x$a=x$i=x$; y$i=y$+1/2serif_slab; y$a=y$-1/2serif_slab;
+x$f=x$e=x$a+serif_length; y$f=y$g-1/2serif_slab; y$e=y$c=y$d+1/2serif_slab;
+x$g=x$f-1/2serif_slab; y$g=y$i-1/2serif_slab;
+y$h=y$f-1/4serif_slab; x$h=x$g-serif_slab;
+x$c=x$e-serif_slab; x$d=x$e-1/2serif_slab; y$d=y$g-serif_height;
+x$b=x$h-6/18serif_length; y$b=y$h-1/2slab;
+labels ($a,$b,$c,$d,$e,$f,$g,$h,$i) enddef;
+
+def S_serif_edge suffix $ =
+(z$a{right}...z$b..{dir -80}z$c..z$d..z$e--z$f{up}..z$g{left}..z$h{dir 150}..{left}z$i--cycle) enddef;
+
+beginchar(CYR_A,13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar(CYR_BE,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=y5=h-1/2slab;
+y1c=h; y2c=0; x5e=w-s-1/2cap_stem;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h; x4=w-s-1/2cap_stem-border_height;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_VE,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+css_width := x8 - x2r; save css_width;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar(CYR_GHE,9u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; x3=x4+2u;
+y5=y3; x5e=w-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_DE,12u#,cap_height#,comma_depth#);
+x10e=w-s; y10c=-d;
+y4c=h; x4h=w-s-1/2slab;
+x9=x4; y9c=0;
+x3=x8=x9d; y8=y7=1/2cap_bar; y3=y2=h-y8;
+x6e=s; y6=y10; x7=border_height+s;
+y5=y9; x5g=s+.5u; y1=y4; x1=x5+1.5u;
+x2=x1c;
+A_serif(1,1.2cap_bar,-96,10/7cap_jut,cap_jut);
+A_serif(5,1.2cap_bar,81,6/7cap_jut,cap_jut);
+serif(4,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+penpos2(cap_bar,90);
+penpos3(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_bar,90);
+penstroke z7e--z8e; penstroke z2e--z3e;
+fill A_serif_edge5...reverse A_serif_edge1...cycle;
+fill serif_edge9--reverse serif_edge4--cycle;
+T_serif(6,slab,border_height,0);
+T_serif(10,slab,border_height,1);
+fill T_edge6;
+fill T_edge10;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_IE,10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_YE,10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+x12=x13=x2r; y12=h+1/4cap_stem; y13=y12+cap_stem;
+x14=x15=x12+2cap_stem; y14=y12; y15=y13;
+fill z12..z13..cycle; fill z14..z15..cycle;
+penlabels(range 1 thru 15);
+endchar;
+
+beginchar(CYR_ZHE,round (16u#+s#),cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; y7=y4=y10=y11=cap_bar_height; x4=x7-1.5u;
+x10=x8r; x11=x10+1.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+x6=s; y6=0; y4-y5=y5-y6; x4-x5=x5-x6;
+penpos7(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,90);
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z6e{right}..tension.8..{up}z5e{up}..tension.8..{right}z4e--z7e;
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+x3=x5+1/2cap_stem; y2=h; x4-x3=x3-x2; y2-y3=y3-y4;
+penpos3(hair,0);
+penpos2(cap_bar,90);
+penstroke z4e{left}..tension.8..{up}z3e{up}..tension.8..{left}z2e;
+y1=h; x1a=x2; fill z6l..z6r..cycle;
+ul_drop(1,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ul_drop_edge1; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ZE,10u#+.5s#,cap_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height;
+x4=x6-3/2cap_stem; x5=x4-3u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3c,1.4border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.5cap_drop_round,slab);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_I,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,0); penpos6(cap_bar,0);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar(CYR_SHORT_I,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,0); penpos6(cap_bar,0);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+x7=.5w; y7=h+cap_bar;
+ur_drop(7,.8cap_drop_round,1/2(x3l-x1r),.8cap_drop_round,1.2cap_bar);
+fill ur_drop_edge7 rotatedaround(z7,180);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(CYR_KA,12u#+s#,cap_height#,0);
+x8g=x9g=s; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+y10=y11=cap_bar_height;
+x10=x8r; x11=x10+2.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_EL,13u#+1/2s#,cap_height#,0);
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.8cap_drop_round; y3=1.1cap_drop_round;
+dl_drop(1,cap_drop_round,cap_drop_round,cap_drop_round,slab);
+fill dl_drop_edge1;
+penpos2(cap_bar,-90);
+penpos3(cap_bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-slab;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,cap_bar,theta1,1.3cap_jut,1.3cap_jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,cap_stem,-90,cap_jut,cap_jut);
+serif(8,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_EM,13u#+s#,cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,.51cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 108; y7l=11/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EN,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_O,11u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+cap_o_width := x7-x3; save cap_o_width;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_PE,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ER,10u#+s#,cap_height#,0);
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_ES,10u#+s#,cap_height#,0);
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_TE,round (11u#+s#),cap_height#,0);
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_U,13u#+s#,cap_height#,0);
+x1l=s+cap_jut; y1l=.98h-cap_bar;
+x3r=w-s-.8cap_jut; y3r=.98h-cap_bar;
+x4=33/60w; y4=6/53h;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,1.2cap_bar,theta2,1.2cap_jut,.8cap_jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=0; x6=x4-1.2cap_stem; z7l=z2;
+penpos7(1.2cap_bar,theta2+90);
+penpos5(1.2cap_bar,theta2+90);
+penpos6(1.2cap_bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,cap_drop_round,2u, 10/53h, round 1.2cap_bar);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EF,round (14u#+s#),cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1=x2=.5w; y2c=0; y1h=h;
+y6=y7=y8=y9=1.3cap_jut; y4=y3=y11=y12=h-1.3cap_jut+1/2slab;
+x3=x7=x2l; x8=x12=x2r; x4=x6=x3-u; x11=x9=x12+u;
+x5=s+1/2cap_curve; x10-x1=x1-x5; y4-y5=y5-y6; y10=y5;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,270);
+penpos7(cap_bar,270);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+penpos10(cap_curve,0);
+penpos11(cap_bar,90);
+penpos12(cap_bar,90);
+penstroke z3e--z4e{left}..tension.8..{down}z5e{down}..tension.8..{right}z6e--z7e;
+penstroke z8e--z9e{right}..tension.8..{up}z10e{up}..tension.8..{left}z11e--z12e;
+penlabels (range 1 thru 12);
+endchar;
+
+beginchar(CYR_HA,12u#+s#,cap_height#,0);
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_TSE,12.5u#+s#,cap_height#,comma_depth#);
+x1=x2=x5=cap_jut+1/2cap_stem+s;
+x3=x4=x6=w-x1-.5u; y5=y6=y2h;
+y1c=y3c=h; y2c=y4c=0; x7e=w-s; y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e;
+T_serif(7,cap_bar,border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_CHE,12u#+s#,cap_height#,0);
+x1=cap_jut+1/2cap_stem+s;
+x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,-90,cap_jut,cap_jut);
+serif(3,cap_stem,90,cap_jut,cap_jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=cap_bar_height-1/2cap_bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-2cap_bar;
+penpos6(cap_stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SHA,16u#+s#,cap_height#,0);
+if .5w <> good.x .5w: change_width; fi
+x1=x2=good.x (cap_jut+1/2cap_stem+s);
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=good.x .5w; y5=y1; y6=y2;
+y9b=slab; x9=good.x w-x1;
+x10=x9; y10b=h-slab;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_SHCHA,16.5u#+s#,cap_height#,comma_depth#);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=slab; x9h=w-s-.5u;
+x10=x9; y10b=h-slab;
+x11e=w-s; y11=y9h;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,slab,border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_HARD_SIGN,13.5u#+c#,cap_height#,0);
+x2r=x5-css_width; x1=x2; x8e=s; y8g=h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+x7=x1d; y1c=h; y2c=0;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=round(x3+5u-cap_stem);
+y6=y7=y2h;
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(8,cap_bar,border_height,0);
+fill T_edge8;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YERU,16u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+y3=y4=cap_bar_height; x3=round x2r; x4=x6=round (x3+5u-cap_stem) - 1;
+y4-y5=y5-y6; x5=x2r+css_width; y8b=slab; x8h=w-s;
+y6=y7=y2h; x9=x8; y9b=h-slab;
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(8,cap_stem,90,cap_jut,cap_jut);
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge9--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SOFT_SIGN,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=x3+5u-cap_stem;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y6=y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_E,10u#+.5s#,cap_height#,0);
+x1=16/39w; x5=.5w; y1=0; y5=h;
+y7=.5h; x7=w-1/2cap_curve-s;
+x9e=s; y9=0;
+dl_drop(9,cap_drop_round,16/39w-s,1.6cap_drop_round,slab);
+y8=0.1h-c; y6=0.9h+c; x8=x9+9/16(x7-x9); x6=x5+9/16(x7-x5);
+penpos5(cap_bar,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+penpos1(cap_bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+y2=y5; x2=x5-c;
+S_serif(2,slab,x1+c,1.5border_height);
+x3=x7-1/2cap_stem; y3=y4=cap_bar_height; x4=x2b-x1;
+penpos3(cap_bar,90); penpos4(cap_bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YU,16u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+y3=y7=.5h; x7=w-1/2cap_curve-s; x3=x7-cap_o_width; y9=0; y5=h; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3cap_stem; y11=y12=cap_bar_height;
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_YA,11u#+s#,cap_height#,0);
+x1=x2=w-cap_jut-1/2cap_stem-s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2l;
+y1c=h; y2c=0; x6=x4=x7-2.5u; x3=x1c;
+y4-y5=y5-y6; x5=x8-1.5c; x9=s; y9=0; y6-y8=y8-y9; x7-x10=3(x10-x6); x10-x8=x8-x9;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos7(cap_bar,270);
+penpos6(cap_bar,270);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90); fill z9l..z9r..cycle;
+penstroke z3e--z4e{left}..tension.9..z5e..tension.9..{right}z6e--z7e;
+penstroke z9e{right}..tension1..{up}z8e{up}..tension1..{right}z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_a,9u#-s#+2/7stem#,x_height#,0);
+x5=w-s-1/2bar; y5=0; y4=6/7stem; x4=x3=x5-5/7stem-1/2stem;
+y3=bar_height+2bar; y2=y1=h; x2=s+c+6/20w; x1e=s+c;
+ul_drop(1,drop_round,x2-s-c,5/4drop_round,bar);
+fill ul_drop_edge1;
+penpos2(bar,90);
+penpos3(stem,0);
+penpos4(stem,0);
+penpos5(bar,90);
+penstroke z2e{right}..{down}z3e--z4e{down}..{right}z5e;
+fill z5r..z5l..cycle;
+y6=bar_height+1/2bar; x6=x3+1/2stem; x7=s+1/2stem; y7=7/17bar_height;
+y8=0; x9=x4-1/2stem+1/2bar; x9-x8=x8-x7; y9=y4+3/2bar; x66=x8; y66=y6-c;
+numeric theta[]; theta1=angle(z66-z6);
+penpos6(vair,90);
+penpos66(vair,90);
+penpos7(curve,180);
+penpos8(vair,270);
+penpos9(bar,360);
+penstroke z6e{left}..z66e{dir theta1}..tension.8..{down}z7e{down}..tension.8..z8e{right}..{up}z9e;
+penlabels(range 1 thru 9,66);
+endchar;
+
+beginchar(CYR_be,8u#,asc_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2stem+s; x7=w-1/2stem-s;
+y2=y8=0.1x_height; y4=y6=0.9x_height; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+y9=y3; x9=s+1/2bar; y10=44/51h; x10=x5+c; x11=w-s-1/2bar; y11=h-1/2bar; %x11=w-1/2bar*sind 45; y11=h-1/2bar*sind 45;
+penpos9(hair,180);
+penpos10(curve,90);
+penpos11(hair,180);
+penstroke z9e{up}..{right}z10e{right}..tension1..z11e;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_ve,9u#-.5s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x9=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h; y8=y9=h-1/2bar; x8=x1d;
+y9-y10=y10-y4; x10=x5-.8c;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penpos8(bar,270);
+penpos9(bar,270);
+penpos10(curve,180);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penstroke z9e{right}..tension.8..z10e..tension.8..{left}z4e;
+sss_width := x5 - x2r; save sss_width;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ghe,7u#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; y3=y4=y5=h-1/2bar; x3=x1d; x5e=w-s;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+T_serif(5,bar,4/5border_height,1);
+x4=x5;
+fill serif_edge2--reverse serif_edge1--cycle;
+fill T_edge5;
+penpos3(bar,90);
+penpos4(bar,90);
+penstroke z3e--z4e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_de,9u#,x_height#,x_depth#);
+x3=x4=w-jut-1/2stem-s-.1u;
+y3c=h; y4c=0;
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+x7e=s; x10e=w-s; y7=y8=y9=y10=y4h; x8=x7; x9=x4c;
+T_serif(7,bar,4/5border_height,0);
+T_serif(10,bar,4/5border_height,1);
+fill T_edge7; fill T_edge10;
+penpos8(bar,90); penpos9(bar,90);
+penstroke z8e--z9e;
+x2=s+1.3jut+1/2bar; y2=bar; x1=x2+3/2bar; y1=h-bar;
+numeric theta[]; theta1=angle(z1-z2);
+A_serif(1,bar,theta1-180,1.3jut,jut);
+A_serif(2,bar,theta1,1.3jut,.8jut);
+fill A_serif_edge2..reverse A_serif_edge1..cycle;
+y5=y6=y3h; x5=x1d; x6=x3c;
+penpos5(bar,90);
+penpos6(bar,90);
+penstroke z5e--z6e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ie,8u#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x5+5/8(x7-x5);
+x10=w-s-1/2bar; y10=y7-5/4stem;
+penstroke z10e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ye,8u#,asc_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=x5=.5w; y1=0; y5=x_height;
+y3=.5x_height; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.1x_height; y4=y6=0.9x_height; x2=x4=x3+3/8(x5-x3); x6=x5+5/8(x7-x5);
+x10=w-s-1/2bar; y10=y7-5/4stem;
+penstroke z10e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+y12=y14=h; y11=y13=h-stem; x11=x12=x3r+c; x13=x14=x7r-c;
+fill z11..z12..cycle; fill z13..z14..cycle;
+penlabels(range 1 thru 14);
+endchar;
+
+beginchar(CYR_zhe,round (13u#+s#),x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,stem,-90,jut,jut);
+serif(9,stem,90,jut,jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; x4=x7-u; y4=y7=y10=y11=bar_height; x10=x8r; x11=x10+u;
+x6=s+1/2bar; y6=y16=0; y4-y5=y5-y6; x4-x5=1.3(x5-x6);
+x16=w-s-1/2bar; 1.3(x16-x15)=x15-x11; y11-y15=y15-y16;
+x2=x5-c; y2=y1=h; x4-x3=x3-x2; y2-y3=y3-y4; x1e=s+c;
+y13=y14=h; x13=x15+c; x13-x12=x12-x11; y13-y12=y12-y11; x14e=w-s-c;
+penpos2(bar,90);
+penpos3(hair,0);
+penpos4(bar,90);
+penpos5(curve,180);
+penpos6(bar,90);
+penpos7(bar,90);
+penpos10(bar,90);
+penpos11(bar,90);
+penpos12(hair,180);
+penpos13(bar,90);
+penpos15(curve,0);
+penpos16(bar,90);
+penstroke z7e--z4e{left}..tension.9..{down}z5e{down}..tension.9..{left}z6e;
+fill z6r..z6l..cycle;
+penstroke z10e--z11e{right}..tension.9..{down}z15e{down}..tension.9..{right}z16e;
+fill z16r..z16l..cycle;
+penstroke z4e{left}..z3e..{left}z2e;
+penstroke z11e{right}..z12e..{right}z13e;
+ul_drop(1,drop_round,x2-.7s-c,.9drop_round,bar);
+ur_drop(14,drop_round,x2-.7s-c,.9drop_round,bar);
+fill ul_drop_edge1; fill z1e..z1c..cycle;
+fill ur_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ze,6u#+2s#,x_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=bar_height;
+x4=x6-3/2stem; x5=x4-u;
+x6=w-s-1/2curve; y4-y6=y6-y7;
+x2=.45w; y2=h; x3=x6-1/5curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(bar,90);
+penpos3(curve,0);
+penpos44(bar,-90);
+penpos4(bar,90);
+penpos5(bar,90);
+penpos6(curve,0);
+penpos7(bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3.5c,border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,drop_round,18/39w-s,1.5drop_round,bar);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_i,9u#+s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r-1/2bar; x6=x3l+1/2bar;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,0); penpos6(bar,0);
+y5=.1h; y6=.9h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_short_i,9u#+s#,asc_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r-1/2bar; x6=x3l+1/2bar;
+y1c=y3c=x_height; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,0); penpos6(bar,0);
+y5=.1x_height; y6=.9x_height; penstroke z5e--z6e;
+x7=.5w; y7=h-3/2drop_round;
+ur_drop(7,drop_round,x3-.5w,1.1drop_round,1.2bar);
+fill ur_drop_edge7 rotatedaround(z7,180);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ka,9u#+.5s#,x_height#,0);
+x1g=x2g=s; y1c=h; y2c=y9=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=bar_height; x3=x1r; x4=x3+1.25u;
+x9=w-s-1/2bar; 1.3(x9-x8)=x8-x4; y4-y8=y8-y9;
+y6=y7=h; x6=x8+c; x6-x5=x5-x4; y6-y5=y5-y4; x7e=w-s-c;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(hair,180);
+penpos6(bar,90);
+penpos8(curve,0);
+penpos9(bar,90);
+penstroke z3e--z4e{right}..tension.9..{down}z8e{down}..tension.9..{right}z9e;
+fill z9r..z9l..cycle;
+penstroke z4e{right}..z5e..{right}z6e;
+ur_drop(7,drop_round,w-x6-.7s-c,.drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_el,9u#+s#,x_height#,0);
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.7drop_round; y3=1.1drop_round;
+dl_drop(1,drop_round,drop_round,drop_round,bar);
+fill dl_drop_edge1;
+fill z1c..z1e..cycle;
+penpos2(bar,-90);
+penpos3(bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-bar;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,bar,theta1,1.4jut,1.3jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,stem,-90,jut,jut);
+serif(8,stem,90,jut,jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(bar,90);
+penpos6(bar,90);
+penstroke z5e--z6e;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_em,10u#+s#,x_height#,0);
+x1g=s; y1c=0; y2=h-bar;
+A_serif(1,bar,90,jut,jut);
+x2=x1; serif(2,bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2bar; y4c=0;
+serif(3,stem,-90,.51bar, jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -107; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 108; y7l=7/28h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(stem,0); penpos8(stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_en,9u#+s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_o,8u#+s#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2curve-s;
+y2=y8=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_pe,9u#+s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_er,8u#+jut#+.5c#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+s+.6(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=0.1h; y8=0.08h; y4=0.9h; y6=.92h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5)-.4c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=-desc_depth;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_es,8u#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=1/2curve+s;
+y2=0.1h; y4=0.9h; x2=x4=x3+3/8(x5-x3);
+x6=w-s-1/2hair; y6=y3-4/5stem;
+penstroke z6e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e;
+fill z6r..z6l..cycle;
+z7=z5;
+ur_drop(7,drop_round,7/8(x6l-x1),3/2drop_round,bar);
+fill ur_drop_edge7;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(CYR_te,round (8u#-.5s#),x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x2=x3=.5w; x1e=s; x4e=w-s; y1=y4=y2h;
+y2c=h; y3c=0;
+serif(2,stem,-90,jut,jut);
+serif(3,stem,90,jut,jut);
+T_serif(1,bar,4/5border_height,0);
+T_serif(4,bar,4/5border_height,1);
+fill serif_edge3--reverse serif_edge2--cycle;
+fill T_edge1; fill T_edge4;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_u,9u#+s#,x_height#,desc_depth#);
+x1l=s+jut; y1l=h-bar;
+x3r=w-s-.8jut; y3r=h-bar;
+x4=33/60w; y4=-2/5d;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,1.2bar,theta2,1.2jut,.8jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=-d+bar; x6=x4-1.5stem; z7l=z2;
+penpos7(1.2bar,theta2+90);
+penpos5(1.2bar,theta2+90);
+penpos6(1.2bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,1.1stem,1.3u,drop_round,1.2bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(CYR_ef,12u#,asc_height#,desc_depth#);
+if .5w = good.x .5w: change_width; fi
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w+.5(.5w-s); y1=0; y5=x_height;
+y3=y7=y12=.5x_height; x3=.5w; x7=w-1/2curve-s;
+y2=y8=y9=y11=0.1x_height; y4=y6=y13=y15=0.9x_height;
+x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+z16=z3; x14=x10=.5w-.5(.5w-s); y10=0; y14=x_height;
+x12=s+1/2curve; x9=x15=x16-3/8(x16-x14); x11=x13=x14-5/8(x14-x12);
+penpos10(vair,90);
+penpos11(o,30);
+penpos12(curve,0);
+penpos13(o,-30);
+penpos14(vair,-90);
+penpos15(.7o,-150);
+penpos16(stem,-180);
+penpos9(.7o,-210);
+penstroke z10e..z11e..z12e..z13e..z14e..z15e..z16e..z9e..cycle;
+x99=x155=x3l; x44=x222=x3r; y99=y222=.5x_height-3/2stem; y155=y44=.5x_height+3/2stem;
+unfill z99--z155--z44--z222--cycle; penlabels(44,99,155,222);
+x20=.5w; y20=-.75d; x17=x30=x3l; x23=x24=x3r; y17=y23=-1/2d;
+x18=x19=x17-4/5stem; x21=x22=x23+4/5stem; y18=y22=-d+bar; y19=y21=-d;
+y24=y30=x_height+3/5(asc_height-x_height);x25=x22-c; x29=x18+c; y29=y25=h-1/2bar;
+y28=y26=h; x28=x29+1/2bar; x26=x25-1/2bar; x27=.5w; y27=h-bar;
+fill z30---z17{dir -100}..tension2..z18{left}..{right}z19{right}..{dir 20}z20{dir -20}..{right}z21{right}..{left}z22..tension2..{dir 100}z23---z24{dir 80}..{dir 20}z25{dir 160}..{left}z26{left}..{dir -160}z27{dir 160}..{left}z28{left}..{dir -160}z29{dir -20}..{dir -80}z30&cycle;
+penlabels (range 1 thru 30);
+endchar;
+
+beginchar(CYR_ha,9u#+2c#,x_height#,0);
+y3=y4=bar; x3=w-s-jut-1/2stem; x4=s+jut+1/2bar;
+y1=y2=h-bar; x1=s+jut+1/2stem+c; x2=w-s-1.25c-jut-1/2bar;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,stem,theta1-180,jut,jut);
+A_serif(2,1.2bar,theta2-180,jut,jut);
+serif(3,stem,theta1,jut,jut);
+A_serif(4,1.2bar,theta2,jut,1.3jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_tse,9.1u#+s#,x_height#,x_depth#);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1-.1u; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=y2h; penstroke z5e--z6e;
+x7e=w-s; y7=y4h;
+T_serif(7,bar,4/5border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_che,9u#+s#,x_height#,0);
+x1=jut+1/2stem+s;
+x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,-90,jut,jut);
+serif(3,stem,90,jut,jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=bar_height-1/2bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-.8bar;
+penpos6(stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_sha,round (13u#+3/2s#),x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=.5w; y5=y1; y6=y2;
+y9b=bar; x9h=w-s;
+x10=x9; y10b=h-bar;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,stem,-90,jut,jut);
+serif(6,stem,90,jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,stem,90,jut,jut);
+serif(10,stem,-90,jut,jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos7(bar,90);
+penpos8(bar,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_shcha,round (13u#+3/2s#),x_height#,x_depth#);
+if .5w <> good.x .5w: change_width; fi
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=bar; x9h=w-s-.1u;
+x10=x9; y10b=h-bar;
+x11e=w-s; y11=y9h;
+serif(9,stem,90,jut,jut);
+serif(10,stem,-90,jut,jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,stem,-90,jut,jut);
+serif(6,stem,90,jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos7(bar,90);
+penpos8(bar,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,bar,4/5border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_hard_sign,10u#,x_height#,0);
+x2r=x5-sss_width; x1=x2;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h; x8e=s; y8g=h;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+T_serif(8,bar,4/5border_height,0);
+fill T_edge8;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+x9=s+c; y9=y10=h; x10=s;
+unfill z8d{up}..z9--z10--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_yeru,12u#-c#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=x2r+sss_width;
+y6=y7=y2h; x8h=x9h=w-s; y8c=h; y9c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(8,stem,-90,jut,jut);
+serif(9,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge9--reverse serif_edge8--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_soft_sign,9u#-s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_e,6u#+2s#,x_height#,0);
+x1=16/39w; x5=.5w-c; y1=0; y5=h;
+y7=.5h; x7=w-1/2curve-s;
+x9e=s; y9=0;
+dl_drop(9,drop_round,18/39w-s,1.5drop_round,bar);
+y2=y5; x2=x5;
+S_serif(2,bar,x5-s-c,border_height);
+x3=x7-1/2stem; y3=y4=bar_height; x4=x9c-c;
+penpos3(bar,90); penpos4(bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+y8=0.1h-c; y6=0.9h+c; x8=x1+5/8(x7-x9); x6=x2+5/8(x7-x5)-.4c;
+penpos5(bar,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+penpos1(bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_yu,12u#+.5s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x3l=x1h+.3bar; y9=0; y5=h;
+y3=y7=.5h; x7=w-1/2curve-s; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+c+3/8(x5-x3); x6=x8=x5-c+5/8(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3stem; y11=y12=bar_height;
+penpos11(bar,90); penpos12(bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ya,8u#+s#+1/2bar#,x_height#,0);
+x1=x2=w-jut-1/2stem-s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2l; x4=x6=x3-2.5u+stem;
+y5-y4=y6-y5; x5=1/2stem+2s;
+y6=y7=y1h; x9=s; y9=0; x4-x8=x8-x9; y4-y8=y8-y9;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,-90);
+penpos4(bar,-90);
+penpos5(curve,180);
+penpos6(bar,90);
+penpos7(bar,90);
+penpos8(curve,0);
+penpos9(bar,-90);
+penstroke z3e--z4e{left}..tension.8..z5e..tension.8..{right}z6e--z7e;
+penstroke z9e{right}..{up}z8e{up}..{right}z4e;
+fill z9r..z9l..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar("A",13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar("B",11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,1/2cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("C",10u#+s#,cap_height#,0);
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("D",12u#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(o,30);
+penpos6(cap_curve,0);
+penpos7(o,-30);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+x3=x9=x1d;
+x8=x4=.5w; y8=y9=1/2cap_bar; y4=y3=h-1/2cap_bar;
+y6=.5h; x6=w-1/2cap_curve-s;
+y7=0.1h-c+1/2cap_bar; y5=0.9h+c-1/2cap_bar; x5=x7=x4+5/8(x6-x4);
+penstroke z3e--z4e{right}..z5e..z6e..z7e..{left}z8e--z9e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("E",10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("F",10u#+.5s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("G",10u#+cap_jut#+c#+s#,cap_height#,0);
+x1=x5=23/42(w-cap_jut-c); y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s-cap_jut-c; y8=y1; x8=x1-.1(w-cap_jut-c);
+S_serif(6,slab,w-s-2c-x1-cap_jut,1.5border_height);
+S_serif(7,slab,w-s-x1-cap_jut+c,7/4border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+x9r=x7e; y9r=7/4border_height-1/2cap_bar;
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+x10=x9l; x11=x9r; y10=y11=3/4cap_bar;
+fill reverse serif_edge9--z10--z11--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("H",12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("I",2cap_jut#+cap_stem#+2s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+endchar;
+
+beginchar("J",7u#+s#,cap_height#,0);
+x1=x4=w-cap_jut-1/2cap_stem-s;
+y1c=h; y2=y3=y4=13/53h; x2=x1r; x3=x1l;
+y5=0; x5=x3-2/3cap_stem;
+serif(1,cap_stem,-90,1.2cap_jut,cap_jut);
+fill z3--z2--reverse serif_edge1--cycle;
+penpos4(cap_stem,0);
+penpos5(cap_bar,-90);
+penstroke z4e{down}..{left}z5e;
+x6e=s; y6=0;
+dl_drop(6,cap_drop_round,x5-s,1.3drop_round,cap_bar);
+fill dl_drop_edge6;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("K",13u#-c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=cap_bar_height; x3l=w-cap_jut-.5cap_jut-cap_bar-s; y3l=h-cap_bar;
+x5=x6=x1r; y5=cap_bar_height-cap_bar; y6=y5-cap_bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+A_serif(3,.9cap_bar,theta1,1.5cap_jut,.6cap_jut);
+x4l=w-s-1.2cap_jut-cap_stem; y4l=cap_bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,cap_stem,theta2,.8cap_jut,cap_jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("L",10u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=y5=y2h; x3=x2d; x5e=w-s;
+T_serif(5,cap_bar,border_height,1); x4=x5;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penstroke z3e--z4e;
+fill T_edge5 reflectedabout(z3,z4);
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar("M",13u#+s#,cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,.51cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 108; y7l=11/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("N",12u#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_bar+s;
+x3=w-x1; y1c=y3c=h; y2c=y4=y5=0;
+x4=x3r; x5=x3l;
+serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+A_serif(2,cap_bar,90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill A_serif_edge2--reverse serif_edge1--cycle;
+numeric theta[]; y7=y1h; x7=x1h-1.1cap_stem;
+theta1=angle(z5-z7);
+z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+fill z6--z1h--z7--z5{down}..{up}z4--reverse A_serif_edge3--cycle;
+unfill z1b--z1l--z1a--cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("O",11u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("P",10u#+s#,cap_height#,0);
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Q",11u#+s#,cap_height#,comma_depth#);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x12-1.5c; x12=x7l-c; y11=y12=-comma_depth;
+y9=0; x9=x1-c; y9-y10=y10-y11; x11-x10=x10-x9;
+penpos9(cap_bar,90); penpos10(cap_curve,0);
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z9e{dir -20}..tension.8..z10e..tension.8..{right}z11e--z12e;
+fill z12r..z12l..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("R",11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2r;
+y1c=h; y2c=0; x6=x4=x7+2.5u; x3=x1d;
+y4-y5=y5-y6; x5=x8; x9=w-s-1/2cap_bar; y9=0; y6-y8=y8-y9; x10=x6; x9-x8=6/7(x8-x10);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,-90);
+penpos6(cap_bar,-90);
+penpos8(cap_curve,-180);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penstroke z9e{left}..tension.8..{up}z8e{up}..tension.8..{left}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("S",9u#+s#,cap_height#,0);
+x6=x7=1/2w; y6=y7=0;
+S_serif(7,cap_bar,x6-s,1.5border_height);
+y5=11/53h; x5=w-s-1/2(1.9hair);
+y4=28/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2(1.9cap_bar);
+x2=.5w-c; y2=h; z1=z2;
+penpos6(cap_bar,-90);
+penpos5(1.9hair,0);
+penpos4(1.1cap_curve,90);
+penpos3(1.9hair,0);
+penpos2(cap_bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-cap_bar,1.2border_height);
+fill S_serif_edge1;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("T",round (11u#+s#),cap_height#,0);
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("U",12u#+s#,cap_height#,0);
+x1=cap_jut+1/2cap_stem+s;
+x3=w-s-cap_jut-1/2cap_bar;
+y1c=y3c=h; y2=y4=y5=y6=y24=y56=16/53h; x2=x1l;
+x4=x1r; x5=x3l; x6=x3r;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill z2--z4--reverse serif_edge1--cycle;
+fill z5--z6--reverse A_serif_edge3--cycle;
+x7=x1+.5(x3-x1); y7=0; x4-x24=x24-x2; x6-x56=x56-x5;
+penpos24(cap_stem,-180); penpos7(vair,-90);
+penpos56(cap_bar,0);
+penstroke z24e{down}..tension.9..{right}z7e{right}..tension.9..{up}z56e;
+penlabels(range 1 thru 7,24,56);
+endchar;
+
+beginchar("V",12u#,cap_height#,0);
+x1l=cap_jut+s;
+x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w-1/2cap_bar; x5=.5w+1/2cap_bar;
+y4=y5=1/2cap_bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("W",17u#,cap_height#,0);
+x9l=.5w-.3cap_stem;
+x7r=w-s-cap_jut;
+y9l=y7r=y1l=h-cap_bar; x5=x9l+.5(x7r-x9l)-1/2cap_bar; x6=x9l+.5(x7r-x9l)+1/2cap_bar;
+y5=y6=y2=y3=1/2cap_bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(7,cap_bar,theta2,1.3cap_jut,cap_jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+cap_jut;
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+z2=z1l+whatever*dir theta1; x3=x2+cap_bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("X",12u#+s#,cap_height#,0);
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("Y",12u#,cap_height#,0);
+x1l=cap_jut+s;
+x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w;
+y4=8/25h;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+y5c=0; x5=.5w+.5c;
+serif(5,cap_stem,90,cap_jut,cap_jut);
+x6=x5l; x7=x5r;
+z6=z1l+whatever*dir theta1;
+z7=z3r+whatever*dir theta2;
+fill z6--serif_edge5--z7--reverse A_serif_edge3--z2--reverse serif_edge1--z6&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Z",9u#+1.5s#,cap_height#,0);
+x6=s+1/2cap_bar; y6=y7=y8=1/2cap_bar;
+x8e=w-s; x7=x8;
+T_serif(8,cap_bar,border_height,1);
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4cap_bar;
+x4r=w-s-1/4cap_bar; y4=h-cap_bar;
+penpos4(cap_stem,0);
+penpos5(cap_stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2cap_bar;
+x3=w-s-1/2cap_bar; x1e=s+c;
+T_serif(1,cap_bar,border_height,0);
+x2=x1;
+penpos3(cap_bar,90);
+penpos2(cap_bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar("a",9u#-s#+2/7stem#,x_height#,0);
+x5=w-s-1/2bar; y5=0; y4=6/7stem; x4=x3=x5-5/7stem-1/2stem;
+y3=bar_height+2bar; y2=y1=h; x2=s+c+6/20w; x1e=s+c;
+ul_drop(1,drop_round,x2-s-c,5/4drop_round,bar);
+fill ul_drop_edge1;
+penpos2(bar,90);
+penpos3(stem,0);
+penpos4(stem,0);
+penpos5(bar,90);
+penstroke z2e{right}..{down}z3e--z4e{down}..{right}z5e;
+fill z5r..z5l..cycle;
+y6=bar_height+1/2bar; x6=x3+1/2stem; x7=s+1/2stem; y7=7/17bar_height;
+y8=0; x9=x4-1/2stem+1/2bar; x9-x8=x8-x7; y9=y4+3/2bar; x66=x8; y66=y6-c;
+numeric theta[]; theta1=angle(z66-z6);
+penpos6(vair,90);
+penpos66(vair,90);
+penpos7(curve,180);
+penpos8(vair,270);
+penpos9(bar,360);
+penstroke z6e{left}..z66e{dir theta1}..tension.8..{down}z7e{down}..tension.8..z8e{right}..{up}z9e;
+penlabels(range 1 thru 9,66);
+endchar;
+
+beginchar("b",8u#+jut#+.5c#,asc_height#,0);
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+s+.6(w-jut-2s); y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=0.1x_height; y8=.08x_height; y4=0.9x_height; y6=.92x_height;
+x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5)-.4c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=0;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,0);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("c",8u#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=1/2curve+s;
+y2=0.1h; y4=0.9h; x2=x4=x3+3/8(x5-x3);
+x6=w-s-1/2hair; y6=y3-4/5stem;
+penstroke z6e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e;
+fill z6r..z6l..cycle;
+z7=z5;
+ur_drop(7,drop_round,7/8(x6l-x1),3/2drop_round,bar);
+fill ur_drop_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("d",8u#+jut#+.5c#,asc_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.7o,-150);
+penpos7(stem,-180);
+penpos8(.7o,-210);
+x1=x5=s+.4(w-jut-2s); y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2curve+s; x7=w-1/2stem-s-jut;
+y2=.08x_height; y8=0.1x_height; y4=.92x_height; y6=0.9x_height; x2=x4=x3+3/8(x5-x3)+.4c; x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10h=w-s; x9=x10; y9c=h; y10c=0;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,0,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("e",8u#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x5+5/8(x7-x5);
+x10=w-s-1/2bar; y10=y7-5/4stem;
+penstroke z10e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("f",2jut#+stem#+2c#+2s#,asc_height#,0);
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x1; y3=x_height; x4r=x1l-.1stem; y4=x_height+1/2(asc_height-x_height);
+x5l=x4l-.05stem; y5=y4+1.5bar; x6=x1r+.2stem; y6=h-1/2bar;
+penpos3(stem,180);
+penpos4(.75curve,180);
+penpos5(.6curve,180);
+penpos6(bar,90);
+penstroke z3e{dir 95}...{up}z4e..z5e..{right}z6e;
+y6=y7; x7e=w-s;
+ur_drop(7,stem,x7e-x6,drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("g",9u#+c#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+y3=y7=2/3h; x3=1/2curve+s+c; x7=w-3/2stem-s;
+x1=x5=x3+1/2(x7-x3); y1=3/11h; y5=h;
+y2=y8=y1+0.1(8/11h); y4=y6=y1+0.9(8/11h); x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x9=x7; y9=y7+1/2(y6-y7); y10=h; x10=x7l+c;
+x11e=w-s; y11=y10;
+ur_drop(11,.8stem,x11e-x10,drop_round,bar);
+penpos9(hair,180); penpos10(vair,90);
+penstroke z9e{up}..{right}z10e;
+fill ur_drop_edge11;
+y12=y1; x12=x1; y13=y12/2; x13=s+1/4stem+.5c;
+y14=y15=0; x14=x2r; x15=x8r; y16=y18=-d/2; x16=w-s-1/2stem;
+x18=s+.7hair; y17=-d+1/2bar; x17=s+.6bar+9/20(x16-x18); x19=x14; y19l=y14r;
+penpos12(vair,90); penpos13(1/2curve,180); penpos14(curve,270);
+z144=z14; penpos144(curve,90); penpos15(curve,90);penpos16(1/2curve,0);
+penpos17(vair,-90); penpos18(1.4hair,-180); penpos19(1.4vair,-270);
+penstroke z12e{left}..{down}z13e{down}..{right}z14e;
+penstroke z144e--z15e{right}..tension.8..{down}z16e{down}..{left}z17e{left}..{up}z18e{up}..{right}z19e;
+penlabels(range 1 thru 19);
+endchar;
+
+beginchar("h",round (10u#-1.5c#),asc_height#,0);
+w:=w+1;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6h=w-s; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33x_height;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=x_height; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("i",2jut#+stem#+2s#,x_height#+2.1stem#,0);
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+z3=(x1,h); z4=(x1,h-1.1stem);
+fill z3..z4..cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("j",5u#,x_height#+2.1stem#,desc_depth#);
+x1h=w-s; y1c=x_height; y2=0; x2=x1;
+serif(1,stem,-90,1.5jut,0);
+penpos2(stem,0);
+fill z2l--z2r--reverse serif_edge1--cycle;
+z3=(x1-.05stem,h); z4=(x1-.05stem,h-1.1stem);
+fill z3..z4..cycle;
+y5=-1/4desc_depth; x5r=x2r;
+y6=-d+1/2bar; x6=x2l-1/2stem;
+penpos5(.97stem,0);
+penpos6(bar,-90);
+penstroke z2e--z5e{down}..{left}z6e;
+x7e=s; y7=-d+1/2bar;
+dl_drop(7,stem,x6-x7e,drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar("k",round (10u#-c#),asc_height#,0);
+w:=w+1;
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=bar_height; x3l=w-jut-.7jut-s; y3l=x_height-bar;
+x5=x6=x1r; y5=bar_height-bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+y6=y5-bar/cosd (theta1+180);
+A_serif(3,.9bar,theta1,1.8jut,.8jut);
+x4l=w-s-1.2jut-stem; y4l=bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,stem,theta2,.8jut,jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("l",2.4jut#+stem#+2s#,asc_height#,0);
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,1.2jut,0);
+serif(2,stem,90,1.2jut,1.2jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penlabels(1,2);
+endchar;
+
+beginchar("m",14u#,x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6=.5w; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33h;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=h; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+x10h=w-s; y10c=0;
+serif(10,stem,90,jut,jut);
+x9=x10; y9=y5;
+penpos9(stem,0);
+fill serif_edge10--z9r--z9l--cycle;
+x8=x10g; y8=h; y7=y9-1/4bar; x7l=x6r;
+penpos8(vair,90);
+penpos7(bar,180);
+penstroke z9e{up}..{left}z8e{left}..z7e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("n",round (10u#-1.5c#),x_height#,0);
+w:=w+1;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6h=w-s; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33h;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=h; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("o",8u#+s#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2curve-s;
+y2=y8=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("p",8u#+jut#+.5c#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+s+.6(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=0.1h; y8=0.08h; y4=0.9h; y6=.92h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5)-.4c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=-desc_depth;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("q",8u#+jut#+.5c#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.7o,-150);
+penpos7(stem,-180);
+penpos8(.7o,-210);
+x1=x5=s+.4(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2stem-s-jut;
+y2=.08h; y8=0.1h; y4=.92h; y6=0.9h; x2=x4=x3+3/8(x5-x3)+.4c; x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10h=w-s; x9=x10; y9c=h; y10c=-d;
+serif(9,stem,-90,0,jut);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("r",7u#+c#,x_height#,0);
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,1.2jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x4=round (x2h+1/2bar+c); y4=h; y3=23/33h-1/4bar; x3l=x2r;
+penpos4(bar,90);
+penpos3(bar,180);
+penstroke z4e{left}...{down}z3e;
+x5e=w-s; y5=h;
+ur_drop(5,1.1stem,x5e-x4,drop_round,bar);
+fill ur_drop_edge5;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar("s",7u#+c#,x_height#,0);
+x6=x7=1/2w; y6=y7=1/2bar;
+S_serif(7,bar,x6-s,border_height);
+y5=11/53h; x5=w-s-1/2(1.4hair);
+y4=29/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2hair;
+x2=.5w; y2=h; z1=z2;
+penpos6(bar,-90);
+penpos5(1.4hair,0);
+penpos4(1.1curve,90);
+penpos3(1.4hair,0);
+penpos2(bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.9..{dir 170}z4e{dir 170}..tension.9..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-1/3bar,.9border_height);
+fill S_serif_edge1;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("t",7u#-s#,asc_height#,0);
+y1=y2=46/53h; y4c=x_height; x4g=s;
+serif(4,stem,-90,jut,1.4jut);
+x1=x4r; x2=x1-bar;
+y5=7/33x_height; x5=x4; x3=x4l; y3=42/53h;
+penpos5(stem,180); numeric theta[];
+theta1=angle(z3-z2);
+fill z5l--reverse serif_edge4--z5r--cycle;
+fill z4r--z1{up}..{dir theta1}z2--z3--z4l--cycle;
+y6=1/4bar; x6=x4r+.7jut; x7=w-s-1/2bar; y7=13/53h;
+penpos6(vair,270); penpos7(hair,360);
+penstroke z5e{down}..{right}z6e{right}..{up}z7e;
+fill z7r..z7l..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar("u",round (10u#-1.5c#),x_height#,0);
+w:=w+1;
+x2h=w-s; y1c=h; y2c=0; x1=x2;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,0,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6g=s; y6c=h;
+serif(6,stem,-90,jut,0);
+x5=x6; y5=10/33h;
+penpos5(stem,180);
+fill serif_edge6--z5l--z5r--cycle;
+x4=x6+1/2stem+jut; y4=0; y3=y5+1/4bar; x3l=x2l;
+penpos4(vair,270);
+penpos3(bar,360);
+penstroke z5e{down}..{right}z4e{right}..z3e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar("v",10u#-1.5c#,x_height#,0);
+x1l=jut+s;
+x3r=w-s-jut;
+y1l=y3r=h-bar; x4=.5w-1/2bar; x5=.5w+1/2bar;
+y4=y5=1/2bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,bar,theta2,1.3jut,jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("w",13u#+c#,x_height#,0);
+x9l=.5w-.3stem;
+x7r=w-s-jut;
+y9l=y7r=y1l=h-bar; x5=x9l+.5(x7r-x9l)-1/2bar; x6=x9l+.5(x7r-x9l)+1/2bar;
+y5=y6=y2=y3=1/2bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,stem,theta1,jut,jut);
+A_serif(7,bar,theta2,1.1jut,jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+jut;
+serif(1,stem,theta1,jut,jut);
+z2=z1l+whatever*dir theta1; x3=x2+bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("x",9u#+2c#,x_height#,0);
+y3=y4=bar; x3=w-s-jut-1/2stem; x4=s+jut+1/2bar;
+y1=y2=h-bar; x1=s+jut+1/2stem+c; x2=w-s-1.25c-jut-1/2bar;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,stem,theta1-180,jut,jut);
+A_serif(2,1.2bar,theta2-180,jut,jut);
+serif(3,stem,theta1,jut,jut);
+A_serif(4,1.2bar,theta2,jut,1.3jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("y",9u#+s#,x_height#,desc_depth#);
+x1l=s+jut; y1l=h-bar;
+x3r=w-s-.8jut; y3r=h-bar;
+x4=33/60w; y4=-2/5d;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,1.2bar,theta2,1.2jut,.8jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=-d+bar; x6=x4-1.5stem; z7l=z2;
+penpos7(1.2bar,theta2+90);
+penpos5(1.2bar,theta2+90);
+penpos6(1.2bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,1.1stem,1.3u,drop_round,1.2bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("z",7u#+c#,x_height#,0);
+x6=s+1/2bar; y6=y7=y8=1/2bar;
+x8e=w-s; x7=x8;
+T_serif(8,bar,.8border_height,1);
+penpos6(bar,90);
+penpos7(bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-.5c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4bar;
+x4r=w-s-1/4bar; y4=h-bar;
+penpos4(stem,0);
+penpos5(stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2bar;
+x3=w-s-1/2bar; x1e=s+c;
+T_serif(1,bar,.8border_height,0);
+x2=x1;
+penpos3(bar,90);
+penpos2(bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(hex"30",9u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"31",6u#+3/2c#,cap_height#,0);
+y1c=0; x1h=w-s;
+serif(1,cap_stem,90,cap_jut,cap_jut);
+x6=x1f; y5=y6=h; x5=x1; x2=x1a; y2=42/53h;
+penpos4(1.1cap_bar,theta1+45);
+penpos3(1.1cap_bar,theta1+45);
+x4l=s; y4=30/53h; numeric theta[]; theta1=angle(z5-z4l);
+z3l=z5; penstroke z3e--z4e; fill z4l..z4r..cycle;
+fill serif_edge1--z6{dir 110}..{dir 250}z5--z2--cycle;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"32",9u#,cap_height#,0);
+z4=(9/33w,14/53h); z5=(s+11/20cap_bar,0);
+z3=(w-s-.5c-7/16cap_curve,40/53h); z2=(15/33w,h);
+penpos2(cap_bar,90);
+penpos3(7/8cap_curve,0);
+penpos4(1.1cap_bar,-45);
+penpos5(1.1cap_bar,0);
+x6=x5r; y6=y7=7/16cap_stem; y8=1/2cap_bar;
+x8e=w-s; x7=x8e;
+T_serif(8,cap_bar,3/5border_height,1);
+penpos6(7/8cap_stem,90);
+penpos7(7/8cap_stem,90);
+penstroke z6e--z7e; %fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+unfill z11{down}..z9--z10--cycle;
+penstroke z5e{up}..z4e..{up}z3e{up}..{left}z2e;
+z1=z2; ul_drop(1,cap_drop_round,15/33w-3c,1.2cap_drop_round,slab);
+fill ul_drop_edge1;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"33",9u#,cap_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height+c;
+x4=x6-3/2cap_stem; x5=x4-2u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_stem,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..{down}z3e{down}..{left}z44e;
+penstroke z5e--z4e{right}..tension.9..{down}z6e{down}..tension.9..{left}z7e;
+fill z5r..z5l..cycle;
+ul_drop(1,.8cap_drop_round,17/39w-s,cap_drop_round,slab);
+fill ul_drop_edge1;
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.3cap_drop_round,slab);
+fill dl_drop_edge8;
+penlabels(1,2,3,4,5,6,7,8,44);
+endchar;
+
+beginchar(hex"34",9u#+c#,cap_height#,0);
+y1=y2=33/53h; y4c=0; x4h=w-s;
+serif(4,7/8cap_stem,90,cap_jut,cap_jut);
+x1=x4r; x2=x1-bar;
+x3=x4l; y3=28/53h;
+numeric theta[]; theta1=angle(z2-z3);
+fill z3{dir theta1}--z2{dir theta1}..{down}z1--reverse serif_edge4--z3&cycle;
+y5=y6=15/53h; x5=x4e; x6=s+cap_bar;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e; fill z5r..z5l..cycle;
+y7=y6l; x7l=x6; z8=(6/36w, 21/53h);
+z9=(2/3w,h);
+penpos7(cap_bar,180); penpos8(cap_bar,150);
+penpos9(cap_stem,180);
+penstroke z7e{up}..z8e..{dir 70}z9e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"35",9u#,cap_height#,0);
+x7=x4=18/39w; y7=0; y5=cap_bar_height+c; y4=y5+s;
+x8e=s; y8=0; x5=x8d;
+dl_drop(8,cap_drop_round,18/39w-s,1.3cap_drop_round,slab);
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z5e..z4e{right}..tension.85..{down}z6e{down}..tension.85..{left}z7e;
+fill z5r..z5l..cycle;
+fill dl_drop_edge8;
+z3=z5; x2=x3; y2=h;
+penpos3(cap_bar,0); penpos2(cap_bar,0);
+penstroke z3e--z2e; fill z2l..tension 1.7..z2r..tension 1.7..cycle;
+y1r=h; x1=x2r; x13=x6; y13=h; 2(x12-x1)=x13-x12; y12=h-.6cap_stem;
+penpos1(7/8cap_stem,90); penpos13(1.1cap_bar,90); penpos12(3/4cap_stem,90);
+penstroke z1e..z12e..z13e; fill z13r..tension 1.7..z13l..tension 1.7..cycle;
+penlabels(1,2,3,4,5,6,7,8,12,13);
+endchar;
+
+beginchar(hex"36",9u#+.5c#,cap_height#,0);
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=x9=.45w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.08h-c; y4=y6=0.92h+c; x8=x6=x7+11/32(x5-x7)+.6c; x10=x5+10/16(x3-x5)-.6c; x2=x4=x10-1/2c;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.08h-c; y11=y7;
+x11l=x3l+.7c; y10=y8;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e..z10e..z11e;
+z12 = z1;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+z13 = (.5w,.5h);
+currentpicture := currentpicture rotatedaround(z13,180);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"37",9u#-c#,cap_height#,0);
+x4=w-s-1/2cap_bar; y4=h-1/2cap_bar;
+penpos4(cap_bar,0);
+y3=y2=h-7/16cap_stem; y1=h-7/8cap_stem+1/2cap_bar;
+x3=x4l; x1e=s;
+T_serif(1,cap_bar,3/5border_height,0);
+x2=x1e;
+penpos3(7/8cap_stem,90);
+penpos2(7/8cap_stem,90);
+penstroke z2e--z3e;
+fill T_edge1; z44=(x4,h); fill z4r{up}..{left}z44--z3r--z4l--cycle;
+x10=s+c; x11=s; y10=y11=h;
+unfill z1d{up}..z10--z11--cycle;
+unfill z1d{up}..z10--z11--cycle;
+x5r=x3; y5=h-7/8cap_stem;
+x6=14/30w; y6=1/3cap_curve;
+penpos5(cap_bar,0); penpos6(cap_curve,0);
+penstroke z4e{dir -105}..z5e..{dir -95}z6e; fill z6l..z6r..cycle;
+penlabels(1,2,3,4,5,6,10,11,12);
+endchar;
+
+beginchar(hex"38",10u#-s#,cap_height#,0);
+x6=x4=x2=x8=1/2w; y6=0; y2=h;
+y5=11/53h; y7=13/53h; x5=w-s-1/2(1.9hair);
+y4=y8=28/53h; y3=42/53h; y1=40/53h; x3=2s+1/2(1.9cap_bar);
+x1=w-2s-1/2(1.9cap_bar); x7=w-x5;
+penpos6(cap_bar,-90);
+penpos5(2.5hair,0);
+penpos4(cap_curve,90);
+penpos3(2.5hair,0);
+penpos2(cap_bar,-90);
+penpos1(2.5hair,-180);
+penpos7(2.5hair,-180);
+penpos8(cap_bar,-270);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"39",9u#+.5c#,cap_height#,0);
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=x9=.45w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.08h-c; y4=y6=0.92h+c; x8=x6=x7+11/32(x5-x7)+.6c; x10=x5+10/16(x3-x5)-.6c; x2=x4=x10-1/2c;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.08h-c; y11=y7;
+x11l=x3l+.7c; y10=y8;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e..z10e..z11e;
+z12 = z1;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+beginchar(oct"56",cap_stem#+2s#,cap_stem#,0);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+endchar;
+
+beginchar(oct"54",cap_stem#+2s#+c#,cap_stem#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"60",cap_stem#+2s#+c#,asc_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(oct"41", cap_stem#+2s#,cap_height#,0); "Exclamation mark";
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+ x3=.5w-1/2cap_bar; x4=.5w+1/2cap_bar; y3=y4=3/2cap_stem;
+ x6=x1; x5=x2; y5=y6=h;
+ fill z6--z3..z4--z5{up}..z6&cycle;
+endchar;
+
+beginchar(hex"22",2cap_stem#+3s#+2c#,cap_height#,0);
+ z1=(s,h-1/2cap_stem); z2=(x1+cap_stem+c,h-1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-cap_stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"5C",2cap_stem#+3s#+2c#,cap_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(x1+cap_stem+c,1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"7b",10u#-1.5c#,x_height#,0); "En dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"3D",10u#+1.5c#,x_height#,0);
+ z1=(s+1/2bar,bar_height-3c); z2=(w-s-1/2bar,bar_height-3c);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+3c); z4=(w-s-1/2bar,bar_height+3c);
+ penpos3(bar,90); penpos4(bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"23",13u#,asc_height#,body_depth#);
+ z1=(s+1/2bar,bar_height-5c); z2=(w-s-1/2bar,bar_height-5c);
+ penpos1(1.5bar,90); penpos2(1.5bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+5c); z4=(w-s-1/2bar,bar_height+5c);
+ penpos3(1.5bar,90); penpos4(1.5bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ z5=(.5w-5c,bar_height); z6=(.5w+5c,bar_height);
+ z7=z5+whatever*dir 76; y7=h; z8=whatever[z5,z7]; y8=-d;
+ penpos7(1.5bar,0); penpos8(1.5bar,0);
+ fill z7l{up}..{down}z7r--z8r{down}..{up}z8l--z7l&cycle;
+ z9=z6+whatever*dir 76; y9=h; z10=whatever[z6,z9]; y10=-d;
+ penpos9(1.5bar,0); penpos10(1.5bar,0);
+ fill z9l{up}..{down}z9r--z10r{down}..{up}z10l--z9l&cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"7c",14u#,x_height#,0); "Em dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(oct"55",2cap_jut#+cap_stem#+2s#,x_height#,0); "hyphen";
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"5F",1.1stem#+2s#,x_height#+2.1stem#,0);
+ z1=(.5w,h); z2=(.5w,h-1.1stem);
+ fill z1..z2..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7E",7u#,body_height#,0);
+ pickup pencircle xscaled .6pt yscaled .2pt rotated 55;
+ z4=(w-s-c,h-s); x1=s+c; y1=y4-1/2cap_stem;
+ y2-y1=y4-y3=3(y4-y1); z2-z1=z4-z3=whatever * dir 55;
+ draw z1..controls z2 and z3..z4;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"3C",7u#-2c#,x_height#,0); "looks like <<";
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3E",7u#-2c#,x_height#,0);
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ z10=(.5w,.5h);
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ currentpicture := currentpicture rotatedaround(z10,180);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3B",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+3/2c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ z8=(s,h-1/2cap_stem); z9=(w-s,h-1/2cap_stem);
+ fill z8..z9..cycle;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(hex"3A",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ fill z1..z2..cycle;
+ penlabels(1,2,3,4);
+ z3=(s,1/2cap_stem); z4=(w-s,1/2cap_stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2B",2cap_jut#+cap_stem#+2s#,x_height#,0);
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ x3=x4=.5w; y3=y2+1/2(x2-x1); y4=y2-1/2(x2-x1);
+ penpos3(1.8bar,0); penpos4(1.8bar,0);
+ penstroke z3e--z4e;
+ fill z3r..z3l..cycle; fill z4r..z4l..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2F",2s#+bar#,body_height#,body_depth#);
+ z1=(.5w,h-.5bar); z2=(.5w,-d+.5bar);
+ %pickup pencircle xscaled bar yscaled bar;
+ penpos1(bar,0); penpos2(bar,0);
+ penstroke z1e--z2e; fill z1r..z1l..cycle;
+ fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"27",cap_stem#+2s#+c#,x_height#+2.1stem#,0);
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ z6=(.5w-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"28",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"29",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"86",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"87",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"5B",2s#+3cap_bar#,body_height#,body_depth#);
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x2,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z1r..z1l..cycle; fill z6r..z6l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"5D",2s#+3cap_bar#,body_height#,body_depth#);
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x1,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z2r..z2l..cycle; fill z5r..z5l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"B9",16u#,cap_height#,0);
+ x1=x2=cap_jut+1/2cap_bar+s+cap_stem;
+ x3=w-x1-1/2cap_stem; y1c=h; y4=y5=0;
+ x4=x3r; x5=x3l; y2=12/53h; y3=h-y2;
+ x8=x2-stem; y8=0; z9=z8;
+ dl_drop(9,.9cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill dl_drop_edge9; penpos8(bar,-90);
+ serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+ penpos2(bar,0); penpos3(bar,0);
+ penstroke z2e{down}..{left}z8e;
+ fill z2l--z2r--reverse serif_edge1--cycle;
+ numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+ theta1=angle(z5-z7); x10=x3+stem; y10=h; z11=z10;
+ penpos10(bar,-90); penstroke z3e{up}..{right}z10e;
+ ur_drop(11,.9cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill ur_drop_edge11;
+ z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+ fill z6--z1h--z7--z5{down}..{up}z4--z3r--z3l--cycle;
+ unfill z1b--z1l--z1a--cycle;
+ y12=y13=2cap_bar; x12=x4+2cap_bar+s; x13=w-2s;
+ penpos12(.4stem,90); penpos13(.4stem,90);
+ penstroke z12e--z13e; y16=y11d-4.5cap_bar;
+ x13-x14=x14-x12; x16=x14; y14=y13+4.5cap_bar;
+ x17=w-s-.2stem; x17-x16=x16-x15; y16-y15=y15-y14;
+ y17=y15; penpos17(.7stem,0); penpos16(bar,90);
+ penpos15(.7stem,180); penpos14(bar,270);
+ penstroke z17e{up}..{left}z16e{left}..{down}z15e{down}..{right}z14e{right}..{up}z17e;
+ fill z12l..tension1.2..z12r..tension1.2..cycle;
+ fill z13l..tension1.2..z13r..tension1.2..cycle;
+ penlabels(range 1 thru 17);
+endchar;
+
+beginchar(hex"24",9u#-s#,body_height#,body_height#-cap_height#);
+ x6=x7=1/2w-c; y6=y7=0;
+ dl_drop(7,.9cap_drop_round,x6-s,1.5drop_round,cap_bar);
+ y5=12/53cap_height; x5=w-s-1/2(1.9hair);
+ y4=1/2cap_height; x4=19/38w; y3=41/53cap_height; x3=s+1/2(1.9cap_bar);
+ x2=.5w+c; y2=cap_height; z1=z2;
+ penpos6(cap_bar,-90); penpos5(1.9hair,0);
+ penpos4(1.1cap_curve,90); penpos3(1.9hair,0);
+ penpos2(cap_bar,-90);
+ penstroke z6e{right}..z5e{up}..tension.8..z4e..tension.8..{up}z3e..{right}z2e;
+ fill dl_drop_edge7;
+ ur_drop(1,.9cap_drop_round,w-s-x2,1.5drop_round,cap_bar);
+ fill ur_drop_edge1;
+ z8=(.5w,h); z9=(.5w,-d);
+ penpos8(cap_bar,0); penpos9(cap_bar,0);
+ penstroke z8e--z9e;
+ fill z9r..z9l..cycle; fill z8r..z8l..cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"25",12u#,asc_height#,0);
+penpos1(vair,90); penpos2(.6curve,0);
+penpos3(vair,-90); penpos4(.6curve,-180);
+y1=.55h; y3=h; y3-y4=y4-y1; y2=y4; x2=1/4curve+s; x4=5/2curve+s;
+x4-x1=x1-x2; x3=x1;
+penstroke z1e{left}..tension.9..{up}z2e{up}..tension1.2..{right}z3e..tension.9..{down}z4e{down}..tension1.2..{left}z1e..cycle;
+penpos5(vair,90); penpos6(.6curve,0);
+penpos7(vair,-90); penpos8(.6curve,-180);
+y5=0; y7=.45h; y7-y8=y8-y5; y6=y8; x8=w-1/4curve-s; x6=w-5/2curve-s;
+x8-x5=x5-x6; x7=x5;
+penstroke z5e{left}..tension.9..{up}z6e{up}..tension1.2..{right}z7e..tension.9..{down}z8e{down}..tension1.2..{left}z5e..cycle;
+x9l=x7; y9=h; x10r=x1; y10=0;
+penpos9(1.2bar,0); penpos10(1.2bar,0);
+penstroke z9e--z10e;
+penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"26",14u#,cap_height#,0);
+x4=x8=x3+.5curve; y6=0; y2=h; x2=x3+1.3cap_curve;
+y7=13/53h; y5=9/53h; x5=x7+3.5cap_curve; x6=x7+1.8cap_curve;
+y4=y8=30/53h; y1=44/53h; y3=42/53h; x3=4s+curve;
+x1=x3+2.1cap_curve; x7=s+1/2cap_curve;
+x10=w-s; y10=9/53h; x10-x9=x9-x5; y9=1/5cap_curve;
+th:=angle(z4-z5)+5; th1:=th-11; x11h=w-s-c; y11h=y1-4s;
+A_serif(11,cap_bar,-110,cap_jut,cap_jut); z12l=z11a;
+penpos6(cap_bar,-90); penpos5(cap_stem,45);
+penpos4(cap_stem,45); penpos3(2.5hair,0);
+penpos2(cap_bar,-90); penpos1(2hair,-180);
+penpos7(cap_curve,-180); penpos8(cap_bar,-250);
+penpos9(.5cap_curve,70); penpos10(cap_bar,150);
+penpos12(cap_bar,0);
+penstroke z10e..z9e..z5e{dir th}..{dir th1}z4e..tension.9..{up}z3e{up}..tension1..z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e{dir 8}..{dir 70}z12e;
+fill z12l--z12r..reverse A_serif_edge11--cycle;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"40",14u#,x_height#+2curve#,2curve#);
+a_width:=9u+c-2s;
+x1=2s+a_width-s-3/4stem+1.5curve; y1=x_height; y2=7/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=3s+a_width+1.5curve; y4=15/33x_height;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.2vair,270); penpos4(bar,360);
+x5=x1-1.3stem; y5=x_height; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c+1.3curve; y6=.54x_height; y8=.46x_height; z8l=whatever[z1r,z2r];
+x13=x5; y13=h-1/2bar; x14=s+1/2bar; y14=y6; y15=-d+1/2bar; x15=x7;
+x16=x4; y16=-d+3bar; penpos7(vair,270); penpos16(bar,270);
+penpos13(bar,90); penpos14(bar,180); penpos15(bar,270);
+penpos8(2bar,0); penpos5(vair,90); penpos6(curve,180);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 80}z4e..z13e{left}..z14e..{right}z15e..z16e;
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=x_height-c; z10=(x1r+c,x_height); z11=(x1l-c,x_height);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+fill z16r..z16l..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar(hex"12",2cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=s+.45cap_stem*cosd 45;
+x2=w-s+cap_bar*cosd 45; z2=z1+whatever*dir -45;
+penpos1(.9cap_stem,45); penpos2(cap_bar,45);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"13",2cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=w-s-.45cap_stem*cosd 45;
+x2=s-cap_bar*cosd 45; z2=z1+whatever*dir -135;
+penpos1(.9cap_stem,135); penpos2(cap_bar,135);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"3F",7u#+c#,cap_height#,0);
+ x1=s+4/5cap_stem; y1=1/2cap_stem;
+ penpos1(cap_stem,0);
+ fill z1r..z1l..cycle;
+ y2=cap_stem+cap_bar; x2=x1;
+ z3l=z2l+whatever*dir 96; y3l=25/53h;
+ penpos2(cap_bar,0); penpos3(cap_bar,0);
+ penstroke z2e--z3e;
+ z4l=z3l; penpos4(cap_bar,0);
+ y5=y4-2bar; x5=x4+3cap_bar; penpos7(cap_bar,-90);
+ x6=w-s-1/2cap_curve; y6=37/51h; x7=12/31w; y7=h;
+ penpos5(cap_bar,90); penpos6(cap_curve,180); z8=z7;
+ penstroke z4e{dir -69}..z5e{dir 10}..tension1..{up}z6e{up}..tension.9..{left}z7e;
+ ul_drop(8,.8cap_drop_round,x7-s,cap_curve,cap_bar);
+ fill ul_drop_edge8;.
+ fill z3r..tension1.2..z3l..tension1.2..cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"10",2jut#+stem#+2s#,x_height#,0);
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"11",5u#,x_height#,desc_depth#);
+x1h=w-s; y1c=x_height; y2=0; x2=x1;
+serif(1,stem,-90,1.5jut,0);
+penpos2(stem,0);
+fill z2l--z2r--reverse serif_edge1--cycle;
+y5=-1/4desc_depth; x5r=x2r;
+y6=-d+1/2bar; x6=x2l-1/2stem;
+penpos5(.97stem,0);
+penpos6(bar,-90);
+penstroke z2e--z5e{down}..{left}z6e;
+x7e=s; y7=-d+1/2bar;
+dl_drop(7,stem,x6-x7e,drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(hex"2A",3cap_stem#+3s#,body_height#,0);
+ x1=x2=x3=x4=.5w; y1=h-1/2stem; y2=y1-cap_stem; y3=y2-bar; y4=y3-bar;
+ penpos1(stem,0); penpos2(cap_bar,0); penpos3(2cap_bar,0);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle;
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,60);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,120);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,180);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,240);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,300);
+ penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"0B",4jut#+2stem#+c#+3s#,asc_height#,0);
+w:=w+1;
+numeric dist; dist := 2jut+2stem-3c;
+x1g=x2g=s+dist; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x1; y3=x_height; x4r=x1l-.1stem; y4=x_height+1/2(asc_height-x_height);
+x5l=x4l-.05stem; y5=y4+1.5bar; x6=round (x1r+.2stem); y6=h-1/2bar;
+penpos3(stem,180);
+penpos4(.75curve,180);
+penpos5(.6curve,180);
+penpos6(bar,90);
+penstroke z3e{dir 95}...{up}z4e..z5e..{right}z6e;
+y6=y7; x7e=w-s;
+ur_drop(7,stem,x7e-x6,drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+x11g=x12g=s; y11c=x_height; y12c=0;
+serif(11,stem,-90,jut,jut);
+serif(12,stem,90,jut,jut);
+fill serif_edge12--reverse serif_edge11--cycle;
+x13=x11; y13=x_height; x14l=x13l; y14=x_height+1/2(asc_height-x_height);
+x15l=x14l; y15=y14+1.5bar; x16=x11r+.8stem; y16=h-1/2bar;
+x17r=x5l; y17=y5;
+penpos13(stem,180);
+penpos14(.75curve,180);
+penpos15(.6curve,180);
+penpos16(bar,90);
+penpos17(bar,0);
+penstroke z13e{dir 95}...{up}z14e..z15e..{right}z16e{right}..{down}z17e;
+fill z11d--z1c--z1b--z11e--cycle;
+penlabels(1,2,3,4,5,6,7,11,12,13,14,15,16,17);
+endchar;
+
+beginchar(hex"5E",6u#,body_height#,0);
+ x1=s+.45cap_bar*cosd 45; x2=w/2; y2=h-bar;
+ z1=z2+whatever*dir -135; x3=w-x1; z3=z2+whatever*dir -45;
+ penpos1(bar,135); penpos2(2bar,90); penpos3(bar,45);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"16",6u#,body_height#,0);
+ x1=s; x2=w-x1; y1=y2=h-4bar;
+ penpos1(.8bar,90); penpos2(.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7F",2stem#+4s#,x_height#+2.1stem#,0);
+ z1=(s+.5stem,h); z2=(s+.5stem,h-stem);
+ fill z1..z2..cycle;
+ z3=(w-s-.5stem,h); z4=(w-s-.5stem,h-stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+ligtable CYR_A: "A":
+ CYR_O kern -k#,
+ "O" kern -k#,
+ CYR_ES kern -k#,
+ "C" kern -k#,
+ CYR_TE kern -k#,
+ CYR_U kern -kk#,
+ CYR_EF kern -k#,
+ CYR_CHE kern -kkk#,
+ CYR_HARD_SIGN kern -k#,
+ "W" kern -kkk#,
+ "V" kern -kkk#,
+ "Y" kern -kkk#,
+ "T" kern -k#,
+ "w" kern -kk#,
+ "v" kern -kk#,
+ %CYR_o kern -k#,
+ %CYR_es kern -k#,
+ CYR_che kern -kk#;
+ %CYR_ie kern -k#,
+ %CYR_ye kern -k#;
+
+ligtable CYR_GHE: CYR_TE: "T":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_DE kern -k#,
+ CYR_EL kern -kk#,
+ CYR_el kern -k#,
+ CYR_o kern -k#,
+ "o" kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#;
+
+ligtable CYR_O: CYR_E: CYR_YU:
+ CYR_U kern -k#,
+ "X" kern -k#,
+ CYR_HA kern -k#;
+
+ligtable CYR_ER: "P":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_EL kern -k#,
+ CYR_el kern -k#;
+
+ligtable CYR_U:
+ CYR_A kern -kkk#,
+ "A" kern -kkk#,
+ CYR_O kern -k#,
+ "O" kern -k#,
+ CYR_ES kern -k#,
+ "C" kern -k#,
+ CYR_el kern -kkk#,
+ CYR_EL kern -kk#,
+ CYR_EF kern -k#;
+
+ligtable CYR_HA: "X":
+ "O" kern -k#,
+ CYR_O kern -k#,
+ "Q" kern -k#,
+ "C" kern -k#,
+ CYR_ES kern -k#,
+ "G" kern -k#;
+
+ligtable CYR_ghe: CYR_te:
+ CYR_de kern -k#,
+ CYR_el kern -k#;
+
+ligtable CYR_o: CYR_er: CYR_e: CYR_yu: CYR_ye:
+ "x" kern -k#,
+ CYR_ha kern -k#;
+
+ligtable CYR_u: "y":
+ CYR_de kern -k#,
+ CYR_el kern -k#,
+ CYR_ie kern -k#,
+ "e" kern -k#,
+ CYR_es kern -k#,
+ "c" kern -k#,
+ CYR_ye kern -k#,
+ CYR_ef kern -k#;
+
+ligtable CYR_ha: "x":
+ CYR_ie kern -k#,
+ "d" kern -k#,
+ "e" kern -k#,
+ "o" kern -k#,
+ "q" kern -k#,
+ CYR_o kern -k#;
+
+ligtable "D": "O": "Q":
+ "X" kern -k#;
+
+ligtable "L":
+ "T" kern -kk#,
+ CYR_TE kern -kk#,
+ "Y" kern -kk#;
+
+ligtable "V": "W":
+ "A" kern -kkk#,
+ CYR_A kern -kkk#,
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_EL kern -k#,
+ CYR_el kern -kk#,
+ CYR_a kern -k#,
+ "d" kern -k#;
+
+ligtable "Y":
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "d" kern -k#,
+ "A" kern -kk#,
+ CYR_A kern -kk#;
+
+ligtable "a": CYR_a:
+ "V" kern -kk#,
+ "W" kern -kk#,
+ "T" kern -k#,
+ CYR_TE kern -k#,
+ "y" kern -k#,
+ CYR_u kern -k#,
+ "v" kern -k#,
+ "u" kern -k#,
+ CYR_che kern -kk#,
+ "Y" kern -kk#;
+
+ligtable "e": CYR_ie:
+ CYR_ha kern -k#,
+ "v" kern -k#,
+ "w" kern -k#,
+ "V" kern -k#,
+ "W" kern -k#;
+
+ligtable "f":
+ "f" =: hex"0B";
+
+ligtable "k": "l":
+ CYR_o kern -k#,
+ "o" kern -k#;
+
+ligtable "m": "n":
+ "y" kern -k#,
+ CYR_u kern -k#,
+ CYR_o kern -k#,
+ "o" kern -k#;
+
+ligtable "o": "b": "p":
+ "e" kern k#,
+ CYR_ie kern k#,
+ "o" kern k#,
+ CYR_o kern k#,
+ "v" kern -k#,
+ "w" kern -k#,
+ "V" kern -k#,
+ "W" kern -k#,
+ "x" kern -k#,
+ CYR_ha kern -k#, 1:: "!" kern kk#;
+
+ligtable "v": "w":
+ "A" kern -kk#,
+ CYR_A kern -kk#,
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ "d" kern -k#;
+
+ligtable hex"37":
+ CYR_A kern -kk#,
+ "A" kern -kk#;
+ligtable oct"55":
+ oct"55" =: hex"7b";
+ligtable hex"7b":
+ oct"55" =: hex"7c";
+end.
diff --git a/fonts/obnov/obn12.mf b/fonts/obnov/obn12.mf
new file mode 100644
index 0000000000..756a6acd59
--- /dev/null
+++ b/fonts/obnov/obn12.mf
@@ -0,0 +1,3485 @@
+%written by Basil Solomykov, Russia
+%(C) Copyright 2011 LPPL (LaTeX Project Public License)
+%Font Ordinary New (Obyknovennaya novaya)
+
+design_size := 12pt#;
+o# := .54pt#;
+u# := 22/35pt#;
+bar# := 12/36pt#;
+slab# := 12/36pt#;
+cap_bar# := 12/36pt#;
+vair# := 12/36pt#;
+hair# := 12/36pt#;
+jut# := 24/36pt#;
+cap_jut# := 31.2/36pt#;
+stem# := 36/36pt#;
+curve# := 37.2/36pt#;
+cap_stem# := 43.2/36pt#;
+cap_curve# := 44.64/36pt#;
+s# := 0.5pt#;
+c# := .25pt#;
+
+input obn_lcyw_code.mf;
+font_identifier "OBN";
+mode_setup;
+clear_pen_memory;
+
+font_size design_size*pt#;
+asc_height# := 24/36*design_size*pt#;
+cap_height# := 24/36*design_size*pt#;
+body_height# := 27/36*design_size*pt#;
+x_height# := 15.4/36*design_size*pt#;
+desc_depth# := 8/36*design_size*pt#;
+body_depth# := 9/36*design_size*pt#;
+comma_depth# := 5/36*design_size*pt#;
+x_depth# := 4/5comma_depth#;
+bar_height# := .52x_height#;
+cap_bar_height# := .52cap_height#;
+cap_bar2_height# := .45cap_height#;
+border_height# := comma_depth#;
+cap_drop_round# := 3.9*slab#;
+drop_round# := 6.3/8cap_drop_round#;
+A_bracket# := 1.4pt#;
+bracket# := pt#;
+
+font_x_height x_height#;
+font_normal_space 6u#;
+font_normal_stretch 4u#;
+font_normal_shrink 2u#;
+font_quad 16u#;
+font_extra_space 6u#;
+
+k# := .8u#;
+kk# := 1.5u#;
+kkk# := 3u#;
+
+serif_darkness := 1/30;
+define_pixels(bracket,cap_o_width,sss_width,css_width);
+define_pixels(c,s,cap_bar_height,cap_bar2_height);
+define_pixels(border_height,A_bracket,cap_drop_round,x_depth,drop_round);
+define_whole_blacker_pixels(stem,cap_stem,curve,cap_curve,bar,slab,cap_bar,vair,hair);
+define_whole_pixels(asc_height,cap_height,x_height,u,desc_depth,comma_depth,bar_height,body_height,body_depth,u,o,cap_jut,jut);
+%define_corrected_pixels();
+lowres_fix(stem,curve) 1.2;
+lowres_fix(cap_stem,cap_curve) 1.2;
+if jut=cap_jut: jut:=jut-1; fi
+
+def serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g if left_jut=0: -1/2slab fi +1/2slab; x$d=x$e=x$h if right_jut=0: +1/2slab fi-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def serif_edge suffix $ =
+(serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse serif_bracket($f,$r,$e)) enddef;
+
+def serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...serif_darkness[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def T_serif(suffix $)(expr slab, bord_height, direction)= %Direction: 0-left, 1-right;
+penpos$(slab,if direction=1: - fi 90);
+x$=x$a=x$g; y$g-y$=y$-y$a=1/2slab;
+x$b=x$a + if direction=0: - fi .882bord_height; y$b=y$d=y$c+1/2slab;
+x$c=x$b + if direction=0: - fi 1/2slab; y$c=y$a-bord_height;
+x$d=x$e=x$b + if direction=0: - fi slab;
+y$e=y$g-1/2slab; y$f=y$g; x$f=x$c;
+labels($a,$b,$c,$d,$e,$f,$g) enddef;
+
+def T_edge suffix $ =
+(z$a..{down}z$b..z$c..z$d--z$e{up}..z$f--z$g--cycle) enddef;
+
+def A_serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(A_bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g+1/2slab; x$d=x$e=x$h-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def A_serif_edge suffix $ =
+(A_serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse A_serif_bracket($f,$r,$e)) enddef;
+
+def A_serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...0.6[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def ur_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a= 1/2slab;
+x$e=x$a + drop_length; y$e=y$f- drop_height;
+x$d=x$e - 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e - drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d - 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ur_drop_edge suffix $ =
+(z$f{right}..tension.9..{down}z$e{down}..{left}z$d{left}..{up}z$c{up}..z$b...{left}z$a--cycle) enddef;
+
+def ul_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$f- drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d + 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ul_drop_edge suffix $ =
+(z$f{left}..tension.9..{down}z$e{down}..{right}z$d{right}..{up}z$c{up}..z$b...{right}z$a--cycle) enddef;
+
+def dl_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, -90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$a + drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e + 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d - drop_round); x$b=x$d + 1/90drop_round;
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def dl_drop_edge suffix $ =
+(z$a{left}..tension.9..{up}z$e{up}..{right}z$d{right}..{down}z$c..{dir 250}z$b{dir -80}..{right}z$f--cycle) enddef;
+
+def S_serif (suffix $)(expr serif_slab, serif_length, serif_height)=
+%penpos$(serif_slab,90);
+x$a=x$i=x$; y$i=y$+1/2serif_slab; y$a=y$-1/2serif_slab;
+x$f=x$e=x$a+serif_length; y$f=y$g-1/2serif_slab; y$e=y$c=y$d+1/2serif_slab;
+x$g=x$f-1/2serif_slab; y$g=y$i-1/2serif_slab;
+y$h=y$f-1/4serif_slab; x$h=x$g-serif_slab;
+x$c=x$e-serif_slab; x$d=x$e-1/2serif_slab; y$d=y$g-serif_height;
+x$b=x$h-6/18serif_length; y$b=y$h-1/2slab;
+labels ($a,$b,$c,$d,$e,$f,$g,$h,$i) enddef;
+
+def S_serif_edge suffix $ =
+(z$a{right}...z$b..{dir -80}z$c..z$d..z$e--z$f{up}..z$g{left}..z$h{dir 150}..{left}z$i--cycle) enddef;
+
+beginchar(CYR_A,13u#+s#,cap_height#,0);
+show cap_drop_round, cap_stem, cap_curve;
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar(CYR_BE,11u#+s#,cap_height#,0);
+show drop_round, stem, curve;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=y5=h-1/2slab;
+y1c=h; y2c=0; x5e=w-s-1/2cap_stem;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h; x4=w-s-1/2cap_stem-border_height;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_VE,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+css_width := x8 - x2r; save css_width;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar(CYR_GHE,9u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; x3=x4+2u;
+y5=y3; x5e=w-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_DE,12u#,cap_height#,comma_depth#);
+x10e=w-s; y10c=-d;
+y4c=h; x4h=w-s-1/2slab;
+x9=x4; y9c=0;
+x3=x8=x9d; y8=y7=1/2cap_bar; y3=y2=h-y8;
+x6e=s; y6=y10; x7=border_height+s;
+y5=y9; x5g=s+.5u; y1=y4; x1=x5+1.5u;
+x2=x1c;
+A_serif(1,1.2cap_bar,-96,10/7cap_jut,cap_jut);
+A_serif(5,1.2cap_bar,81,6/7cap_jut,cap_jut);
+serif(4,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+penpos2(cap_bar,90);
+penpos3(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_bar,90);
+penstroke z7e--z8e; penstroke z2e--z3e;
+fill A_serif_edge5...reverse A_serif_edge1...cycle;
+fill serif_edge9--reverse serif_edge4--cycle;
+T_serif(6,slab,border_height,0);
+T_serif(10,slab,border_height,1);
+fill T_edge6;
+fill T_edge10;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_IE,10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_YE,10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+x12=x13=x2r; y12=h+1/4cap_stem; y13=y12+cap_stem;
+x14=x15=x12+2cap_stem; y14=y12; y15=y13;
+fill z12..z13..cycle; fill z14..z15..cycle;
+penlabels(range 1 thru 15);
+endchar;
+
+beginchar(CYR_ZHE,round (16u#+s#),cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; y7=y4=y10=y11=cap_bar_height; x4=x7-1.5u;
+x10=x8r; x11=x10+1.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+x6=s; y6=0; y4-y5=y5-y6; x4-x5=x5-x6;
+penpos7(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,90);
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z6e{right}..tension.8..{up}z5e{up}..tension.8..{right}z4e--z7e;
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+x3=x5+1/2cap_stem; y2=h; x4-x3=x3-x2; y2-y3=y3-y4;
+penpos3(hair,0);
+penpos2(cap_bar,90);
+penstroke z4e{left}..tension.8..{up}z3e{up}..tension.8..{left}z2e;
+y1=h; x1a=x2; fill z6l..z6r..cycle;
+ul_drop(1,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ul_drop_edge1; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ZE,10u#+.5s#,cap_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height;
+x4=x6-3/2cap_stem; x5=x4-3u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3c,1.4border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.5cap_drop_round,slab);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_I,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,0); penpos6(cap_bar,0);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar(CYR_SHORT_I,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,0); penpos6(cap_bar,0);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+x7=.5w; y7=h+cap_bar;
+ur_drop(7,.8cap_drop_round,1/2(x3l-x1r),.8cap_drop_round,1.2cap_bar);
+fill ur_drop_edge7 rotatedaround(z7,180);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_KA,12u#+s#,cap_height#,0);
+x8g=x9g=s; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+y10=y11=cap_bar_height;
+x10=x8r; x11=x10+2.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_EL,13u#+1/2s#,cap_height#,0);
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.85cap_drop_round; y3=1.1cap_drop_round;
+dl_drop(1,1.05cap_drop_round,cap_drop_round,1.1cap_drop_round,slab);
+fill dl_drop_edge1;
+penpos2(cap_bar,-90);
+penpos3(cap_bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-slab;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,cap_bar,theta1,1.3cap_jut,1.3cap_jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,cap_stem,-90,cap_jut,cap_jut);
+serif(8,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_EM,13u#+1.5s#,cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,.51cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 109; y7l=10/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EN,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_O,11u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+cap_o_width := x7-x3; save cap_o_width;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_PE,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ER,10u#+s#,cap_height#,0);
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_ES,10u#+s#,cap_height#,0);
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_TE,round (11u#+s#),cap_height#,0);
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_U,13u#+s#,cap_height#,0);
+x1l=s+cap_jut; y1l=.98h-cap_bar;
+x3r=w-s-.8cap_jut; y3r=.98h-cap_bar;
+x4=33/60w; y4=6/53h;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,1.2cap_bar,theta2,1.2cap_jut,.8cap_jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=0; x6=x4-1.2cap_stem; z7l=z2;
+penpos7(1.2cap_bar,theta2+90);
+penpos5(1.2cap_bar,theta2+90);
+penpos6(1.2cap_bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,cap_drop_round,2u, 10/53h, round 1.2cap_bar);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EF,round (14u#+s#),cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1=x2=.5w; y2c=0; y1h=h;
+y6=y7=y8=y9=1.3cap_jut; y4=y3=y11=y12=h-1.3cap_jut+1/2slab;
+x3=x7=x2l; x8=x12=x2r; x4=x6=x3-u; x11=x9=x12+u;
+x5=s+1/2cap_curve; x10-x1=x1-x5; y4-y5=y5-y6; y10=y5;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,270);
+penpos7(cap_bar,270);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+penpos10(cap_curve,0);
+penpos11(cap_bar,90);
+penpos12(cap_bar,90);
+penstroke z3e--z4e{left}..tension.8..{down}z5e{down}..tension.8..{right}z6e--z7e;
+penstroke z8e--z9e{right}..tension.8..{up}z10e{up}..tension.8..{left}z11e--z12e;
+penlabels (range 1 thru 12);
+endchar;
+
+beginchar(CYR_HA,12u#+s#,cap_height#,0);
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_TSE,12.5u#+s#,cap_height#,comma_depth#);
+x1=x2=x5=cap_jut+1/2cap_stem+s;
+x3=x4=x6=w-x1-.5u; y5=y6=y2h;
+y1c=y3c=h; y2c=y4c=0; x7e=w-s; y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e;
+T_serif(7,cap_bar,border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_CHE,12u#+s#,cap_height#,0);
+x1=cap_jut+1/2cap_stem+s;
+x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,-90,cap_jut,cap_jut);
+serif(3,cap_stem,90,cap_jut,cap_jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=cap_bar_height-1/2cap_bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-2cap_bar;
+penpos6(cap_stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SHA,16u#+s#,cap_height#,0);
+if .5w <> good.x .5w: change_width; fi
+x1=x2=good.x (cap_jut+1/2cap_stem+s);
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=good.x .5w; y5=y1; y6=y2;
+y9b=slab; x9=good.x w-x1;
+x10=x9; y10b=h-slab;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_SHCHA,16.5u#+s#,cap_height#,comma_depth#);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=slab; x9h=w-s-.5u;
+x10=x9; y10b=h-slab;
+x11e=w-s; y11=y9h;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,slab,border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_HARD_SIGN,13.5u#+c#,cap_height#,0);
+x2r=x5-css_width; x1=x2; x8e=s; y8g=h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+x7=x1d; y1c=h; y2c=0;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=round(x3+5u-cap_stem);
+y6=y7=y2h;
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(8,cap_bar,border_height,0);
+fill T_edge8;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YERU,16u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+y3=y4=cap_bar_height; x3=round x2r; x4=x6=round (x3+5u-cap_stem) - 1;
+y4-y5=y5-y6; x5=x2r+css_width; y8b=slab; x8h=w-s;
+y6=y7=y2h; x9=x8; y9b=h-slab;
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(8,cap_stem,90,cap_jut,cap_jut);
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge9--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SOFT_SIGN,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=x3+5u-cap_stem;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y6=y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_E,10u#+.5s#,cap_height#,0);
+x1=16/39w; x5=.5w; y1=0; y5=h;
+y7=.5h; x7=w-1/2cap_curve-s;
+x9e=s; y9=0;
+dl_drop(9,cap_drop_round,16/39w-s,1.7cap_drop_round,slab);
+y8=0.1h-c; y6=0.9h+c; x8=x9+9/16(x7-x9); x6=x5+9/16(x7-x5);
+penpos5(cap_bar,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+penpos1(cap_bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+y2=y5; x2=x5-c;
+S_serif(2,slab,x1+c,1.5border_height);
+x3=x7-1/2cap_stem; y3=y4=cap_bar_height; x4=x2b-x1;
+penpos3(cap_bar,90); penpos4(cap_bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YU,16u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+y3=y7=.5h; x7=w-1/2cap_curve-s; x3=x7-cap_o_width; y9=0; y5=h; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3cap_stem; y11=y12=cap_bar_height;
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_YA,11u#+s#,cap_height#,0);
+x1=x2=w-cap_jut-1/2cap_stem-s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2l;
+y1c=h; y2c=0; x6=x4=x7-2.5u; x3=x1c;
+y4-y5=y5-y6; x5=x8-1.5c; x9=s; y9=0; y6-y8=y8-y9; x7-x10=3(x10-x6); x10-x8=x8-x9;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos7(cap_bar,270);
+penpos6(cap_bar,270);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90); fill z9l..z9r..cycle;
+penstroke z3e--z4e{left}..tension.9..z5e..tension.9..{right}z6e--z7e;
+penstroke z9e{right}..tension1..{up}z8e{up}..tension1..{right}z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_a,9u#-s#+2/7stem#+c#,x_height#,0);
+x5=w-s-1/2bar; y5=0; y4=6/7stem; x4=x3=x5-5/7stem-1/2stem;
+y3=bar_height+2bar; y2=y1=h; x2=s+c+5.5/20w; x1e=s+c;
+ul_drop(1,drop_round,x2-s-c,1.35drop_round,bar);
+fill ul_drop_edge1;
+penpos2(bar,90);
+penpos3(stem,0);
+penpos4(stem,0);
+penpos5(bar,90);
+penstroke z2e{right}..tension.8..{down}z3e--z4e{down}..{right}z5e;
+fill z5r..z5l..cycle;
+y6=bar_height+1/2bar; x6=x3+1/2stem; x7=s+1/2stem; y7=7/17bar_height;
+y8=0; x9=x4-1/2stem+1/2bar; x9-x8=x8-x7; y9=y4+3/2bar; x66=x8; y66=y6-c;
+numeric theta[]; theta1=angle(z66-z6);
+penpos6(vair,90);
+penpos66(vair,90);
+penpos7(curve,180);
+penpos8(vair,270);
+penpos9(bar,360);
+penstroke z6e{left}..z66e{dir theta1}..tension.8..{down}z7e{down}..tension.8..z8e{right}..{up}z9e;
+penlabels(range 1 thru 9,66);
+endchar;
+
+beginchar(CYR_be,8u#,asc_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2stem+s; x7=w-1/2stem-s;
+y2=y8=0.1x_height; y4=y6=0.9x_height; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+y9=y3; x9=s+1/2bar; y10=44/51h; x10=x5+c; x11=w-s-1/2bar; y11=h-1/2bar; %x11=w-1/2bar*sind 45; y11=h-1/2bar*sind 45;
+penpos9(hair,180);
+penpos10(curve,90);
+penpos11(hair,180);
+penstroke z9e{up}..{right}z10e{right}..tension1..z11e;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_ve,9u#-c#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x9=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h; y8=y9=h-1/2bar; x8=x1d;
+y9-y10=y10-y4; x10=x5-c;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penpos8(bar,270);
+penpos9(bar,270);
+penpos10(curve,180);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penstroke z9e{right}..tension.8..z10e..tension.8..{left}z4e;
+sss_width := x5 - x2r; save sss_width;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ghe,7u#+c#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; y3=y4=y5=h-1/2bar; x3=x1d; x5e=w-s;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+T_serif(5,bar,4/5border_height,1);
+x4=x5;
+fill serif_edge2--reverse serif_edge1--cycle;
+fill T_edge5;
+penpos3(bar,90);
+penpos4(bar,90);
+penstroke z3e--z4e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_de,9u#,x_height#,x_depth#);
+x3=x4=w-jut-1/2stem-s-.1u;
+y3c=h; y4c=0;
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+x7e=s; x10e=w-s; y7=y8=y9=y10=y4h; x8=x7; x9=x4c;
+T_serif(7,bar,4/5border_height,0);
+T_serif(10,bar,4/5border_height,1);
+fill T_edge7; fill T_edge10;
+penpos8(bar,90); penpos9(bar,90);
+penstroke z8e--z9e;
+x2=s+1.3jut+1/2bar; y2=bar; x1=x2+3/2bar; y1=h-bar;
+numeric theta[]; theta1=angle(z1-z2);
+A_serif(1,bar,theta1-180,1.3jut,jut);
+A_serif(2,bar,theta1,1.3jut,.8jut);
+fill A_serif_edge2..reverse A_serif_edge1..cycle;
+y5=y6=y3h; x5=x1d; x6=x3c;
+penpos5(bar,90);
+penpos6(bar,90);
+penstroke z5e--z6e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ie,8u#+.5c#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.07h; y4=y6=0.93h; x2=x4=x3+3/8(x5-x3)+.35c; x6=x5+5/8(x7-x5)-.35c;
+x10=w-s-1/2bar; y10=y7-5/4stem;
+penstroke z10e{down}..tension1.1..z1e..z2e..{up}z3e{up}..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ye,8u#+.5c#,asc_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=x5=.5w; y1=0; y5=x_height;
+y3=.5x_height; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.07x_height; y4=y6=0.93x_height; x2=x4=x3+3/8(x5-x3)+.35c; x6=x5+5/8(x7-x5)-.35c;
+x10=w-s-1/2bar; y10=y7-5/4stem;
+penstroke z10e{down}..tension1.1..z1e..z2e..{up}z3e{up}..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+y12=y14=h; y11=y13=h-stem; x11=x12=x3r+c; x13=x14=x7r-c;
+fill z11..z12..cycle; fill z13..z14..cycle;
+penlabels(range 1 thru 14);
+endchar;
+
+beginchar(CYR_zhe,round (13u#+s#),x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,stem,-90,jut,jut);
+serif(9,stem,90,jut,jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; x4=x7-u; y4=y7=y10=y11=bar_height; x10=x8r; x11=x10+u;
+x6=s+1/2bar; y6=y16=0; y4-y5=y5-y6; x4-x5=1.3(x5-x6);
+x16=w-s-1/2bar; 1.3(x16-x15)=x15-x11; y11-y15=y15-y16;
+x2=x5-c; y2=y1=h; x4-x3=x3-x2; y2-y3=y3-y4; x1e=s+c;
+y13=y14=h; x13=x15+c; x13-x12=x12-x11; y13-y12=y12-y11; x14e=w-s-c;
+penpos2(bar,90);
+penpos3(hair,0);
+penpos4(bar,90);
+penpos5(curve,180);
+penpos6(bar,90);
+penpos7(bar,90);
+penpos10(bar,90);
+penpos11(bar,90);
+penpos12(hair,180);
+penpos13(bar,90);
+penpos15(curve,0);
+penpos16(bar,90);
+penstroke z7e--z4e{left}..tension.9..{down}z5e{down}..tension.9..{left}z6e;
+fill z6r..z6l..cycle;
+penstroke z10e--z11e{right}..tension.9..{down}z15e{down}..tension.9..{right}z16e;
+fill z16r..z16l..cycle;
+penstroke z4e{left}..z3e..{left}z2e;
+penstroke z11e{right}..z12e..{right}z13e;
+ul_drop(1,drop_round,x2-s-c,.82drop_round,bar);
+ur_drop(14,drop_round,x2-s-c,.82drop_round,bar);
+fill ul_drop_edge1; fill z1e..z1c..cycle;
+fill ur_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ze,6u#+2s#,x_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=bar_height;
+x4=x6-3/2stem; x5=x4-u;
+x6=w-s-1/2curve; y4-y6=y6-y7;
+x2=.45w; y2=h; x3=x6-1/5curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(bar,90);
+penpos3(curve,0);
+penpos44(bar,-90);
+penpos4(bar,90);
+penpos5(bar,90);
+penpos6(curve,0);
+penpos7(bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3.5c,border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,drop_round,18/39w-s,1.5drop_round,bar);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_i,9u#+s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r-1/2bar; x6=x3l+1/2bar;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,0); penpos6(bar,0);
+y5=.1h; y6=.9h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_short_i,9u#+s#,asc_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r-1/2bar; x6=x3l+1/2bar;
+y1c=y3c=x_height; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,0); penpos6(bar,0);
+y5=.1x_height; y6=.9x_height; penstroke z5e--z6e;
+x7=.5w; y7=h-3/2drop_round;
+ur_drop(7,drop_round,x3-.5w,1.1drop_round,1.2bar);
+fill ur_drop_edge7 rotatedaround(z7,180);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ka,9u#+.5s#,x_height#,0);
+x1g=x2g=s; y1c=h; y2c=y9=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=bar_height; x3=x1r; x4=x3+1.25u;
+x9=w-s-1/2bar; 1.3(x9-x8)=x8-x4; y4-y8=y8-y9;
+y6=y7=h; x6=x8+c; x6-x5=x5-x4; y6-y5=y5-y4; x7e=w-s-c;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(hair,180);
+penpos6(bar,90);
+penpos8(curve,0);
+penpos9(bar,90);
+penstroke z3e--z4e{right}..tension.9..{down}z8e{down}..tension.9..{right}z9e;
+fill z9r..z9l..cycle;
+penstroke z4e{right}..z5e..{right}z6e;
+ur_drop(7,drop_round,w-x6-s-.2c,.83drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_el,9u#+s#,x_height#,0);
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.7drop_round; y3=1.1drop_round;
+dl_drop(1,drop_round,drop_round,drop_round,bar);
+fill dl_drop_edge1;
+fill z1c..z1e..cycle;
+penpos2(bar,-90);
+penpos3(bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-bar;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,bar,theta1,1.4jut,1.3jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,stem,-90,jut,jut);
+serif(8,stem,90,jut,jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(bar,90);
+penpos6(bar,90);
+penstroke z5e--z6e;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_em,10u#+1.5s#,x_height#,0);
+x1g=s; y1c=0; y2=h-bar;
+A_serif(1,bar,90,jut,jut);
+x2=x1; serif(2,bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2bar; y4c=0;
+serif(3,stem,-90,.51bar, jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -109; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 108; y7l=6/28h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(stem,0); penpos8(stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_en,9u#+s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_o,8u#+s#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2curve-s;
+y2=y8=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_pe,9u#+s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_er,8u#+jut#+.7c#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+s+.6(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=.1h; y8=.08h; y4=.9h; y6=.92h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5)-.5c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=-desc_depth;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_es,8u#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=1/2curve+s;
+y2=0.1h; y4=0.9h; x2=x4=x3+3/8(x5-x3)+.2c;
+x6=w-s-1/2hair; y6=y3-4/5stem;
+penstroke z6e{down}..tension1.1..z1e..z2e..{up}z3e{up}..z4e..z5e;
+fill z6r..z6l..cycle;
+z7=z5;
+ur_drop(7,drop_round,7/8(x6l-x1),3/2drop_round,bar);
+fill ur_drop_edge7;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(CYR_te,round (8u#-.5s#),x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x2=x3=.5w; x1e=s; x4e=w-s; y1=y4=y2h;
+y2c=h; y3c=0;
+serif(2,stem,-90,jut,jut);
+serif(3,stem,90,jut,jut);
+T_serif(1,bar,4/5border_height,0);
+T_serif(4,bar,4/5border_height,1);
+fill serif_edge3--reverse serif_edge2--cycle;
+fill T_edge1; fill T_edge4;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_u,9u#+s#,x_height#,desc_depth#);
+x1l=s+jut; y1l=h-bar;
+x3r=w-s-.8jut; y3r=h-bar;
+x4=33/60w; y4=-2/5d;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,bar,theta2,1.2jut,.8jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=-d+bar; x6=x4-1.5stem; z7l=z2;
+penpos7(bar,theta2+90);
+penpos5(bar,theta2+90);
+penpos6(bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,1.1stem,1.3u,drop_round,bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(CYR_ef,12u#+s#,asc_height#,desc_depth#);
+if .5w = good.x .5w: change_width; fi
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w+.5(.5w-s); y1=0; y5=x_height;
+y3=y7=y12=.5x_height; x3=.5w; x7=w-1/2curve-s;
+y2=y9=.1x_height; y8=y11=.08x_height; y4=y15=.9x_height; y6=y13=.92x_height;
+x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5)-.4c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+z16=z3; x14=x10=.5w-.5(.5w-s); y10=0; y14=x_height;
+x12=s+1/2curve; x9=x15=x16-3/8(x16-x14); x11=x13=x14-5/8(x14-x12)+c;
+penpos10(vair,90);
+penpos11(o,30);
+penpos12(curve,0);
+penpos13(o,-30);
+penpos14(vair,-90);
+penpos15(.7o,-150);
+penpos16(stem,-180);
+penpos9(.7o,-210);
+penstroke z10e..z11e..z12e..z13e..z14e..z15e..z16e..z9e..cycle;
+x99=x155=x3l; x44=x222=x3r; y99=y222=.5x_height-3/2stem; y155=y44=.5x_height+3/2stem;
+unfill z99--z155--z44--z222--cycle; penlabels(44,99,155,222);
+x20=.5w; y20=-.75d; x17=x30=x3l; x23=x24=x3r; y17=y23=-1/2d;
+x18=x19=x17-4/5stem; x21=x22=x23+4/5stem; y18=y22=-d+bar; y19=y21=-d;
+y24=y30=x_height+3/5(asc_height-x_height);x25=x22-c; x29=x18+c; y29=y25=h-1/2bar;
+y28=y26=h; x28=x29+1/2bar; x26=x25-1/2bar; x27=.5w; y27=h-bar;
+fill z30---z17{dir -100}..tension2..z18{left}..{right}z19{right}..{dir 20}z20{dir -20}..{right}z21{right}..{left}z22..tension2..{dir 100}z23---z24{dir 80}..{dir 20}z25{dir 160}..{left}z26{left}..{dir -160}z27{dir 160}..{left}z28{left}..{dir -160}z29{dir -20}..{dir -80}z30&cycle;
+penlabels (range 1 thru 30);
+endchar;
+
+beginchar(CYR_ha,9u#+2c#,x_height#,0);
+y3=y4=bar; x3=w-s-jut-1/2stem; x4=s+jut+1/2bar;
+y1=y2=h-bar; x1=s+jut+1/2stem+c; x2=w-s-1.25c-jut-1/2bar;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,stem,theta1-180,jut,jut);
+A_serif(2,1.2bar,theta2-180,jut,jut);
+serif(3,stem,theta1,jut,jut);
+A_serif(4,1.2bar,theta2,jut,1.3jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_tse,9.1u#+s#,x_height#,x_depth#);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1-.1u; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=y2h; penstroke z5e--z6e;
+x7e=w-s; y7=y4h;
+T_serif(7,bar,4/5border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_che,9u#+s#,x_height#,0);
+x1=jut+1/2stem+s;
+x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,-90,jut,jut);
+serif(3,stem,90,jut,jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=bar_height-1/2bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-.8bar;
+penpos6(stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_sha,round (13u#+3/2s#),x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=.5w; y5=y1; y6=y2;
+y9b=bar; x9h=w-s;
+x10=x9; y10b=h-bar;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,stem,-90,jut,jut);
+serif(6,stem,90,jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,stem,90,jut,jut);
+serif(10,stem,-90,jut,jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos7(bar,90);
+penpos8(bar,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_shcha,13.1u#+3/2s#,x_height#,x_depth#);
+if .5w <> good.x .5w: change_width; fi
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=bar; x9h=w-s-.1u;
+x10=x9; y10b=h-bar;
+x11e=w-s; y11=y9h;
+serif(9,stem,90,jut,jut);
+serif(10,stem,-90,jut,jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,stem,-90,jut,jut);
+serif(6,stem,90,jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos7(bar,90);
+penpos8(bar,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,bar,4/5border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_hard_sign,10u#,x_height#,0);
+x2r=x5-sss_width; x1=x2;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h; x8e=s; y8g=h;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+T_serif(8,bar,4/5border_height,0);
+fill T_edge8;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+x9=s+c; y9=y10=h; x10=s;
+unfill z8d{up}..z9--z10--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_yeru,12u#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=x2r+sss_width;
+y6=y7=y2h; x8h=x9h=w-s; y8c=h; y9c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(8,stem,-90,jut,jut);
+serif(9,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge9--reverse serif_edge8--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_soft_sign,9u#-c#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_e,6u#+2.2s#,x_height#,0);
+x1=x5=.5w-.5c; y1=0; y5=h;
+y7=.5h; x7=w-1/2curve-s;
+x9e=s; y9=0;
+dl_drop(9,drop_round,x1-s,1.5drop_round,bar);
+y2=y5; x2=x5;
+S_serif(2,bar,x5-s-c,border_height);
+x3=x7-1/2stem; y3=y4=bar_height; x4=x9c-c;
+penpos3(bar,90); penpos4(bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+y8=0.1h-c; y6=0.9h+c; x8=x6=x2+5/8(x7-x5)-.7c;
+penpos5(bar,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+penpos1(bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_yu,12u#+.5s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x3l=x1h+.3bar; y9=0; y5=h;
+y3=y7=.5h; x7=w-1/2curve-s; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+c+3/8(x5-x3); x6=x8=x5-c+5/8(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3stem; y11=y12=bar_height;
+penpos11(bar,90); penpos12(bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ya,8u#+s#+1/2bar#,x_height#,0);
+x1=x2=w-jut-1/2stem-s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2l; x4=x6=x3-2.5u+stem;
+y5-y4=y6-y5; x5=1/2stem+2s;
+y6=y7=y1h; x9=s; y9=0; x4-x8=x8-x9; y4-y8=y8-y9;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,-90);
+penpos4(bar,-90);
+penpos5(curve,180);
+penpos6(bar,90);
+penpos7(bar,90);
+penpos8(curve,0);
+penpos9(bar,-90);
+penstroke z3e--z4e{left}..tension.8..z5e..tension.8..{right}z6e--z7e;
+penstroke z9e{right}..{up}z8e{up}..{right}z4e;
+fill z9r..z9l..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar("A",13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar("B",11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,1/2cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("C",10u#+s#,cap_height#,0);
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("D",12u#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(o,30);
+penpos6(cap_curve,0);
+penpos7(o,-30);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+x3=x9=x1d;
+x8=x4=.5w; y8=y9=1/2cap_bar; y4=y3=h-1/2cap_bar;
+y6=.5h; x6=w-1/2cap_curve-s;
+y7=0.1h-c+1/2cap_bar; y5=0.9h+c-1/2cap_bar; x5=x7=x4+6/10(x6-x4);
+penstroke z3e--z4e{right}..z5e..z6e..z7e..{left}z8e--z9e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("E",10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("F",10u#+.5s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("G",10u#+cap_jut#+c#+s#,cap_height#,0);
+x1=x5=23/42(w-cap_jut-c); y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s-cap_jut-c; y8=y1; x8=x1-.1(w-cap_jut-c);
+S_serif(6,slab,w-s-2c-x1-cap_jut,1.5border_height);
+S_serif(7,slab,w-s-x1-cap_jut+c,7/4border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+x9r=x7e; y9r=7/4border_height-1/2cap_bar;
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+x10=x9l; x11=x9r; y10=y11=3/4cap_bar;
+fill reverse serif_edge9--z10--z11--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("H",12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("I",2cap_jut#+cap_stem#+2s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+endchar;
+
+beginchar("J",7u#+s#,cap_height#,0);
+x1=x4=w-cap_jut-1/2cap_stem-s;
+y1c=h; y2=y3=y4=13/53h; x2=x1r; x3=x1l;
+y5=0; x5=x3-2/3cap_stem;
+serif(1,cap_stem,-90,1.2cap_jut,cap_jut);
+fill z3--z2--reverse serif_edge1--cycle;
+penpos4(cap_stem,0);
+penpos5(cap_bar,-90);
+penstroke z4e{down}..{left}z5e;
+x6e=s; y6=0;
+dl_drop(6,cap_drop_round,x5-s,1.3drop_round,cap_bar);
+fill dl_drop_edge6;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("K",13u#-c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=cap_bar_height; x3l=w-cap_jut-.5cap_jut-cap_bar-s; y3l=h-cap_bar;
+x5=x6=x1r; y5=cap_bar_height-cap_bar; y6=y5-cap_bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+A_serif(3,.9cap_bar,theta1,1.5cap_jut,.6cap_jut);
+x4l=w-s-1.2cap_jut-cap_stem; y4l=cap_bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,cap_stem,theta2,.8cap_jut,cap_jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("L",10u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=y5=y2h; x3=x2d; x5e=w-s;
+T_serif(5,cap_bar,border_height,1); x4=x5;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penstroke z3e--z4e;
+fill T_edge5 reflectedabout(z3,z4);
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar("M",13u#+1.5s#,cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,.51cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 109; y7l=10/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("N",12u#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_bar+s;
+x3=w-x1; y1c=y3c=h; y2c=y4=y5=0;
+x4=x3r; x5=x3l;
+serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+A_serif(2,cap_bar,90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill A_serif_edge2--reverse serif_edge1--cycle;
+numeric theta[]; y7=y1h; x7=x1h-1.1cap_stem;
+theta1=angle(z5-z7);
+z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+fill z6--z1h--z7--z5{down}..{up}z4--reverse A_serif_edge3--cycle;
+unfill z1b--z1l--z1a--cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("O",11u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("P",10u#+s#,cap_height#,0);
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Q",11u#+s#,cap_height#,comma_depth#);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x12-1.5c; x12=x7l-c; y11=y12=-comma_depth;
+y9=0; x9=x1-c; y9-y10=y10-y11; x11-x10=x10-x9;
+penpos9(cap_bar,90); penpos10(cap_curve,0);
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z9e{dir -20}..tension.8..z10e..tension.8..{right}z11e--z12e;
+fill z12r..z12l..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("R",11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2r;
+y1c=h; y2c=0; x6=x4=x7+2.5u; x3=x1d;
+y4-y5=y5-y6; x5=x8; x9=w-s-1/2cap_bar; y9=0; y6-y8=y8-y9; x10=x6; x9-x8=6/7(x8-x10);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,-90);
+penpos6(cap_bar,-90);
+penpos8(cap_curve,-180);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90); fill z9l..z9r..cycle;
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penstroke z9e{left}..tension.8..{up}z8e{up}..tension.8..{left}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("S",9u#+s#,cap_height#,0);
+x6=x7=1/2w; y6=y7=0;
+S_serif(7,cap_bar,x6-s,1.5border_height);
+y5=11/53h; x5=w-s-1/2(1.9hair);
+y4=28/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2(1.9cap_bar);
+x2=.5w-c; y2=h; z1=z2;
+penpos6(cap_bar,-90);
+penpos5(1.9hair,0);
+penpos4(1.1cap_curve,90);
+penpos3(1.9hair,0);
+penpos2(cap_bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-cap_bar,1.2border_height);
+fill S_serif_edge1;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("T",round (11u#+s#),cap_height#,0);
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("U",12u#+s#,cap_height#,0);
+x1=cap_jut+1/2cap_stem+s;
+x3=w-s-cap_jut-1/2cap_bar;
+y1c=y3c=h; y2=y4=y5=y6=y24=y56=16/53h; x2=x1l;
+x4=x1r; x5=x3l; x6=x3r;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill z2--z4--reverse serif_edge1--cycle;
+fill z5--z6--reverse A_serif_edge3--cycle;
+x7=x1+.5(x3-x1); y7=0; x4-x24=x24-x2; x6-x56=x56-x5;
+penpos24(cap_stem,-180); penpos7(vair,-90);
+penpos56(cap_bar,0);
+penstroke z24e{down}..tension.9..{right}z7e{right}..tension.9..{up}z56e;
+penlabels(range 1 thru 7,24,56);
+endchar;
+
+beginchar("V",12u#,cap_height#,0);
+x1l=cap_jut+s;
+x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w-1/2cap_bar; x5=.5w+1/2cap_bar;
+y4=y5=1/2cap_bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("W",17u#,cap_height#,0);
+x9l=.5w-.3cap_stem;
+x7r=w-s-cap_jut;
+y9l=y7r=y1l=h-cap_bar; x5=x9l+.5(x7r-x9l)-1/2cap_bar; x6=x9l+.5(x7r-x9l)+1/2cap_bar;
+y5=y6=y2=y3=1/2cap_bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(7,cap_bar,theta2,1.3cap_jut,cap_jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+cap_jut;
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+z2=z1l+whatever*dir theta1; x3=x2+cap_bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("X",12u#+s#,cap_height#,0);
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("Y",12u#,cap_height#,0);
+x1l=cap_jut+s;
+x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w;
+y4=8/25h;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+y5c=0; x5=.5w+.5c;
+serif(5,cap_stem,90,cap_jut,cap_jut);
+x6=x5l; x7=x5r;
+z6=z1l+whatever*dir theta1;
+z7=z3r+whatever*dir theta2;
+fill z6--serif_edge5--z7--reverse A_serif_edge3--z2--reverse serif_edge1--z6&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Z",9u#+1.5s#,cap_height#,0);
+x6=s+1/2cap_bar; y6=y7=y8=1/2cap_bar;
+x8e=w-s; x7=x8;
+T_serif(8,cap_bar,border_height,1);
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4cap_bar;
+x4r=w-s-1/4cap_bar; y4=h-cap_bar;
+penpos4(cap_stem,0);
+penpos5(cap_stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2cap_bar;
+x3=w-s-1/2cap_bar; x1e=s+c;
+T_serif(1,cap_bar,border_height,0);
+x2=x1;
+penpos3(cap_bar,90);
+penpos2(cap_bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar("a",9u#-s#+2/7stem#+c#,x_height#,0);
+x5=w-s-1/2bar; y5=0; y4=6/7stem; x4=x3=x5-5/7stem-1/2stem;
+y3=bar_height+2bar; y2=y1=h; x2=s+c+5.5/20w; x1e=s+c;
+ul_drop(1,drop_round,x2-s-c,1.35drop_round,bar);
+fill ul_drop_edge1;
+penpos2(bar,90);
+penpos3(stem,0);
+penpos4(stem,0);
+penpos5(bar,90);
+penstroke z2e{right}..tension.8..{down}z3e--z4e{down}..{right}z5e;
+fill z5r..z5l..cycle;
+y6=bar_height+1/2bar; x6=x3+1/2stem; x7=s+1/2stem; y7=7/17bar_height;
+y8=0; x9=x4-1/2stem+1/2bar; x9-x8=x8-x7; y9=y4+3/2bar; x66=x8; y66=y6-c;
+numeric theta[]; theta1=angle(z66-z6);
+penpos6(vair,90);
+penpos66(vair,90);
+penpos7(curve,180);
+penpos8(vair,270);
+penpos9(bar,360);
+penstroke z6e{left}..z66e{dir theta1}..tension.8..{down}z7e{down}..tension.8..z8e{right}..{up}z9e;
+penlabels(range 1 thru 9,66);
+endchar;
+
+beginchar("b",8u#+jut#+.7c#,asc_height#,0);
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+s+.6(w-jut-2s); y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=.1x_height; y8=.08x_height; y4=.9x_height; y6=.92x_height; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5)-.5c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=0;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,0);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("c",8u#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=1/2curve+s;
+y2=0.1h; y4=0.9h; x2=x4=x3+3/8(x5-x3)+.2c;
+x6=w-s-1/2hair; y6=y3-4/5stem;
+penstroke z6e{down}..tension1.1..z1e..z2e..{up}z3e{up}..z4e..z5e;
+fill z6r..z6l..cycle;
+z7=z5;
+ur_drop(7,drop_round,7/8(x6l-x1),3/2drop_round,bar);
+fill ur_drop_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("d",8u#+jut#+.7c#,asc_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.7o,-150);
+penpos7(stem,-180);
+penpos8(.7o,-210);
+x1=x5=s+.4(w-jut-2s); y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2curve+s; x7=w-1/2stem-s-jut;
+y2=.08x_height; y8=0.1x_height; y4=.92x_height; y6=0.9x_height; x2=x4=x3+3/8(x5-x3)+.5c; x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10h=w-s; x9=x10; y9c=h; y10c=0;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,0,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("e",8u#+.5c#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.07h; y4=y6=0.93h; x2=x4=x3+3/8(x5-x3)+.35c; x6=x5+5/8(x7-x5)-.35c;
+x10=w-s-1/2bar; y10=y7-5/4stem;
+penstroke z10e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("f",2jut#+stem#+2c#+2s#,asc_height#,0);
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x1; y3=x_height; x4r=x1l-.1stem; y4=x_height+1/2(asc_height-x_height);
+x5l=x4l-.05stem; y5=y4+1.5bar; x6=x1r+.2stem; y6=h-1/2bar;
+penpos3(stem,180);
+penpos4(.75curve,180);
+penpos5(.6curve,180);
+penpos6(bar,90);
+penstroke z3e{dir 95}...{up}z4e..z5e..{right}z6e;
+y6=y7; x7e=w-s;
+ur_drop(7,stem,x7e-x6,drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("g",9u#+c#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+y3=y7=2/3h; x3=1/2curve+s+c; x7=w-3/2stem-s;
+x1=x5=x3+1/2(x7-x3); y1=3/11h; y5=h;
+y2=y8=y1+0.1(8/11h); y4=y6=y1+0.9(8/11h); x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..{up}z3e{up}..z4e..z5e..z6e..{down}z7e{down}..z8e..cycle;
+x9=x7; y9=y7+1/2(y6-y7); y10=h; x10=x7l+c;
+x11e=w-s; y11=y10;
+ur_drop(11,.8stem,x11e-x10,drop_round,bar);
+penpos9(hair,180); penpos10(vair,90);
+penstroke z9e{up}..{right}z10e;
+fill ur_drop_edge11;
+y12=y1; x12=x1; y13=y12/2; x13=s+1/4stem+.5c;
+y14=y15=0; x14=x2r; x15=x8r; y16=y18=-d/2; x16=w-s-1/2stem;
+x18=s+.7hair; y17=-d+1/2bar; x17=s+.6bar+9/20(x16-x18); x19=x14; y19l=y14r;
+penpos12(vair,90); penpos13(1/2curve,180); penpos14(curve,270);
+z144=z14; penpos144(curve,90); penpos15(curve,90);penpos16(1/2curve,0);
+penpos17(vair,-90); penpos18(1.4hair,-180); penpos19(1.4vair,-270);
+penstroke z12e{left}..{down}z13e{down}..{right}z14e;
+penstroke z144e--z15e{right}..tension.8..{down}z16e{down}..{left}z17e{left}..{up}z18e{up}..{right}z19e;
+penlabels(range 1 thru 19);
+endchar;
+
+beginchar("h",round (10u#-1.5c#),asc_height#,0);
+w:=w+1;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6h=w-s; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33x_height;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=x_height; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("i",2jut#+stem#+2s#,x_height#+2.1stem#,0);
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+z3=(x1,h); z4=(x1,h-1.1stem);
+fill z3..z4..cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("j",5u#,x_height#+2.1stem#,desc_depth#);
+x1h=w-s; y1c=x_height; y2=0; x2=x1;
+serif(1,stem,-90,1.5jut,0);
+penpos2(stem,0);
+fill z2l--z2r--reverse serif_edge1--cycle;
+z3=(x1-.05stem,h); z4=(x1-.05stem,h-1.1stem);
+fill z3..z4..cycle;
+y5=-1/4desc_depth; x5r=x2r;
+y6=-d+1/2bar; x6=x2l-1/3stem;
+penpos5(.97stem,0);
+penpos6(bar,-90);
+penstroke z2e--z5e{down}..{left}z6e;
+x7e=s; y7=-d+1/2bar;
+dl_drop(7,stem,x6-x7e,drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar("k",round (10u#-c#),asc_height#,0);
+w:=w+1;
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=bar_height; x3l=w-jut-.7jut-s; y3l=x_height-bar;
+x5=x6=x1r; y5=bar_height-bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+y6=y5-bar/cosd (theta1+180);
+A_serif(3,.9bar,theta1,1.8jut,.8jut);
+x4l=w-s-1.2jut-stem; y4l=bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,stem,theta2,.8jut,jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("l",2.4jut#+stem#+2s#,asc_height#,0);
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,1.2jut,0);
+serif(2,stem,90,1.2jut,1.2jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penlabels(1,2);
+endchar;
+
+beginchar("m",14u#+c#,x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6=.5w; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33h;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g+.1c; y4=h; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+x10h=w-s; y10c=0;
+serif(10,stem,90,jut,jut);
+x9=x10; y9=y5;
+penpos9(stem,0);
+fill serif_edge10--z9r--z9l--cycle;
+x8=x10g+.1c; y8=h; y7=y9-1/4bar; x7l=x6r;
+penpos8(vair,90);
+penpos7(bar,180);
+penstroke z9e{up}..{left}z8e{left}..z7e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("n",round (10u#-1.5c#),x_height#,0);
+w:=w+1;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6h=w-s; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33h;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=h; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("o",8u#+s#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2curve-s;
+y2=y8=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("p",8u#+jut#+.7c#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+s+.6(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=.1h; y8=.08h; y4=.9h; y6=.92h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5)-.5c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=-desc_depth;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("q",8u#+jut#+.7c#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.7o,-150);
+penpos7(stem,-180);
+penpos8(.7o,-210);
+x1=x5=s+.4(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2stem-s-jut;
+y2=.08h; y8=0.1h; y4=.92h; y6=0.9h; x2=x4=x3+3/8(x5-x3)+.5c; x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10h=w-s; x9=x10; y9c=h; y10c=-d;
+serif(9,stem,-90,0,jut);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("r",7u#+s#,x_height#,0);
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,1.2jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x4=round (x2h+1/2bar+c); y4=h; y3=23/33h-1/4bar; x3l=x2r;
+penpos4(bar,90);
+penpos3(bar,180);
+penstroke z4e{left}...{down}z3e;
+x5e=w-s; y5=h;
+ur_drop(5,1.1stem,x5e-x4,drop_round,bar);
+fill ur_drop_edge5;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar("s",7u#+c#,x_height#,0);
+x6=x7=1/2w; y6=y7=1/2bar;
+S_serif(7,bar,x6-s,border_height);
+y5=11/53h; x5=w-s-1/2(1.4hair);
+y4=29/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2hair;
+x2=.5w; y2=h; z1=z2;
+penpos6(bar,-90);
+penpos5(1.4hair,0);
+penpos4(1.1curve,90);
+penpos3(1.4hair,0);
+penpos2(bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.9..{dir 170}z4e{dir 170}..tension.9..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-1/3bar,.9border_height);
+fill S_serif_edge1;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("t",7u#-.7s#,asc_height#,0);
+y1=y2=46/53h; y4c=x_height; x4g=s;
+serif(4,stem,-90,jut,1.4jut);
+x1=x4r; x2=x1-bar;
+y5=7/33x_height; x5=x4; x3=x4l; y3=42/53h;
+penpos5(stem,180); numeric theta[];
+theta1=angle(z3-z2);
+fill z5l--reverse serif_edge4--z5r--cycle;
+fill z4r--z1{up}..{dir theta1}z2--z3--z4l--cycle;
+y6=1/4bar; x6=x4r+.7jut; x7=w-s-1/2bar; y7=13/53h;
+penpos6(vair,270); penpos7(hair,360);
+penstroke z5e{down}..{right}z6e{right}..{up}z7e;
+fill z7r..z7l..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar("u",round (10u#-1.5c#),x_height#,0);
+w:=w+1;
+x2h=w-s; y1c=h; y2c=0; x1=x2;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,0,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6g=s; y6c=h;
+serif(6,stem,-90,jut,0);
+x5=x6; y5=10/33h;
+penpos5(stem,180);
+fill serif_edge6--z5l--z5r--cycle;
+x4=x6+1/2stem+jut; y4=0; y3=y5+1/4bar; x3l=x2l;
+penpos4(vair,270);
+penpos3(bar,360);
+penstroke z5e{down}..{right}z4e{right}..z3e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar("v",10u#-1.5c#,x_height#,0);
+x1l=jut+s;
+x3r=w-s-jut;
+y1l=y3r=h-bar; x4=.5w-1/2bar; x5=.5w+1/2bar;
+y4=y5=1/2bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,bar,theta2,1.3jut,jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("w",13u#+c#,x_height#,0);
+x9l=.5w-.3stem;
+x7r=w-s-jut;
+y9l=y7r=y1l=h-bar; x5=x9l+.5(x7r-x9l)-1/2bar; x6=x9l+.5(x7r-x9l)+1/2bar;
+y5=y6=y2=y3=1/2bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,stem,theta1,jut,jut);
+A_serif(7,bar,theta2,1.1jut,jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+jut;
+serif(1,stem,theta1,jut,jut);
+z2=z1l+whatever*dir theta1; x3=x2+bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("x",9u#+2c#,x_height#,0);
+y3=y4=bar; x3=w-s-jut-1/2stem; x4=s+jut+1/2bar;
+y1=y2=h-bar; x1=s+jut+1/2stem+c; x2=w-s-1.25c-jut-1/2bar;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,stem,theta1-180,jut,jut);
+A_serif(2,1.2bar,theta2-180,jut,jut);
+serif(3,stem,theta1,jut,jut);
+A_serif(4,1.2bar,theta2,jut,1.3jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("y",9u#+s#,x_height#,desc_depth#);
+x1l=s+jut; y1l=h-bar;
+x3r=w-s-.8jut; y3r=h-bar;
+x4=33/60w; y4=-2/5d;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,1.2bar,theta2,1.2jut,.8jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=-d+bar; x6=x4-1.5stem; z7l=z2;
+penpos7(1.2bar,theta2+90);
+penpos5(1.2bar,theta2+90);
+penpos6(1.2bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,1.1stem,1.3u,drop_round,1.2bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("z",7u#+c#,x_height#,0);
+x6=s+1/2bar; y6=y7=y8=1/2bar;
+x8e=w-s; x7=x8;
+T_serif(8,bar,.8border_height,1);
+penpos6(bar,90);
+penpos7(bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-.5c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4bar;
+x4r=w-s-1/4bar; y4=h-bar;
+penpos4(stem,0);
+penpos5(stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2bar;
+x3=w-s-1/2bar; x1e=s+c;
+T_serif(1,bar,.8border_height,0);
+x2=x1;
+penpos3(bar,90);
+penpos2(bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(hex"30",9u#+1.6s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-1.5c; y4=y6=0.9h+1.5c; x2=x4=x3+7/16(x5-x3)+.7c; x6=x8=x5+9/16(x7-x5)-.7c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"31",6u#+3/2c#,cap_height#,0);
+y1c=0; x1h=w-s;
+serif(1,cap_stem,90,cap_jut,cap_jut);
+x6=x1f; y5=y6=h; x5=x1; x2=x1a; y2=42/53h;
+penpos4(1.1cap_bar,theta1+45);
+penpos3(1.1cap_bar,theta1+45);
+x4l=s; y4=30/53h; numeric theta[]; theta1=angle(z5-z4l);
+z3l=z5; penstroke z3e--z4e; fill z4l..z4r..cycle;
+fill serif_edge1--z6{dir 110}..{dir 250}z5--z2--cycle;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"32",9u#,cap_height#,0);
+z4=(9/33w,14/53h); z5=(s+11/20cap_bar,0);
+z3=(w-s-.5c-7/16cap_curve,40/53h); z2=(15/33w,h);
+penpos2(cap_bar,90);
+penpos3(7/8cap_curve,0);
+penpos4(1.1cap_bar,-45);
+penpos5(1.1cap_bar,0);
+x6=x5r; y6=y7=7/16cap_stem; y8=1/2cap_bar;
+x8e=w-s; x7=x8e;
+T_serif(8,cap_bar,3/5border_height,1);
+penpos6(7/8cap_stem,90);
+penpos7(7/8cap_stem,90);
+penstroke z6e--z7e; %fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+unfill z11{down}..z9--z10--cycle;
+penstroke z5e{up}..z4e..{up}z3e{up}..{left}z2e;
+z1=z2; ul_drop(1,cap_drop_round,15/33w-3c,1.2cap_drop_round,slab);
+fill ul_drop_edge1;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"33",9u#,cap_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height+c;
+x4=x6-3/2cap_stem; x5=x4-2u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_stem,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..{down}z3e{down}..{left}z44e;
+penstroke z5e--z4e{right}..tension.9..{down}z6e{down}..tension.9..{left}z7e;
+fill z5r..z5l..cycle;
+ul_drop(1,.8cap_drop_round,17/39w-s,cap_drop_round,slab);
+fill ul_drop_edge1;
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.3cap_drop_round,slab);
+fill dl_drop_edge8;
+penlabels(1,2,3,4,5,6,7,8,44);
+endchar;
+
+beginchar(hex"34",9u#+c#,cap_height#,0);
+y1=y2=33/53h; y4c=0; x4h=w-s;
+serif(4,7/8cap_stem,90,cap_jut,cap_jut);
+x1=x4r; x2=x1-bar;
+x3=x4l; y3=28/53h;
+numeric theta[]; theta1=angle(z2-z3);
+fill z3{dir theta1}--z2{dir theta1}..{down}z1--reverse serif_edge4--z3&cycle;
+y5=y6=15/53h; x5=x4e; x6=s+cap_bar;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e; fill z5r..z5l..cycle;
+y7=y6l; x7l=x6; z8=(6/36w, 21/53h);
+z9=(2/3w,h);
+penpos7(cap_bar,180); penpos8(cap_bar,150);
+penpos9(cap_stem,180);
+penstroke z7e{up}..z8e..{dir 70}z9e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"35",9u#,cap_height#,0);
+x7=x4=18/39w; y7=0; y5=cap_bar_height+c; y4=y5+s;
+x8e=s; y8=0; x5=x8d;
+dl_drop(8,cap_drop_round,18/39w-s,1.3cap_drop_round,slab);
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z5e..z4e{right}..tension.85..{down}z6e{down}..tension.85..{left}z7e;
+fill z5r..z5l..cycle;
+fill dl_drop_edge8;
+z3=z5; x2=x3; y2=h;
+penpos3(cap_bar,0); penpos2(cap_bar,0);
+penstroke z3e--z2e; fill z2l..tension 1.7..z2r..tension 1.7..cycle;
+y1r=h; x1=x2r; x13=x6; y13=h; 2(x12-x1)=x13-x12; y12=h-.6cap_stem;
+penpos1(7/8cap_stem,90); penpos13(1.1cap_bar,90); penpos12(3/4cap_stem,90);
+penstroke z1e..z12e..z13e; fill z13r..tension 1.7..z13l..tension 1.7..cycle;
+penlabels(1,2,3,4,5,6,7,8,12,13);
+endchar;
+
+beginchar(hex"36",9u#,cap_height#,0);
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=x9=.45w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.1h-1.4c; y4=y6=0.9h+1.4c; x8=x6=x7+11/32(x5-x7)+.5c; x4=x10=x5+10/16(x3-x5)-.5c; x2=x4-1/2c;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.1h-1.4c; y11=y7;
+x11l=x3l+.2c; y10=y8;
+penstroke z1e..z2e..{up}z3e{up}..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e..z10e..z11e;
+z12 = z1;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+z13 = (.5w,.5h);
+currentpicture := currentpicture rotatedaround(z13,180);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"37",9u#-c#,cap_height#,0);
+x4=w-s-1/2cap_bar; y4=h-1/2cap_bar;
+penpos4(cap_bar,0);
+y3=y2=h-7/16cap_stem; y1=h-7/8cap_stem+1/2cap_bar;
+x3=x4l; x1e=s;
+T_serif(1,cap_bar,3/5border_height,0);
+x2=x1e;
+penpos3(7/8cap_stem,90);
+penpos2(7/8cap_stem,90);
+penstroke z2e--z3e;
+fill T_edge1; z44=(x4,h); fill z4r{up}..{left}z44--z3r--z4l--cycle;
+x10=s+c; x11=s; y10=y11=h;
+unfill z1d{up}..z10--z11--cycle;
+unfill z1d{up}..z10--z11--cycle;
+x5r=x3; y5=h-7/8cap_stem;
+x6=14/30w; y6=1/3cap_curve;
+penpos5(cap_bar,0); penpos6(cap_curve,0);
+penstroke z4e{dir -105}..z5e..{dir -95}z6e; fill z6l..z6r..cycle;
+penlabels(1,2,3,4,5,6,10,11,12);
+endchar;
+
+beginchar(hex"38",10u#-s#,cap_height#,0);
+x6=x4=x2=x8=1/2w; y6=0; y2=h;
+y5=11/53h; y7=13/53h; x5=w-s-1/2(1.9hair);
+y4=y8=28/53h; y3=42/53h; y1=40/53h; x3=2s+1/2(1.9cap_bar);
+x1=w-2s-1/2(1.9cap_bar); x7=w-x5;
+penpos6(cap_bar,-90);
+penpos5(2.5hair,0);
+penpos4(cap_curve,70);
+penpos3(2.5hair,0);
+penpos2(cap_bar,-90);
+penpos1(2.5hair,-180);
+penpos7(2.5hair,-180);
+penpos8(cap_bar,-270);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"39",9u#,cap_height#,0);
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=x9=.45w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.1h-1.4c; y4=y6=0.9h+1.4c; x8=x6=x7+11/32(x5-x7)+.5c; x4=x10=x5+10/16(x3-x5)-.5c; x2=x4-1/2c;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.1h-1.4c; y11=y7;
+x11l=x3l+.2c; y10=y8;
+penstroke z1e..z2e..{up}z3e{up}..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e..z10e..z11e;
+z12 = z1;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+beginchar(oct"56",cap_stem#+2s#,cap_stem#,0);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+endchar;
+
+beginchar(oct"54",cap_stem#+2s#+c#,cap_stem#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"60",cap_stem#+2s#+c#,asc_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(oct"41", cap_stem#+2s#,cap_height#,0); "Exclamation mark";
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+ x3=.5w-1/2cap_bar; x4=.5w+1/2cap_bar; y3=y4=3/2cap_stem;
+ x6=x1; x5=x2; y5=y6=h;
+ fill z6--z3..z4--z5{up}..z6&cycle;
+endchar;
+
+beginchar(hex"22",2cap_stem#+3s#+2c#,cap_height#,0);
+ z1=(s,h-1/2cap_stem); z2=(x1+cap_stem+c,h-1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-cap_stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"5C",2cap_stem#+3s#+2c#,cap_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(x1+cap_stem+c,1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"7b",10u#-1.5c#,x_height#,0); "En dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"3D",10u#+1.5c#,x_height#,0);
+ z1=(s+1/2bar,bar_height-3c); z2=(w-s-1/2bar,bar_height-3c);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+3c); z4=(w-s-1/2bar,bar_height+3c);
+ penpos3(bar,90); penpos4(bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"23",13u#,asc_height#,body_depth#);
+ z1=(s+1/2bar,bar_height-5c); z2=(w-s-1/2bar,bar_height-5c);
+ penpos1(1.5bar,90); penpos2(1.5bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+5c); z4=(w-s-1/2bar,bar_height+5c);
+ penpos3(1.5bar,90); penpos4(1.5bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ z5=(.5w-5c,bar_height); z6=(.5w+5c,bar_height);
+ z7=z5+whatever*dir 76; y7=h; z8=whatever[z5,z7]; y8=-d;
+ penpos7(1.5bar,0); penpos8(1.5bar,0);
+ fill z7l{up}..{down}z7r--z8r{down}..{up}z8l--z7l&cycle;
+ z9=z6+whatever*dir 76; y9=h; z10=whatever[z6,z9]; y10=-d;
+ penpos9(1.5bar,0); penpos10(1.5bar,0);
+ fill z9l{up}..{down}z9r--z10r{down}..{up}z10l--z9l&cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"7c",14u#,x_height#,0); "Em dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(oct"55",2cap_jut#+cap_stem#+2s#,x_height#,0); "hyphen";
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"5F",1.1stem#+2s#,x_height#+2.1stem#,0);
+ z1=(.5w,h); z2=(.5w,h-1.1stem);
+ fill z1..z2..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7E",7u#,body_height#,0);
+ pickup pencircle xscaled .6pt yscaled .2pt rotated 55;
+ z4=(w-s-c,h-s); x1=s+c; y1=y4-1/2cap_stem;
+ y2-y1=y4-y3=3(y4-y1); z2-z1=z4-z3=whatever * dir 55;
+ draw z1..controls z2 and z3..z4;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"3C",7u#-2c#,x_height#,0); "looks like <<";
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3E",7u#-2c#,x_height#,0);
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ z10=(.5w,.5h);
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ currentpicture := currentpicture rotatedaround(z10,180);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3B",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+3/2c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ z8=(s,h-1/2cap_stem); z9=(w-s,h-1/2cap_stem);
+ fill z8..z9..cycle;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(hex"3A",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ fill z1..z2..cycle;
+ penlabels(1,2,3,4);
+ z3=(s,1/2cap_stem); z4=(w-s,1/2cap_stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2B",2cap_jut#+cap_stem#+2s#,x_height#,0);
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ x3=x4=.5w; y3=y2+1/2(x2-x1); y4=y2-1/2(x2-x1);
+ penpos3(1.8bar,0); penpos4(1.8bar,0);
+ penstroke z3e--z4e;
+ fill z3r..z3l..cycle; fill z4r..z4l..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2F",2s#+bar#,body_height#,body_depth#);
+ z1=(.5w,h-.5bar); z2=(.5w,-d+.5bar);
+ %pickup pencircle xscaled bar yscaled bar;
+ penpos1(bar,0); penpos2(bar,0);
+ penstroke z1e--z2e; fill z1r..z1l..cycle;
+ fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"27",cap_stem#+2s#+c#,x_height#+2.1stem#,0);
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ z6=(.5w-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"28",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"29",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"86",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"87",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"5B",2s#+3cap_bar#,body_height#,body_depth#);
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x2,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z1r..z1l..cycle; fill z6r..z6l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"5D",2s#+3cap_bar#,body_height#,body_depth#);
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x1,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z2r..z2l..cycle; fill z5r..z5l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"B9",16u#,cap_height#,0);
+ x1=x2=cap_jut+1/2cap_bar+s+cap_stem;
+ x3=w-x1-1/2cap_stem; y1c=h; y4=y5=0;
+ x4=x3r; x5=x3l; y2=12/53h; y3=h-y2;
+ x8=x2-stem; y8=0; z9=z8;
+ dl_drop(9,.9cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill dl_drop_edge9; penpos8(bar,-90);
+ serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+ penpos2(bar,0); penpos3(bar,0);
+ penstroke z2e{down}..{left}z8e;
+ fill z2l--z2r--reverse serif_edge1--cycle;
+ numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+ theta1=angle(z5-z7); x10=x3+stem; y10=h; z11=z10;
+ penpos10(bar,-90); penstroke z3e{up}..{right}z10e;
+ ur_drop(11,.9cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill ur_drop_edge11;
+ z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+ fill z6--z1h--z7--z5{down}..{up}z4--z3r--z3l--cycle;
+ unfill z1b--z1l--z1a--cycle;
+ y12=y13=2cap_bar; x12=x4+2cap_bar+s; x13=w-2s;
+ penpos12(.4stem,90); penpos13(.4stem,90);
+ penstroke z12e--z13e; y16=y11d-4.5cap_bar;
+ x13-x14=x14-x12; x16=x14; y14=y13+4.5cap_bar;
+ x17=w-s-.2stem; x17-x16=x16-x15; y16-y15=y15-y14;
+ y17=y15; penpos17(.7stem,0); penpos16(bar,90);
+ penpos15(.7stem,180); penpos14(bar,270);
+ penstroke z17e{up}..{left}z16e{left}..{down}z15e{down}..{right}z14e{right}..{up}z17e;
+ fill z12l..tension1.2..z12r..tension1.2..cycle;
+ fill z13l..tension1.2..z13r..tension1.2..cycle;
+ penlabels(range 1 thru 17);
+endchar;
+
+beginchar(hex"24",9u#-s#,body_height#,body_height#-cap_height#);
+ x6=x7=1/2w-c; y6=y7=0;
+ dl_drop(7,.9cap_drop_round,x6-s,1.5drop_round,cap_bar);
+ y5=12/53cap_height; x5=w-s-1/2(1.9hair);
+ y4=1/2cap_height; x4=19/38w; y3=41/53cap_height; x3=s+1/2(1.9cap_bar);
+ x2=.5w+c; y2=cap_height; z1=z2;
+ penpos6(cap_bar,-90); penpos5(1.9hair,0);
+ penpos4(1.1cap_curve,90); penpos3(1.9hair,0);
+ penpos2(cap_bar,-90);
+ penstroke z6e{right}..z5e{up}..tension.8..z4e..tension.8..{up}z3e..{right}z2e;
+ fill dl_drop_edge7;
+ ur_drop(1,.9cap_drop_round,w-s-x2,1.5drop_round,cap_bar);
+ fill ur_drop_edge1;
+ z8=(.5w,h); z9=(.5w,-d);
+ penpos8(cap_bar,0); penpos9(cap_bar,0);
+ penstroke z8e--z9e;
+ fill z9r..z9l..cycle; fill z8r..z8l..cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"25",12u#,asc_height#,0);
+penpos1(vair,90); penpos2(.6curve,0);
+penpos3(vair,-90); penpos4(.6curve,-180);
+y1=.55h; y3=h; y3-y4=y4-y1; y2=y4; x2=1/4curve+s; x4=5/2curve+s;
+x4-x1=x1-x2; x3=x1;
+penstroke z1e{left}..tension.9..{up}z2e{up}..tension1.2..{right}z3e..tension.9..{down}z4e{down}..tension1.2..{left}z1e..cycle;
+penpos5(vair,90); penpos6(.6curve,0);
+penpos7(vair,-90); penpos8(.6curve,-180);
+y5=0; y7=.45h; y7-y8=y8-y5; y6=y8; x8=w-1/4curve-s; x6=w-5/2curve-s;
+x8-x5=x5-x6; x7=x5;
+penstroke z5e{left}..tension.9..{up}z6e{up}..tension1.2..{right}z7e..tension.9..{down}z8e{down}..tension1.2..{left}z5e..cycle;
+x9l=x7; y9=h; x10r=x1; y10=0;
+penpos9(1.2bar,0); penpos10(1.2bar,0);
+penstroke z9e--z10e;
+penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"26",14u#,cap_height#,0);
+x4=x8=x3+.5curve; y6=0; y2=h; x2=x3+1.3cap_curve;
+y7=13/53h; y5=9/53h; x5=x7+3.5cap_curve; x6=x7+1.8cap_curve;
+y4=y8=30/53h; y1=44/53h; y3=42/53h; x3=4s+curve;
+x1=x3+2.1cap_curve; x7=s+1/2cap_curve;
+x10=w-s; y10=9/53h; x10-x9=x9-x5; y9=1/5cap_curve;
+th:=angle(z4-z5)+5; th1:=th-11; x11h=w-s-c; y11h=y1-4s;
+A_serif(11,cap_bar,-110,cap_jut,cap_jut); z12l=z11a;
+penpos6(cap_bar,-90); penpos5(cap_stem,45);
+penpos4(cap_stem,45); penpos3(2.5hair,0);
+penpos2(cap_bar,-90); penpos1(2hair,-180);
+penpos7(cap_curve,-180); penpos8(cap_bar,-250);
+penpos9(.5cap_curve,70); penpos10(cap_bar,150);
+penpos12(cap_bar,0);
+penstroke z10e..z9e..z5e{dir th}..{dir th1}z4e..tension.9..{up}z3e{up}..tension1..z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e{dir 8}..{dir 70}z12e;
+fill z12l--z12r..reverse A_serif_edge11--cycle;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"40",14u#,x_height#+2curve#,2curve#);
+a_width:=9u+c-2s;
+x1=2s+a_width-s-3/4stem+1.5curve; y1=x_height; y2=7/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=3s+a_width+1.5curve; y4=15/33x_height;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.2vair,270); penpos4(bar,360);
+x5=x1-1.3stem; y5=x_height; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c+1.3curve; y6=.54x_height; y8=.46x_height; z8l=whatever[z1r,z2r];
+x13=x5; y13=h-1/2bar; x14=s+1/2bar; y14=y6; y15=-d+1/2bar; x15=x7;
+x16=x4; y16=-d+3bar; penpos7(vair,270); penpos16(bar,270);
+penpos13(bar,90); penpos14(bar,180); penpos15(bar,270);
+penpos8(2bar,0); penpos5(vair,90); penpos6(curve,180);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 80}z4e..z13e{left}..z14e..{right}z15e..z16e;
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=x_height-c; z10=(x1r+c,x_height); z11=(x1l-c,x_height);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+fill z16r..z16l..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar(hex"12",2cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=s+.45cap_stem*cosd 45;
+x2=w-s+cap_bar*cosd 45; z2=z1+whatever*dir -45;
+penpos1(.9cap_stem,45); penpos2(cap_bar,45);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"13",2cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=w-s-.45cap_stem*cosd 45;
+x2=s-cap_bar*cosd 45; z2=z1+whatever*dir -135;
+penpos1(.9cap_stem,135); penpos2(cap_bar,135);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"3F",7u#+s#,cap_height#,0);
+ x1=s+4/5cap_stem; y1=1/2cap_stem;
+ penpos1(cap_stem,0);
+ fill z1r..z1l..cycle;
+ y2=cap_stem+cap_bar; x2=x1;
+ z3l=z2l+whatever*dir 96; y3l=25/53h;
+ penpos2(cap_bar,0); penpos3(cap_bar,0);
+ penstroke z2e--z3e;
+ z4l=z3l; penpos4(cap_bar,0);
+ y5=y4-2bar; x5=x4+3cap_bar; penpos7(cap_bar,-90);
+ x6=w-s-1/2cap_curve; y6=37/51h; x7=12/31w; y7=h;
+ penpos5(cap_bar,90); penpos6(cap_curve,180); z8=z7;
+ penstroke z4e{dir -69}..z5e{dir 10}..tension1..{up}z6e{up}..tension.9..{left}z7e;
+ ul_drop(8,.8cap_drop_round,x7-s,cap_curve,cap_bar);
+ fill ul_drop_edge8;.
+ fill z3r..tension1.2..z3l..tension1.2..cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"10",2jut#+stem#+2s#,x_height#,0);
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"11",5u#,x_height#,desc_depth#);
+x1h=w-s; y1c=x_height; y2=0; x2=x1;
+serif(1,stem,-90,1.5jut,0);
+penpos2(stem,0);
+fill z2l--z2r--reverse serif_edge1--cycle;
+y5=-1/4desc_depth; x5r=x2r;
+y6=-d+1/2bar; x6=x2l-1/2stem;
+penpos5(.97stem,0);
+penpos6(bar,-90);
+penstroke z2e--z5e{down}..{left}z6e;
+x7e=s; y7=-d+1/2bar;
+dl_drop(7,stem,x6-x7e,drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(hex"2A",3cap_stem#+3s#,body_height#,0);
+ x1=x2=x3=x4=.5w; y1=h-1/2stem; y2=y1-cap_stem; y3=y2-bar; y4=y3-bar;
+ penpos1(stem,0); penpos2(cap_bar,0); penpos3(2cap_bar,0);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle;
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,60);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,120);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,180);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,240);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,300);
+ penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"0B",4jut#+2stem#+2c#+3s#,asc_height#,0);
+w:=w+1;
+numeric dist; dist := 2jut+2stem-3c;
+x1g=x2g=s+dist; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x1; y3=x_height; x4r=x1l-.1stem; y4=x_height+1/2(asc_height-x_height);
+x5l=x4l-.05stem; y5=y4+1.5bar; x6=round (x1r+.2stem); y6=h-1/2bar;
+penpos3(stem,180);
+penpos4(.75curve,180);
+penpos5(.6curve,180);
+penpos6(bar,90);
+penstroke z3e{dir 95}...{up}z4e..z5e..{right}z6e;
+y6=y7; x7e=w-s;
+ur_drop(7,stem,x7e-x6,drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+x11g=x12g=s; y11c=x_height; y12c=0;
+serif(11,stem,-90,jut,jut);
+serif(12,stem,90,jut,jut);
+fill serif_edge12--reverse serif_edge11--cycle;
+x13=x11; y13=x_height; x14l=x13l; y14=x_height+1/2(asc_height-x_height);
+x15l=x14l; y15=y14+1.5bar; x16=x11r+.8stem; y16=h-1/2bar;
+x17r=x5l; y17=y5;
+penpos13(stem,180);
+penpos14(.75curve,180);
+penpos15(.6curve,180);
+penpos16(bar,90);
+penpos17(bar,0);
+penstroke z13e{dir 95}...{up}z14e..z15e..{right}z16e{right}..{down}z17e;
+fill z11d--z1c--z1b--z11e--cycle;
+penlabels(1,2,3,4,5,6,7,11,12,13,14,15,16,17);
+endchar;
+
+beginchar(hex"5E",6u#,body_height#,0);
+ x1=s+.45cap_bar*cosd 45; x2=w/2; y2=h-bar;
+ z1=z2+whatever*dir -135; x3=w-x1; z3=z2+whatever*dir -45;
+ penpos1(bar,135); penpos2(2bar,90); penpos3(bar,45);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"16",6u#,body_height#,0);
+ x1=s; x2=w-x1; y1=y2=h-4bar;
+ penpos1(.8bar,90); penpos2(.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7F",2stem#+4s#,x_height#+2.1stem#,0);
+ z1=(s+.5stem,h); z2=(s+.5stem,h-stem);
+ fill z1..z2..cycle;
+ z3=(w-s-.5stem,h); z4=(w-s-.5stem,h-stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+ligtable CYR_A: "A":
+ CYR_O kern -k#,
+ "O" kern -k#,
+ CYR_ES kern -k#,
+ "C" kern -k#,
+ CYR_TE kern -k#,
+ CYR_U kern -kk#,
+ CYR_EF kern -k#,
+ CYR_CHE kern -kkk#,
+ CYR_HARD_SIGN kern -k#,
+ "W" kern -kkk#,
+ "V" kern -kkk#,
+ "Y" kern -kkk#,
+ "T" kern -k#,
+ "w" kern -kk#,
+ "v" kern -kk#,
+ %CYR_o kern -k#,
+ %CYR_es kern -k#,
+ CYR_che kern -kk#;
+ %CYR_ie kern -k#,
+ %CYR_ye kern -k#;
+
+ligtable CYR_GHE: CYR_TE: "T":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_DE kern -k#,
+ CYR_EL kern -kk#,
+ CYR_el kern -k#,
+ CYR_o kern -k#,
+ "o" kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#;
+
+ligtable CYR_O: CYR_E: CYR_YU:
+ CYR_U kern -k#,
+ "X" kern -k#,
+ CYR_HA kern -k#;
+
+ligtable CYR_ER: "P":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_EL kern -k#,
+ CYR_el kern -k#;
+
+ligtable CYR_U:
+ CYR_A kern -kkk#,
+ "A" kern -kkk#,
+ CYR_O kern -k#,
+ "O" kern -k#,
+ CYR_ES kern -k#,
+ "C" kern -k#,
+ CYR_EL kern -kk#,
+ CYR_el kern -kkk#,
+ CYR_EF kern -k#;
+
+ligtable CYR_HA: "X":
+ "O" kern -k#,
+ CYR_O kern -k#,
+ "Q" kern -k#,
+ "C" kern -k#,
+ CYR_ES kern -k#,
+ "G" kern -k#;
+
+ligtable CYR_ghe: CYR_te:
+ CYR_de kern -k#,
+ CYR_el kern -k#;
+
+ligtable CYR_o: CYR_er: CYR_e: CYR_yu: CYR_ye:
+ "x" kern -k#,
+ CYR_ha kern -k#;
+
+ligtable CYR_u: "y":
+ CYR_de kern -k#,
+ CYR_el kern -k#,
+ CYR_ie kern -k#,
+ "e" kern -k#,
+ CYR_es kern -k#,
+ "c" kern -k#,
+ CYR_ye kern -k#,
+ CYR_ef kern -k#;
+
+ligtable CYR_ha: "x":
+ CYR_ie kern -k#,
+ "d" kern -k#,
+ "e" kern -k#,
+ "o" kern -k#,
+ "q" kern -k#,
+ CYR_o kern -k#;
+
+ligtable "D": "O": "Q":
+ "X" kern -k#;
+
+ligtable "L":
+ "T" kern -kk#,
+ CYR_TE kern -kk#,
+ "Y" kern -kk#;
+
+ligtable "V": "W":
+ "A" kern -kkk#,
+ CYR_A kern -kkk#,
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ CYR_EL kern -k#,
+ CYR_el kern -kk#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ "d" kern -k#;
+
+ligtable "Y":
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "d" kern -k#,
+ "A" kern -kk#,
+ CYR_A kern -kk#;
+
+ligtable "a": CYR_a:
+ "V" kern -kk#,
+ "W" kern -kk#,
+ "T" kern -k#,
+ CYR_TE kern -k#,
+ "y" kern -k#,
+ CYR_u kern -k#,
+ "v" kern -k#,
+ "u" kern -k#,
+ CYR_che kern -kk#,
+ "Y" kern -kk#;
+
+ligtable "e": CYR_ie:
+ CYR_ha kern -k#,
+ "v" kern -k#,
+ "w" kern -k#,
+ "V" kern -k#,
+ "W" kern -k#;
+
+ligtable "f":
+ "f" =: hex"0B";
+
+ligtable "k": "l":
+ CYR_o kern -k#,
+ "o" kern -k#;
+
+ligtable "m": "n":
+ "y" kern -k#,
+ CYR_u kern -k#,
+ CYR_o kern -k#,
+ "o" kern -k#;
+
+ligtable "o": "b": "p":
+ "e" kern k#,
+ CYR_ie kern k#,
+ "o" kern k#,
+ CYR_o kern k#,
+ "v" kern -k#,
+ "w" kern -k#,
+ "V" kern -k#,
+ "W" kern -k#,
+ "x" kern -k#,
+ CYR_ha kern -k#, 1:: "!" kern kk#;
+
+ligtable "v": "w":
+ "A" kern -kk#,
+ CYR_A kern -kk#,
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ "d" kern -k#;
+
+ligtable hex"37":
+ CYR_A kern -kk#,
+ "A" kern -kk#;
+ligtable oct"55":
+ oct"55" =: hex"7b";
+ligtable hex"7b":
+ oct"55" =: hex"7c";
+end.
diff --git a/fonts/obnov/obn17.mf b/fonts/obnov/obn17.mf
new file mode 100644
index 0000000000..2345ccc01c
--- /dev/null
+++ b/fonts/obnov/obn17.mf
@@ -0,0 +1,3482 @@
+%written by Basil Solomykov, Russia
+%(C) Copyright 2011 LPPL (LaTeX Project Public License)
+%Font Ordinary New (Obyknovennaya novaya)
+
+design_size := 17.28pt#;
+o# := .7776pt#;
+u# := 32/35pt#;
+bar# := 17.28/36pt#;
+slab# := 17.28/36pt#;
+cap_bar# := 17.28/36pt#;
+vair# := 17.28/36pt#;
+hair# := 17.28/36pt#;
+jut# := 34.56/36pt#;
+cap_jut# := 44.928/36pt#;
+stem# := 51.84/36pt#;
+curve# := 53.568/36pt#;
+cap_stem# := 62.21/36pt#;
+cap_curve# := 64.28/36pt#;
+s# := 0.65pt#;
+c# := .32pt#;
+
+input obn_lcyw_code.mf;
+font_identifier "OBN";
+mode_setup;
+clear_pen_memory;
+
+font_size design_size*pt#;
+asc_height# := 24/36*design_size*pt#;
+cap_height# := 24/36*design_size*pt#;
+body_height# := 27/36*design_size*pt#;
+x_height# := 15.4/36*design_size*pt#;
+desc_depth# := 8/36*design_size*pt#;
+body_depth# := 9/36*design_size*pt#;
+comma_depth# := 5/36*design_size*pt#;
+x_depth# := 4/5comma_depth#;
+bar_height# := .52x_height#;
+cap_bar_height# := .52cap_height#;
+cap_bar2_height# := .45cap_height#;
+border_height# := comma_depth#;
+cap_drop_round# := 3.8*slab#;
+drop_round# := 6.7/8cap_drop_round#;
+A_bracket# := 1.6pt#;
+bracket# := pt#;
+
+font_x_height x_height#;
+font_normal_space 6u#;
+font_normal_stretch 4u#;
+font_normal_shrink 2u#;
+font_quad 16u#;
+font_extra_space 6u#;
+
+k# := .8u#;
+kk# := 1.5u#;
+kkk# := 3u#;
+
+serif_darkness := 1/30;
+define_pixels(bracket,cap_o_width,sss_width,css_width);
+define_pixels(c,s,cap_bar_height,cap_bar2_height);
+define_pixels(border_height,A_bracket,cap_drop_round,x_depth,drop_round);
+define_whole_blacker_pixels(stem,cap_stem,curve,cap_curve,bar,slab,cap_bar,vair,hair);
+define_whole_pixels(asc_height,cap_height,x_height,u,desc_depth,comma_depth,bar_height,body_height,body_depth,u,o,cap_jut,jut);
+%define_corrected_pixels();
+lowres_fix(stem,curve) 1.2;
+lowres_fix(cap_stem,cap_curve) 1.2;
+if jut=cap_jut: jut:=jut-1; fi
+
+def serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g if left_jut=0: -1/2slab fi +1/2slab; x$d=x$e=x$h if right_jut=0: +1/2slab fi-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def serif_edge suffix $ =
+(serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse serif_bracket($f,$r,$e)) enddef;
+
+def serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...serif_darkness[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def T_serif(suffix $)(expr slab, bord_height, direction)= %Direction: 0-left, 1-right;
+penpos$(slab,if direction=1: - fi 90);
+x$=x$a=x$g; y$g-y$=y$-y$a=1/2slab;
+x$b=x$a + if direction=0: - fi .882bord_height; y$b=y$d=y$c+1/2slab;
+x$c=x$b + if direction=0: - fi 1/2slab; y$c=y$a-bord_height;
+x$d=x$e=x$b + if direction=0: - fi slab;
+y$e=y$g-1/2slab; y$f=y$g; x$f=x$c;
+labels($a,$b,$c,$d,$e,$f,$g) enddef;
+
+def T_edge suffix $ =
+(z$a..{down}z$b..z$c..z$d--z$e{up}..z$f--z$g--cycle) enddef;
+
+def A_serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(A_bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g+1/2slab; x$d=x$e=x$h-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def A_serif_edge suffix $ =
+(A_serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse A_serif_bracket($f,$r,$e)) enddef;
+
+def A_serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...0.6[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def ur_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a= 1/2slab;
+x$e=x$a + drop_length; y$e=y$f- drop_height;
+x$d=x$e - 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e - drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d - 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ur_drop_edge suffix $ =
+(z$f{right}..tension.9..{down}z$e{down}..{left}z$d{left}..{up}z$c{up}..z$b...{left}z$a--cycle) enddef;
+
+def ul_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$f- drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d + 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ul_drop_edge suffix $ =
+(z$f{left}..tension.9..{down}z$e{down}..{right}z$d{right}..{up}z$c{up}..z$b...{right}z$a--cycle) enddef;
+
+def dl_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, -90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$a + drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e + 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d - drop_round); x$b=x$d + 1/90drop_round;
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def dl_drop_edge suffix $ =
+(z$a{left}..tension.9..{up}z$e{up}..{right}z$d{right}..{down}z$c..{dir 250}z$b{dir -80}..{right}z$f--cycle) enddef;
+
+def S_serif (suffix $)(expr serif_slab, serif_length, serif_height)=
+%penpos$(serif_slab,90);
+x$a=x$i=x$; y$i=y$+1/2serif_slab; y$a=y$-1/2serif_slab;
+x$f=x$e=x$a+serif_length; y$f=y$g-1/2serif_slab; y$e=y$c=y$d+1/2serif_slab;
+x$g=x$f-1/2serif_slab; y$g=y$i-1/2serif_slab;
+y$h=y$f-1/4serif_slab; x$h=x$g-serif_slab;
+x$c=x$e-serif_slab; x$d=x$e-1/2serif_slab; y$d=y$g-serif_height;
+x$b=x$h-6/18serif_length; y$b=y$h-1/2slab;
+labels ($a,$b,$c,$d,$e,$f,$g,$h,$i) enddef;
+
+def S_serif_edge suffix $ =
+(z$a{right}...z$b..{dir -80}z$c..z$d..z$e--z$f{up}..z$g{left}..z$h{dir 150}..{left}z$i--cycle) enddef;
+
+beginchar(CYR_A,13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar(CYR_BE,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=y5=h-1/2slab;
+y1c=h; y2c=0; x5e=w-s-1/2cap_stem;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h; x4=w-s-1/2cap_stem-border_height;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_VE,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+css_width := x8 - x2r; save css_width;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar(CYR_GHE,9u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; x3=x4+2u;
+y5=y3; x5e=w-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_DE,12u#,cap_height#,comma_depth#);
+x10e=w-s; y10c=-d;
+y4c=h; x4h=w-s-1/2slab;
+x9=x4; y9c=0;
+x3=x8=x9d; y8=y7=1/2cap_bar; y3=y2=h-y8;
+x6e=s; y6=y10; x7=border_height+s;
+y5=y9; x5g=s+.5u; y1=y4; x1=x5+1.5u;
+x2=x1c;
+A_serif(1,1.2cap_bar,-96,10/7cap_jut,cap_jut);
+A_serif(5,1.2cap_bar,81,6/7cap_jut,cap_jut);
+serif(4,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+penpos2(cap_bar,90);
+penpos3(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_bar,90);
+penstroke z7e--z8e; penstroke z2e--z3e;
+fill A_serif_edge5...reverse A_serif_edge1...cycle;
+fill serif_edge9--reverse serif_edge4--cycle;
+T_serif(6,slab,border_height,0);
+T_serif(10,slab,border_height,1);
+fill T_edge6;
+fill T_edge10;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_IE,10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_YE,10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+x12=x13=x2r; y12=h+1/4cap_stem; y13=y12+cap_stem;
+x14=x15=x12+2cap_stem; y14=y12; y15=y13;
+fill z12..z13..cycle; fill z14..z15..cycle;
+penlabels(range 1 thru 15);
+endchar;
+
+beginchar(CYR_ZHE,round (16u#+s#),cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; y7=y4=y10=y11=cap_bar_height; x4=x7-1.5u;
+x10=x8r; x11=x10+1.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+x6=s; y6=0; y4-y5=y5-y6; x4-x5=x5-x6;
+penpos7(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,90);
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z6e{right}..tension.8..{up}z5e{up}..tension.8..{right}z4e--z7e;
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+x3=x5+1/2cap_stem; y2=h; x4-x3=x3-x2; y2-y3=y3-y4;
+penpos3(hair,0);
+penpos2(cap_bar,90);
+penstroke z4e{left}..tension.8..{up}z3e{up}..tension.8..{left}z2e;
+y1=h; x1a=x2; fill z6l..z6r..cycle;
+ul_drop(1,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ul_drop_edge1; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ZE,10u#+.5s#,cap_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height;
+x4=x6-3/2cap_stem; x5=x4-3u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3c,1.4border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.5cap_drop_round,slab);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_I,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,0); penpos6(cap_bar,0);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar(CYR_SHORT_I,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,0); penpos6(cap_bar,0);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+x7=.5w; y7=h+cap_bar;
+ur_drop(7,.8cap_drop_round,1/2(x3l-x1r),.8cap_drop_round,1.2cap_bar);
+fill ur_drop_edge7 rotatedaround(z7,180);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_KA,12u#+s#,cap_height#,0);
+x8g=x9g=s; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+y10=y11=cap_bar_height;
+x10=x8r; x11=x10+2.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_EL,13u#+1/2s#,cap_height#,0);
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.8cap_drop_round; y3=1.1cap_drop_round;
+dl_drop(1,cap_drop_round,cap_drop_round,cap_drop_round,slab);
+fill dl_drop_edge1;
+penpos2(cap_bar,-90);
+penpos3(cap_bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-slab;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,cap_bar,theta1,1.3cap_jut,1.3cap_jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,cap_stem,-90,cap_jut,cap_jut);
+serif(8,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_EM,13u#+1.5s#,cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,.51cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 110; y7l=10/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EN,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_O,11u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+cap_o_width := x7-x3; save cap_o_width;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_PE,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ER,10u#+s#,cap_height#,0);
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_ES,10u#+s#,cap_height#,0);
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_TE,round (11u#+s#),cap_height#,0);
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_U,13u#+s#,cap_height#,0);
+x1l=s+cap_jut; y1l=.98h-cap_bar;
+x3r=w-s-.8cap_jut; y3r=.98h-cap_bar;
+x4=33/60w; y4=6/53h;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,1.2cap_bar,theta2,1.2cap_jut,.8cap_jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=0; x6=x4-1.2cap_stem; z7l=z2;
+penpos7(1.2cap_bar,theta2+90);
+penpos5(1.2cap_bar,theta2+90);
+penpos6(1.2cap_bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,cap_drop_round,2u, 10/53h, round 1.2cap_bar);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EF,round (14u#+s#),cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1=x2=.5w; y2c=0; y1h=h;
+y6=y7=y8=y9=1.3cap_jut; y4=y3=y11=y12=h-1.3cap_jut+1/2slab;
+x3=x7=x2l; x8=x12=x2r; x4=x6=x3-u; x11=x9=x12+u;
+x5=s+1/2cap_curve; x10-x1=x1-x5; y4-y5=y5-y6; y10=y5;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,270);
+penpos7(cap_bar,270);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+penpos10(cap_curve,0);
+penpos11(cap_bar,90);
+penpos12(cap_bar,90);
+penstroke z3e--z4e{left}..tension.8..{down}z5e{down}..tension.8..{right}z6e--z7e;
+penstroke z8e--z9e{right}..tension.8..{up}z10e{up}..tension.8..{left}z11e--z12e;
+penlabels (range 1 thru 12);
+endchar;
+
+beginchar(CYR_HA,12u#+s#,cap_height#,0);
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_TSE,12.5u#+s#,cap_height#,comma_depth#);
+x1=x2=x5=cap_jut+1/2cap_stem+s;
+x3=x4=x6=w-x1-.5u; y5=y6=y2h;
+y1c=y3c=h; y2c=y4c=0; x7e=w-s; y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e;
+T_serif(7,cap_bar,border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_CHE,12u#+s#,cap_height#,0);
+x1=cap_jut+1/2cap_stem+s;
+x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,-90,cap_jut,cap_jut);
+serif(3,cap_stem,90,cap_jut,cap_jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=cap_bar_height-1/2cap_bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-2cap_bar;
+penpos6(cap_stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SHA,16u#+s#,cap_height#,0);
+if .5w <> good.x .5w: change_width; fi
+x1=x2=good.x (cap_jut+1/2cap_stem+s);
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=good.x .5w; y5=y1; y6=y2;
+y9b=slab; x9=good.x w-x1;
+x10=x9; y10b=h-slab;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_SHCHA,16.5u#+s#,cap_height#,comma_depth#);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=slab; x9h=w-s-.5u;
+x10=x9; y10b=h-slab;
+x11e=w-s; y11=y9h;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,slab,border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_HARD_SIGN,13.5u#+c#,cap_height#,0);
+x2r=x5-css_width; x1=x2; x8e=s; y8g=h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+x7=x1d; y1c=h; y2c=0;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=round(x3+5u-cap_stem);
+y6=y7=y2h;
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(8,cap_bar,border_height,0);
+fill T_edge8;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YERU,16u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+y3=y4=cap_bar_height; x3=round x2r; x4=x6=round (x3+5u-cap_stem) - 1;
+y4-y5=y5-y6; x5=x2r+css_width; y8b=slab; x8h=w-s;
+y6=y7=y2h; x9=x8; y9b=h-slab;
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(8,cap_stem,90,cap_jut,cap_jut);
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge9--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SOFT_SIGN,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=x3+5u-cap_stem;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y6=y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_E,10u#+.5s#,cap_height#,0);
+x1=16/39w; x5=.5w; y1=0; y5=h;
+y7=.5h; x7=w-1/2cap_curve-s;
+x9e=s; y9=0;
+dl_drop(9,cap_drop_round,16/39w-s,1.7cap_drop_round,slab);
+y8=0.1h-c; y6=0.9h+c; x8=x9+9/16(x7-x9); x6=x5+9/16(x7-x5);
+penpos5(cap_bar,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+penpos1(cap_bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+y2=y5; x2=x5-c;
+S_serif(2,slab,x1+c,1.5border_height);
+x3=x7-1/2cap_stem; y3=y4=cap_bar_height; x4=x2b-x1;
+penpos3(cap_bar,90); penpos4(cap_bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YU,16u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+y3=y7=.5h; x7=w-1/2cap_curve-s; x3=x7-cap_o_width; y9=0; y5=h; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3cap_stem; y11=y12=cap_bar_height;
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_YA,11u#+s#,cap_height#,0);
+x1=x2=w-cap_jut-1/2cap_stem-s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2l;
+y1c=h; y2c=0; x6=x4=x7-2.5u; x3=x1c;
+y4-y5=y5-y6; x5=x8-1.5c; x9=s; y9=0; y6-y8=y8-y9; x7-x10=3(x10-x6); x10-x8=x8-x9;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos7(cap_bar,270);
+penpos6(cap_bar,270);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90); fill z9l..z9r..cycle;
+penstroke z3e--z4e{left}..tension.9..z5e..tension.9..{right}z6e--z7e;
+penstroke z9e{right}..tension1..{up}z8e{up}..tension1..{right}z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_a,9u#-s#+2/7stem#,x_height#,0);
+x5=w-s-1/2bar; y5=0; y4=6/7stem; x4=x3=x5-5/7stem-1/2stem;
+y3=bar_height+2bar; y2=y1=h; x2=s+c+5.8/20w; x1e=s+c;
+ul_drop(1,drop_round,x2-s-c,11/8drop_round,bar);
+fill ul_drop_edge1;
+penpos2(bar,90);
+penpos3(stem,0);
+penpos4(stem,0);
+penpos5(bar,90);
+penstroke z2e{right}..{down}z3e--z4e{down}..{right}z5e;
+fill z5r..z5l..cycle;
+y6=bar_height+1/2bar; x6=x3+1/2stem; x7=s+1/2stem; y7=7/17bar_height;
+y8=0; x9=x4-1/2stem+1/2bar; x9-x8=x8-x7; y9=y4+3/2bar; x66=x8; y66=y6-c;
+numeric theta[]; theta1=angle(z66-z6);
+penpos6(vair,90);
+penpos66(vair,90);
+penpos7(curve,180);
+penpos8(vair,270);
+penpos9(bar,360);
+penstroke z6e{left}..z66e{dir theta1}..tension.8..{down}z7e{down}..tension.8..z8e{right}..{up}z9e;
+penlabels(range 1 thru 9,66);
+endchar;
+
+beginchar(CYR_be,8u#,asc_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2stem+s; x7=w-1/2stem-s;
+y2=y8=0.1x_height; y4=y6=0.9x_height; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+y9=y3; x9=s+1/2bar; y10=44/51h; x10=x5+c; x11=w-s-1/2bar; y11=h-1/2bar; %x11=w-1/2bar*sind 45; y11=h-1/2bar*sind 45;
+penpos9(hair,180);
+penpos10(curve,90);
+penpos11(hair,180);
+penstroke z9e{up}..{right}z10e{right}..tension1..z11e;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_ve,9u#-s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x9=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h; y8=y9=h-1/2bar; x8=x1d;
+y9-y10=y10-y4; x10=x5-c;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penpos8(bar,270);
+penpos9(bar,270);
+penpos10(curve,180);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penstroke z8e--z9e{right}..tension.8..z10e..tension.8..{left}z4e;
+sss_width := x5 - x2r; save sss_width;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ghe,7u#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; y3=y4=y5=h-1/2bar; x3=x1d; x5e=w-s;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+T_serif(5,bar,4/5border_height,1);
+x4=x5;
+fill serif_edge2--reverse serif_edge1--cycle;
+fill T_edge5;
+penpos3(bar,90);
+penpos4(bar,90);
+penstroke z3e--z4e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_de,9u#,x_height#,x_depth#);
+x3=x4=w-jut-1/2stem-s-.1u;
+y3c=h; y4c=0;
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+x7e=s; x10e=w-s; y7=y8=y9=y10=y4h; x8=x7; x9=x4c;
+T_serif(7,bar,4/5border_height,0);
+T_serif(10,bar,4/5border_height,1);
+fill T_edge7; fill T_edge10;
+penpos8(bar,90); penpos9(bar,90);
+penstroke z8e--z9e;
+x2=s+1.3jut+1/2bar; y2=bar; x1=x2+3/2bar; y1=h-bar;
+numeric theta[]; theta1=angle(z1-z2);
+A_serif(1,bar,theta1-180,1.3jut,jut);
+A_serif(2,bar,theta1,1.3jut,.8jut);
+fill A_serif_edge2..reverse A_serif_edge1..cycle;
+y5=y6=y3h; x5=x1d; x6=x3c;
+penpos5(bar,90);
+penpos6(bar,90);
+penstroke z5e--z6e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ie,8u#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x5+5/8(x7-x5);
+x10=w-s-1/2bar; y10=y7-5/4stem;
+penstroke z10e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ye,8u#,asc_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=x5=.5w; y1=0; y5=x_height;
+y3=.5x_height; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.1x_height; y4=y6=0.9x_height; x2=x4=x3+3/8(x5-x3); x6=x5+5/8(x7-x5);
+x10=w-s-1/2bar; y10=y7-5/4stem;
+penstroke z10e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+y12=y14=h; y11=y13=h-stem; x11=x12=x3r+c; x13=x14=x7r-c;
+fill z11..z12..cycle; fill z13..z14..cycle;
+penlabels(range 1 thru 14);
+endchar;
+
+beginchar(CYR_zhe,round (13u#+s#),x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,stem,-90,jut,jut);
+serif(9,stem,90,jut,jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; x4=x7-u; y4=y7=y10=y11=bar_height; x10=x8r; x11=x10+u;
+x6=s+1/2bar; y6=y16=0; y4-y5=y5-y6; x4-x5=1.3(x5-x6);
+x16=w-s-1/2bar; 1.3(x16-x15)=x15-x11; y11-y15=y15-y16;
+x2=x5-c; y2=y1=h; x4-x3=x3-x2; y2-y3=y3-y4; x1e=s+c;
+y13=y14=h; x13=x15+c; x13-x12=x12-x11; y13-y12=y12-y11; x14e=w-s-c;
+penpos2(bar,90);
+penpos3(hair,0);
+penpos4(bar,90);
+penpos5(curve,180);
+penpos6(bar,90);
+penpos7(bar,90);
+penpos10(bar,90);
+penpos11(bar,90);
+penpos12(hair,180);
+penpos13(bar,90);
+penpos15(curve,0);
+penpos16(bar,90);
+penstroke z7e--z4e{left}..tension.9..{down}z5e{down}..tension.9..{left}z6e;
+fill z6r..z6l..cycle;
+penstroke z10e--z11e{right}..tension.9..{down}z15e{down}..tension.9..{right}z16e;
+fill z16r..z16l..cycle;
+penstroke z4e{left}..z3e..{left}z2e;
+penstroke z11e{right}..z12e..{right}z13e;
+ul_drop(1,drop_round,x2-s-c,.9drop_round,bar);
+ur_drop(14,drop_round,x2-s-c,.9drop_round,bar);
+fill ul_drop_edge1; fill z1e..z1c..cycle;
+fill ur_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ze,6u#+2s#,x_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=bar_height;
+x4=x6-3/2stem; x5=x4-u;
+x6=w-s-1/2curve; y4-y6=y6-y7;
+x2=.45w; y2=h; x3=x6-1/5curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(bar,90);
+penpos3(curve,0);
+penpos44(bar,-90);
+penpos4(bar,90);
+penpos5(bar,90);
+penpos6(curve,0);
+penpos7(bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3.5c,border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,drop_round,18/39w-s,1.4drop_round,bar);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_i,9u#+s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r-1/2bar; x6=x3l+1/2bar;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,0); penpos6(bar,0);
+y5=.1h; y6=.9h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_short_i,9u#+s#,asc_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r-1/2bar; x6=x3l+1/2bar;
+y1c=y3c=x_height; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,0); penpos6(bar,0);
+y5=.1x_height; y6=.9x_height; penstroke z5e--z6e;
+x7=.5w; y7=h-3/2drop_round;
+ur_drop(7,drop_round,x3-.5w,1.1drop_round,1.2bar);
+fill ur_drop_edge7 rotatedaround(z7,180);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ka,9u#+.5s#,x_height#,0);
+x1g=x2g=s; y1c=h; y2c=y9=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=bar_height; x3=x1r; x4=x3+1.25u;
+x9=w-s-1/2bar; 1.3(x9-x8)=x8-x4; y4-y8=y8-y9;
+y6=y7=h; x6=x8+c; x6-x5=x5-x4; y6-y5=y5-y4; x7e=w-s-c;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(hair,180);
+penpos6(bar,90);
+penpos8(curve,0);
+penpos9(bar,90);
+penstroke z3e--z4e{right}..tension.9..{down}z8e{down}..tension.9..{right}z9e;
+fill z9r..z9l..cycle;
+penstroke z4e{right}..z5e..{right}z6e;
+ur_drop(7,drop_round,w-x6-s-c,.9drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_el,9u#+s#,x_height#,0);
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.7drop_round; y3=1.1drop_round;
+dl_drop(1,drop_round,drop_round,drop_round,bar);
+fill dl_drop_edge1;
+fill z1c..z1e..cycle;
+penpos2(bar,-90);
+penpos3(bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-bar;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,bar,theta1,1.4jut,1.3jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,stem,-90,jut,jut);
+serif(8,stem,90,jut,jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(bar,90);
+penpos6(bar,90);
+penstroke z5e--z6e;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_em,10u#+1.5s#,x_height#,0);
+x1g=s; y1c=0; y2=h-bar;
+A_serif(1,bar,90,jut,jut);
+x2=x1; serif(2,bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2bar; y4c=0;
+serif(3,stem,-90,.51bar, jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -110; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 109; y7l=6/28h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(stem,0); penpos8(stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_en,9u#+s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_o,8u#+s#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2curve-s;
+y2=y8=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_pe,9u#+s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_er,8u#+jut#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+s+.6(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=0.1h; y8=.1h; y4=0.9h; y6=.9h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5)-.2c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=-desc_depth;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_es,8u#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=1/2curve+s;
+y2=0.1h; y4=0.9h; x2=x4=x3+3/8(x5-x3);
+x6=w-s-1/2hair; y6=y3-4/5stem;
+penstroke z6e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e;
+fill z6r..z6l..cycle;
+z7=z5;
+ur_drop(7,drop_round,7/8(x6l-x1),3/2drop_round,bar);
+fill ur_drop_edge7;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(CYR_te,round (8u#-.5s#),x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x2=x3=.5w; x1e=s; x4e=w-s; y1=y4=y2h;
+y2c=h; y3c=0;
+serif(2,stem,-90,jut,jut);
+serif(3,stem,90,jut,jut);
+T_serif(1,bar,4/5border_height,0);
+T_serif(4,bar,4/5border_height,1);
+fill serif_edge3--reverse serif_edge2--cycle;
+fill T_edge1; fill T_edge4;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_u,9u#+s#,x_height#,desc_depth#);
+x1l=s+jut; y1l=h-bar;
+x3r=w-s-.8jut; y3r=h-bar;
+x4=33/60w; y4=-2/5d;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,1.2bar,theta2,1.2jut,.8jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=-d+bar; x6=x4-1.5stem; z7l=z2;
+penpos7(1.2bar,theta2+90);
+penpos5(1.2bar,theta2+90);
+penpos6(1.2bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,1.1stem,1.3u,drop_round,1.2bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(CYR_ef,12u#+.5c#,asc_height#,desc_depth#);
+if .5w = good.x .5w: change_width; fi
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w+.5(.5w-s); y1=0; y5=x_height;
+y3=y7=y12=.5x_height; x3=.5w; x7=w-1/2curve-s;
+y2=y8=y9=y11=0.1x_height; y4=y6=y13=y15=0.9x_height;
+x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5)-.2c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+z16=z3; x14=x10=.5w-.5(.5w-s); y10=0; y14=x_height;
+x12=s+1/2curve; x9=x15=x16-3/8(x16-x14); x11=x13=x14-5/8(x14-x12)+.2c;
+penpos10(vair,90);
+penpos11(o,30);
+penpos12(curve,0);
+penpos13(o,-30);
+penpos14(vair,-90);
+penpos15(.7o,-150);
+penpos16(stem,-180);
+penpos9(.7o,-210);
+penstroke z10e..z11e..z12e..z13e..z14e..z15e..z16e..z9e..cycle;
+x99=x155=x3l; x44=x222=x3r; y99=y222=.5x_height-3/2stem; y155=y44=.5x_height+3/2stem;
+unfill z99--z155--z44--z222--cycle; penlabels(44,99,155,222);
+x20=.5w; y20=-.75d; x17=x30=x3l; x23=x24=x3r; y17=y23=-1/2d;
+x18=x19=x17-4/5stem; x21=x22=x23+4/5stem; y18=y22=-d+bar; y19=y21=-d;
+y24=y30=x_height+3/5(asc_height-x_height);x25=x22-c; x29=x18+c; y29=y25=h-1/2bar;
+y28=y26=h; x28=x29+1/2bar; x26=x25-1/2bar; x27=.5w; y27=h-bar;
+fill z30---z17{dir -100}..tension2..z18{left}..{right}z19{right}..{dir 20}z20{dir -20}..{right}z21{right}..{left}z22..tension2..{dir 100}z23---z24{dir 80}..{dir 20}z25{dir 160}..{left}z26{left}..{dir -160}z27{dir 160}..{left}z28{left}..{dir -160}z29{dir -20}..{dir -80}z30&cycle;
+penlabels (range 1 thru 30);
+endchar;
+
+beginchar(CYR_ha,9u#+c#,x_height#,0);
+y3=y4=bar; x3=w-s-jut-1/2stem; x4=s+jut+1/2bar;
+y1=y2=h-bar; x1=s+jut+1/2stem+c; x2=w-s-1.25c-jut-1/2bar;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,stem,theta1-180,jut,jut);
+A_serif(2,1.2bar,theta2-180,jut,jut);
+serif(3,stem,theta1,jut,jut);
+A_serif(4,1.2bar,theta2,jut,1.3jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_tse,9.1u#+s#,x_height#,x_depth#);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1-.1u; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=y2h; penstroke z5e--z6e;
+x7e=w-s; y7=y4h;
+T_serif(7,bar,4/5border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_che,9u#+s#,x_height#,0);
+x1=jut+1/2stem+s;
+x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,-90,jut,jut);
+serif(3,stem,90,jut,jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=bar_height-1/2bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-.8bar;
+penpos6(stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_sha,round (13u#+3/2s#),x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=.5w; y5=y1; y6=y2;
+y9b=bar; x9h=w-s;
+x10=x9; y10b=h-bar;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,stem,-90,jut,jut);
+serif(6,stem,90,jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,stem,90,jut,jut);
+serif(10,stem,-90,jut,jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos7(bar,90);
+penpos8(bar,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_shcha,13.1u#+3/2s#,x_height#,x_depth#);
+if .5w <> good.x .5w: change_width; fi
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=bar; x9h=w-s-.1u;
+x10=x9; y10b=h-bar;
+x11e=w-s; y11=y9h;
+serif(9,stem,90,jut,jut);
+serif(10,stem,-90,jut,jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,stem,-90,jut,jut);
+serif(6,stem,90,jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos7(bar,90);
+penpos8(bar,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,bar,4/5border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_hard_sign,10u#,x_height#,0);
+x2r=x5-sss_width; x1=x2;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h; x8e=s; y8g=h;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+T_serif(8,bar,4/5border_height,0);
+fill T_edge8;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+x9=s+c; y9=y10=h; x10=s;
+unfill z8d{up}..z9--z10--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_yeru,12u#-c#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=x2r+sss_width;
+y6=y7=y2h; x8h=x9h=w-s; y8c=h; y9c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(8,stem,-90,jut,jut);
+serif(9,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge9--reverse serif_edge8--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_soft_sign,9u#-s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_e,6u#+2s#,x_height#,0);
+x1=x5=18/39w; y1=0; y5=h;
+y7=.5h; x7=w-1/2curve-s;
+x9e=s; y9=0;
+dl_drop(9,drop_round,18/39w-s,1.4drop_round,bar);
+y2=y5; x2=x5;
+S_serif(2,bar,x5-s-c,1.05border_height);
+x3=x7-1/2stem; y3=y4=bar_height; x4=x9c-c;
+penpos3(bar,90); penpos4(bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+y8=0.1h-.5c; y6=0.9h+.5c; x8=x1+5/8(x7-x9)-.1c; x6=x5+5/8(x7-x5)-.1c;
+penpos5(bar,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+penpos1(bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_yu,12u#+.5s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x3l=x1h+.3bar; y9=0; y5=h;
+y3=y7=.5h; x7=w-1/2curve-s; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+c+3/8(x5-x3); x6=x8=x5-c+5/8(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3stem; y11=y12=bar_height;
+penpos11(bar,90); penpos12(bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ya,8u#+s#+1/2bar#,x_height#,0);
+x1=x2=w-jut-1/2stem-s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2l; x4=x6=x3-2.5u+stem;
+y5-y4=y6-y5; x5=1/2stem+2s;
+y6=y7=y1h; x9=s; y9=0; x4-x8=x8-x9; y4-y8=y8-y9;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,-90);
+penpos4(bar,-90);
+penpos5(curve,180);
+penpos6(bar,90);
+penpos7(bar,90);
+penpos8(curve,0);
+penpos9(bar,-90);
+penstroke z3e--z4e{left}..tension.8..z5e..tension.8..{right}z6e--z7e;
+penstroke z9e{right}..{up}z8e{up}..{right}z4e;
+fill z9r..z9l..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar("A",13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar("B",11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,1/2cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("C",10u#+s#,cap_height#,0);
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("D",12u#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(o,30);
+penpos6(cap_curve,0);
+penpos7(o,-30);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+x3=x9=x1d;
+x8=x4=.5w; y8=y9=1/2cap_bar; y4=y3=h-1/2cap_bar;
+y6=.5h; x6=w-1/2cap_curve-s;
+y7=0.1h-c+1/2cap_bar; y5=0.9h+c-1/2cap_bar; x5=x7=x4+5/8(x6-x4);
+penstroke z3e--z4e{right}..z5e..z6e..z7e..{left}z8e--z9e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("E",10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("F",10u#+.5s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("G",10u#+cap_jut#+c#+s#,cap_height#,0);
+x1=x5=23/42(w-cap_jut-c); y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s-cap_jut-c; y8=y1; x8=x1-.1(w-cap_jut-c);
+S_serif(6,slab,w-s-2c-x1-cap_jut,1.5border_height);
+S_serif(7,slab,w-s-x1-cap_jut+c,7/4border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+x9r=x7e; y9r=7/4border_height-1/2cap_bar;
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+x10=x9l; x11=x9r; y10=y11=3/4cap_bar;
+fill reverse serif_edge9--z10--z11--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("H",12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("I",2cap_jut#+cap_stem#+2s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+endchar;
+
+beginchar("J",7u#+s#,cap_height#,0);
+x1=x4=w-cap_jut-1/2cap_stem-s;
+y1c=h; y2=y3=y4=13/53h; x2=x1r; x3=x1l;
+y5=0; x5=x3-2/3cap_stem;
+serif(1,cap_stem,-90,1.2cap_jut,cap_jut);
+fill z3--z2--reverse serif_edge1--cycle;
+penpos4(cap_stem,0);
+penpos5(cap_bar,-90);
+penstroke z4e{down}..{left}z5e;
+x6e=s; y6=0;
+dl_drop(6,cap_drop_round,x5-s,1.3drop_round,cap_bar);
+fill dl_drop_edge6;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("K",13u#-c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=cap_bar_height; x3l=w-cap_jut-.5cap_jut-cap_bar-s; y3l=h-cap_bar;
+x5=x6=x1r; y5=cap_bar_height-cap_bar; y6=y5-cap_bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+A_serif(3,.9cap_bar,theta1,1.5cap_jut,.6cap_jut);
+x4l=w-s-1.2cap_jut-cap_stem; y4l=cap_bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,cap_stem,theta2,.8cap_jut,cap_jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("L",10u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=y5=y2h; x3=x2d; x5e=w-s;
+T_serif(5,cap_bar,border_height,1); x4=x5;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penstroke z3e--z4e;
+fill T_edge5 reflectedabout(z3,z4);
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar("M",13u#+1.5s#,cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,.51cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 110; y7l=10/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("N",12u#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_bar+s;
+x3=w-x1; y1c=y3c=h; y2c=y4=y5=0;
+x4=x3r; x5=x3l;
+serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+A_serif(2,cap_bar,90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill A_serif_edge2--reverse serif_edge1--cycle;
+numeric theta[]; y7=y1h; x7=x1h-1.1cap_stem;
+theta1=angle(z5-z7);
+z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+fill z6--z1h--z7--z5{down}..{up}z4--reverse A_serif_edge3--cycle;
+unfill z1b--z1l--z1a--cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("O",11u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("P",10u#+s#,cap_height#,0);
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Q",11u#+s#,cap_height#,comma_depth#);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x12-1.5c; x12=x7l-c; y11=y12=-comma_depth;
+y9=0; x9=x1-c; y9-y10=y10-y11; x11-x10=x10-x9;
+penpos9(cap_bar,90); penpos10(cap_curve,0);
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z9e{dir -20}..tension.8..z10e..tension.8..{right}z11e--z12e;
+fill z12r..z12l..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("R",11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2r;
+y1c=h; y2c=0; x6=x4=x7+2.5u; x3=x1d;
+y4-y5=y5-y6; x5=x8; x9=w-s-1/2cap_bar; y9=0; y6-y8=y8-y9; x10=x6; x9-x8=6/7(x8-x10);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,-90);
+penpos6(cap_bar,-90);
+penpos8(cap_curve,-180);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penstroke z9e{left}..tension.8..{up}z8e{up}..tension.8..{left}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("S",9u#+s#,cap_height#,0);
+x6=x7=1/2w; y6=y7=0;
+S_serif(7,cap_bar,x6-s,1.5border_height);
+y5=11/53h; x5=w-s-1/2(1.9hair);
+y4=28/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2(1.9cap_bar);
+x2=.5w-c; y2=h; z1=z2;
+penpos6(cap_bar,-90);
+penpos5(1.9hair,0);
+penpos4(1.1cap_curve,90);
+penpos3(1.9hair,0);
+penpos2(cap_bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-cap_bar,1.2border_height);
+fill S_serif_edge1;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("T",round (11u#+s#),cap_height#,0);
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("U",12u#+s#,cap_height#,0);
+x1=cap_jut+1/2cap_stem+s;
+x3=w-s-cap_jut-1/2cap_bar;
+y1c=y3c=h; y2=y4=y5=y6=y24=y56=16/53h; x2=x1l;
+x4=x1r; x5=x3l; x6=x3r;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill z2--z4--reverse serif_edge1--cycle;
+fill z5--z6--reverse A_serif_edge3--cycle;
+x7=x1+.5(x3-x1); y7=0; x4-x24=x24-x2; x6-x56=x56-x5;
+penpos24(cap_stem,-180); penpos7(vair,-90);
+penpos56(cap_bar,0);
+penstroke z24e{down}..tension.9..{right}z7e{right}..tension.9..{up}z56e;
+penlabels(range 1 thru 7,24,56);
+endchar;
+
+beginchar("V",12u#,cap_height#,0);
+x1l=cap_jut+s;
+x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w-1/2cap_bar; x5=.5w+1/2cap_bar;
+y4=y5=1/2cap_bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("W",17u#,cap_height#,0);
+x9l=.5w-.3cap_stem;
+x7r=w-s-cap_jut;
+y9l=y7r=y1l=h-cap_bar; x5=x9l+.5(x7r-x9l)-1/2cap_bar; x6=x9l+.5(x7r-x9l)+1/2cap_bar;
+y5=y6=y2=y3=1/2cap_bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(7,cap_bar,theta2,1.3cap_jut,cap_jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+cap_jut;
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+z2=z1l+whatever*dir theta1; x3=x2+cap_bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("X",12u#+s#,cap_height#,0);
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("Y",12u#,cap_height#,0);
+x1l=cap_jut+s;
+x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w;
+y4=8/25h;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+y5c=0; x5=.5w+.5c;
+serif(5,cap_stem,90,cap_jut,cap_jut);
+x6=x5l; x7=x5r;
+z6=z1l+whatever*dir theta1;
+z7=z3r+whatever*dir theta2;
+fill z6--serif_edge5--z7--reverse A_serif_edge3--z2--reverse serif_edge1--z6&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Z",9u#+1.5s#,cap_height#,0);
+x6=s+1/2cap_bar; y6=y7=y8=1/2cap_bar;
+x8e=w-s; x7=x8;
+T_serif(8,cap_bar,border_height,1);
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4cap_bar;
+x4r=w-s-1/4cap_bar; y4=h-cap_bar;
+penpos4(cap_stem,0);
+penpos5(cap_stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2cap_bar;
+x3=w-s-1/2cap_bar; x1e=s+c;
+T_serif(1,cap_bar,border_height,0);
+x2=x1;
+penpos3(cap_bar,90);
+penpos2(cap_bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar("a",9u#-s#+2/7stem#,x_height#,0);
+x5=w-s-1/2bar; y5=0; y4=6/7stem; x4=x3=x5-5/7stem-1/2stem;
+y3=bar_height+2bar; y2=y1=h; x2=s+c+5.8/20w; x1e=s+c;
+ul_drop(1,drop_round,x2-s-c,11/8drop_round,bar);
+fill ul_drop_edge1;
+penpos2(bar,90);
+penpos3(stem,0);
+penpos4(stem,0);
+penpos5(bar,90);
+penstroke z2e{right}..{down}z3e--z4e{down}..{right}z5e;
+fill z5r..z5l..cycle;
+y6=bar_height+1/2bar; x6=x3+1/2stem; x7=s+1/2stem; y7=7/17bar_height;
+y8=0; x9=x4-1/2stem+1/2bar; x9-x8=x8-x7; y9=y4+3/2bar; x66=x8; y66=y6-c;
+numeric theta[]; theta1=angle(z66-z6);
+penpos6(vair,90);
+penpos66(vair,90);
+penpos7(curve,180);
+penpos8(vair,270);
+penpos9(bar,360);
+penstroke z6e{left}..z66e{dir theta1}..tension.8..{down}z7e{down}..tension.8..z8e{right}..{up}z9e;
+penlabels(range 1 thru 9,66);
+endchar;
+
+beginchar("b",8u#+jut#+.5c#,asc_height#,0);
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+s+.6(w-jut-2s); y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=y8=0.08x_height; y4=y6=0.92x_height; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5)-.5c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=0;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,0);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("c",8u#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=1/2curve+s;
+y2=0.1h; y4=0.9h; x2=x4=x3+3/8(x5-x3);
+x6=w-s-1/2hair; y6=y3-4/5stem;
+penstroke z6e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e;
+fill z6r..z6l..cycle;
+z7=z5;
+ur_drop(7,drop_round,7/8(x6l-x1),3/2drop_round,bar);
+fill ur_drop_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("d",8u#+jut#,asc_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.7o,-150);
+penpos7(stem,-180);
+penpos8(.7o,-210);
+x1=x5=s+.4(w-jut-2s); y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2curve+s; x7=w-1/2stem-s-jut;
+y2=y8=0.08x_height; y4=y6=0.92x_height; x2=x4=x3+3/8(x5-x3)+.5c; x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10h=w-s; x9=x10; y9c=h; y10c=0;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,0,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("e",8u#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x5+5/8(x7-x5);
+x10=w-s-1/2bar; y10=y7-5/4stem;
+penstroke z10e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("f",2jut#+stem#+2c#+2s#,asc_height#,0);
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x1; y3=x_height; x4r=x1l-.1stem; y4=x_height+1/2(asc_height-x_height);
+x5l=x4l-.05stem; y5=y4+1.5bar; x6=x1r+.2stem; y6=h-1/2bar;
+penpos3(stem,180);
+penpos4(.75curve,180);
+penpos5(.6curve,180);
+penpos6(bar,90);
+penstroke z3e{dir 95}...{up}z4e..z5e..{right}z6e;
+y6=y7; x7e=w-s;
+ur_drop(7,stem,x7e-x6,drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("g",9u#+c#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+y3=y7=2/3h; x3=1/2curve+s+c; x7=w-3/2stem-s;
+x1=x5=x3+1/2(x7-x3); y1=3/11h; y5=h;
+y2=y8=y1+0.1(8/11h); y4=y6=y1+0.9(8/11h); x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x9=x7; y9=y7+1/2(y6-y7); y10=h; x10=x7l+c;
+x11e=w-s; y11=y10;
+ur_drop(11,.8stem,x11e-x10,drop_round,bar);
+penpos9(hair,180); penpos10(vair,90);
+penstroke z9e{up}..{right}z10e;
+fill ur_drop_edge11;
+y12=y1; x12=x1; y13=y12/2; x13=s+1/4stem+.5c;
+y14=y15=0; x14=x2r; x15=x8r; y16=y18=-d/2; x16=w-s-1/2stem;
+x18=s+.7hair; y17=-d+1/2bar; x17=s+.6bar+9/20(x16-x18); x19=x14; y19l=y14r;
+penpos12(vair,90); penpos13(1/2curve,180); penpos14(curve,270);
+z144=z14; penpos144(curve,90); penpos15(curve,90);penpos16(1/2curve,0);
+penpos17(vair,-90); penpos18(1.4hair,-180); penpos19(1.4vair,-270);
+penstroke z12e{left}..{down}z13e{down}..{right}z14e;
+penstroke z144e--z15e{right}..tension.8..{down}z16e{down}..{left}z17e{left}..{up}z18e{up}..{right}z19e;
+penlabels(range 1 thru 19);
+endchar;
+
+beginchar("h",round (10u#-1.5c#),asc_height#,0);
+w:=w+1;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6h=w-s; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33x_height;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=x_height; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("i",2jut#+stem#+2s#,x_height#+2.1stem#,0);
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+z3=(x1,h); z4=(x1,h-1.1stem);
+fill z3..z4..cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("j",5u#,x_height#+2.1stem#,desc_depth#);
+x1h=w-s; y1c=x_height; y2=0; x2=x1;
+serif(1,stem,-90,1.5jut,0);
+penpos2(stem,0);
+fill z2l--z2r--reverse serif_edge1--cycle;
+z3=(x1-.05stem,h); z4=(x1-.05stem,h-1.1stem);
+fill z3..z4..cycle;
+y5=-1/4desc_depth; x5r=x2r;
+y6=-d+1/2bar; x6=x2l-1/2stem;
+penpos5(.97stem,0);
+penpos6(bar,-90);
+penstroke z2e--z5e{down}..{left}z6e;
+x7e=s; y7=-d+1/2bar;
+dl_drop(7,stem,x6-x7e,drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar("k",round (10u#-c#),asc_height#,0);
+w:=w+1;
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=bar_height; x3l=w-jut-.7jut-s; y3l=x_height-bar;
+x5=x6=x1r; y5=bar_height-bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+y6=y5-bar/cosd (theta1+180);
+A_serif(3,.9bar,theta1,1.8jut,.8jut);
+x4l=w-s-1.2jut-stem; y4l=bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,stem,theta2,.8jut,jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("l",2.4jut#+stem#+2s#,asc_height#,0);
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,1.2jut,0);
+serif(2,stem,90,1.2jut,1.2jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penlabels(1,2);
+endchar;
+
+beginchar("m",14u#+c#,x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6=.5w; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33h;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g+.1c; y4=h; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..{down}z3e;
+x10h=w-s; y10c=0;
+serif(10,stem,90,jut,jut);
+x9=x10; y9=y5;
+penpos9(stem,0);
+fill serif_edge10--z9r--z9l--cycle;
+x8=x10g+.1c; y8=h; y7=y9-1/4bar; x7l=x6r;
+penpos8(vair,90);
+penpos7(bar,180);
+penstroke z9e{up}..{left}z8e{left}..{down}z7e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("n",round (10u#-1.5c#),x_height#,0);
+w:=w+1;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6h=w-s; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33h;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=h; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("o",8u#+s#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2curve-s;
+y2=y8=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("p",8u#+jut#+.5c#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+s+.6(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=y8=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5)-.2c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=-desc_depth;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("q",8u#+jut#+.5c#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.7o,-150);
+penpos7(stem,-180);
+penpos8(.7o,-210);
+x1=x5=s+.4(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2stem-s-jut;
+y2=y8=0.09h; y4=y6=0.91h; x2=x4=x3+3/8(x5-x3)+.5c; x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10h=w-s; x9=x10; y9c=h; y10c=-d;
+serif(9,stem,-90,0,jut);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("r",7u#+1.5c#,x_height#,0);
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,1.2jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x4=round (x2h+1/2bar+c); y4=h; y3=23/33h-1/4bar; x3l=x2r;
+penpos4(bar,90);
+penpos3(bar,180);
+penstroke z4e{left}...{down}z3e;
+x5e=w-s; y5=h;
+ur_drop(5,1.1stem,x5e-x4,drop_round,bar);
+fill ur_drop_edge5;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar("s",7u#+c#,x_height#,0);
+x6=x7=1/2w; y6=y7=1/2bar;
+S_serif(7,bar,x6-s,border_height);
+y5=11/53h; x5=w-s-1/2(1.4hair);
+y4=29/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2hair;
+x2=.5w; y2=h; z1=z2;
+penpos6(bar,-90);
+penpos5(1.4hair,0);
+penpos4(1.1curve,90);
+penpos3(1.4hair,0);
+penpos2(bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.9..{dir 170}z4e{dir 170}..tension.9..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-1/3bar,.9border_height);
+fill S_serif_edge1;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("t",7u#-.75s#,asc_height#,0);
+y1=y2=46/53h; y4c=x_height; x4g=s;
+serif(4,stem,-90,jut,1.4jut);
+x1=x4r; x2=x1-bar;
+y5=7/33x_height; x5=x4; x3=x4l; y3=42/53h;
+penpos5(stem,180); numeric theta[];
+theta1=angle(z3-z2);
+fill z5l--reverse serif_edge4--z5r--cycle;
+fill z4r--z1{up}..{dir theta1}z2--z3--z4l--cycle;
+y6=1/4bar; x6=x4r+.7jut; x7=w-s-1/2bar; y7=13/53h;
+penpos6(vair,270); penpos7(hair,360);
+penstroke z5e{down}..{right}z6e{right}..{up}z7e;
+fill z7r..z7l..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar("u",round (10u#-1.5c#),x_height#,0);
+w:=w+1;
+x2h=w-s; y1c=h; y2c=0; x1=x2;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,0,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6g=s; y6c=h;
+serif(6,stem,-90,jut,0);
+x5=x6; y5=10/33h;
+penpos5(stem,180);
+fill serif_edge6--z5l--z5r--cycle;
+x4=x6+1/2stem+jut; y4=0; y3=y5+1/4bar; x3l=x2l;
+penpos4(vair,270);
+penpos3(bar,360);
+penstroke z5e{down}..{right}z4e{right}..z3e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar("v",10u#-1.5c#,x_height#,0);
+x1l=jut+s;
+x3r=w-s-jut;
+y1l=y3r=h-bar; x4=.5w-1/2bar; x5=.5w+1/2bar;
+y4=y5=1/2bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,bar,theta2,1.3jut,jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("w",13u#,x_height#,0);
+x9l=.5w-.3stem;
+x7r=w-s-jut;
+y9l=y7r=y1l=h-bar; x5=x9l+.5(x7r-x9l)-1/2bar; x6=x9l+.5(x7r-x9l)+1/2bar;
+y5=y6=y2=y3=1/2bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,stem,theta1,jut,jut);
+A_serif(7,bar,theta2,1.1jut,jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+jut;
+serif(1,stem,theta1,jut,jut);
+z2=z1l+whatever*dir theta1; x3=x2+bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("x",9u#+c#,x_height#,0);
+y3=y4=bar; x3=w-s-jut-1/2stem; x4=s+jut+1/2bar;
+y1=y2=h-bar; x1=s+jut+1/2stem+c; x2=w-s-1.25c-jut-1/2bar;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,stem,theta1-180,jut,jut);
+A_serif(2,1.2bar,theta2-180,jut,jut);
+serif(3,stem,theta1,jut,jut);
+A_serif(4,1.2bar,theta2,jut,1.3jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("y",9u#+s#,x_height#,desc_depth#);
+x1l=s+jut; y1l=h-bar;
+x3r=w-s-.8jut; y3r=h-bar;
+x4=33/60w; y4=-2/5d;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,1.2bar,theta2,1.2jut,.8jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=-d+bar; x6=x4-1.5stem; z7l=z2;
+penpos7(1.2bar,theta2+90);
+penpos5(1.2bar,theta2+90);
+penpos6(1.2bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,1.1stem,1.3u,drop_round,1.2bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("z",7u#+c#,x_height#,0);
+x6=s+1/2bar; y6=y7=y8=1/2bar;
+x8e=w-s; x7=x8;
+T_serif(8,bar,.8border_height,1);
+penpos6(bar,90);
+penpos7(bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-.5c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4bar;
+x4r=w-s-1/4bar; y4=h-bar;
+penpos4(stem,0);
+penpos5(stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2bar;
+x3=w-s-1/2bar; x1e=s+c;
+T_serif(1,bar,.8border_height,0);
+x2=x1;
+penpos3(bar,90);
+penpos2(bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(hex"30",9u#+1.5s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"31",6u#+3/2c#,cap_height#,0);
+y1c=0; x1h=w-s;
+serif(1,cap_stem,90,cap_jut,cap_jut);
+x6=x1f; y5=y6=h; x5=x1; x2=x1a; y2=45/53h;
+penpos4(1.1cap_bar,theta1+45);
+penpos3(1.1cap_bar,theta1+45);
+x4l=s; y4=30/53h; numeric theta[]; theta1=angle(z5-z4l);
+z3l=z5; penstroke z3e--z4e; fill z4l..z4r..cycle;
+fill serif_edge1--z6{dir 110}..{dir 250}z5--z2--cycle;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"32",9u#,cap_height#,0);
+z4=(9/33w,14/53h); z5=(s+11/20cap_bar,0);
+z3=(w-s-.5c-7/16cap_curve,40/53h); z2=(15/33w,h);
+penpos2(cap_bar,90);
+penpos3(7/8cap_curve,0);
+penpos4(1.1cap_bar,-45);
+penpos5(1.1cap_bar,0);
+x6=x5r; y6=y7=7/16cap_stem; y8=1/2cap_bar;
+x8e=w-s; x7=x8e;
+T_serif(8,cap_bar,3/5border_height,1);
+penpos6(7/8cap_stem,90);
+penpos7(7/8cap_stem,90);
+penstroke z6e--z7e; %fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+unfill z11{down}..z9--z10--cycle;
+penstroke z5e{up}..z4e..{up}z3e{up}..{left}z2e;
+z1=z2; ul_drop(1,cap_drop_round,15/33w-3c,1.2cap_drop_round,slab);
+fill ul_drop_edge1;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"33",9u#,cap_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height+c;
+x4=x6-3/2cap_stem; x5=x4-2u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_stem,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..{down}z3e{down}..{left}z44e;
+penstroke z5e--z4e{right}..tension.9..{down}z6e{down}..tension.9..{left}z7e;
+fill z5r..z5l..cycle;
+ul_drop(1,.8cap_drop_round,17/39w-s,cap_drop_round,slab);
+fill ul_drop_edge1;
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.3cap_drop_round,slab);
+fill dl_drop_edge8;
+penlabels(1,2,3,4,5,6,7,8,44);
+endchar;
+
+beginchar(hex"34",9u#+c#,cap_height#,0);
+y1=y2=33/53h; y4c=0; x4h=w-s;
+serif(4,7/8cap_stem,90,cap_jut,cap_jut);
+x1=x4r; x2=x1-bar;
+x3=x4l; y3=28/53h;
+numeric theta[]; theta1=angle(z2-z3);
+fill z3{dir theta1}--z2{dir theta1}..{down}z1--reverse serif_edge4--z3&cycle;
+y5=y6=15/53h; x5=x4e; x6=s+cap_bar;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e; fill z5r..z5l..cycle;
+y7=y6l; x7l=x6; z8=(6/36w, 21/53h);
+z9=(2/3w,h);
+penpos7(cap_bar,180); penpos8(cap_bar,150);
+penpos9(cap_stem,180);
+penstroke z7e{up}..z8e..{dir 70}z9e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"35",9u#,cap_height#,0);
+x7=x4=18/39w; y7=0; y5=cap_bar_height+c; y4=y5+s;
+x8e=s; y8=0; x5=x8d;
+dl_drop(8,cap_drop_round,18/39w-s,1.3cap_drop_round,slab);
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z5e..z4e{right}..tension.85..{down}z6e{down}..tension.85..{left}z7e;
+fill z5r..z5l..cycle;
+fill dl_drop_edge8;
+z3=z5; x2=x3; y2=h;
+penpos3(cap_bar,0); penpos2(cap_bar,0);
+penstroke z3e--z2e; fill z2l..tension 1.7..z2r..tension 1.7..cycle;
+y1r=h; x1=x2r; x13=x6; y13=h; 2(x12-x1)=x13-x12; y12=h-.6cap_stem;
+penpos1(7/8cap_stem,90); penpos13(1.1cap_bar,90); penpos12(3/4cap_stem,90);
+penstroke z1e..z12e..z13e; fill z13r..tension 1.7..z13l..tension 1.7..cycle;
+penlabels(1,2,3,4,5,6,7,8,12,13);
+endchar;
+
+beginchar(hex"36",9u#,cap_height#,0);
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=x9=.45w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.1h-c; y4=y6=0.9h+c; x8=x6=x7+11/32(x5-x7); x4=x10=x5+10/16(x3-x5); x2=x4-1/2c;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.1h-c; y11=y7;
+x11l=x3l; y10=y8;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e..z10e..z11e;
+z12 = z1;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+z13 = (.5w,.5h);
+currentpicture := currentpicture rotatedaround(z13,180);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"37",9u#-c#,cap_height#,0);
+x4=w-s-1/2cap_bar; y4=h-1/2cap_bar;
+penpos4(cap_bar,0);
+y3=y2=h-7/16cap_stem; y1=h-7/8cap_stem+1/2cap_bar;
+x3=x4l; x1e=s;
+T_serif(1,cap_bar,3/5border_height,0);
+x2=x1e;
+penpos3(7/8cap_stem,90);
+penpos2(7/8cap_stem,90);
+penstroke z2e--z3e;
+fill T_edge1; z44=(x4,h); fill z4r{up}..{left}z44--z3r--z4l--cycle;
+x10=s+c; x11=s; y10=y11=h;
+unfill z1d{up}..z10--z11--cycle;
+unfill z1d{up}..z10--z11--cycle;
+x5r=x3; y5=h-7/8cap_stem;
+x6=14/30w; y6=1/3cap_curve;
+penpos5(cap_bar,0); penpos6(cap_curve,0);
+penstroke z4e{dir -105}..z5e..{dir -95}z6e; fill z6l..z6r..cycle;
+penlabels(1,2,3,4,5,6,10,11,12);
+endchar;
+
+beginchar(hex"38",10u#-s#,cap_height#,0);
+x6=x4=x2=x8=1/2w; y6=0; y2=h;
+y5=11/53h; y7=13/53h; x5=w-s-1/2(1.9hair);
+y4=y8=28/53h; y3=42/53h; y1=40/53h; x3=2s+1/2(1.9cap_bar);
+x1=w-2s-1/2(1.9cap_bar); x7=w-x5;
+penpos6(cap_bar,-90);
+penpos5(2.5hair,0);
+penpos4(cap_curve,90);
+penpos3(2.5hair,0);
+penpos2(cap_bar,-90);
+penpos1(2.5hair,-180);
+penpos7(2.5hair,-180);
+penpos8(cap_bar,-270);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"39",9u#,cap_height#,0);
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=x9=.45w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.1h-c; y4=y6=0.9h+c; x8=x6=x7+11/32(x5-x7); x4=x10=x5+10/16(x3-x5); x2=x4-1/2c;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.1h-c; y11=y7;
+x11l=x3l; y10=y8;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e..z10e..z11e;
+z12 = z1;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+beginchar(oct"56",cap_stem#+2s#,cap_stem#,0);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+endchar;
+
+beginchar(oct"54",cap_stem#+2s#+c#,cap_stem#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"60",cap_stem#+2s#+c#,asc_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(oct"41", cap_stem#+2s#,cap_height#,0); "Exclamation mark";
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+ x3=.5w-1/2cap_bar; x4=.5w+1/2cap_bar; y3=y4=3/2cap_stem;
+ x6=x1; x5=x2; y5=y6=h;
+ fill z6--z3..z4--z5{up}..z6&cycle;
+endchar;
+
+beginchar(hex"22",2cap_stem#+3s#+2c#,cap_height#,0);
+ z1=(s,h-1/2cap_stem); z2=(x1+cap_stem+c,h-1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-cap_stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"5C",2cap_stem#+3s#+2c#,cap_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(x1+cap_stem+c,1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"7b",10u#-1.5c#,x_height#,0); "En dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"3D",10u#+1.5c#,x_height#,0);
+ z1=(s+1/2bar,bar_height-3c); z2=(w-s-1/2bar,bar_height-3c);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+3c); z4=(w-s-1/2bar,bar_height+3c);
+ penpos3(bar,90); penpos4(bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"23",13u#,asc_height#,body_depth#);
+ z1=(s+1/2bar,bar_height-5c); z2=(w-s-1/2bar,bar_height-5c);
+ penpos1(1.5bar,90); penpos2(1.5bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+5c); z4=(w-s-1/2bar,bar_height+5c);
+ penpos3(1.5bar,90); penpos4(1.5bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ z5=(.5w-5c,bar_height); z6=(.5w+5c,bar_height);
+ z7=z5+whatever*dir 76; y7=h; z8=whatever[z5,z7]; y8=-d;
+ penpos7(1.5bar,0); penpos8(1.5bar,0);
+ fill z7l{up}..{down}z7r--z8r{down}..{up}z8l--z7l&cycle;
+ z9=z6+whatever*dir 76; y9=h; z10=whatever[z6,z9]; y10=-d;
+ penpos9(1.5bar,0); penpos10(1.5bar,0);
+ fill z9l{up}..{down}z9r--z10r{down}..{up}z10l--z9l&cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"7c",14u#,x_height#,0); "Em dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(oct"55",2cap_jut#+cap_stem#+2s#,x_height#,0); "hyphen";
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"5F",1.1stem#+2s#,x_height#+2.1stem#,0);
+ z1=(.5w,h); z2=(.5w,h-1.1stem);
+ fill z1..z2..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7E",7u#,body_height#,0);
+ pickup pencircle xscaled .6pt yscaled .2pt rotated 55;
+ z4=(w-s-c,h-s); x1=s+c; y1=y4-1/2cap_stem;
+ y2-y1=y4-y3=3(y4-y1); z2-z1=z4-z3=whatever * dir 55;
+ draw z1..controls z2 and z3..z4;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"3C",7u#-2c#,x_height#,0); "looks like <<";
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3E",7u#-2c#,x_height#,0);
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ z10=(.5w,.5h);
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ currentpicture := currentpicture rotatedaround(z10,180);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3B",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+3/2c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ z8=(s,h-1/2cap_stem); z9=(w-s,h-1/2cap_stem);
+ fill z8..z9..cycle;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(hex"3A",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ fill z1..z2..cycle;
+ penlabels(1,2,3,4);
+ z3=(s,1/2cap_stem); z4=(w-s,1/2cap_stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2B",2cap_jut#+cap_stem#+2s#,x_height#,0);
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ x3=x4=.5w; y3=y2+1/2(x2-x1); y4=y2-1/2(x2-x1);
+ penpos3(1.8bar,0); penpos4(1.8bar,0);
+ penstroke z3e--z4e;
+ fill z3r..z3l..cycle; fill z4r..z4l..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2F",2s#+bar#,body_height#,body_depth#);
+ z1=(.5w,h-.5bar); z2=(.5w,-d+.5bar);
+ %pickup pencircle xscaled bar yscaled bar;
+ penpos1(bar,0); penpos2(bar,0);
+ penstroke z1e--z2e; fill z1r..z1l..cycle;
+ fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"27",cap_stem#+2s#+c#,x_height#+2.1stem#,0);
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ z6=(.5w-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"28",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"29",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"86",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"87",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"5B",2s#+3cap_bar#,body_height#,body_depth#);
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x2,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z1r..z1l..cycle; fill z6r..z6l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"5D",2s#+3cap_bar#,body_height#,body_depth#);
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x1,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z2r..z2l..cycle; fill z5r..z5l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"B9",16u#,cap_height#,0);
+ x1=x2=cap_jut+1/2cap_bar+s+cap_stem;
+ x3=w-x1-1/2cap_stem; y1c=h; y4=y5=0;
+ x4=x3r; x5=x3l; y2=12/53h; y3=h-y2;
+ x8=x2-stem; y8=0; z9=z8;
+ dl_drop(9,.9cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill dl_drop_edge9; penpos8(bar,-90);
+ serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+ penpos2(bar,0); penpos3(bar,0);
+ penstroke z2e{down}..{left}z8e;
+ fill z2l--z2r--reverse serif_edge1--cycle;
+ numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+ theta1=angle(z5-z7); x10=x3+stem; y10=h; z11=z10;
+ penpos10(bar,-90); penstroke z3e{up}..{right}z10e;
+ ur_drop(11,.9cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill ur_drop_edge11;
+ z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+ fill z6--z1h--z7--z5{down}..{up}z4--z3r--z3l--cycle;
+ unfill z1b--z1l--z1a--cycle;
+ y12=y13=2cap_bar; x12=x4+2cap_bar+s; x13=w-2s;
+ penpos12(.4stem,90); penpos13(.4stem,90);
+ penstroke z12e--z13e; y16=y11d-4.5cap_bar;
+ x13-x14=x14-x12; x16=x14; y14=y13+4.5cap_bar;
+ x17=w-s-.2stem; x17-x16=x16-x15; y16-y15=y15-y14;
+ y17=y15; penpos17(.7stem,0); penpos16(bar,90);
+ penpos15(.7stem,180); penpos14(bar,270);
+ penstroke z17e{up}..{left}z16e{left}..{down}z15e{down}..{right}z14e{right}..{up}z17e;
+ fill z12l..tension1.2..z12r..tension1.2..cycle;
+ fill z13l..tension1.2..z13r..tension1.2..cycle;
+ penlabels(range 1 thru 17);
+endchar;
+
+beginchar(hex"24",9u#-s#,body_height#,body_height#-cap_height#);
+ x6=x7=1/2w-c; y6=y7=0;
+ dl_drop(7,.9cap_drop_round,x6-s,1.5drop_round,cap_bar);
+ y5=12/53cap_height; x5=w-s-1/2(1.9hair);
+ y4=1/2cap_height; x4=19/38w; y3=41/53cap_height; x3=s+1/2(1.9cap_bar);
+ x2=.5w+c; y2=cap_height; z1=z2;
+ penpos6(cap_bar,-90); penpos5(1.9hair,0);
+ penpos4(1.1cap_curve,90); penpos3(1.9hair,0);
+ penpos2(cap_bar,-90);
+ penstroke z6e{right}..z5e{up}..tension.8..z4e..tension.8..{up}z3e..{right}z2e;
+ fill dl_drop_edge7;
+ ur_drop(1,.9cap_drop_round,w-s-x2,1.5drop_round,cap_bar);
+ fill ur_drop_edge1;
+ z8=(.5w,h); z9=(.5w,-d);
+ penpos8(cap_bar,0); penpos9(cap_bar,0);
+ penstroke z8e--z9e;
+ fill z9r..z9l..cycle; fill z8r..z8l..cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"25",12u#,asc_height#,0);
+penpos1(vair,90); penpos2(.6curve,0);
+penpos3(vair,-90); penpos4(.6curve,-180);
+y1=.55h; y3=h; y3-y4=y4-y1; y2=y4; x2=1/4curve+s; x4=5/2curve+s;
+x4-x1=x1-x2; x3=x1;
+penstroke z1e{left}..tension.9..{up}z2e{up}..tension1.2..{right}z3e..tension.9..{down}z4e{down}..tension1.2..{left}z1e..cycle;
+penpos5(vair,90); penpos6(.6curve,0);
+penpos7(vair,-90); penpos8(.6curve,-180);
+y5=0; y7=.45h; y7-y8=y8-y5; y6=y8; x8=w-1/4curve-s; x6=w-5/2curve-s;
+x8-x5=x5-x6; x7=x5;
+penstroke z5e{left}..tension.9..{up}z6e{up}..tension1.2..{right}z7e..tension.9..{down}z8e{down}..tension1.2..{left}z5e..cycle;
+x9l=x7; y9=h; x10r=x1; y10=0;
+penpos9(1.2bar,0); penpos10(1.2bar,0);
+penstroke z9e--z10e;
+penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"26",14u#,cap_height#,0);
+x4=x8=x3+.5curve; y6=0; y2=h; x2=x3+1.3cap_curve;
+y7=13/53h; y5=9/53h; x5=x7+3.5cap_curve; x6=x7+1.8cap_curve;
+y4=y8=30/53h; y1=44/53h; y3=42/53h; x3=4s+curve;
+x1=x3+2.1cap_curve; x7=s+1/2cap_curve;
+x10=w-s; y10=9/53h; x10-x9=x9-x5; y9=1/5cap_curve;
+th:=angle(z4-z5)+5; th1:=th-11; x11h=w-s-c; y11h=y1-4s;
+A_serif(11,cap_bar,-110,cap_jut,cap_jut); z12l=z11a;
+penpos6(cap_bar,-90); penpos5(cap_stem,45);
+penpos4(cap_stem,45); penpos3(2.5hair,0);
+penpos2(cap_bar,-90); penpos1(2hair,-180);
+penpos7(cap_curve,-180); penpos8(cap_bar,-250);
+penpos9(.5cap_curve,70); penpos10(cap_bar,150);
+penpos12(cap_bar,0);
+penstroke z10e..z9e..z5e{dir th}..{dir th1}z4e..tension.9..{up}z3e{up}..tension1..z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e{dir 8}..{dir 70}z12e;
+fill z12l--z12r..reverse A_serif_edge11--cycle;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"40",14u#,x_height#+2curve#,2curve#);
+a_width:=9u+c-2s;
+x1=2s+a_width-s-3/4stem+1.5curve; y1=x_height; y2=7/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=3s+a_width+1.5curve; y4=15/33x_height;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.2vair,270); penpos4(bar,360);
+x5=x1-3/2stem; y5=x_height; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c+1.5curve; y6=.54x_height; y8=.46x_height; z8l=whatever[z1r,z2r];
+x13=x5; y13=h-1/2bar; x14=s+1/2bar; y14=y6; y15=-d+1/2bar; x15=x7;
+x16=x4; y16=-d+3bar; penpos7(vair,270); penpos16(bar,270);
+penpos13(bar,90); penpos14(bar,180); penpos15(bar,270);
+penpos8(2bar,0); penpos5(vair,90); penpos6(curve,180);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 80}z4e..z13e{left}..z14e..{right}z15e..z16e;
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=x_height-c; z10=(x1r+c,x_height); z11=(x1l-c,x_height);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+fill z16r..z16l..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar(hex"12",2cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=s+.45cap_stem*cosd 45;
+x2=w-s+cap_bar*cosd 45; z2=z1+whatever*dir -45;
+penpos1(.9cap_stem,45); penpos2(cap_bar,45);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"13",2cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=w-s-.45cap_stem*cosd 45;
+x2=s-cap_bar*cosd 45; z2=z1+whatever*dir -135;
+penpos1(.9cap_stem,135); penpos2(cap_bar,135);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"3F",7u#+c#,cap_height#,0);
+ x1=s+4/5cap_stem; y1=1/2cap_stem;
+ penpos1(cap_stem,0);
+ fill z1r..z1l..cycle;
+ y2=cap_stem+cap_bar; x2=x1;
+ z3l=z2l+whatever*dir 96; y3l=25/53h;
+ penpos2(cap_bar,0); penpos3(cap_bar,0);
+ penstroke z2e--z3e;
+ z4l=z3l; penpos4(cap_bar,0);
+ y5=y4-2bar; x5=x4+3cap_bar; penpos7(cap_bar,-90);
+ x6=w-s-1/2cap_curve; y6=37/51h; x7=12/31w; y7=h;
+ penpos5(cap_bar,90); penpos6(cap_curve,180); z8=z7;
+ penstroke z4e{dir -69}..z5e{dir 10}..tension1..{up}z6e{up}..tension.9..{left}z7e;
+ ul_drop(8,.8cap_drop_round,x7-s,cap_curve,cap_bar);
+ fill ul_drop_edge8;.
+ fill z3r..tension1.2..z3l..tension1.2..cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"10",2jut#+stem#+2s#,x_height#,0);
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"11",5u#,x_height#,desc_depth#);
+x1h=w-s; y1c=x_height; y2=0; x2=x1;
+serif(1,stem,-90,1.5jut,0);
+penpos2(stem,0);
+fill z2l--z2r--reverse serif_edge1--cycle;
+y5=-1/4desc_depth; x5r=x2r;
+y6=-d+1/2bar; x6=x2l-1/2stem;
+penpos5(.97stem,0);
+penpos6(bar,-90);
+penstroke z2e--z5e{down}..{left}z6e;
+x7e=s; y7=-d+1/2bar;
+dl_drop(7,stem,x6-x7e,drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(hex"2A",3cap_stem#+3s#,body_height#,0);
+ x1=x2=x3=x4=.5w; y1=h-1/2stem; y2=y1-cap_stem; y3=y2-bar; y4=y3-bar;
+ penpos1(stem,0); penpos2(cap_bar,0); penpos3(2cap_bar,0);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle;
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,60);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,120);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,180);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,240);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,300);
+ penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"0B",round (4jut#+2stem#+2c#+3s#),asc_height#,0);
+w:=w+1;
+numeric dist; dist := 2jut+2stem-3c;
+x1g=x2g=s+dist; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x1; y3=x_height; x4r=x1l-.1stem; y4=x_height+1/2(asc_height-x_height);
+x5l=x4l-.05stem; y5=y4+1.5bar; x6=round (x1r+.2stem); y6=h-1/2bar;
+penpos3(stem,180);
+penpos4(.75curve,180);
+penpos5(.6curve,180);
+penpos6(bar,90);
+penstroke z3e{dir 95}...{up}z4e..z5e..{right}z6e;
+y6=y7; x7e=w-s;
+ur_drop(7,stem,x7e-x6,drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+x11g=x12g=s; y11c=x_height; y12c=0;
+serif(11,stem,-90,jut,jut);
+serif(12,stem,90,jut,jut);
+fill serif_edge12--reverse serif_edge11--cycle;
+x13=x11; y13=x_height; x14l=x13l; y14=x_height+1/2(asc_height-x_height);
+x15l=x14l; y15=y14+1.5bar; x16=x11r+.8stem; y16=h-1/2bar;
+x17r=x5l; y17=y5;
+penpos13(stem,180);
+penpos14(.75curve,180);
+penpos15(.6curve,180);
+penpos16(bar,90);
+penpos17(bar,0);
+penstroke z13e{dir 95}...{up}z14e..z15e..{right}z16e{right}..{down}z17e;
+fill z11d--z1c--z1b--z11e--cycle;
+penlabels(1,2,3,4,5,6,7,11,12,13,14,15,16,17);
+endchar;
+
+beginchar(hex"5E",6u#,body_height#,0);
+ x1=s+.45cap_bar*cosd 45; x2=w/2; y2=h-bar;
+ z1=z2+whatever*dir -135; x3=w-x1; z3=z2+whatever*dir -45;
+ penpos1(bar,135); penpos2(2bar,90); penpos3(bar,45);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"16",6u#,body_height#,0);
+ x1=s; x2=w-x1; y1=y2=h-4bar;
+ penpos1(.8bar,90); penpos2(.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7F",2stem#+4s#,x_height#+2.1stem#,0);
+ z1=(s+.5stem,h); z2=(s+.5stem,h-stem);
+ fill z1..z2..cycle;
+ z3=(w-s-.5stem,h); z4=(w-s-.5stem,h-stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+ligtable CYR_A: "A":
+ CYR_O kern -k#,
+ "O" kern -k#,
+ CYR_ES kern -k#,
+ "C" kern -k#,
+ CYR_TE kern -k#,
+ CYR_U kern -kk#,
+ CYR_EF kern -k#,
+ CYR_CHE kern -kkk#,
+ CYR_HARD_SIGN kern -k#,
+ "W" kern -kkk#,
+ "V" kern -kkk#,
+ "Y" kern -kkk#,
+ "T" kern -k#,
+ "w" kern -kk#,
+ "v" kern -kk#,
+ %CYR_o kern -k#,
+ %CYR_es kern -k#,
+ CYR_che kern -kk#;
+ %CYR_ie kern -k#,
+ %CYR_ye kern -k#;
+
+ligtable CYR_GHE: CYR_TE: "T":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_DE kern -k#,
+ CYR_EL kern -kk#,
+ CYR_el kern -k#,
+ CYR_o kern -k#,
+ "o" kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#;
+
+ligtable CYR_O: CYR_E: CYR_YU:
+ CYR_U kern -k#,
+ "X" kern -k#,
+ CYR_HA kern -k#;
+
+ligtable CYR_ER: "P":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_EL kern -k#,
+ CYR_el kern -k#;
+
+ligtable CYR_U:
+ CYR_A kern -kkk#,
+ "A" kern -kkk#,
+ CYR_O kern -k#,
+ "O" kern -k#,
+ CYR_ES kern -k#,
+ "C" kern -k#,
+ CYR_EL kern -kk#,
+ CYR_el kern -kkk#,
+ CYR_EF kern -k#;
+
+ligtable CYR_HA: "X":
+ "O" kern -k#,
+ CYR_O kern -k#,
+ "Q" kern -k#,
+ "C" kern -k#,
+ CYR_ES kern -k#,
+ "G" kern -k#;
+
+ligtable CYR_ghe: CYR_te:
+ CYR_de kern -k#,
+ CYR_el kern -k#;
+
+ligtable CYR_o: CYR_er: CYR_e: CYR_yu: CYR_ye:
+ "x" kern -k#,
+ CYR_ha kern -k#;
+
+ligtable CYR_u: "y":
+ CYR_de kern -k#,
+ CYR_el kern -k#,
+ CYR_ie kern -k#,
+ "e" kern -k#,
+ CYR_es kern -k#,
+ "c" kern -k#,
+ CYR_ye kern -k#,
+ CYR_ef kern -k#;
+
+ligtable CYR_ha: "x":
+ CYR_ie kern -k#,
+ "d" kern -k#,
+ "e" kern -k#,
+ "o" kern -k#,
+ "q" kern -k#,
+ CYR_o kern -k#;
+
+ligtable "D": "O": "Q":
+ "X" kern -k#;
+
+ligtable "L":
+ "T" kern -kk#,
+ CYR_TE kern -kk#,
+ "Y" kern -kk#;
+
+ligtable "V": "W":
+ "A" kern -kkk#,
+ CYR_A kern -kkk#,
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ CYR_el kern -kk#,
+ "d" kern -k#;
+
+ligtable "Y":
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "d" kern -k#,
+ "A" kern -kk#,
+ CYR_A kern -kk#;
+
+ligtable "a": CYR_a:
+ "V" kern -kk#,
+ "W" kern -kk#,
+ "T" kern -k#,
+ CYR_TE kern -k#,
+ "y" kern -k#,
+ CYR_u kern -k#,
+ "v" kern -k#,
+ "u" kern -k#,
+ CYR_che kern -kk#,
+ "Y" kern -kk#;
+
+ligtable "e": CYR_ie:
+ CYR_ha kern -k#,
+ "v" kern -k#,
+ "w" kern -k#,
+ "V" kern -k#,
+ "W" kern -k#;
+
+ligtable "f":
+ "f" =: hex"0B";
+
+ligtable "k": "l":
+ CYR_o kern -k#,
+ "o" kern -k#;
+
+ligtable "m": "n":
+ "y" kern -k#,
+ CYR_u kern -k#,
+ CYR_o kern -k#,
+ "o" kern -k#;
+
+ligtable "o": "b": "p":
+ "e" kern k#,
+ CYR_ie kern k#,
+ "o" kern k#,
+ CYR_o kern k#,
+ "v" kern -k#,
+ "w" kern -k#,
+ "V" kern -k#,
+ "W" kern -k#,
+ "x" kern -k#,
+ CYR_ha kern -k#, 1:: "!" kern kk#;
+
+ligtable "v": "w":
+ "A" kern -kk#,
+ CYR_A kern -kk#,
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ "d" kern -k#;
+
+ligtable hex"37":
+ CYR_A kern -kk#,
+ "A" kern -kk#;
+ligtable oct"55":
+ oct"55" =: hex"7b";
+ligtable hex"7b":
+ oct"55" =: hex"7c";
+end.
diff --git a/fonts/obnov/obn7.mf b/fonts/obnov/obn7.mf
new file mode 100644
index 0000000000..ba6d71b608
--- /dev/null
+++ b/fonts/obnov/obn7.mf
@@ -0,0 +1,3486 @@
+%written by Basil Solomykov, Russia
+%(C) Copyright 2011 LPPL (LaTeX Project Public License)
+%Font Ordinary New (Obyknovennaya novaya)
+
+design_size := 7pt#;
+o# := .32pt#;
+u# := 15/35pt#;
+bar# := 7.5/36pt#;
+slab# := 7.5/36pt#;
+cap_bar# := 7.5/36pt#;
+vair# := 7.5/36pt#;
+hair# := 7.5/36pt#;
+jut# := 15/36pt#;
+cap_jut# := 20/36pt#;
+stem# := 23/36pt#;
+curve# := 23.7/36pt#;
+cap_stem# := 27/36pt#;
+cap_curve# := 27.5/36pt#;
+s# := .32pt#;
+c# := .16pt#;
+
+input obn_lcyw_code.mf;
+font_identifier "OBN";
+mode_setup;
+clear_pen_memory;
+
+font_size design_size*pt#;
+asc_height# := 24/36*design_size*pt#;
+cap_height# := 24/36*design_size*pt#;
+body_height# := 27/36*design_size*pt#;
+x_height# := 15.4/36*design_size*pt#;
+desc_depth# := 8/36*design_size*pt#;
+body_depth# := 9/36*design_size*pt#;
+comma_depth# := 5/36*design_size*pt#;
+x_depth# := 4/5comma_depth#;
+bar_height# := .52x_height#;
+cap_bar_height# := .52cap_height#;
+cap_bar2_height# := .45cap_height#;
+border_height# := comma_depth#;
+cap_drop_round# := 4*slab#;
+drop_round# := 6/8cap_drop_round#;
+
+bracket# := pt#;
+
+font_x_height x_height#;
+font_normal_space 6u#;
+font_normal_stretch 4u#;
+font_normal_shrink 2u#;
+font_quad 16u#;
+font_extra_space 6u#;
+
+k# := .8u#;
+kk# := 1.5u#;
+kkk# := 3u#;
+
+serif_darkness := 1/30;
+define_pixels(bracket,cap_o_width,sss_width,css_width);
+define_pixels(c,s,cap_bar_height,cap_bar2_height);
+define_pixels(border_height,A_bracket,cap_drop_round,x_depth,drop_round);
+define_whole_blacker_pixels(stem,cap_stem,curve,cap_curve,bar,slab,cap_bar,vair,hair);
+define_whole_pixels(asc_height,cap_height,x_height,u,desc_depth,comma_depth,bar_height,body_height,body_depth,u,o,cap_jut,jut);
+%define_corrected_pixels();
+lowres_fix(stem,curve) 1.2;
+lowres_fix(cap_stem,cap_curve) 1.2;
+if jut=cap_jut: jut:=jut-1; fi
+
+def serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g if left_jut=0: -1/2slab fi +1/2slab; x$d=x$e=x$h if right_jut=0: +1/2slab fi-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def serif_edge suffix $ =
+(serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse serif_bracket($f,$r,$e)) enddef;
+
+def serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...serif_darkness[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def T_serif(suffix $)(expr slab, bord_height, direction)= %Direction: 0-left, 1-right;
+penpos$(slab,if direction=1: - fi 90);
+x$=x$a=x$g; y$g-y$=y$-y$a=1/2slab;
+x$b=x$a + if direction=0: - fi .882bord_height; y$b=y$d=y$c+1/2slab;
+x$c=x$b + if direction=0: - fi 1/2slab; y$c=y$a-bord_height;
+x$d=x$e=x$b + if direction=0: - fi slab;
+y$e=y$g-1/2slab; y$f=y$g; x$f=x$c;
+labels($a,$b,$c,$d,$e,$f,$g) enddef;
+
+def T_edge suffix $ =
+(z$a..{down}z$b..z$c..z$d--z$e{up}..z$f--z$g--cycle) enddef;
+
+def A_serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g+1/2slab; x$d=x$e=x$h-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def A_serif_edge suffix $ =
+(A_serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse A_serif_bracket($f,$r,$e)) enddef;
+
+def A_serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...0.6[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def ur_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a= 1/2slab;
+x$e=x$a + drop_length; y$e=y$f- drop_height;
+x$d=x$e - 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e - drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d - 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ur_drop_edge suffix $ =
+(z$f{right}..tension.9..{down}z$e{down}..{left}z$d{left}..{up}z$c{up}..z$b...{left}z$a--cycle) enddef;
+
+def ul_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$f- drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d + 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ul_drop_edge suffix $ =
+(z$f{left}..tension.9..{down}z$e{down}..{right}z$d{right}..{up}z$c{up}..z$b...{right}z$a--cycle) enddef;
+
+def dl_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, -90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$a + drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e + 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d - drop_round); x$b=x$d + 1/90drop_round;
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def dl_drop_edge suffix $ =
+(z$a{left}..tension.9..{up}z$e{up}..{right}z$d{right}..{down}z$c..{dir 250}z$b{dir -80}..{right}z$f--cycle) enddef;
+
+def S_serif (suffix $)(expr serif_slab, serif_length, serif_height)=
+%penpos$(serif_slab,90);
+x$a=x$i=x$; y$i=y$+1/2serif_slab; y$a=y$-1/2serif_slab;
+x$f=x$e=x$a+serif_length; y$f=y$g-1/2serif_slab; y$e=y$c=y$d+1/2serif_slab;
+x$g=x$f-1/2serif_slab; y$g=y$i-1/2serif_slab;
+y$h=y$f-1/4serif_slab; x$h=x$g-serif_slab;
+x$c=x$e-serif_slab; x$d=x$e-1/2serif_slab; y$d=y$g-serif_height;
+x$b=x$h-6/18serif_length; y$b=y$h-1/2slab;
+labels ($a,$b,$c,$d,$e,$f,$g,$h,$i) enddef;
+
+def S_serif_edge suffix $ =
+(z$a{right}...z$b..{dir -80}z$c..z$d..z$e--z$f{up}..z$g{left}..z$h{dir 150}..{left}z$i--cycle) enddef;
+
+beginchar(CYR_A,13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar(CYR_BE,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=y5=h-1/2slab;
+y1c=h; y2c=0; x5e=w-s-1/2cap_stem;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h; x4=w-s-1/2cap_stem-border_height;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_VE,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+css_width := x8 - x2r; save css_width;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar(CYR_GHE,9u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; x3=x4+2u;
+y5=y3; x5e=w-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_DE,12u#,cap_height#,comma_depth#);
+x10e=w-s; y10c=-d;
+y4c=h; x4h=w-s-1/2slab;
+x9=x4; y9c=0;
+x3=x8=x9d; y8=y7=1/2cap_bar; y3=y2=h-y8;
+x6e=s; y6=y10; x7=border_height+s;
+y5=y9; x5g=s+.5u; y1=y4; x1=x5+1.5u;
+x2=x1c;
+A_serif(1,1.2cap_bar,-96,10/7cap_jut,cap_jut);
+A_serif(5,1.2cap_bar,81,6/7cap_jut,cap_jut);
+serif(4,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+penpos2(cap_bar,90);
+penpos3(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_bar,90);
+penstroke z7e--z8e; penstroke z2e--z3e;
+fill A_serif_edge5...reverse A_serif_edge1...cycle;
+fill serif_edge9--reverse serif_edge4--cycle;
+T_serif(6,slab,border_height,0);
+T_serif(10,slab,border_height,1);
+fill T_edge6;
+fill T_edge10;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_IE,10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_YE,10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+x12=x13=x2r; y12=h+1/4cap_stem; y13=y12+cap_stem;
+x14=x15=x12+2cap_stem; y14=y12; y15=y13;
+fill z12..z13..cycle; fill z14..z15..cycle;
+penlabels(range 1 thru 15);
+endchar;
+
+beginchar(CYR_ZHE,round (16u#+s#),cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; y7=y4=y10=y11=cap_bar_height; x4=x7-1.5u;
+x10=x8r; x11=x10+1.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+x6=s; y6=0; y4-y5=y5-y6; x4-x5=x5-x6;
+penpos7(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,90);
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z6e{right}..tension.8..{up}z5e{up}..tension.8..{right}z4e--z7e;
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+x3=x5+1/2cap_stem; y2=h; x4-x3=x3-x2; y2-y3=y3-y4;
+penpos3(hair,0);
+penpos2(cap_bar,90);
+penstroke z4e{left}..tension.8..{up}z3e{up}..tension.8..{left}z2e;
+y1=h; x1a=x2; fill z6l..z6r..cycle;
+ul_drop(1,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ul_drop_edge1; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ZE,10u#+.5s#,cap_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height;
+x4=x6-3/2cap_stem; x5=x4-3u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3c,1.4border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.5cap_drop_round,slab);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_I,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,0); penpos6(cap_bar,0);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar(CYR_SHORT_I,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,0); penpos6(cap_bar,0);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+x7=.5w; y7=h+cap_bar;
+ur_drop(7,.8cap_drop_round,1/2(x3l-x1r),.8cap_drop_round,1.2cap_bar);
+fill ur_drop_edge7 rotatedaround(z7,180);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_KA,12u#+c#,cap_height#,0);
+x8g=x9g=s; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+y10=y11=cap_bar_height;
+x10=x8r; x11=x10+2.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_EL,13u#,cap_height#,0);
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.8cap_drop_round; y3=1.1cap_drop_round;
+dl_drop(1,1.1cap_drop_round,1.1cap_drop_round,1.2cap_drop_round,slab);
+fill dl_drop_edge1;
+penpos2(cap_bar,-90);
+penpos3(cap_bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-slab;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,cap_bar,theta1,1.2cap_jut,1.2cap_jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,cap_stem,-90,cap_jut,cap_jut);
+serif(8,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_EM,13u#,cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,1/2cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 110; y7l=11/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EN,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_O,11u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+cap_o_width := x7-x3; save cap_o_width;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_PE,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ER,10u#+s#,cap_height#,0);
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_ES,10u#+s#,cap_height#,0);
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_TE,round (11u#+s#),cap_height#,0);
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_U,13u#+s#,cap_height#,0);
+x1l=s+cap_jut; y1l=.98h-cap_bar;
+x3r=w-s-.8cap_jut; y3r=.98h-cap_bar;
+x4=33/60w; y4=6/53h;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,1.2cap_bar,theta2,1.2cap_jut,.8cap_jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=0; x6=x4-1.2cap_stem; z7l=z2;
+penpos7(1.2cap_bar,theta2+90);
+penpos5(1.2cap_bar,theta2+90);
+penpos6(1.2cap_bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,cap_drop_round,2u, 10/53h, round 1.2cap_bar);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EF,round (14u#+s#),cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1=x2=.5w; y2c=0; y1h=h;
+y6=y7=y8=y9=1.3cap_jut; y4=y3=y11=y12=h-1.3cap_jut+1/2slab;
+x3=x7=x2l; x8=x12=x2r; x4=x6=x3-u; x11=x9=x12+u;
+x5=s+1/2cap_curve; x10-x1=x1-x5; y4-y5=y5-y6; y10=y5;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,270);
+penpos7(cap_bar,270);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+penpos10(cap_curve,0);
+penpos11(cap_bar,90);
+penpos12(cap_bar,90);
+penstroke z3e--z4e{left}..tension.8..{down}z5e{down}..tension.8..{right}z6e--z7e;
+penstroke z8e--z9e{right}..tension.8..{up}z10e{up}..tension.8..{left}z11e--z12e;
+penlabels (range 1 thru 12);
+endchar;
+
+beginchar(CYR_HA,12u#+s#,cap_height#,0);
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_TSE,12.5u#+s#,cap_height#,comma_depth#);
+x1=x2=x5=cap_jut+1/2cap_stem+s;
+x3=x4=x6=w-x1-.5u; y5=y6=y2h;
+y1c=y3c=h; y2c=y4c=0; x7e=w-s; y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e;
+T_serif(7,cap_bar,border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_CHE,12u#+s#,cap_height#,0);
+x1=cap_jut+1/2cap_stem+s;
+x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,-90,cap_jut,cap_jut);
+serif(3,cap_stem,90,cap_jut,cap_jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=cap_bar_height-1/2cap_bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-2cap_bar;
+penpos6(cap_stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SHA,16u#+s#,cap_height#,0);
+if .5w <> good.x .5w: change_width; fi
+x1=x2=good.x (cap_jut+1/2cap_stem+s);
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=good.x .5w; y5=y1; y6=y2;
+y9b=slab; x9=good.x w-x1;
+x10=x9; y10b=h-slab;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_SHCHA,16.5u#+s#,cap_height#,comma_depth#);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=slab; x9h=w-s-.5u;
+x10=x9; y10b=h-slab;
+x11e=w-s; y11=y9h;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,slab,border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_HARD_SIGN,13.5u#+c#,cap_height#,0);
+x2r=x5-css_width; x1=x2; x8e=s; y8g=h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+x7=x1d; y1c=h; y2c=0;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=round(x3+5u-cap_stem);
+y6=y7=y2h;
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(8,cap_bar,border_height,0);
+fill T_edge8;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YERU,16u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+y3=y4=cap_bar_height; x3=round x2r; x4=x6=round (x3+5u-cap_stem) - 1;
+y4-y5=y5-y6; x5=x2r+css_width; y8b=slab; x8h=w-s;
+y6=y7=y2h; x9=x8; y9b=h-slab;
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(8,cap_stem,90,cap_jut,cap_jut);
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge9--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SOFT_SIGN,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=x3+5u-cap_stem;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y6=y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_E,10u#+.5s#,cap_height#,0);
+x1=16/39w; x5=.5w; y1=0; y5=h;
+y7=.5h; x7=w-1/2cap_curve-s;
+x9e=s; y9=0;
+dl_drop(9,cap_drop_round,16/39w-s,1.5cap_drop_round,slab);
+y8=0.1h-c; y6=0.9h+c; x8=x9+9/16(x7-x9); x6=x5+9/16(x7-x5);
+penpos5(cap_bar,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+penpos1(cap_bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+y2=y5; x2=x5-c;
+S_serif(2,slab,x1+c,1.5border_height);
+x3=x7-1/2cap_stem; y3=y4=cap_bar_height; x4=x2b-x1;
+penpos3(cap_bar,90); penpos4(cap_bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YU,16u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+y3=y7=.5h; x7=w-1/2cap_curve-s; x3=x7-cap_o_width; y9=0; y5=h; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3cap_stem; y11=y12=cap_bar_height;
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+
+beginchar(CYR_YA,11u#+s#,cap_height#,0);
+x1=x2=w-cap_jut-1/2cap_stem-s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2l;
+y1c=h; y2c=0; x6=x4=x7-2.5u; x3=x1c;
+y4-y5=y5-y6; x5=x8-1.5c; x9=s; y9=0; y6-y8=y8-y9; x7-x10=3(x10-x6); x10-x8=x8-x9;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos7(cap_bar,270);
+penpos6(cap_bar,270);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90); fill z9l..z9r..cycle;
+penstroke z3e--z4e{left}..tension.9..z5e..tension.9..{right}z6e--z7e;
+penstroke z9e{right}..tension1..{up}z8e{up}..tension1..{right}z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_a,9u#-s#+2/7stem#,x_height#,0);
+x5=w-s-1/2bar; y5=0; y4=6/7stem; x4=x3=x5-5/7stem-1/2stem;
+y3=bar_height+2bar; y2=y1=h; x2=s+c+6/20w; x1e=s+c;
+ul_drop(1,drop_round,x2-s-c,5/4drop_round,bar);
+fill ul_drop_edge1;
+penpos2(bar,90);
+penpos3(stem,0);
+penpos4(stem,0);
+penpos5(bar,90);
+penstroke z2e{right}..{down}z3e--z4e{down}..{right}z5e;
+fill z5r..z5l..cycle;
+y6=bar_height+1/2bar; x6=x3+1/2stem; x7=s+1/2stem; y7=7/17bar_height;
+y8=0; x9=x4-1/2stem+1/2bar; x9-x8=x8-x7; y9=y4+3/2bar; x66=x8; y66=y6-c;
+numeric theta[]; theta1=angle(z66-z6);
+penpos6(vair,90);
+penpos66(vair,90);
+penpos7(curve,180);
+penpos8(vair,270);
+penpos9(bar,360);
+penstroke z6e{left}..z66e{dir theta1}..tension.8..{down}z7e{down}..tension.8..z8e{right}..{up}z9e;
+penlabels(range 1 thru 9,66);
+endchar;
+
+beginchar(CYR_be,8u#,asc_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2stem+s; x7=w-1/2stem-s;
+y2=y8=0.1x_height; y4=y6=0.9x_height; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+y9=y3; x9=s+1/2bar; y10=44/51h; x10=x5+c; x11=w-s-1/2bar; y11=h-1/2bar; %x11=w-1/2bar*sind 45; y11=h-1/2bar*sind 45;
+penpos9(hair,180);
+penpos10(curve,90);
+penpos11(hair,180);
+penstroke z9e{up}..{right}z10e{right}..tension1..z11e;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_ve,9u#-s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x9=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h; y8=y9=h-1/2bar; x8=x1d;
+y9-y10=y10-y4; x10=x5-c;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penpos8(bar,270);
+penpos9(bar,270);
+penpos10(curve,180);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penstroke z8e--z9e{right}..tension.8..z10e..tension.8..{left}z4e;
+sss_width := x5 - x2r; save sss_width;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ghe,7u#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; y3=y4=y5=h-1/2bar; x3=x1d; x5e=w-s;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+T_serif(5,bar,4/5border_height,1);
+x4=x5;
+fill serif_edge2--reverse serif_edge1--cycle;
+fill T_edge5;
+penpos3(bar,90);
+penpos4(bar,90);
+penstroke z3e--z4e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_de,9u#,x_height#,x_depth#);
+x3=x4=w-jut-1/2stem-s-.1u;
+y3c=h; y4c=0;
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+x7e=s; x10e=w-s; y7=y8=y9=y10=y4h; x8=x7; x9=x4c;
+T_serif(7,bar,4/5border_height,0);
+T_serif(10,bar,4/5border_height,1);
+fill T_edge7; fill T_edge10;
+penpos8(bar,90); penpos9(bar,90);
+penstroke z8e--z9e;
+x2=s+1.3jut+1/2bar; y2=bar; x1=x2+3/2bar; y1=h-bar;
+numeric theta[]; theta1=angle(z1-z2);
+A_serif(1,bar,theta1-180,1.3jut,jut);
+A_serif(2,bar,theta1,1.3jut,.8jut);
+fill A_serif_edge2..reverse A_serif_edge1..cycle;
+y5=y6=y3h; x5=x1d; x6=x3c;
+penpos5(bar,90);
+penpos6(bar,90);
+penstroke z5e--z6e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ie,8u#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x5+5/8(x7-x5);
+x10=w-s-1/2bar; y10=y7-5/4stem;
+penstroke z10e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ye,8u#,asc_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=x5=.5w; y1=0; y5=x_height;
+y3=.5x_height; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.1x_height; y4=y6=0.9x_height; x2=x4=x3+3/8(x5-x3); x6=x5+5/8(x7-x5);
+x10=w-s-1/2bar; y10=y7-5/4stem;
+penstroke z10e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+y12=y14=h; y11=y13=h-stem; x11=x12=x3r+c; x13=x14=x7r-c;
+fill z11..z12..cycle; fill z13..z14..cycle;
+penlabels(range 1 thru 14);
+endchar;
+
+beginchar(CYR_zhe,round (13u#+s#),x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,stem,-90,jut,jut);
+serif(9,stem,90,jut,jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; x4=x7-u; y4=y7=y10=y11=bar_height; x10=x8r; x11=x10+u;
+x6=s+1/2bar; y6=y16=0; y4-y5=y5-y6; x4-x5=1.3(x5-x6);
+x16=w-s-1/2bar; 1.3(x16-x15)=x15-x11; y11-y15=y15-y16;
+x2=x5-c; y2=y1=h; x4-x3=x3-x2; y2-y3=y3-y4; x1e=s+c;
+y13=y14=h; x13=x15+c; x13-x12=x12-x11; y13-y12=y12-y11; x14e=w-s-c;
+penpos2(bar,90);
+penpos3(hair,0);
+penpos4(bar,90);
+penpos5(curve,180);
+penpos6(bar,90);
+penpos7(bar,90);
+penpos10(bar,90);
+penpos11(bar,90);
+penpos12(hair,180);
+penpos13(bar,90);
+penpos15(curve,0);
+penpos16(bar,90);
+penstroke z7e--z4e{left}..tension.9..{down}z5e{down}..tension.9..{left}z6e;
+fill z6r..z6l..cycle;
+penstroke z10e--z11e{right}..tension.9..{down}z15e{down}..tension.9..{right}z16e;
+fill z16r..z16l..cycle;
+penstroke z4e{left}..z3e..{left}z2e;
+penstroke z11e{right}..z12e..{right}z13e;
+ul_drop(1,7/8stem,x2-s-c,.81drop_round,bar);
+ur_drop(14,7/8stem,x2-s-c,.81drop_round,bar);
+fill ul_drop_edge1; fill z1e..z1c..cycle;
+fill ur_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ze,6u#+2s#,x_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=bar_height;
+x4=x6-3/2stem; x5=x4-u;
+x6=w-s-1/2curve; y4-y6=y6-y7;
+x2=.45w; y2=h; x3=x6-1/5curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(bar,90);
+penpos3(curve,0);
+penpos44(bar,-90);
+penpos4(bar,90);
+penpos5(bar,90);
+penpos6(curve,0);
+penpos7(bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3.5c,border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,drop_round,18/39w-s,1.3drop_round,bar);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_i,9u#+s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r-1/2bar; x6=x3l+1/2bar;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,0); penpos6(bar,0);
+y5=.1h; y6=.9h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_short_i,9u#+s#,asc_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r-1/2bar; x6=x3l+1/2bar;
+y1c=y3c=x_height; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,0); penpos6(bar,0);
+y5=.1x_height; y6=.9x_height; penstroke z5e--z6e;
+x7=.5w; y7=h-3/2drop_round;
+ur_drop(7,drop_round,x3-.5w,1.1drop_round,1.2bar);
+fill ur_drop_edge7 rotatedaround(z7,180);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ka,9u#+.5s#,x_height#,0);
+x1g=x2g=s; y1c=h; y2c=y9=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=bar_height; x3=x1r; x4=x3+1.25u;
+x9=w-s-1/2bar; 1.3(x9-x8)=x8-x4; y4-y8=y8-y9;
+y6=y7=h; x6=x8+c; x6-x5=x5-x4; y6-y5=y5-y4; x7e=w-s-c;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(hair,180);
+penpos6(bar,90);
+penpos8(curve,0);
+penpos9(bar,90);
+penstroke z3e--z4e{right}..tension.9..{down}z8e{down}..tension.9..{right}z9e;
+fill z9r..z9l..cycle;
+penstroke z4e{right}..z5e..{right}z6e;
+ur_drop(7,7/8stem,w-x6-s-c,3/4drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_el,9u#+s#,x_height#,0);
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.7drop_round; y3=1.1drop_round;
+dl_drop(1,drop_round,drop_round,drop_round,bar);
+fill dl_drop_edge1;
+fill z1c..z1e..cycle;
+penpos2(bar,-90);
+penpos3(bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-bar;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,bar,theta1,1.4jut,1.3jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,stem,-90,jut,jut);
+serif(8,stem,90,jut,jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(bar,90);
+penpos6(bar,90);
+penstroke z5e--z6e;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_em,10u#+c#,x_height#,0);
+x1g=s; y1c=0; y2=h-bar;
+A_serif(1,bar,90,jut,jut);
+x2=x1; serif(2,bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2bar; y4c=0;
+serif(3,stem,-90,1/2bar, jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -110; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 110; y7l=7/28h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(stem,0); penpos8(stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_en,9u#+s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_o,8u#+s#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2curve-s;
+y2=y8=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_pe,9u#+s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_er,8u#+jut#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+s+.6(w-jut-2s)-.2c; y1=0; y5=h;
+y3=y7=.5h; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=.1h; y8=.05h; y4=.9h; y6=.95h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5)-1.2c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=-desc_depth;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_es,8u#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=1/2curve+s;
+y2=.08h; y4=.92h; x2=x4=x3+3/8(x5-x3)+.38c;
+x6=w-s-1/2hair; y6=y3-4/5stem;
+penstroke z6e{down}..tension1.1..z1e..z2e..{up}z3e..z4e..z5e;
+fill z6r..z6l..cycle;
+z7=z5;
+ur_drop(7,drop_round,7/8(x6l-x1),3/2drop_round,bar);
+fill ur_drop_edge7;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(CYR_te,round (8u#-.5s#),x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x2=x3=.5w; x1e=s; x4e=w-s; y1=y4=y2h;
+y2c=h; y3c=0;
+serif(2,stem,-90,jut,jut);
+serif(3,stem,90,jut,jut);
+T_serif(1,bar,4/5border_height,0);
+T_serif(4,bar,4/5border_height,1);
+fill serif_edge3--reverse serif_edge2--cycle;
+fill T_edge1; fill T_edge4;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_u,9u#+s#,x_height#,desc_depth#);
+x1l=s+jut; y1l=h-bar;
+x3r=w-s-.8jut; y3r=h-bar;
+x4=33/60w; y4=-2/5d;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,1.2bar,theta2,1.2jut,.8jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=-d+bar; x6=x4-1.5stem; z7l=z2;
+penpos7(1.2bar,theta2+90);
+penpos5(1.2bar,theta2+90);
+penpos6(1.2bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,1.1stem,1.3u,drop_round,1.2bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(CYR_ef,12u#+1.5c#,asc_height#,desc_depth#);
+if .5w = good.x .5w: change_width; fi
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w+.5(.5w-s); y1=0; y5=x_height;
+y3=y7=y12=.5x_height; x3=.5w; x7=w-1/2curve-s;
+y2=y9=.1x_height; y8=y11=.08x_height; y4=y15=0.9x_height;
+y13=y6=.92x_height;
+x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5)-.7c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+z16=z3; x14=x10=.5w-.5(.5w-s); y10=0; y14=x_height;
+x12=s+1/2curve; x9=x15=x16-3/8(x16-x14); x11=x13=x14-5/8(x14-x12)+.7c;
+penpos10(vair,90);
+penpos11(o,30);
+penpos12(curve,0);
+penpos13(o,-30);
+penpos14(vair,-90);
+penpos15(.7o,-150);
+penpos16(stem,-180);
+penpos9(.7o,-210);
+penstroke z10e..z11e..z12e..z13e..z14e..z15e..z16e..z9e..cycle;
+x99=x155=x3l; x44=x222=x3r; y99=y222=.5x_height-3/2stem; y155=y44=.5x_height+3/2stem;
+unfill z99--z155--z44--z222--cycle; penlabels(44,99,155,222);
+x20=.5w; y20=-.75d; x17=x30=x3l; x23=x24=x3r; y17=y23=-1/2d;
+x18=x19=x17-4/5stem; x21=x22=x23+4/5stem; y18=y22=-d+bar; y19=y21=-d;
+y24=y30=x_height+3/5(asc_height-x_height);x25=x22-c; x29=x18+c; y29=y25=h-1/2bar;
+y28=y26=h; x28=x29+1/2bar; x26=x25-1/2bar; x27=.5w; y27=h-bar;
+fill z30---z17{dir -100}..tension2..z18{left}..{right}z19{right}..{dir 20}z20{dir -20}..{right}z21{right}..{left}z22..tension2..{dir 100}z23---z24{dir 80}..{dir 20}z25{dir 160}..{left}z26{left}..{dir -160}z27{dir 160}..{left}z28{left}..{dir -160}z29{dir -20}..{dir -80}z30&cycle;
+penlabels (range 1 thru 30);
+endchar;
+
+beginchar(CYR_ha,9u#+c#,x_height#,0);
+y3=y4=bar; x3=w-s-jut-1/2stem; x4=s+jut+1/2bar;
+y1=y2=h-bar; x1=s+jut+1/2stem+c; x2=w-s-1.25c-jut-1/2bar;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,stem,theta1-180,jut,jut);
+A_serif(2,1.2bar,theta2-180,jut,jut);
+serif(3,stem,theta1,jut,jut);
+A_serif(4,1.2bar,theta2,jut,1.3jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_tse,9.1u#+s#,x_height#,x_depth#);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1-.1u; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=y2h; penstroke z5e--z6e;
+x7e=w-s; y7=y4h;
+T_serif(7,bar,4/5border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_che,9u#+s#,x_height#,0);
+x1=jut+1/2stem+s;
+x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,-90,jut,jut);
+serif(3,stem,90,jut,jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=bar_height-1/2bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-.8bar;
+penpos6(stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_sha,round (13u#+3/2s#),x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=.5w; y5=y1; y6=y2;
+y9b=bar; x9h=w-s;
+x10=x9; y10b=h-bar;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,stem,-90,jut,jut);
+serif(6,stem,90,jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,stem,90,jut,jut);
+serif(10,stem,-90,jut,jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos7(bar,90);
+penpos8(bar,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_shcha,13.1u#+3/2s#,x_height#,x_depth#);
+if .5w <> good.x .5w: change_width; fi
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=bar; x9h=w-s-.1u;
+x10=x9; y10b=h-bar;
+x11e=w-s; y11=y9h;
+serif(9,stem,90,jut,jut);
+serif(10,stem,-90,jut,jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,stem,-90,jut,jut);
+serif(6,stem,90,jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos7(bar,90);
+penpos8(bar,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,bar,4/5border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_hard_sign,10u#,x_height#,0);
+x2r=x5-sss_width; x1=x2;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h; x8e=s; y8g=h;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+T_serif(8,bar,4/5border_height,0);
+fill T_edge8;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+x9=s+c; y9=y10=h; x10=s;
+unfill z8d{up}..z9--z10--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_yeru,12u#-c#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=x2r+sss_width;
+y6=y7=y2h; x8h=x9h=w-s; y8c=h; y9c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(8,stem,-90,jut,jut);
+serif(9,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge9--reverse serif_edge8--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_soft_sign,9u#-s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_e,6u#+2s#,x_height#,0);
+x1=17/39w; x5=.5w-c; y1=0; y5=h;
+y7=.5h; x7=w-1/2curve-s;
+x9e=s; y9=0;
+dl_drop(9,drop_round,18/39w-s,1.3drop_round,bar);
+y2=y5; x2=x5;
+S_serif(2,bar,x5-s-c,border_height);
+x3=x7-1/2stem; y3=y4=bar_height; x4=x9c-c;
+penpos3(bar,90); penpos4(bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+y8=0.1h-c; y6=0.9h+c; x8=x1+5/8(x7-x9)+.1c; x6=x2+5/8(x7-x5);
+penpos5(bar,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+penpos1(bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..z1e;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_yu,12u#+.5s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x3l=x1h+.3bar; y9=0; y5=h;
+y3=y7=.5h; x7=w-1/2curve-s; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+c+3/8(x5-x3); x6=x8=x5-c+5/8(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3stem; y11=y12=bar_height;
+penpos11(bar,90); penpos12(bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ya,8u#+s#+1/2bar#,x_height#,0);
+x1=x2=w-jut-1/2stem-s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2l; x4=x6=x3-2.5u+stem;
+y5-y4=y6-y5; x5=1/2stem+2s;
+y6=y7=y1h; x9=s; y9=0; x4-x8=x8-x9; y4-y8=y8-y9;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,-90);
+penpos4(bar,-90);
+penpos5(curve,180);
+penpos6(bar,90);
+penpos7(bar,90);
+penpos8(curve,0);
+penpos9(bar,-90);
+penstroke z3e--z4e{left}..tension.8..z5e..tension.8..{right}z6e--z7e;
+penstroke z9e{right}..{up}z8e{up}..{right}z4e;
+fill z9r..z9l..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar("A",13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar("B",11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,1/2cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("C",10u#+s#,cap_height#,0);
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("D",12u#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(o,30);
+penpos6(cap_curve,0);
+penpos7(o,-30);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+x3=x9=x1d;
+x8=x4=.5w; y8=y9=1/2cap_bar; y4=y3=h-1/2cap_bar;
+y6=.5h; x6=w-1/2cap_curve-s;
+y7=0.07h; y5=0.93h; x5=x7=x4+5/8(x6-x4)-.6c;
+penstroke z3e--z4e{right}..z5e..z6e..z7e..{left}z8e--z9e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("E",10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("F",10u#+.5s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("G",10u#+cap_jut#+c#+s#,cap_height#,0);
+x1=x5=23/42(w-cap_jut-c); y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s-cap_jut-c; y8=y1; x8=x1-.1(w-cap_jut-c);
+S_serif(6,slab,w-s-2c-x1-cap_jut,1.5border_height);
+S_serif(7,slab,w-s-x1-cap_jut+c,7/4border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+x9r=x7e; y9r=7/4border_height-1/2cap_bar;
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+x10=x9l; x11=x9r; y10=y11=3/4cap_bar;
+fill reverse serif_edge9--z10--z11--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("H",12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("I",2cap_jut#+cap_stem#+2s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+endchar;
+
+beginchar("J",7u#+s#,cap_height#,0);
+x1=x4=w-cap_jut-1/2cap_stem-s;
+y1c=h; y2=y3=y4=13/53h; x2=x1r; x3=x1l;
+y5=0; x5=x3-2/3cap_stem;
+serif(1,cap_stem,-90,1.2cap_jut,cap_jut);
+fill z3--z2--reverse serif_edge1--cycle;
+penpos4(cap_stem,0);
+penpos5(cap_bar,-90);
+penstroke z4e{down}..{left}z5e;
+x6e=s; y6=0;
+dl_drop(6,cap_drop_round,x5-s,1.3drop_round,cap_bar);
+fill dl_drop_edge6;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("K",13u#-c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=cap_bar_height; x3l=w-cap_jut-.5cap_jut-cap_bar-s; y3l=h-cap_bar;
+x5=x6=x1r; y5=cap_bar_height-cap_bar; y6=y5-cap_bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+A_serif(3,.9cap_bar,theta1,1.5cap_jut,.6cap_jut);
+x4l=w-s-1.2cap_jut-cap_stem; y4l=cap_bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,cap_stem,theta2,.8cap_jut,cap_jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("L",10u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=y5=y2h; x3=x2d; x5e=w-s;
+T_serif(5,cap_bar,border_height,1); x4=x5;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penstroke z3e--z4e;
+fill T_edge5 reflectedabout(z3,z4);
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar("M",13u#,cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,1/2cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 110; y7l=11/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("N",12u#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_bar+s;
+x3=w-x1; y1c=y3c=h; y2c=y4=y5=0;
+x4=x3r; x5=x3l;
+serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+A_serif(2,cap_bar,90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill A_serif_edge2--reverse serif_edge1--cycle;
+numeric theta[]; y7=y1h; x7=x1h-1.1cap_stem;
+theta1=angle(z5-z7);
+z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+fill z6--z1h--z7--z5{down}..{up}z4--reverse A_serif_edge3--cycle;
+unfill z1b--z1l--z1a--cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("O",11u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("P",10u#+s#,cap_height#,0);
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Q",11u#+s#,cap_height#,comma_depth#);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x12-1.5c; x12=x7l-c; y11=y12=-comma_depth;
+y9=0; x9=x1-c; y9-y10=y10-y11; x11-x10=x10-x9;
+penpos9(cap_bar,90); penpos10(cap_curve,0);
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z9e{dir -20}..tension.8..z10e..tension.8..{right}z11e--z12e;
+fill z12r..z12l..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("R",11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2r;
+y1c=h; y2c=0; x6=x4=x7+2.5u; x3=x1d;
+y4-y5=y5-y6; x5=x8; x9=w-s-1/2cap_bar; y9=0; y6-y8=y8-y9; x10=x6; x9-x8=6/7(x8-x10);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,-90);
+penpos6(cap_bar,-90);
+penpos8(cap_curve,-180);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90); fill z9l..z9r..cycle;
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penstroke z9e{left}..tension.8..{up}z8e{up}..tension.8..{left}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("S",9u#+s#,cap_height#,0);
+x6=x7=1/2w; y6=y7=0;
+S_serif(7,cap_bar,x6-s,1.5border_height);
+y5=11/53h; x5=w-s-1/2(1.9hair);
+y4=28/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2(1.9cap_bar);
+x2=.5w-c; y2=h; z1=z2;
+penpos6(cap_bar,-90);
+penpos5(1.9hair,0);
+penpos4(1.1cap_curve,90);
+penpos3(1.9hair,0);
+penpos2(cap_bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-cap_bar,1.2border_height);
+fill S_serif_edge1;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("T",round (11u#+s#),cap_height#,0);
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("U",12u#+s#,cap_height#,0);
+x1=cap_jut+1/2cap_stem+s;
+x3=w-s-cap_jut-1/2cap_bar;
+y1c=y3c=h; y2=y4=y5=y6=y24=y56=16/53h; x2=x1l;
+x4=x1r; x5=x3l; x6=x3r;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill z2--z4--reverse serif_edge1--cycle;
+fill z5--z6--reverse A_serif_edge3--cycle;
+x7=x1+.5(x3-x1); y7=0; x4-x24=x24-x2; x6-x56=x56-x5;
+penpos24(cap_stem,-180); penpos7(vair,-90);
+penpos56(cap_bar,0);
+penstroke z24e{down}..tension.9..{right}z7e{right}..tension.9..{up}z56e;
+penlabels(range 1 thru 7,24,56);
+endchar;
+
+beginchar("V",12u#,cap_height#,0);
+x1l=cap_jut+s;
+x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w-1/2cap_bar; x5=.5w+1/2cap_bar;
+y4=y5=1/2cap_bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("W",17u#,cap_height#,0);
+x9l=.5w-.3cap_stem;
+x7r=w-s-cap_jut;
+y9l=y7r=y1l=h-cap_bar; x5=x9l+.5(x7r-x9l)-1/2cap_bar; x6=x9l+.5(x7r-x9l)+1/2cap_bar;
+y5=y6=y2=y3=1/2cap_bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(7,cap_bar,theta2,1.3cap_jut,cap_jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+cap_jut;
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+z2=z1l+whatever*dir theta1; x3=x2+cap_bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("X",12u#+s#,cap_height#,0);
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("Y",12u#,cap_height#,0);
+x1l=cap_jut+s;
+x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w;
+y4=8/25h;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+y5c=0; x5=.5w+.5c;
+serif(5,cap_stem,90,cap_jut,cap_jut);
+x6=x5l; x7=x5r;
+z6=z1l+whatever*dir theta1;
+z7=z3r+whatever*dir theta2;
+fill z6--serif_edge5--z7--reverse A_serif_edge3--z2--reverse serif_edge1--z6&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Z",9u#+1.5s#,cap_height#,0);
+x6=s+1/2cap_bar; y6=y7=y8=1/2cap_bar;
+x8e=w-s; x7=x8;
+T_serif(8,cap_bar,border_height,1);
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4cap_bar;
+x4r=w-s-1/4cap_bar; y4=h-cap_bar;
+penpos4(cap_stem,0);
+penpos5(cap_stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2cap_bar;
+x3=w-s-1/2cap_bar; x1e=s+c;
+T_serif(1,cap_bar,border_height,0);
+x2=x1;
+penpos3(cap_bar,90);
+penpos2(cap_bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar("a",9u#-s#+2/7stem#,x_height#,0);
+x5=w-s-1/2bar; y5=0; y4=6/7stem; x4=x3=x5-5/7stem-1/2stem;
+y3=bar_height+2bar; y2=y1=h; x2=s+c+6/20w; x1e=s+c;
+ul_drop(1,drop_round,x2-s-c,5/4drop_round,bar);
+fill ul_drop_edge1;
+penpos2(bar,90);
+penpos3(stem,0);
+penpos4(stem,0);
+penpos5(bar,90);
+penstroke z2e{right}..{down}z3e--z4e{down}..{right}z5e;
+fill z5r..z5l..cycle;
+y6=bar_height+1/2bar; x6=x3+1/2stem; x7=s+1/2stem; y7=7/17bar_height;
+y8=0; x9=x4-1/2stem+1/2bar; x9-x8=x8-x7; y9=y4+3/2bar; x66=x8; y66=y6-c;
+numeric theta[]; theta1=angle(z66-z6);
+penpos6(vair,90);
+penpos66(vair,90);
+penpos7(curve,180);
+penpos8(vair,270);
+penpos9(bar,360);
+penstroke z6e{left}..z66e{dir theta1}..tension.8..{down}z7e{down}..tension.8..z8e{right}..{up}z9e;
+penlabels(range 1 thru 9,66);
+endchar;
+
+beginchar("b",8u#+jut#,asc_height#,0);
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+s+.6(w-jut-2s); y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=.1x_height; y8=.05x_height; y4=.9x_height; y6=.95x_height; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5)-1.2c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=0;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,0);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("c",8u#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=1/2curve+s;
+y2=.08h; y4=.92h; x2=x4=x3+3/8(x5-x3)+.38c;
+x6=w-s-1/2hair; y6=y3-4/5stem;
+penstroke z6e{down}..tension1.1..z1e..z2e..{up}z3e..z4e..z5e;
+fill z6r..z6l..cycle;
+z7=z5;
+ur_drop(7,drop_round,7/8(x6l-x1),3/2drop_round,bar);
+fill ur_drop_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("d",8u#+jut#,asc_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.7o,-150);
+penpos7(stem,-180);
+penpos8(.7o,-210);
+x1=x5=s+.4(w-jut-2s); y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2curve+s; x7=w-1/2stem-s-jut;
+y2=.05x_height; y8=.1x_height; y4=.95x_height; y6=.9x_height;
+x2=x4=x3+3/8(x5-x3)+1.2c; x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10h=w-s; x9=x10; y9c=h; y10c=0;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,0,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("e",8u#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x5+5/8(x7-x5);
+x10=w-s-1/2bar; y10=y7-5/4stem;
+penstroke z10e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("f",2jut#+stem#+2c#+2s#,asc_height#,0);
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x1; y3=x_height; x4r=x1l-.1stem; y4=x_height+1/2(asc_height-x_height);
+x5l=x4l-.05stem; y5=y4+1.5bar; x6=x1r+.2stem; y6=h-1/2bar;
+penpos3(stem,180);
+penpos4(.75curve,180);
+penpos5(.6curve,180);
+penpos6(bar,90);
+penstroke z3e{dir 95}...{up}z4e..z5e..{right}z6e;
+y6=y7; x7e=w-s;
+ur_drop(7,stem,x7e-x6,drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("g",9u#+c#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+y3=y7=2/3h; x3=1/2curve+s+c; x7=w-3/2stem-s;
+x1=x5=x3+1/2(x7-x3); y1=3/11h; y5=h;
+y2=y8=y1+0.1(8/11h); y4=y6=y1+0.9(8/11h); x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x9=x7; y9=y7+1/2(y6-y7); y10=h; x10=x7l+c;
+x11e=w-s; y11=y10;
+ur_drop(11,.8stem,x11e-x10,drop_round,bar);
+penpos9(hair,180); penpos10(vair,90);
+penstroke z9e{up}..{right}z10e;
+fill ur_drop_edge11;
+y12=y1; x12=x1; y13=y12/2; x13=s+1/4stem+.5c;
+y14=y15=0; x14=x2r; x15=x8r; y16=y18=-d/2; x16=w-s-1/2stem;
+x18=s+.7hair; y17=-d+1/2bar; x17=s+.6bar+9/20(x16-x18); x19=x14; y19l=y14r;
+penpos12(vair,90); penpos13(1/2curve,180); penpos14(curve,270);
+z144=z14; penpos144(curve,90); penpos15(curve,90);penpos16(1/2curve,0);
+penpos17(vair,-90); penpos18(1.4hair,-180); penpos19(1.4vair,-270);
+penstroke z12e{left}..{down}z13e{down}..{right}z14e;
+penstroke z144e--z15e{right}..tension.8..{down}z16e{down}..{left}z17e{left}..{up}z18e{up}..{right}z19e;
+penlabels(range 1 thru 19);
+endchar;
+
+beginchar("h",round (10u#-1.5c#),asc_height#,0);
+w:=w+1;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6h=w-s; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33x_height;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=x_height; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("i",2jut#+stem#+2s#,x_height#+2.1stem#,0);
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+z3=(x1,h); z4=(x1,h-1.1stem);
+fill z3..z4..cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("j",5u#,x_height#+2.1stem#,desc_depth#);
+x1h=w-s; y1c=x_height; y2=0; x2=x1;
+serif(1,stem,-90,1.5jut,0);
+penpos2(stem,0);
+fill z2l--z2r--reverse serif_edge1--cycle;
+z3=(x1-.05stem,h); z4=(x1-.05stem,h-1.1stem);
+fill z3..z4..cycle;
+y5=-1/4desc_depth; x5r=x2r;
+y6=-d+1/2bar; x6=x2l-1/2stem;
+penpos5(.97stem,0);
+penpos6(bar,-90);
+penstroke z2e--z5e{down}..{left}z6e;
+x7e=s; y7=-d+1/2bar;
+dl_drop(7,stem,x6-x7e,drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar("k",round (10u#-c#),asc_height#,0);
+w:=w+1;
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=bar_height; x3l=w-jut-.7jut-s; y3l=x_height-bar;
+x5=x6=x1r; y5=bar_height-bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+y6=y5-bar/cosd (theta1+180);
+A_serif(3,.9bar,theta1,1.8jut,.8jut);
+x4l=w-s-1.2jut-stem; y4l=bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,stem,theta2,.8jut,jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("l",2.4jut#+stem#+2s#,asc_height#,0);
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,1.2jut,0);
+serif(2,stem,90,1.2jut,1.2jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penlabels(1,2);
+endchar;
+
+beginchar("m",14u#,x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6=.5w; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33h;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=h; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+x10h=w-s; y10c=0;
+serif(10,stem,90,jut,jut);
+x9=x10; y9=y5;
+penpos9(stem,0);
+fill serif_edge10--z9r--z9l--cycle;
+x8=x10g; y8=h; y7=y9-1/4bar; x7l=x6r;
+penpos8(vair,90);
+penpos7(bar,180);
+penstroke z9e{up}..{left}z8e{left}..z7e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("n",round (10u#-1.5c#),x_height#,0);
+w:=w+1;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6h=w-s; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33h;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=h; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("o",8u#+s#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2curve-s;
+y2=y8=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("p",8u#+jut#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+s+.6(w-jut-2s)-.2c; y1=0; y5=h;
+y3=y7=.5h; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=.1h; y8=.05h; y4=.9h; y6=.95h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5)-1.2c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=-desc_depth;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("q",8u#+jut#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.7o,-150);
+penpos7(stem,-180);
+penpos8(.7o,-210);
+x1=x5=s+.4(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2stem-s-jut;
+y2=.05h; y8=.1h; y4=.95h; y6=.9h; x2=x4=x3+3/8(x5-x3)+1.2c; x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10h=w-s; x9=x10; y9c=h; y10c=-d;
+serif(9,stem,-90,0,jut);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("r",7u#+c#,x_height#,0);
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,1.2jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x4=round (x2h+1/2bar+c); y4=h; y3=23/33h-1/4bar; x3l=x2r;
+penpos4(bar,90);
+penpos3(bar,180);
+penstroke z4e{left}...{down}z3e;
+x5e=w-s; y5=h;
+ur_drop(5,1.1stem,x5e-x4,drop_round,bar);
+fill ur_drop_edge5;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar("s",7u#+c#,x_height#,0);
+x6=x7=1/2w; y6=y7=1/2bar;
+S_serif(7,bar,x6-s,border_height);
+y5=11/53h; x5=w-s-1/2(1.4hair);
+y4=29/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2hair;
+x2=.5w; y2=h; z1=z2;
+penpos6(bar,-90);
+penpos5(1.4hair,0);
+penpos4(1.1curve,90);
+penpos3(1.4hair,0);
+penpos2(bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.9..{dir 170}z4e{dir 170}..tension.9..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-1/3bar,.9border_height);
+fill S_serif_edge1;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("t",7u#-s#,asc_height#,0);
+y1=y2=46/53h; y4c=x_height; x4g=s;
+serif(4,stem,-90,jut,1.4jut);
+x1=x4r; x2=x1-bar;
+y5=7/33x_height; x5=x4; x3=x4l; y3=42/53h;
+penpos5(stem,180); numeric theta[];
+theta1=angle(z3-z2);
+fill z5l--reverse serif_edge4--z5r--cycle;
+fill z4r--z1{up}..{dir theta1}z2--z3--z4l--cycle;
+y6=1/4bar; x6=x4r+.7jut; x7=w-s-1/2bar; y7=13/53h;
+penpos6(vair,270); penpos7(hair,360);
+penstroke z5e{down}..{right}z6e{right}..{up}z7e;
+fill z7r..z7l..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar("u",round (10u#-1.5c#),x_height#,0);
+w:=w+1;
+x2h=w-s; y1c=h; y2c=0; x1=x2;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,0,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6g=s; y6c=h;
+serif(6,stem,-90,jut,0);
+x5=x6; y5=10/33h;
+penpos5(stem,180);
+fill serif_edge6--z5l--z5r--cycle;
+x4=x6+1/2stem+jut; y4=0; y3=y5+1/4bar; x3l=x2l;
+penpos4(vair,270);
+penpos3(bar,360);
+penstroke z5e{down}..{right}z4e{right}..z3e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar("v",10u#-1.5c#,x_height#,0);
+x1l=jut+s;
+x3r=w-s-jut;
+y1l=y3r=h-bar; x4=.5w-1/2bar; x5=.5w+1/2bar;
+y4=y5=1/2bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,bar,theta2,1.3jut,jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("w",13u#,x_height#,0);
+x9l=.5w-.3stem;
+x7r=w-s-jut;
+y9l=y7r=y1l=h-bar; x5=x9l+.5(x7r-x9l)-1/2bar; x6=x9l+.5(x7r-x9l)+1/2bar;
+y5=y6=y2=y3=1/2bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,stem,theta1,jut,jut);
+A_serif(7,bar,theta2,1.1jut,jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+jut;
+serif(1,stem,theta1,jut,jut);
+z2=z1l+whatever*dir theta1; x3=x2+bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("x",9u#+c#,x_height#,0);
+y3=y4=bar; x3=w-s-jut-1/2stem; x4=s+jut+1/2bar;
+y1=y2=h-bar; x1=s+jut+1/2stem+c; x2=w-s-1.25c-jut-1/2bar;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,stem,theta1-180,jut,jut);
+A_serif(2,1.2bar,theta2-180,jut,jut);
+serif(3,stem,theta1,jut,jut);
+A_serif(4,1.2bar,theta2,jut,1.3jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("y",9u#+s#,x_height#,desc_depth#);
+x1l=s+jut; y1l=h-bar;
+x3r=w-s-.8jut; y3r=h-bar;
+x4=33/60w; y4=-2/5d;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,1.2bar,theta2,1.2jut,.8jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=-d+bar; x6=x4-1.5stem; z7l=z2;
+penpos7(1.2bar,theta2+90);
+penpos5(1.2bar,theta2+90);
+penpos6(1.2bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,1.1stem,1.3u,drop_round,1.2bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("z",7u#+c#,x_height#,0);
+x6=s+1/2bar; y6=y7=y8=1/2bar;
+x8e=w-s; x7=x8;
+T_serif(8,bar,.8border_height,1);
+penpos6(bar,90);
+penpos7(bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-.5c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4bar;
+x4r=w-s-1/4bar; y4=h-bar;
+penpos4(stem,0);
+penpos5(stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2bar;
+x3=w-s-1/2bar; x1e=s+c;
+T_serif(1,bar,.8border_height,0);
+x2=x1;
+penpos3(bar,90);
+penpos2(bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(hex"30",9u#+1.1s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=.095h-c; y4=y6=.905h+c; x2=x4=x3+7/16(x5-x3)+.5c; x6=x8=x5+9/16(x7-x5)-.5c;
+penstroke z1e..z2e..{up}z3e..z4e..z5e..z6e..{down}z7e..z8e..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"31",6u#+1/2c#,cap_height#,0);
+y1c=0; x1h=w-s;
+serif(1,cap_stem,90,cap_jut,cap_jut);
+x6=x1f; y5=y6=h; x5=x1; x2=x1a; y2=45/53h;
+penpos4(1.1cap_bar,theta1+45);
+penpos3(1.1cap_bar,theta1+45);
+x4l=s; y4=32/53h; numeric theta[]; theta1=angle(z5-z4l);
+z3l=z5; penstroke z3e--z4e; fill z4l..z4r..cycle;
+fill serif_edge1--z6{dir 110}..{dir 250}z5--z2--cycle;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"32",9u#,cap_height#,0);
+z4=(9/33w,14/53h); z5=(s+11/20cap_bar,0);
+z3=(w-s-.5c-7/16cap_curve,40/53h); z2=(15/33w,h);
+penpos2(cap_bar,90);
+penpos3(7/8cap_curve,0);
+penpos4(1.1cap_bar,-45);
+penpos5(1.1cap_bar,0);
+x6=x5r; y6=y7=7/16cap_stem; y8=1/2cap_bar;
+x8e=w-s; x7=x8e;
+T_serif(8,cap_bar,3/5border_height,1);
+penpos6(7/8cap_stem,90);
+penpos7(7/8cap_stem,90);
+penstroke z6e--z7e; %fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+unfill z11{down}..z9--z10--cycle;
+penstroke z5e{up}..z4e..{up}z3e{up}..{left}z2e;
+z1=z2; ul_drop(1,cap_drop_round,15/33w-3c,1.2cap_drop_round,slab);
+fill ul_drop_edge1;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"33",9u#,cap_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height+c;
+x4=x6-3/2cap_stem; x5=x4-2u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_stem,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..{down}z3e{down}..{left}z44e;
+penstroke z5e--z4e{right}..tension.9..{down}z6e{down}..tension.9..{left}z7e;
+fill z5r..z5l..cycle;
+ul_drop(1,.8cap_drop_round,17/39w-s,cap_drop_round,slab);
+fill ul_drop_edge1;
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.3cap_drop_round,slab);
+fill dl_drop_edge8;
+penlabels(1,2,3,4,5,6,7,8,44);
+endchar;
+
+beginchar(hex"34",9u#+c#,cap_height#,0);
+y1=y2=33/53h; y4c=0; x4h=w-s;
+serif(4,7/8cap_stem,90,cap_jut,cap_jut);
+x1=x4r; x2=x1-bar;
+x3=x4l; y3=28/53h;
+numeric theta[]; theta1=angle(z2-z3);
+fill z3{dir theta1}--z2{dir theta1}..{down}z1--reverse serif_edge4--z3&cycle;
+y5=y6=15/53h; x5=x4e; x6=s+cap_bar;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e; fill z5r..z5l..cycle;
+y7=y6l; x7l=x6; z8=(6/36w, 21/53h);
+z9=(2/3w,h);
+penpos7(cap_bar,180); penpos8(cap_bar,150);
+penpos9(cap_stem,180);
+penstroke z7e{up}..z8e..{dir 70}z9e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"35",9u#,cap_height#,0);
+x7=x4=18/39w; y7=0; y5=cap_bar_height+c; y4=y5+s;
+x8e=s; y8=0; x5=x8d;
+dl_drop(8,cap_drop_round,18/39w-s,1.3cap_drop_round,slab);
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z5e..z4e{right}..tension.85..{down}z6e{down}..tension.85..{left}z7e;
+fill z5r..z5l..cycle;
+fill dl_drop_edge8;
+z3=z5; x2=x3; y2=h;
+penpos3(cap_bar,0); penpos2(cap_bar,0);
+penstroke z3e--z2e; fill z2l..tension 1.7..z2r..tension 1.7..cycle;
+y1r=h; x1=x2r; x13=x6; y13=h; 2(x12-x1)=x13-x12; y12=h-.6cap_stem;
+penpos1(7/8cap_stem,90); penpos13(1.1cap_bar,90); penpos12(3/4cap_stem,90);
+penstroke z1e..z12e..z13e; fill z13r..tension 1.7..z13l..tension 1.7..cycle;
+penlabels(1,2,3,4,5,6,7,8,12,13);
+endchar;
+
+beginchar(hex"36",9u#,cap_height#,0);
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=x9=.45w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.085h-c; y4=y6=0.915h+c; x8=x7+11/32(x5-x7); x6=x8+.2c; x10=x5+10/16(x3-x5); x4=x10-c; x2=x4;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.1h-c; y11=y7;
+x11l=x3l+.2c; y10=y8;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e..z10e..z11e;
+z12 = z1;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+z13 = (.5w,.5h);
+currentpicture := currentpicture rotatedaround(z13,180);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"37",9u#-c#,cap_height#,0);
+x4=w-s-1/2cap_bar; y4=h-1/2cap_bar;
+penpos4(cap_bar,0);
+y3=y2=h-7/16cap_stem; y1=h-7/8cap_stem+1/2cap_bar;
+x3=x4l; x1e=s;
+T_serif(1,cap_bar,3/5border_height,0);
+x2=x1e;
+penpos3(7/8cap_stem,90);
+penpos2(7/8cap_stem,90);
+penstroke z2e--z3e;
+fill T_edge1; z44=(x4,h); fill z4r{up}..{left}z44--z3r--z4l--cycle;
+x10=s+c; x11=s; y10=y11=h;
+unfill z1d{up}..z10--z11--cycle;
+unfill z1d{up}..z10--z11--cycle;
+x5r=x3; y5=h-7/8cap_stem;
+x6=14/30w; y6=1/3cap_curve;
+penpos5(cap_bar,0); penpos6(cap_curve,0);
+penstroke z4e{dir -105}..z5e..{dir -95}z6e; fill z6l..z6r..cycle;
+penlabels(1,2,3,4,5,6,10,11,12);
+endchar;
+
+beginchar(hex"38",10u#-s#,cap_height#,0);
+x6=x4=x2=x8=1/2w; y6=0; y2=h;
+y5=11/53h; y7=13/53h; x5=w-s-1/2(1.9hair);
+y4=y8=28/53h; y3=42/53h; y1=40/53h; x3=2s+1/2(1.9cap_bar);
+x1=w-2s-1/2(1.9cap_bar); x7=w-x5;
+penpos6(cap_bar,-90);
+penpos5(2.5hair,0);
+penpos4(cap_curve,90);
+penpos3(2.5hair,0);
+penpos2(cap_bar,-90);
+penpos1(2.5hair,-180);
+penpos7(2.5hair,-180);
+penpos8(cap_bar,-270);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"39",9u#,cap_height#,0);
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=x9=.45w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.085h-c; y4=y6=0.915h+c; x8=x7+11/32(x5-x7); x6=x8+.2c; x10=x5+10/16(x3-x5); x4=x10-c; x2=x4;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.1h-c; y11=y7;
+x11l=x3l+.2c; y10=y8;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e..z10e..z11e;
+z12 = z1;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+beginchar(oct"56",cap_stem#+2s#,cap_stem#,0);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+endchar;
+
+beginchar(oct"54",cap_stem#+2s#+c#,cap_stem#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"60",cap_stem#+2s#+c#,asc_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(oct"41", cap_stem#+2s#,cap_height#,0); "Exclamation mark";
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+ x3=.5w-1/2cap_bar; x4=.5w+1/2cap_bar; y3=y4=3/2cap_stem;
+ x6=x1; x5=x2; y5=y6=h;
+ fill z6--z3..z4--z5{up}..z6&cycle;
+endchar;
+
+beginchar(hex"22",2cap_stem#+3s#+2c#,cap_height#,0);
+ z1=(s,h-1/2cap_stem); z2=(x1+cap_stem+c,h-1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-cap_stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"5C",2cap_stem#+3s#+2c#,cap_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(x1+cap_stem+c,1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"7b",10u#-1.5c#,x_height#,0); "En dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"3D",10u#+1.5c#,x_height#,0);
+ z1=(s+1/2bar,bar_height-3c); z2=(w-s-1/2bar,bar_height-3c);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+3c); z4=(w-s-1/2bar,bar_height+3c);
+ penpos3(bar,90); penpos4(bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"23",13u#,asc_height#,body_depth#);
+ z1=(s+1/2bar,bar_height-5c); z2=(w-s-1/2bar,bar_height-5c);
+ penpos1(1.5bar,90); penpos2(1.5bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+5c); z4=(w-s-1/2bar,bar_height+5c);
+ penpos3(1.5bar,90); penpos4(1.5bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ z5=(.5w-5c,bar_height); z6=(.5w+5c,bar_height);
+ z7=z5+whatever*dir 76; y7=h; z8=whatever[z5,z7]; y8=-d;
+ penpos7(1.5bar,0); penpos8(1.5bar,0);
+ fill z7l{up}..{down}z7r--z8r{down}..{up}z8l--z7l&cycle;
+ z9=z6+whatever*dir 76; y9=h; z10=whatever[z6,z9]; y10=-d;
+ penpos9(1.5bar,0); penpos10(1.5bar,0);
+ fill z9l{up}..{down}z9r--z10r{down}..{up}z10l--z9l&cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"7c",14u#,x_height#,0); "Em dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(oct"55",2cap_jut#+cap_stem#+2s#,x_height#,0); "hyphen";
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"5F",1.1stem#+2s#,x_height#+2.1stem#,0);
+ z1=(.5w,h); z2=(.5w,h-1.1stem);
+ fill z1..z2..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7E",7u#,body_height#,0);
+ pickup pencircle xscaled .6pt yscaled .2pt rotated 55;
+ z4=(w-s-c,h-s); x1=s+c; y1=y4-1/2cap_stem;
+ y2-y1=y4-y3=3(y4-y1); z2-z1=z4-z3=whatever * dir 55;
+ draw z1..controls z2 and z3..z4;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"3C",7u#-2c#,x_height#,0); "looks like <<";
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3E",7u#-2c#,x_height#,0);
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ z10=(.5w,.5h);
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ currentpicture := currentpicture rotatedaround(z10,180);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3B",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+3/2c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ z8=(s,h-1/2cap_stem); z9=(w-s,h-1/2cap_stem);
+ fill z8..z9..cycle;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(hex"3A",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ fill z1..z2..cycle;
+ penlabels(1,2,3,4);
+ z3=(s,1/2cap_stem); z4=(w-s,1/2cap_stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2B",2cap_jut#+cap_stem#+2s#,x_height#,0);
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ x3=x4=.5w; y3=y2+1/2(x2-x1); y4=y2-1/2(x2-x1);
+ penpos3(1.8bar,0); penpos4(1.8bar,0);
+ penstroke z3e--z4e;
+ fill z3r..z3l..cycle; fill z4r..z4l..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2F",2s#+bar#,body_height#,body_depth#);
+ z1=(.5w,h-.5bar); z2=(.5w,-d+.5bar);
+ %pickup pencircle xscaled bar yscaled bar;
+ penpos1(bar,0); penpos2(bar,0);
+ penstroke z1e--z2e; fill z1r..z1l..cycle;
+ fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"27",cap_stem#+2s#+c#,x_height#+2.1stem#,0);
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ z6=(.5w-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"28",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"29",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"86",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"87",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"5B",2s#+3cap_bar#,body_height#,body_depth#);
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x2,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z1r..z1l..cycle; fill z6r..z6l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"5D",2s#+3cap_bar#,body_height#,body_depth#);
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x1,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z2r..z2l..cycle; fill z5r..z5l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"B9",16u#,cap_height#,0);
+ x1=x2=cap_jut+1/2cap_bar+s+cap_stem;
+ x3=w-x1-1/2cap_stem; y1c=h; y4=y5=0;
+ x4=x3r; x5=x3l; y2=12/53h; y3=h-y2;
+ x8=x2-stem; y8=0; z9=z8;
+ dl_drop(9,.9cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill dl_drop_edge9; penpos8(bar,-90);
+ serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+ penpos2(bar,0); penpos3(bar,0);
+ penstroke z2e{down}..{left}z8e;
+ fill z2l--z2r--reverse serif_edge1--cycle;
+ numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+ theta1=angle(z5-z7); x10=x3+stem; y10=h; z11=z10;
+ penpos10(bar,-90); penstroke z3e{up}..{right}z10e;
+ ur_drop(11,.9cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill ur_drop_edge11;
+ z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+ fill z6--z1h--z7--z5{down}..{up}z4--z3r--z3l--cycle;
+ unfill z1b--z1l--z1a--cycle;
+ y12=y13=2cap_bar; x12=x4+2cap_bar+s; x13=w-2s;
+ penpos12(.4stem,90); penpos13(.4stem,90);
+ penstroke z12e--z13e; y16=y11d-4.5cap_bar;
+ x13-x14=x14-x12; x16=x14; y14=y13+4.5cap_bar;
+ x17=w-s-.2stem; x17-x16=x16-x15; y16-y15=y15-y14;
+ y17=y15; penpos17(.7stem,0); penpos16(bar,90);
+ penpos15(.7stem,180); penpos14(bar,270);
+ penstroke z17e{up}..{left}z16e{left}..{down}z15e{down}..{right}z14e{right}..{up}z17e;
+ fill z12l..tension1.2..z12r..tension1.2..cycle;
+ fill z13l..tension1.2..z13r..tension1.2..cycle;
+ penlabels(range 1 thru 17);
+endchar;
+
+beginchar(hex"24",9u#-s#,body_height#,body_height#-cap_height#);
+ x6=x7=1/2w-c; y6=y7=0;
+ dl_drop(7,.9cap_drop_round,x6-s,1.5drop_round,cap_bar);
+ y5=12/53cap_height; x5=w-s-1/2(1.9hair);
+ y4=1/2cap_height; x4=19/38w; y3=41/53cap_height; x3=s+1/2(1.9cap_bar);
+ x2=.5w+c; y2=cap_height; z1=z2;
+ penpos6(cap_bar,-90); penpos5(1.9hair,0);
+ penpos4(1.1cap_curve,90); penpos3(1.9hair,0);
+ penpos2(cap_bar,-90);
+ penstroke z6e{right}..z5e{up}..tension.8..z4e..tension.8..{up}z3e..{right}z2e;
+ fill dl_drop_edge7;
+ ur_drop(1,.9cap_drop_round,w-s-x2,1.5drop_round,cap_bar);
+ fill ur_drop_edge1;
+ z8=(.5w,h); z9=(.5w,-d);
+ penpos8(cap_bar,0); penpos9(cap_bar,0);
+ penstroke z8e--z9e;
+ fill z9r..z9l..cycle; fill z8r..z8l..cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"25",12u#,asc_height#,0);
+penpos1(vair,90); penpos2(.6curve,0);
+penpos3(vair,-90); penpos4(.6curve,-180);
+y1=.55h; y3=h; y3-y4=y4-y1; y2=y4; x2=1/4curve+s; x4=5/2curve+s;
+x4-x1=x1-x2; x3=x1;
+penstroke z1e{left}..tension.9..{up}z2e{up}..tension1.2..{right}z3e..tension.9..{down}z4e{down}..tension1.2..{left}z1e..cycle;
+penpos5(vair,90); penpos6(.6curve,0);
+penpos7(vair,-90); penpos8(.6curve,-180);
+y5=0; y7=.45h; y7-y8=y8-y5; y6=y8; x8=w-1/4curve-s; x6=w-5/2curve-s;
+x8-x5=x5-x6; x7=x5;
+penstroke z5e{left}..tension.9..{up}z6e{up}..tension1.2..{right}z7e..tension.9..{down}z8e{down}..tension1.2..{left}z5e..cycle;
+x9l=x7; y9=h; x10r=x1; y10=0;
+penpos9(1.2bar,0); penpos10(1.2bar,0);
+penstroke z9e--z10e;
+penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"26",14u#,cap_height#,0);
+x4=x8=x3+.5curve; y6=0; y2=h; x2=x3+1.3cap_curve;
+y7=13/53h; y5=9/53h; x5=x7+3.5cap_curve; x6=x7+1.8cap_curve;
+y4=y8=30/53h; y1=44/53h; y3=42/53h; x3=4s+curve;
+x1=x3+2.1cap_curve; x7=s+1/2cap_curve;
+x10=w-s; y10=9/53h; x10-x9=x9-x5; y9=1/5cap_curve;
+th:=angle(z4-z5)+5; th1:=th-11; x11h=w-s-c; y11h=y1-4s;
+A_serif(11,cap_bar,-110,cap_jut,cap_jut); z12l=z11a;
+penpos6(cap_bar,-90); penpos5(cap_stem,45);
+penpos4(cap_stem,45); penpos3(2.5hair,0);
+penpos2(cap_bar,-90); penpos1(2hair,-180);
+penpos7(cap_curve,-180); penpos8(cap_bar,-250);
+penpos9(.5cap_curve,70); penpos10(cap_bar,150);
+penpos12(cap_bar,0);
+penstroke z10e..z9e..z5e{dir th}..{dir th1}z4e..tension.9..{up}z3e{up}..tension1..z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e{dir 8}..{dir 70}z12e;
+fill z12l--z12r..reverse A_serif_edge11--cycle;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"40",14u#,x_height#+2curve#,2curve#);
+a_width:=9u+c-2s;
+x1=2s+a_width-s-3/4stem+1.5curve; y1=x_height; y2=7/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=3s+a_width+1.5curve; y4=15/33x_height;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.2vair,270); penpos4(bar,360);
+x5=x1-3/2stem; y5=x_height; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c+1.5curve; y6=.54x_height; y8=.46x_height; z8l=whatever[z1r,z2r];
+x13=x5; y13=h-1/2bar; x14=s+1/2bar; y14=y6; y15=-d+1/2bar; x15=x7;
+x16=x4; y16=-d+3bar; penpos7(vair,270); penpos16(bar,270);
+penpos13(bar,90); penpos14(bar,180); penpos15(bar,270);
+penpos8(2bar,0); penpos5(vair,90); penpos6(curve,180);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 80}z4e..z13e{left}..z14e..{right}z15e..z16e;
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=x_height-c; z10=(x1r+c,x_height); z11=(x1l-c,x_height);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+fill z16r..z16l..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar(hex"12",2cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=s+.45cap_stem*cosd 45;
+x2=w-s+cap_bar*cosd 45; z2=z1+whatever*dir -45;
+penpos1(.9cap_stem,45); penpos2(cap_bar,45);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"13",2cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=w-s-.45cap_stem*cosd 45;
+x2=s-cap_bar*cosd 45; z2=z1+whatever*dir -135;
+penpos1(.9cap_stem,135); penpos2(cap_bar,135);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"3F",7u#,cap_height#,0);
+ x1=s+4/5cap_stem; y1=1/2cap_stem;
+ penpos1(cap_stem,0);
+ fill z1r..z1l..cycle;
+ y2=cap_stem+cap_bar; x2=x1;
+ z3l=z2l+whatever*dir 96; y3l=25/53h;
+ penpos2(cap_bar,0); penpos3(cap_bar,0);
+ penstroke z2e--z3e;
+ z4l=z3l; penpos4(cap_bar,0);
+ y5=y4-2bar; x5=x4+3cap_bar; penpos7(cap_bar,-90);
+ x6=w-s-1/2cap_curve; y6=37/51h; x7=12/31w; y7=h;
+ penpos5(cap_bar,90); penpos6(cap_curve,180); z8=z7;
+ penstroke z4e{dir -69}..z5e{dir 10}..tension1..{up}z6e{up}..tension.9..{left}z7e;
+ ul_drop(8,.8cap_drop_round,x7-s,cap_curve,cap_bar);
+ fill ul_drop_edge8;.
+ fill z3r..tension1.2..z3l..tension1.2..cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"10",2jut#+stem#+2s#,x_height#,0);
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"11",5u#,x_height#,desc_depth#);
+x1h=w-s; y1c=x_height; y2=0; x2=x1;
+serif(1,stem,-90,1.5jut,0);
+penpos2(stem,0);
+fill z2l--z2r--reverse serif_edge1--cycle;
+y5=-1/4desc_depth; x5r=x2r;
+y6=-d+1/2bar; x6=x2l-1/2stem;
+penpos5(.97stem,0);
+penpos6(bar,-90);
+penstroke z2e--z5e{down}..{left}z6e;
+x7e=s; y7=-d+1/2bar;
+dl_drop(7,stem,x6-x7e,drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(hex"2A",3cap_stem#+3s#,body_height#,0);
+ x1=x2=x3=x4=.5w; y1=h-1/2stem; y2=y1-cap_stem; y3=y2-bar; y4=y3-bar;
+ penpos1(stem,0); penpos2(cap_bar,0); penpos3(2cap_bar,0);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle;
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,60);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,120);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,180);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,240);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,300);
+ penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"5E",6u#,body_height#,0);
+ x1=s+.45cap_bar*cosd 45; x2=w/2; y2=h-bar;
+ z1=z2+whatever*dir -135; x3=w-x1; z3=z2+whatever*dir -45;
+ penpos1(bar,135); penpos2(2bar,90); penpos3(bar,45);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"16",6u#,body_height#,0);
+ x1=s; x2=w-x1; y1=y2=h-4bar;
+ penpos1(.8bar,90); penpos2(.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"0B",round (4jut#+2stem#+2c#+3s#),asc_height#,0);
+w:=w+1;
+numeric dist; dist := 2jut+2stem-3c;
+x1g=x2g=s+dist; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x1; y3=x_height; x4r=x1l-.1stem; y4=x_height+1/2(asc_height-x_height);
+x5l=x4l-.05stem; y5=y4+1.5bar; x6=round (x1r+.2stem); y6=h-1/2bar;
+penpos3(stem,180);
+penpos4(.75curve,180);
+penpos5(.6curve,180);
+penpos6(bar,90);
+penstroke z3e{dir 95}...{up}z4e..z5e..{right}z6e;
+y6=y7; x7e=w-s;
+ur_drop(7,stem,x7e-x6,drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+x11g=x12g=s; y11c=x_height; y12c=0;
+serif(11,stem,-90,jut,jut);
+serif(12,stem,90,jut,jut);
+fill serif_edge12--reverse serif_edge11--cycle;
+x13=x11; y13=x_height; x14l=x13l; y14=x_height+1/2(asc_height-x_height);
+x15l=x14l; y15=y14+1.5bar; x16=x11r+.8stem; y16=h-1/2bar;
+x17r=x5l; y17=y5;
+penpos13(stem,180);
+penpos14(.75curve,180);
+penpos15(.6curve,180);
+penpos16(bar,90);
+penpos17(bar,0);
+penstroke z13e{dir 95}...{up}z14e..z15e..{right}z16e{right}..{down}z17e;
+fill z11d--z1c--z1b--z11e--cycle;
+penlabels(1,2,3,4,5,6,7,11,12,13,14,15,16,17);
+endchar;
+
+beginchar(hex"7F",2stem#+4s#,x_height#+2.1stem#,0);
+ z1=(s+.5stem,h); z2=(s+.5stem,h-stem);
+ fill z1..z2..cycle;
+ z3=(w-s-.5stem,h); z4=(w-s-.5stem,h-stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+ligtable CYR_A: "A":
+ CYR_O kern -k#,
+ "O" kern -k#,
+ CYR_ES kern -k#,
+ "C" kern -k#,
+ CYR_TE kern -k#,
+ CYR_U kern -kk#,
+ CYR_EF kern -k#,
+ CYR_CHE kern -kkk#,
+ CYR_HARD_SIGN kern -k#,
+ "W" kern -kkk#,
+ "V" kern -kkk#,
+ "Y" kern -kkk#,
+ "T" kern -k#,
+ "w" kern -kk#,
+ "v" kern -kk#,
+ %CYR_o kern -k#,
+ %CYR_es kern -k#,
+ CYR_che kern -kk#;
+ %CYR_ie kern -k#,
+ %CYR_ye kern -k#;
+
+ligtable CYR_GHE: CYR_TE: "T":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_DE kern -k#,
+ CYR_EL kern -kk#,
+ CYR_el kern -k#,
+ CYR_o kern -k#,
+ "o" kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#;
+
+ligtable CYR_O: CYR_E: CYR_YU:
+ CYR_U kern -k#,
+ "X" kern -k#,
+ CYR_HA kern -k#;
+
+ligtable CYR_ER: "P":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_EL kern -k#,
+ CYR_el kern -k#;
+
+ligtable CYR_U:
+ CYR_A kern -kkk#,
+ "A" kern -kkk#,
+ CYR_O kern -k#,
+ "O" kern -k#,
+ CYR_ES kern -k#,
+ "C" kern -k#,
+ CYR_EL kern -kk#,
+ CYR_el kern -kkk#,
+ CYR_EF kern -k#;
+
+ligtable CYR_HA: "X":
+ "O" kern -k#,
+ CYR_O kern -k#,
+ "Q" kern -k#,
+ "C" kern -k#,
+ CYR_ES kern -k#,
+ "G" kern -k#;
+
+ligtable CYR_ghe: CYR_te:
+ CYR_de kern -k#,
+ CYR_el kern -k#;
+
+ligtable CYR_o: CYR_er: CYR_e: CYR_yu: CYR_ye:
+ "x" kern -k#,
+ CYR_ha kern -k#;
+
+ligtable CYR_u: "y":
+ CYR_de kern -k#,
+ CYR_el kern -k#,
+ CYR_ie kern -k#,
+ "e" kern -k#,
+ CYR_es kern -k#,
+ "c" kern -k#,
+ CYR_ye kern -k#,
+ CYR_ef kern -k#;
+
+ligtable CYR_ha: "x":
+ CYR_ie kern -k#,
+ "d" kern -k#,
+ "e" kern -k#,
+ "o" kern -k#,
+ "q" kern -k#,
+ CYR_o kern -k#;
+
+ligtable "D": "O": "Q":
+ "X" kern -k#;
+
+ligtable "L":
+ "T" kern -kk#,
+ CYR_TE kern -kk#,
+ "Y" kern -kk#;
+
+ligtable "V": "W":
+ "A" kern -kkk#,
+ CYR_A kern -kkk#,
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ CYR_EL kern -k#,
+ CYR_el kern -kk#,
+ "d" kern -k#;
+
+ligtable "Y":
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "d" kern -k#,
+ "A" kern -kk#,
+ CYR_A kern -kk#;
+
+ligtable "a": CYR_a:
+ "V" kern -kk#,
+ "W" kern -kk#,
+ "T" kern -k#,
+ CYR_TE kern -k#,
+ "y" kern -k#,
+ CYR_u kern -k#,
+ "v" kern -k#,
+ "u" kern -k#,
+ CYR_che kern -kk#,
+ "Y" kern -kk#;
+
+ligtable "e": CYR_ie:
+ CYR_ha kern -k#,
+ "v" kern -k#,
+ "w" kern -k#,
+ "V" kern -k#,
+ "W" kern -k#;
+
+ligtable "f":
+ "f" =: hex"0B";
+
+ligtable "k": "l":
+ CYR_o kern -k#,
+ "o" kern -k#;
+
+ligtable "m": "n":
+ "y" kern -k#,
+ CYR_u kern -k#,
+ CYR_o kern -k#,
+ "o" kern -k#;
+
+ligtable "o": "b": "p":
+ "e" kern k#,
+ CYR_ie kern k#,
+ "o" kern k#,
+ CYR_o kern k#,
+ "v" kern -k#,
+ "w" kern -k#,
+ "V" kern -k#,
+ "W" kern -k#,
+ "x" kern -k#,
+ CYR_ha kern -k#, 1:: "!" kern kk#;
+
+ligtable "v": "w":
+ "A" kern -kk#,
+ CYR_A kern -kk#,
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ "d" kern -k#;
+
+ligtable hex"37":
+ CYR_A kern -kk#,
+ "A" kern -kk#;
+ligtable oct"55":
+ oct"55" =: hex"7b";
+ligtable hex"7b":
+ oct"55" =: hex"7c";
+end.
diff --git a/fonts/obnov/obn_lcyw_code.mf b/fonts/obnov/obn_lcyw_code.mf
new file mode 100644
index 0000000000..03dcf7825c
--- /dev/null
+++ b/fonts/obnov/obn_lcyw_code.mf
@@ -0,0 +1,70 @@
+font_coding_scheme "TeX text";
+
+CYR_a := hex"E0";
+CYR_be := hex"E1";
+CYR_ve := hex"E2";
+CYR_ghe := hex"E3";
+CYR_de := hex"E4";
+CYR_ie := hex"E5";
+CYR_ye := hex"B8";
+CYR_zhe := hex"E6";
+CYR_ze := hex"E7";
+CYR_i := hex"E8";
+CYR_short_i := hex"E9";
+CYR_ka := hex"EA";
+CYR_el := hex"EB";
+CYR_em := hex"EC";
+CYR_en := hex"ED";
+CYR_o := hex"EE";
+CYR_pe := hex"EF";
+CYR_er := hex"F0";
+CYR_es := hex"F1";
+CYR_te := hex"F2";
+CYR_u := hex"F3";
+CYR_ef := hex"F4";
+CYR_ha := hex"F5";
+CYR_tse := hex"F6";
+CYR_che := hex"F7";
+CYR_sha := hex"F8";
+CYR_shcha := hex"F9";
+CYR_hard_sign := hex"FA";
+CYR_yeru := hex"FB";
+CYR_soft_sign := hex"FC";
+CYR_e := hex"FD";
+CYR_yu := hex"FE";
+CYR_ya := hex"FF";
+
+CYR_A := hex"C0";
+CYR_BE := hex"C1";
+CYR_VE := hex"C2";
+CYR_GHE := hex"C3";
+CYR_DE := hex"C4";
+CYR_IE := hex"C5";
+CYR_YE := hex"A8";
+CYR_ZHE := hex"C6";
+CYR_ZE := hex"C7";
+CYR_I := hex"C8";
+CYR_SHORT_I := hex"C9";
+CYR_KA := hex"CA";
+CYR_EL := hex"CB";
+CYR_EM := hex"CC";
+CYR_EN := hex"CD";
+CYR_O := hex"CE";
+CYR_PE := hex"CF";
+CYR_ER := hex"D0";
+CYR_ES := hex"D1";
+CYR_TE := hex"D2";
+CYR_U := hex"D3";
+CYR_EF := hex"D4";
+CYR_HA := hex"D5";
+CYR_TSE := hex"D6";
+CYR_CHE := hex"D7";
+CYR_SHA := hex"D8";
+CYR_SHCHA := hex"D9";
+CYR_HARD_SIGN := hex"DA";
+CYR_YERU := hex"DB";
+CYR_SOFT_SIGN := hex"DC";
+CYR_E := hex"DD";
+CYR_YU := hex"DE";
+CYR_YA := hex"DF";
+
diff --git a/fonts/obnov/obnb10.mf b/fonts/obnov/obnb10.mf
new file mode 100644
index 0000000000..1b23c96da4
--- /dev/null
+++ b/fonts/obnov/obnb10.mf
@@ -0,0 +1,3488 @@
+%written by Basil Solomykov, Russia
+%(C) Copyright 2011 LPPL (LaTeX Project Public License)
+%Font Ordinary New (Obyknovennaya novaya), Bold
+
+design_size := 10pt#;
+o# := 1.3*.45pt#;
+u# := 1.1*18.52/35pt#;
+bar# := 10/36pt#;
+slab# := 10/36pt#;
+cap_bar# := 10/36pt#;
+vair# := 10/36pt#;
+hair# := 10/36pt#;
+jut# := 20/36pt#;
+cap_jut# := 26/36pt#;
+stem# := 1.3*30/36pt#;
+curve# := 1.3*31/36pt#;
+cap_stem# := 1.3*36/36pt#;
+cap_curve# := 1.3*37.2/36pt#;
+s# := 0.4pt#;
+c# := .2pt#;
+
+input obn_lcyw_code.mf;
+font_identifier "OBNB";
+mode_setup;
+clear_pen_memory;
+
+font_size design_size*pt#;
+asc_height# := 24/36*design_size*pt#;
+cap_height# := 24/36*design_size*pt#;
+body_height# := 27/36*design_size*pt#;
+x_height# := 15.4/36*design_size*pt#;
+desc_depth# := 8/36*design_size*pt#;
+body_depth# := 9/36*design_size*pt#;
+comma_depth# := 5/36*design_size*pt#;
+x_depth# := 4/5comma_depth#;
+bar_height# := .52x_height#;
+cap_bar_height# := .52cap_height#;
+cap_bar2_height# := .45cap_height#;
+border_height# := comma_depth#;
+cap_drop_round# := 4.2*slab#;
+drop_round# := 6.7/8cap_drop_round#;
+
+bracket# := pt#;
+
+font_x_height x_height#;
+font_normal_space 6u#;
+font_normal_stretch 4u#;
+font_normal_shrink 2u#;
+font_quad 16u#;
+font_extra_space 6u#;
+
+k# := .8u#;
+kk# := 1.5u#;
+kkk# := 3u#;
+
+serif_darkness := 1/30;
+define_pixels(bracket,cap_o_width,sss_width,css_width);
+define_pixels(c,s,cap_bar_height,cap_bar2_height);
+define_pixels(border_height,A_bracket,cap_drop_round,x_depth,drop_round);
+define_whole_blacker_pixels(stem,cap_stem,curve,cap_curve,bar,slab,cap_bar,vair,hair);
+define_whole_pixels(asc_height,cap_height,x_height,u,desc_depth,comma_depth,bar_height,body_height,body_depth,u,o,cap_jut,jut);
+%define_corrected_pixels();
+lowres_fix(stem,curve) 1.2;
+lowres_fix(cap_stem,cap_curve) 1.2;
+if jut=cap_jut: jut:=jut-1; fi
+
+def serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g if left_jut=0: -1/2slab fi +1/2slab; x$d=x$e=x$h if right_jut=0: +1/2slab fi-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def serif_edge suffix $ =
+(serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse serif_bracket($f,$r,$e)) enddef;
+
+def serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...serif_darkness[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def T_serif(suffix $)(expr slab, bord_height, direction)= %Direction: 0-left, 1-right;
+penpos$(slab,if direction=1: - fi 90);
+x$=x$a=x$g; y$g-y$=y$-y$a=1/2slab;
+x$b=x$a + if direction=0: - fi .882bord_height; y$b=y$d=y$c+1/2slab;
+x$c=x$b + if direction=0: - fi 1/2slab; y$c=y$a-bord_height;
+x$d=x$e=x$b + if direction=0: - fi slab;
+y$e=y$g-1/2slab; y$f=y$g; x$f=x$c;
+labels($a,$b,$c,$d,$e,$f,$g) enddef;
+
+def T_edge suffix $ =
+(z$a..{down}z$b..z$c..z$d--z$e{up}..z$f--z$g--cycle) enddef;
+
+def A_serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g+1/2slab; x$d=x$e=x$h-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def A_serif_edge suffix $ =
+(A_serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse A_serif_bracket($f,$r,$e)) enddef;
+
+def A_serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...0.6[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def ur_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a= 1/2slab;
+x$e=x$a + drop_length; y$e=y$f- drop_height;
+x$d=x$e - 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e - drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); if y$b > y$a: y$b := y$a; fi
+x$b=round (x$d - 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ur_drop_edge suffix $ =
+(z$f{right}..tension.9..{down}z$e{down}..{left}z$d{left}..{up}z$c{up}..z$b...{left}z$a--cycle) enddef;
+
+def ul_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$f- drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); if y$b > y$a: y$b := y$a; fi
+x$b=round (x$d + 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ul_drop_edge suffix $ =
+(z$f{left}..tension.9..{down}z$e{down}..{right}z$d{right}..{up}z$c{up}..z$b...{right}z$a--cycle) enddef;
+
+def dl_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, -90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$a + drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e + 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d - drop_round); if y$b < y$f: y$b := y$f; fi
+x$b=x$d + 1/90drop_round;
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def dl_drop_edge suffix $ =
+(z$a{left}..tension.9..{up}z$e{up}..{right}z$d{right}..{down}z$c..{dir 250}z$b{dir -80}..{right}z$f--cycle) enddef;
+
+def S_serif (suffix $)(expr serif_slab, serif_length, serif_height)=
+%penpos$(serif_slab,90);
+x$a=x$i=x$; y$i=y$+1/2serif_slab; y$a=y$-1/2serif_slab;
+x$f=x$e=x$a+serif_length; y$f=y$g-1/2serif_slab; y$e=y$c=y$d+1/2serif_slab;
+x$g=x$f-1/2serif_slab; y$g=y$i-1/2serif_slab;
+y$h=y$f-1/4serif_slab; x$h=x$g-serif_slab;
+x$c=x$e-serif_slab; x$d=x$e-1/2serif_slab; y$d=y$g-serif_height;
+x$b=x$h-6/18serif_length; y$b=y$h-1/2slab;
+labels ($a,$b,$c,$d,$e,$f,$g,$h,$i) enddef;
+
+def S_serif_edge suffix $ =
+(z$a{right}...z$b..{dir -80}z$c..z$d..z$e--z$f{up}..z$g{left}..z$h{dir 150}..{left}z$i--cycle) enddef;
+
+beginchar(CYR_A,13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar(CYR_BE,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=y5=h-1/2slab;
+y1c=h; y2c=0; x5e=w-s-1/2cap_stem;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h; x4=w-s-1/2cap_stem-border_height;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_VE,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+css_width := x8 - x2r; save css_width;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar(CYR_GHE,9u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; x3=x4+2u;
+y5=y3; x5e=w-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_DE,12u#,cap_height#,comma_depth#);
+x10e=w-s; y10c=-d;
+y4c=h; x4h=w-s-1/2slab;
+x9=x4; y9c=0;
+x3=x8=x9d; y8=y7=1/2cap_bar; y3=y2=h-y8;
+x6e=s; y6=y10; x7=border_height+s;
+y5=y9; x5g=s+.5u; y1=y4; x1=x5+1.5u;
+x2=x1c;
+A_serif(1,1.2cap_bar,-96,10/7cap_jut,cap_jut);
+A_serif(5,1.2cap_bar,81,6/7cap_jut,cap_jut);
+serif(4,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+penpos2(cap_bar,90);
+penpos3(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_bar,90);
+penstroke z7e--z8e; penstroke z2e--z3e;
+fill A_serif_edge5...reverse A_serif_edge1...cycle;
+fill serif_edge9--reverse serif_edge4--cycle;
+T_serif(6,slab,border_height,0);
+T_serif(10,slab,border_height,1);
+fill T_edge6;
+fill T_edge10;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_IE,10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_YE,10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+x12=x13=x2r-c; y12=h+1/4cap_stem; y13=y12+cap_stem;
+x14=x15=x12+1.8cap_stem; y14=y12; y15=y13;
+fill z12..z13..cycle; fill z14..z15..cycle;
+penlabels(range 1 thru 15);
+endchar;
+
+beginchar(CYR_ZHE,round (16u#+s#),cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; y7=y4=y10=y11=cap_bar_height; x4=x7-1.5u;
+x10=x8r; x11=x10+1.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+x6=s; y6=0; y4-y5=y5-y6; x4-x5=x5-x6;
+penpos7(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,90);
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z6e{right}..tension.8..{up}z5e{up}..tension.8..{right}z4e--z7e;
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+x3=x5+1/2cap_stem; y2=h; x4-x3=x3-x2; y2-y3=y3-y4;
+penpos3(hair,0);
+penpos2(cap_bar,90);
+penstroke z4e{left}..tension.8..{up}z3e{up}..tension.8..{left}z2e;
+y1=h; x1a=x2; fill z6l..z6r..cycle;
+ul_drop(1,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ul_drop_edge1; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ZE,10u#+.5s#,cap_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height;
+x4=x6-3/2cap_stem; x5=x4-3u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3c,1.4border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.5cap_drop_round,slab);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_I,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-20); penpos6(cap_bar,-20);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar(CYR_SHORT_I,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-20); penpos6(cap_bar,-20);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+x7=.5w; y7=h+cap_bar;
+ur_drop(7,.8cap_drop_round,1/2(x3l-x1r),.8cap_drop_round,1.2cap_bar);
+fill ur_drop_edge7 rotatedaround(z7,180);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_KA,12u#+s#,cap_height#,0);
+x8g=x9g=s; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+y10=y11=cap_bar_height;
+x10=x8r; x11=x10+2.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13; fill z16l..z16r..cycle;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_EL,13u#+1/2s#,cap_height#,0);
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+cap_drop_round; y3=1.1cap_drop_round;
+dl_drop(1,cap_drop_round,cap_drop_round,1.1cap_drop_round,slab);
+fill dl_drop_edge1;
+penpos2(cap_bar,-90);
+penpos3(cap_bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-slab;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,cap_bar,theta1,1.5cap_jut,1.5cap_jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,cap_stem,-90,cap_jut,cap_jut);
+serif(8,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_EM,13u#+c#,cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,.51cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 110; y7l=13/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EN,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_O,11u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+cap_o_width := x7-x3; save cap_o_width;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_PE,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ER,10u#+s#,cap_height#,0);
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_ES,10u#+s#,cap_height#,0);
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_TE,round (11u#+s#),cap_height#,0);
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_U,13u#+s#,cap_height#,0);
+x1l=s+cap_jut; y1l=.98h-cap_bar;
+x3r=w-s-.8cap_jut; y3r=.98h-cap_bar;
+x4=33/60w; y4=6/53h;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,1.2cap_bar,theta2,1.2cap_jut,.8cap_jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=0; x6=x4-1.2cap_stem; z7l=z2;
+penpos7(1.2cap_bar,theta2+90);
+penpos5(1.2cap_bar,theta2+90);
+penpos6(1.2cap_bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,cap_drop_round,2u, 10/53h, round 1.2cap_bar);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EF,round (14u#+s#),cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1=x2=.5w; y2c=0; y1h=h;
+y6=y7=y8=y9=1.3cap_jut; y4=y3=y11=y12=h-1.3cap_jut+1/2slab;
+x3=x7=x2l; x8=x12=x2r; x4=x6=x3-u; x11=x9=x12+u;
+x5=s+1/2cap_curve; x10-x1=x1-x5; y4-y5=y5-y6; y10=y5;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,270);
+penpos7(cap_bar,270);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+penpos10(cap_curve,0);
+penpos11(cap_bar,90);
+penpos12(cap_bar,90);
+penstroke z3e--z4e{left}..tension.8..{down}z5e{down}..tension.8..{right}z6e--z7e;
+penstroke z8e--z9e{right}..tension.8..{up}z10e{up}..tension.8..{left}z11e--z12e;
+penlabels (range 1 thru 12);
+endchar;
+
+beginchar(CYR_HA,12u#+s#,cap_height#,0);
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_TSE,12.5u#+s#,cap_height#,comma_depth#);
+x1=x2=x5=cap_jut+1/2cap_stem+s;
+x3=x4=x6=w-x1-.5u; y5=y6=y2h;
+y1c=y3c=h; y2c=y4c=0; x7e=w-s; y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e;
+T_serif(7,cap_bar,border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_CHE,12u#+s#,cap_height#,0);
+x1=cap_jut+1/2cap_stem+s;
+x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,-90,cap_jut,cap_jut);
+serif(3,cap_stem,90,cap_jut,cap_jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=round(cap_bar_height-1/2cap_bar); z6=z4;
+x5-x7=x7-x4r; y7=round(y5-1.8cap_bar)-1;
+penpos6(cap_stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SHA,16u#+s#,cap_height#,0);
+if .5w <> good.x .5w: change_width; fi
+x1=x2=good.x (cap_jut+1/2cap_stem+s);
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=good.x .5w; y5=y1; y6=y2;
+y9b=slab; x9=good.x w-x1;
+x10=x9; y10b=h-slab;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_SHCHA,16.5u#+s#,cap_height#,comma_depth#);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=slab; x9h=w-s-.5u;
+x10=x9; y10b=h-slab;
+x11e=w-s; y11=y9h;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,slab,border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_HARD_SIGN,13.5u#+c#,cap_height#,0);
+x2r=x5-css_width; x1=x2; x8e=s; y8g=h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+x7=x1d; y1c=h; y2c=0;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=round(x3+5u-cap_stem);
+y6=y7=y2h;
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(8,cap_bar,border_height,0);
+fill T_edge8;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YERU,16u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+y3=y4=cap_bar_height; x3=round x2r; x4=x6=round (x3+5u-cap_stem) - 1;
+y4-y5=y5-y6; x5=x2r+css_width; y8b=slab; x8h=w-s;
+y6=y7=y2h; x9=x8; y9b=h-slab;
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(8,cap_stem,90,cap_jut,cap_jut);
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge9--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SOFT_SIGN,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=x3+5u-cap_stem;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y6=y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_E,10u#+.5s#,cap_height#,0);
+x1=16/39w; x5=.5w; y1=0; y5=h;
+y7=.5h; x7=w-1/2cap_curve-s;
+x9e=s; y9=0;
+dl_drop(9,cap_drop_round,16/39w-s,1.7cap_drop_round,slab);
+y8=0.1h-c; y6=0.9h+c; x8=x9+9/16(x7-x9); x6=x5+9/16(x7-x5);
+penpos5(cap_bar,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+penpos1(cap_bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+y2=y5; x2=x5-c;
+S_serif(2,slab,x1+c,1.5border_height);
+x3=x7-1/2cap_stem; y3=y4=cap_bar_height; x4=x2b-x1;
+penpos3(cap_bar,90); penpos4(cap_bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YU,16u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+y3=y7=.5h; x7=w-1/2cap_curve-s; x3=x7-cap_o_width; y9=0; y5=h; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3cap_stem; y11=y12=cap_bar_height;
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_YA,11u#+s#,cap_height#,0);
+x1=x2=w-cap_jut-1/2cap_stem-s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2l;
+y1c=h; y2c=0; x6=x4=x7-2.5u; x3=x1c;
+y4-y5=y5-y6; x5=x8-1.5c; x9=s; y9=0; y6-y8=y8-y9; x7-x10=3(x10-x6); x10-x8=x8-x9;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos7(cap_bar,270);
+penpos6(cap_bar,270);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90); fill z9l..z9r..cycle;
+penstroke z3e--z4e{left}..tension.9..z5e..tension.9..{right}z6e--z7e;
+penstroke z9e{right}..tension1..{up}z8e{up}..tension1..{right}z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_a,9u#-s#+2/7stem#,x_height#,0);
+x5=w-s-1/2bar; y5=0; y4=6/7stem; x4=x3=x5-5/7stem-1/2stem;
+y3=bar_height+2bar; y2=y1=h; x2=s+c+6/20w; x1e=s+c;
+ul_drop(1,1.1drop_round,x2-s-c,1.15drop_round,bar);
+fill ul_drop_edge1;
+penpos2(bar,90);
+penpos3(stem,0);
+penpos4(stem,0);
+penpos5(bar,90);
+penstroke z2e{right}..{down}z3e--z4e{down}..{right}z5e;
+fill z5r..z5l..cycle;
+y6=bar_height+1/2bar; x6=x3+1/2stem; x7=s+1/2stem; y7=7/17bar_height;
+y8=0; x9=x4-1/2stem+.6bar; 8(x9-x8)=7(x8-x7); y9=y4+3/2bar; x66=x8; y66=y6-c;
+numeric theta[]; theta1=angle(z66-z6);
+penpos6(vair,90);
+penpos66(vair,90);
+penpos7(curve,180);
+penpos8(vair,270);
+penpos9(bar,360);
+penstroke z6e{left}..z66e{dir theta1}..tension.9..{down}z7e{down}..tension.9..z8e{right}..{up}z9e;
+penlabels(range 1 thru 9,66);
+endchar;
+
+beginchar(CYR_be,8u#+c#,asc_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2stem+s; x7=w-1/2stem-s;
+y2=y8=0.07x_height; y4=y6=0.93x_height; x2=x4=x3+15/32(x5-x3); x6=x8=x5+17/32(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+y9=y3; x9=s+1/2bar; y10=44/51h; x10=x5+c; x11=w-s-1/2bar; y11=h-1/3bar; %x11=w-1/2bar*sind 45; y11=h-1/2bar*sind 45;
+penpos9(hair,180);
+penpos10(curve,90);
+penpos11(hair,180);
+penstroke z9e{up}..{right}z10e{right}..tension1..z11e;
+fill z11r..tension1.2..z11l..tension1.2..cycle;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_ve,9u#-s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x9=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h; y8=y9=h-1/2bar; x8=x1d;
+y9-y10=y10-y4; x10=x5-c; z44=z4;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90); penpos44(bar,-90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(curve,0);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penstroke z8e--z9e{right}..tension.8..{down}z10e..tension.8..{left}z44e;
+sss_width := x5 - x2r; save sss_width;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ghe,7u#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; y3=y4=y5=h-1/2bar; x3=x1d; x5e=w-s;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+T_serif(5,bar,4/5border_height,1);
+x4=x5;
+fill serif_edge2--reverse serif_edge1--cycle;
+fill T_edge5;
+penpos3(bar,90);
+penpos4(bar,90);
+penstroke z3e--z4e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_de,9u#,x_height#,x_depth#);
+x3=x4=w-jut-1/2stem-s-.1u;
+y3c=h; y4c=0;
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+x7e=s; x10e=w-s; y7=y8=y9=y10=y4h; x8=x7; x9=x4c;
+T_serif(7,bar,4/5border_height,0);
+T_serif(10,bar,4/5border_height,1);
+fill T_edge7; fill T_edge10;
+penpos8(bar,90); penpos9(bar,90);
+penstroke z8e--z9e;
+x2=s+1.3jut+1/2bar; y2=bar; x1=x2+3/2bar; y1=h-bar;
+numeric theta[]; theta1=angle(z1-z2);
+A_serif(1,bar,theta1-180,1.3jut,jut);
+A_serif(2,bar,theta1,1.3jut,.8jut);
+fill A_serif_edge2..reverse A_serif_edge1..cycle;
+y5=y6=y3h; x5=x1d; x6=x3c;
+penpos5(bar,90);
+penpos6(bar,90);
+penstroke z5e--z6e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ie,8u#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=.53w; x5=.5w; y1=0; y5=h;
+y3=.5h; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.07h; y4=y6=0.92h; x4=x3+3/8(x5-x3)+.3c; x2=x4+.3c; x6=x5+5/8(x7-x5)-.3c;
+x10=w-s-1/2bar; y10=y7-stem;
+penstroke z10e{down}..tension1.1..{left}z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ye,8u#,asc_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=.53w; x5=.5w; y1=0; y5=x_height;
+y3=.5x_height; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.07x_height; y4=y6=0.92x_height; x4=x3+3/8(x5-x3)+.3c; x2=x4+.3c; x6=x5+5/8(x7-x5)-.3c;
+x10=w-s-1/2bar; y10=y7-stem;
+penstroke z10e{down}..tension1.1..{left}z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+y12=y14=h; y11=y13=h-stem; x11=x12=x3r+c; x13=x14=x7r-c;
+fill z11..z12..cycle; fill z13..z14..cycle;
+penlabels(range 1 thru 14);
+endchar;
+
+beginchar(CYR_zhe,round (13u#+c#),x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,stem,-90,jut,jut);
+serif(9,stem,90,jut,jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; x4=x7-u; y4=y7=y10=y11=bar_height; x10=x8r; x11=x10+u;
+x6=s+1/2bar; y6=y16=0; y4-y5=y5-y6; x4-x5=1.3(x5-x6);
+x16=w-s-1/2bar; 1.3(x16-x15)=x15-x11; y11-y15=y15-y16;
+x2=x5-c; y2=y1=h; x4-x3=x3-x2; y2-y3=y3-y4; x1e=s+c;
+y13=y14=h; x13=x15+c; x13-x12=x12-x11; y13-y12=y12-y11; x14e=w-s-c;
+penpos2(bar,90);
+penpos3(hair,0);
+penpos4(bar,90);
+penpos5(curve,180);
+penpos6(bar,90);
+penpos7(bar,90);
+penpos10(bar,90);
+penpos11(bar,90);
+penpos12(hair,180);
+penpos13(bar,90);
+penpos15(curve,0);
+penpos16(bar,90);
+penstroke z7e--z4e{left}..tension.9..{down}z5e{down}..tension.9..{left}z6e;
+fill z6r..z6l..cycle;
+penstroke z10e--z11e{right}..tension.9..{down}z15e{down}..tension.9..{right}z16e;
+fill z16r..z16l..cycle;
+penstroke z4e{left}..z3e..{left}z2e;
+penstroke z11e{right}..z12e..{right}z13e;
+ul_drop(1,7/8stem,x2-s-c,3/4drop_round,bar);
+ur_drop(14,7/8stem,x2-s-c,3/4drop_round,bar);
+fill ul_drop_edge1; fill z1e..z1c..cycle;
+fill ur_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ze,6u#+2s#,x_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=bar_height;
+x4=x6-3/2stem; x5=x4-u;
+x6=w-s-1/2curve; y4-y6=y6-y7;
+x2=.45w; y2=h; x3=x6-1/5curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(bar,90);
+penpos3(curve,0);
+penpos44(bar,-90);
+penpos4(bar,90);
+penpos5(bar,90);
+penpos6(curve,0);
+penpos7(bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3.5c,border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,1.05drop_round,18/39w-s,1.3drop_round,bar);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_i,9u#+s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r-1/2bar; x6=x3l+1/2bar;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,-20); penpos6(bar,-20);
+y5=.1h; y6=.9h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_short_i,9u#+s#,asc_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r-1/2bar; x6=x3l+1/2bar;
+y1c=y3c=x_height; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,-20); penpos6(bar,-20);
+y5=.1x_height; y6=.9x_height; penstroke z5e--z6e;
+x7=.5w; y7=h-3/2drop_round;
+ur_drop(7,drop_round,x3-.5w,1.1drop_round,1.2bar);
+fill ur_drop_edge7 rotatedaround(z7,180);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ka,9u#+.5s#,x_height#,0);
+x1g=x2g=s; y1c=h; y2c=y9=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=bar_height; x3=x1r; x4=x3+1.25u;
+x9=w-s-1/2bar; 1.3(x9-x8)=x8-x4; y4-y8=y8-y9;
+y6=y7=h; x6=x8+c; x6-x5=x5-x4; y6-y5=y5-y4; x7e=w-s-c;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(hair,180);
+penpos6(bar,90);
+penpos8(curve,0);
+penpos9(bar,90);
+penstroke z3e--z4e{right}..tension.9..{down}z8e{down}..tension.9..{right}z9e;
+fill z9r..z9l..cycle;
+penstroke z4e{right}..z5e..{right}z6e;
+ur_drop(7,7/8stem,w-x6-s-c,3/4drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_el,9u#+s#,x_height#,0);
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.7drop_round; y3=1.1drop_round;
+dl_drop(1,1.05drop_round,drop_round,drop_round,bar);
+fill dl_drop_edge1;
+fill z1c..z1e..cycle;
+penpos2(bar,-90);
+penpos3(bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-bar;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,bar,theta1,1.4jut,1.3jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,stem,-90,jut,jut);
+serif(8,stem,90,jut,jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(bar,90);
+penpos6(bar,90);
+penstroke z5e--z6e;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_em,10u#+s#,x_height#,0);
+x1g=s; y1c=0; y2=h-bar;
+A_serif(1,bar,90,jut,jut);
+x2=x1; serif(2,bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2bar; y4c=0;
+serif(3,stem,-90,.51bar, jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -110; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 110; y7l=9/28h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(stem,0); penpos8(stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_en,9u#+s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_o,8u#+s#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2curve-s;
+y2=y8=0.09h; y4=y6=0.91h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_pe,9u#+s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_er,8u#+jut#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+.3s+.6(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=0.1h; y8=0.06h; y4=0.9h; y6=0.94h; x2=x4=x3+3.5/8(x5-x3); x6=x8=x5+1/2(x7-x5)+.3c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=-desc_depth;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_es,8u#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.9hair,180);
+x1=x5=.51w; y1=0; y5=h;
+y3=.5h; x3=1/2curve+s;
+y2=0.08h; y4=0.91h; x2=x4=x3+3/8(x5-x3);
+x6=w-s-1/2hair; y6=y3-.7stem;
+penstroke z6e{down}..tension1..{left}z1e..z2e..z3e..z4e..z5e;
+fill z6r..z6l..cycle;
+z7=z5;
+ur_drop(7,drop_round,7/8(x6l-x1),3/2drop_round,bar);
+fill ur_drop_edge7;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(CYR_te,round (8u#-c#),x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x2=x3=.5w; x1e=s; x4e=w-s; y1=y4=y2h;
+y2c=h; y3c=0;
+serif(2,stem,-90,jut,jut);
+serif(3,stem,90,jut,jut);
+T_serif(1,bar,4/5border_height,0);
+T_serif(4,bar,4/5border_height,1);
+fill serif_edge3--reverse serif_edge2--cycle;
+fill T_edge1; fill T_edge4;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_u,9u#+s#,x_height#,desc_depth#);
+x1l=s+jut; y1l=h-bar;
+x3r=w-s-.8jut; y3r=h-bar;
+x4=33/60w; y4=-2/5d;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,1.2bar,theta2,1.2jut,.8jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=-d; x6=x4-1.1stem; z7l=z2;
+penpos7(1.2bar,theta2+90);
+penpos5(1.2bar,theta2+90);
+penpos6(1.2bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,stem,1.5u,drop_round,1.2bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(CYR_ef,12u#,asc_height#,desc_depth#);
+if .5w = good.x .5w: change_width; fi
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w+.5(.5w-s)-.4c; y1=0; y5=x_height;
+y3=y7=y12=.5x_height; x3=.5w; x7=w-1/2curve-s;
+y2=y9=0.1x_height; y11=y8=0.07x_height; y4=y15=0.9x_height; y6=y13=.93x_height;
+x2=x4=x3+3/8(x5-x3); x6=x8=x5+1/2(x7-x5)+.2c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+z16=z3; x14=x10=.5w-.5(.5w-s)+.4c; y10=0; y14=x_height;
+x12=s+1/2curve; x9=x15=x16-3/8(x16-x14); x11=x13=x14-1/2(x14-x12)-.2c;
+penpos10(vair,90);
+penpos11(o,30);
+penpos12(curve,0);
+penpos13(o,-30);
+penpos14(vair,-90);
+penpos15(.7o,-150);
+penpos16(stem,-180);
+penpos9(.7o,-210);
+penstroke z10e..z11e..z12e..z13e..z14e..z15e..z16e..z9e..cycle;
+x99=x155=x3l; x44=x222=x3r; y99=y222=.5x_height-3/2stem; y155=y44=.5x_height+3/2stem;
+%unfill z99--z155--z44--z222--cycle; penlabels(44,99,155,222);
+x20=.5w; y20=-.75d; x17=x30=x3l; x23=x24=x3r; y17=y23=-1/2d;
+x18=x19=x17-4/5stem; x21=x22=x23+4/5stem; y18=y22=-d+bar; y19=y21=-d;
+y24=y30=x_height+3/5(asc_height-x_height);x25=x22-c; x29=x18+c; y29=y25=h-1/2bar;
+y28=y26=h; x28=x29+1/2bar; x26=x25-1/2bar; x27=.5w; y27=h-bar;
+fill z30---z17{dir -100}..tension2..z18{left}..{right}z19{right}..{dir 20}z20{dir -20}..{right}z21{right}..{left}z22..tension2..{dir 100}z23---z24{dir 80}..{dir 20}z25{dir 160}..{left}z26{left}..{dir -160}z27{dir 160}..{left}z28{left}..{dir -160}z29{dir -20}..{dir -80}z30&cycle;
+penlabels (range 1 thru 30);
+endchar;
+
+beginchar(CYR_ha,9u#+c#,x_height#,0);
+y3=y4=bar; x3=w-s-jut-1/2stem; x4=s+jut+1/2bar;
+y1=y2=h-bar; x1=s+jut+1/2stem+c; x2=w-s-1.25c-jut-1/2bar;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,stem,theta1-180,jut,jut);
+A_serif(2,1.2bar,theta2-180,jut,jut);
+serif(3,stem,theta1,jut,jut);
+A_serif(4,1.2bar,theta2,jut,1.3jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_tse,9.1u#+s#,x_height#,x_depth#);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1-.1u; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=y2h; penstroke z5e--z6e;
+x7e=w-s; y7=y4h;
+T_serif(7,bar,4/5border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_che,9u#+s#,x_height#,0);
+x1=jut+1/2stem+s;
+x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,-90,jut,jut);
+serif(3,stem,90,jut,jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=bar_height-1/2bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-.8bar;
+penpos6(stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_sha,round (13u#+s#),x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=.5w; y5=y1; y6=y2;
+y9b=bar; x9h=w-s;
+x10=x9; y10b=h-bar;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,stem,-90,jut,jut);
+serif(6,stem,90,jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,stem,90,jut,jut);
+serif(10,stem,-90,jut,jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos7(bar,90);
+penpos8(bar,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_shcha,13.1u#+3/2s#,x_height#,x_depth#);
+if .5w <> good.x .5w: change_width; fi
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=bar; x9h=w-s-.1u;
+x10=x9; y10b=h-bar;
+x11e=w-s; y11=y9h;
+serif(9,stem,90,jut,jut);
+serif(10,stem,-90,jut,jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,stem,-90,jut,jut);
+serif(6,stem,90,jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos7(bar,90);
+penpos8(bar,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,bar,4/5border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_hard_sign,10u#,x_height#,0);
+x2r=x5-sss_width; x1=x2;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h; x8e=s; y8g=h;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+T_serif(8,bar,4/5border_height,0);
+fill T_edge8;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+x9=s+c; y9=y10=h; x10=s;
+unfill z8d{up}..z9--z10--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_yeru,12u#-c#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=x2r+sss_width;
+y6=y7=y2h; x8h=x9h=w-s; y8c=h; y9c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(8,stem,-90,jut,jut);
+serif(9,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge9--reverse serif_edge8--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_soft_sign,9u#-s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_e,6u#+2s#,x_height#,0);
+x1=16/39w; x5=.5w-c; y1=0; y5=h;
+y7=.5h; x7=w-1/2curve-s;
+x9e=s; y9=0;
+dl_drop(9,1.05drop_round,18/39w-s,1.3drop_round,bar);
+y2=y5; x2=x5;
+S_serif(2,bar,x5-s-c,border_height);
+x3=x7-1/2stem; y3=y4=bar_height; x4=x9c-.5c;
+penpos3(bar,90); penpos4(bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+y8=0.1h-c; y6=0.9h+c; x8=x1+5/8(x7-x9)+.1c; x6=x2+9/16(x7-x5);
+penpos5(bar,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+penpos1(bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_yu,12u#+.5s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x3l=x1h+.3bar; y9=0; y5=h;
+y3=y7=.5h; x7=w-1/2curve-s; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+c+3/8(x5-x3); x6=x8=x5-c+5/8(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3stem; y11=y12=bar_height;
+penpos11(bar,90); penpos12(bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ya,8u#+s#+1/2bar#,x_height#,0);
+x1=x2=w-jut-1/2stem-s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2l; x4=x6=x3-2.5u+stem;
+y5-y4=y6-y5; x5=1/2stem+2s;
+y6=y7=y1h; x9=s; y9=0; x4-x8=x8-x9; y4-y8=y8-y9;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,-90);
+penpos4(bar,-90);
+penpos5(curve,180);
+penpos6(bar,90);
+penpos7(bar,90);
+penpos8(curve,0);
+penpos9(bar,-90);
+penstroke z3e--z4e{left}..tension.8..z5e..tension.8..{right}z6e--z7e;
+penstroke z9e{right}..{up}z8e{up}..{right}z4e;
+fill z9r..z9l..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar("A",13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar("B",11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,1/2cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("C",10u#+s#,cap_height#,0);
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("D",12u#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(o,30);
+penpos6(cap_curve,0);
+penpos7(o,-30);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+x3=x9=x1d;
+x8=x4=.5w; y8=y9=1/2cap_bar; y4=y3=h-1/2cap_bar;
+y6=.5h; x6=w-1/2cap_curve-s;
+y7=0.1h-c+1/2cap_bar; y5=0.9h+c-1/2cap_bar; x5=x7=x4+5/8(x6-x4);
+penstroke z3e--z4e{right}..z5e..z6e..z7e..{left}z8e--z9e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("E",10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("F",10u#+.5s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("G",10u#+cap_jut#+c#+s#,cap_height#,0);
+x1=x5=23/42(w-cap_jut-c); y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s-cap_jut-c; y8=y1; x8=x1-.1(w-cap_jut-c);
+S_serif(6,slab,w-s-2c-x1-cap_jut,1.5border_height);
+S_serif(7,slab,w-s-x1-cap_jut+c,7/4border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+x9r=x7e; y9r=7/4border_height-1/2cap_bar;
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+x10=x9l; x11=x9r; y10=y11=3/4cap_bar;
+fill reverse serif_edge9--z10--z11--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("H",12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("I",2cap_jut#+cap_stem#+2s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+endchar;
+
+beginchar("J",7u#+s#,cap_height#,0);
+x1=x4=w-cap_jut-1/2cap_stem-s;
+y1c=h; y2=y3=y4=13/53h; x2=x1r; x3=x1l;
+y5=0; x5=x3-.4cap_stem;
+serif(1,cap_stem,-90,1.2cap_jut,cap_jut);
+fill z3--z2--reverse serif_edge1--cycle;
+penpos4(cap_stem,0);
+penpos5(cap_bar,-90);
+penstroke z4e{down}..{left}z5e;
+x6e=s; y6=0;
+dl_drop(6,cap_drop_round,x5-s,1.3drop_round,cap_bar);
+fill dl_drop_edge6;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("K",13u#-c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=cap_bar_height; x3l=w-cap_jut-.5cap_jut-cap_bar-s; y3l=h-cap_bar;
+x5=x6=x1r; y5=cap_bar_height-cap_bar; y6=y5-1.2cap_bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+A_serif(3,.9cap_bar,theta1,1.5cap_jut,.6cap_jut);
+x4l=w-s-1.2cap_jut-cap_stem; y4l=cap_bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,cap_stem,theta2,.8cap_jut,cap_jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("L",10u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=y5=y2h; x3=x2d; x5e=w-s;
+T_serif(5,cap_bar,border_height,1); x4=x5;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penstroke z3e--z4e;
+fill T_edge5 reflectedabout(z3,z4);
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar("M",13u#+c#,cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,.51cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 110; y7l=13/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("N",12u#-c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_bar+s;
+x3=w-x1; y1c=y3c=h; y2c=y4=y5=0;
+x4=x3r; x5=x3l;
+serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+A_serif(2,cap_bar,90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill A_serif_edge2--reverse serif_edge1--cycle;
+numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+theta1=angle(z5-z7);
+z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+fill z6--z1h--z7--z5{down}..{up}z4--reverse A_serif_edge3--cycle;
+unfill z1b--z1l--z1a--cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("O",11u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("P",10u#+s#,cap_height#,0);
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Q",11u#+s#,cap_height#,comma_depth#);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x12-1.5c; x12=x7l-c; y11=y12=-comma_depth;
+y9=0; x9=x1-c; y9-y10=y10-y11; x11-x10=x10-x9;
+penpos9(cap_bar,90); penpos10(cap_curve,0);
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z9e{dir -20}..tension.8..z10e..tension.8..{right}z11e--z12e;
+fill z12r..z12l..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("R",11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2r;
+y1c=h; y2c=0; x6=x4=x7+2.5u; x3=x1d;
+y4-y5=y5-y6; x5=x8; x9=w-s-1/2cap_bar; y9=0; y6-y8=y8-y9; x10=x6; x9-x8=6/7(x8-x10);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,-90);
+penpos6(cap_bar,-90);
+penpos8(cap_curve,-180);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penstroke z9e{left}..tension.8..{up}z8e{up}..tension.8..{left}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("S",9u#+s#,cap_height#,0);
+x6=x7=1/2w; y6=y7=0;
+S_serif(7,cap_bar,x6-s,1.5border_height);
+y5=11/53h; x5=w-s-1/2(1.9hair);
+y4=28/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2(1.9cap_bar);
+x2=.5w-c; y2=h; z1=z2;
+penpos6(cap_bar,-90);
+penpos5(1.9hair,0);
+penpos4(1.1cap_curve,90);
+penpos3(1.9hair,0);
+penpos2(cap_bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-cap_bar,1.2border_height);
+fill S_serif_edge1;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("T",round (11u#+s#),cap_height#,0);
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("U",12u#+s#,cap_height#,0);
+x1=cap_jut+1/2cap_stem+s;
+x3=w-s-cap_jut-1/2cap_bar;
+y1c=y3c=h; y2=y4=y5=y6=y24=y56=16/53h; x2=x1l;
+x4=x1r; x5=x3l; x6=x3r;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill z2--z4--reverse serif_edge1--cycle;
+fill z5--z6--reverse A_serif_edge3--cycle;
+x7=x1+.5(x3-x1); y7=0; x4-x24=x24-x2; x6-x56=x56-x5;
+penpos24(cap_stem,-180); penpos7(vair,-90);
+penpos56(cap_bar,0);
+penstroke z24e{down}..tension.9..{right}z7e{right}..tension.9..{up}z56e;
+penlabels(range 1 thru 7,24,56);
+endchar;
+
+beginchar("V",12u#,cap_height#,0);
+x1l=cap_jut+s;
+x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w-1/2cap_bar; x5=.5w+1/2cap_bar;
+y4=y5=1/2cap_bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("W",17u#,cap_height#,0);
+x9l=.5w-.3cap_stem;
+x7r=w-s-cap_jut;
+y9l=y7r=y1l=h-cap_bar; x5=x9l+.5(x7r-x9l)-1/2cap_bar; x6=x9l+.5(x7r-x9l)+1/2cap_bar;
+y5=y6=y2=y3=1/2cap_bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(7,cap_bar,theta2,1.3cap_jut,cap_jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+cap_jut;
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+z2=z1l+whatever*dir theta1; x3=x2+cap_bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("X",12u#+s#,cap_height#,0);
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("Y",12u#,cap_height#,0);
+x1l=cap_jut+s;
+x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w;
+y4=8/25h;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+y5c=0; x5=.5w+.5c;
+serif(5,cap_stem,90,cap_jut,cap_jut);
+x6=x5l; x7=x5r;
+z6=z1l+whatever*dir theta1;
+z7=z3r+whatever*dir theta2;
+fill z6--serif_edge5--z7--reverse A_serif_edge3--z2--reverse serif_edge1--z6&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Z",9u#+1.5s#,cap_height#,0);
+x6=s+1/2cap_bar; y6=y7=y8=1/2cap_bar;
+x8e=w-s; x7=x8;
+T_serif(8,cap_bar,border_height,1);
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4cap_bar;
+x4r=w-s-1/4cap_bar; y4=h-cap_bar;
+penpos4(cap_stem,0);
+penpos5(cap_stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2cap_bar;
+x3=w-s-1/2cap_bar; x1e=s+c;
+T_serif(1,cap_bar,border_height,0);
+x2=x1;
+penpos3(cap_bar,90);
+penpos2(cap_bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar("a",9u#-s#+2/7stem#,x_height#,0);
+x5=w-s-1/2bar; y5=0; y4=6/7stem; x4=x3=x5-5/7stem-1/2stem;
+y3=bar_height+2bar; y2=y1=h; x2=s+c+6/20w; x1e=s+c;
+ul_drop(1,1.1drop_round,x2-s-c,1.15drop_round,bar);
+fill ul_drop_edge1;
+penpos2(bar,90);
+penpos3(stem,0);
+penpos4(stem,0);
+penpos5(bar,90);
+penstroke z2e{right}..{down}z3e--z4e{down}..{right}z5e;
+fill z5r..z5l..cycle;
+y6=bar_height+1/2bar; x6=x3+1/2stem; x7=s+1/2stem; y7=7/17bar_height;
+y8=0; x9=x4-1/2stem+.6bar; 8(x9-x8)=7(x8-x7); y9=y4+3/2bar; x66=x8; y66=y6-c;
+numeric theta[]; theta1=angle(z66-z6);
+penpos6(vair,90);
+penpos66(vair,90);
+penpos7(curve,180);
+penpos8(vair,270);
+penpos9(bar,360);
+penstroke z6e{left}..z66e{dir theta1}..tension.9..{down}z7e{down}..tension.9..z8e{right}..{up}z9e;
+penlabels(range 1 thru 9,66);
+endchar;
+
+beginchar("b",8u#+jut#,asc_height#,0);
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+.3s+.6(w-jut-2s); y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=0.1x_height; y8=0.06x_height; y4=0.9x_height; y6=0.94x_height;
+x2=x4=x3+3/8(x5-x3); x6=x8=x5+1/2(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=0;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,0);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("c",8u#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.9hair,180);
+x1=x5=.51w; y1=0; y5=h;
+y3=.5h; x3=1/2curve+s;
+y2=0.08h; y4=0.91h; x2=x4=x3+3/8(x5-x3);
+x6=w-s-1/2hair; y6=y3-.7stem;
+penstroke z6e{down}..tension1..{left}z1e..z2e..z3e..z4e..z5e;
+fill z6r..z6l..cycle;
+z7=z5;
+ur_drop(7,drop_round,7/8(x6l-x1),3/2drop_round,bar);
+fill ur_drop_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("d",8u#+jut#,asc_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.7o,-150);
+penpos7(stem,-180);
+penpos8(.7o,-210);
+x1=x5=s+.4(w-jut-2s)+.7s; y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2curve+s; x7=w-1/2stem-s-jut;
+y8=0.1x_height; y2=0.06x_height; y6=0.9x_height; y4=0.94x_height;
+x2=x4=x3+1/2(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10h=w-s; x9=x10; y9c=h; y10c=0;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,0,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("e",8u#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=.53w; x5=.5w; y1=0; y5=h;
+y3=.5h; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.07h; y4=y6=0.92h; x4=x3+3/8(x5-x3)+.3c; x2=x4+.3c; x6=x5+5/8(x7-x5)-.3c;
+x10=w-s-1/2bar; y10=y7-stem;
+penstroke z10e{down}..tension1.1..{left}z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("f",2jut#+stem#+3c#+2s#,asc_height#,0);
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x1; y3=x_height; x4r=x1l-.1stem; y4=x_height+1/2(asc_height-x_height);
+x5l=x4l-.05stem; y5=y4+1.5bar; x6=x1r+.2stem; y6=h-1/2bar;
+penpos3(stem,180);
+penpos4(.75curve,180);
+penpos5(.6curve,180);
+penpos6(bar,90);
+penstroke z3e{dir 95}...{up}z4e..z5e..{right}z6e;
+y6=y7; x7e=w-s;
+ur_drop(7,stem,x7e-x6,drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("g",9u#+c#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+y3=y7=2/3h; x3=1/2curve+s+c; x7=w-3/2stem-s;
+x1=x5=x3+1/2(x7-x3); y1=3/11h; y5=h;
+y2=y8=y1+0.09(8/11h); y4=y6=y1+0.91(8/11h); x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x9=x7; y9=y7+1/2(y6-y7); y10=h; x10=x7l+c;
+x11e=w-s; y11=y10;
+ur_drop(11,.8stem,x11e-x10,drop_round,bar);
+penpos9(hair,180); penpos10(vair,90);
+penstroke z9e{up}..{right}z10e;
+fill ur_drop_edge11;
+y12=y1; x12=x1; y13=5/8*y12; x13=s+1/4stem+.5c;
+y14=y15=0; x14=x2r; x15=x8r; y16=y18=-d/2; x16=w-s-1/2stem;
+x18=s+.7hair; y17=-d+1/2bar; x17=s+.6bar+9/20(x16-x18); x19=x14; y19l=y14r;
+penpos12(vair,90); penpos13(1/2curve,180); penpos14(curve,270);
+z144=z14; penpos144(curve,90); penpos15(curve,90);penpos16(1/2curve,0);
+penpos17(vair,-90); penpos18(1.4hair,-180); penpos19(1.4vair,-270);
+penstroke z12e{left}..{down}z13e{down}..{right}z14e;
+penstroke z144e--z15e{right}..tension.8..{down}z16e{down}..{left}z17e{left}..{up}z18e{up}..{right}z19e;
+penlabels(range 1 thru 19);
+endchar;
+
+beginchar("h",round (10u#-1.5c#),asc_height#,0);
+w:=w+1;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6h=w-s; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33x_height;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=x_height; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("i",2jut#+stem#+2s#,x_height#+2.1stem#,0);
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+z3=(x1,h); z4=(x1,h-1.1stem);
+fill z3..z4..cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("j",5u#+c#,x_height#+2.1stem#,desc_depth#);
+x1h=w-s; y1c=x_height; y2=0; x2=x1;
+serif(1,stem,-90,1.5jut,0);
+penpos2(stem,0);
+fill z2l--z2r--reverse serif_edge1--cycle;
+z3=(x1-.05stem,h); z4=(x1-.05stem,h-1.1stem);
+fill z3..z4..cycle;
+y5=-1/4desc_depth; x5r=x2r;
+y6=-d+1/2bar; x6=x2l-.3stem;
+penpos5(.97stem,0);
+penpos6(bar,-90);
+penstroke z2e--z5e{down}..{left}z6e;
+x7e=s; y7=-d+1/2bar;
+dl_drop(7,drop_round,x6-x7e,drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar("k",10u#-c#,asc_height#,0);
+%w:=w+1;
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=.95bar_height; x3l=w-jut-.7jut-s; y3l=x_height-bar;
+x5=x6=x1r; y5=bar_height-.3bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+y6=y5-bar/cosd (theta1+180);
+A_serif(3,.9bar,theta1,1.8jut,.8jut);
+x4l=w-s-1.2jut-stem; y4l=bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,stem,theta2,.8jut,jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("l",2.4jut#+stem#+2s#,asc_height#,0);
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,1.2jut,0);
+serif(2,stem,90,1.2jut,1.2jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penlabels(1,2);
+endchar;
+
+beginchar("m",14u#,x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6=.5w; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33h;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=h; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+x10h=w-s; y10c=0;
+serif(10,stem,90,jut,jut);
+x9=x10; y9=y5;
+penpos9(stem,0);
+fill serif_edge10--z9r--z9l--cycle;
+x8=x10g; y8=h; y7=y9-1/4bar; x7l=x6r;
+penpos8(vair,90);
+penpos7(bar,180);
+penstroke z9e{up}..{left}z8e{left}..z7e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("n",round (10u#-1.5c#),x_height#,0);
+w:=w+1;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6h=w-s; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33h;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=h; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("o",8u#+s#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2curve-s;
+y2=y8=0.09h; y4=y6=0.91h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("p",8u#+jut#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+.3s+.6(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=0.1h; y8=0.06h; y4=0.9h; y6=0.94h; x2=x4=x3+3.5/8(x5-x3); x6=x8=x5+1/2(x7-x5)+.3c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=-desc_depth;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("q",8u#+jut#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.7o,-150);
+penpos7(stem,-180);
+penpos8(.7o,-210);
+x1=x5=s+.4(w-jut-2s)+.7s; y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2stem-s-jut;
+y8=0.1h; y2=0.06h; y6=0.9h; y4=0.94h; x2=x4=x3+1/2(x5-x3)-.1c; x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10h=w-s; x9=x10; y9c=h; y10c=-d;
+serif(9,stem,-90,0,jut);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("r",7u#+1.5c#,x_height#,0);
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,1.2jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x4=round (x2h+1/2bar+c); y4=h; y3=23/33h-1/4bar; x3l=x2r;
+penpos4(bar,90);
+penpos3(bar,180);
+penstroke z4e{left}...{down}z3e;
+x5e=w-s; y5=h;
+ur_drop(5,1.1drop_round,x5e-x4,drop_round,bar);
+fill ur_drop_edge5;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar("s",7u#,x_height#,0);
+x6=x7=1/2w; y6=y7=1/2bar;
+S_serif(7,bar,x6-s,border_height);
+y5=11/53h; x5=w-s-1/2(1.4hair);
+y4=29/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2hair;
+x2=.5w; y2=h; z1=z2;
+penpos6(bar,-90);
+penpos5(1.4hair,0);
+penpos4(curve,90);
+penpos3(1.4hair,0);
+penpos2(bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.9..{dir 170}z4e{dir 170}..tension.9..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-1/3bar,.9border_height);
+fill S_serif_edge1;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("t",7u#-s#,asc_height#,0);
+y1=y2=46/53h; y4c=x_height; x4g=s;
+serif(4,stem,-90,jut,1.4jut);
+x1=x4r; x2=x1-bar;
+y5=7/33x_height; x5=x4; x3=x4l; y3=42/53h;
+penpos5(stem,180); numeric theta[];
+theta1=angle(z3-z2);
+fill z5l--reverse serif_edge4--z5r--cycle;
+fill z4r--z1{up}..{dir theta1}z2--z3--z4l--cycle;
+y6=1/4bar; x6=x4r+.7jut; x7=w-s-1/2bar; y7=13/53h;
+penpos6(vair,270); penpos7(hair,360);
+penstroke z5e{down}..{right}z6e{right}..{up}z7e;
+fill z7r..z7l..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar("u",round (10u#-1.5c#),x_height#,0);
+w:=w+1;
+x2h=w-s; y1c=h; y2c=0; x1=x2;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,0,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6g=s; y6c=h;
+serif(6,stem,-90,jut,0);
+x5=x6; y5=10/33h;
+penpos5(stem,180);
+fill serif_edge6--z5l--z5r--cycle;
+x4=x6+1/2stem+jut; y4=0; y3=y5+1/4bar; x3l=x2l;
+penpos4(vair,270);
+penpos3(bar,360);
+penstroke z5e{down}..{right}z4e{right}..z3e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar("v",10u#-1.5c#,x_height#,0);
+x1l=jut+s;
+x3r=w-s-jut;
+y1l=y3r=h-bar; x4=.5w-1/2bar; x5=.5w+1/2bar;
+y4=y5=1/2bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,bar,theta2,1.3jut,jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("w",13u#,x_height#,0);
+x9l=.5w-.3stem;
+x7r=w-s-jut;
+y9l=y7r=y1l=h-bar; x5=x9l+.5(x7r-x9l)-1/2bar; x6=x9l+.5(x7r-x9l)+1/2bar;
+y5=y6=y2=y3=1/2bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,stem,theta1,jut,jut);
+A_serif(7,bar,theta2,1.1jut,jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+jut;
+serif(1,stem,theta1,jut,jut);
+z2=z1l+whatever*dir theta1; x3=x2+bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("x",9u#+c#,x_height#,0);
+y3=y4=bar; x3=w-s-jut-1/2stem; x4=s+jut+1/2bar;
+y1=y2=h-bar; x1=s+jut+1/2stem+c; x2=w-s-1.25c-jut-1/2bar;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,stem,theta1-180,jut,jut);
+A_serif(2,1.2bar,theta2-180,jut,jut);
+serif(3,stem,theta1,jut,jut);
+A_serif(4,1.2bar,theta2,jut,1.3jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("y",9u#+s#,x_height#,desc_depth#);
+x1l=s+jut; y1l=h-bar;
+x3r=w-s-.8jut; y3r=h-bar;
+x4=33/60w; y4=-2/5d;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,1.2bar,theta2,1.2jut,.8jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=-d; x6=x4-1.1stem; z7l=z2;
+penpos7(1.2bar,theta2+90);
+penpos5(1.2bar,theta2+90);
+penpos6(1.2bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,stem,1.5u,drop_round,1.2bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("z",7u#+c#,x_height#,0);
+x6=s+1/2bar; y6=y7=y8=1/2bar;
+x8e=w-s; x7=x8;
+T_serif(8,bar,.8border_height,1);
+penpos6(bar,90);
+penpos7(bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-.5c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4bar;
+x4r=w-s-1/4bar; y4=h-bar;
+penpos4(stem,0);
+penpos5(stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2bar;
+x3=w-s-1/2bar; x1e=s+c;
+T_serif(1,bar,.8border_height,0);
+x2=x1;
+penpos3(bar,90);
+penpos2(bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(hex"30",9u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.08h-c; y4=y6=0.92h+c; x2=x4=x3+9/16(x5-x3)-.3c; x6=x8=x5+7/16(x7-x5)+.3c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"31",6u#+3/2c#,cap_height#,0);
+y1c=0; x1h=w-s;
+serif(1,cap_stem,90,cap_jut,cap_jut);
+x6=x1f; y5=y6=h; x5=x1; x2=x1a; y2=42/53h;
+penpos4(1.1cap_bar,-30);
+penpos3(1.1cap_bar,-30);
+x4l=s; y4=30/53h; numeric theta[]; theta1=angle(z5-z4);
+z3l=z5; penstroke z3e--z4e; fill z4l{down}..{dir 60}z4r--cycle;
+fill serif_edge1--z6{dir 110}..{dir 250}z5--z2--cycle;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"32",9u#,cap_height#,0);
+z4=(9/33w,14/53h); z5=(s+11/20cap_bar,0);
+z3=(w-s-.5c-7/16cap_curve,40/53h); z2=(15/33w,h);
+penpos2(cap_bar,90);
+penpos3(7/8cap_curve,0);
+penpos4(1.1cap_bar,-45);
+penpos5(1.1cap_bar,0);
+x6=x5r; y6=y7=7/16cap_stem; y8=1/2cap_bar;
+x8e=w-s; x7=x8e;
+T_serif(8,cap_bar,3/5border_height,1);
+penpos6(7/8cap_stem,90);
+penpos7(7/8cap_stem,90);
+penstroke z6e--z7e; %fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+unfill z11{down}..z9--z10--cycle;
+penstroke z5e{up}..z4e..{up}z3e{up}..{left}z2e;
+z1=z2; ul_drop(1,cap_drop_round,15/33w-3c,1.3cap_drop_round,slab);
+fill ul_drop_edge1;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"33",9u#,cap_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height+c;
+x4=x6-3/2cap_stem; x5=x4-1.7u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.48w; y2=h; x3=x6-.2cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_stem,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..{down}z3e{down}..{left}z44e;
+penstroke z5e--z4e{right}..tension.9..{down}z6e{down}..tension.9..{left}z7e;
+fill z5r..z5l..cycle;
+ul_drop(1,.95cap_drop_round,17/39w-s,cap_drop_round,slab);
+fill ul_drop_edge1;
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.3cap_drop_round,slab);
+fill dl_drop_edge8;
+penlabels(1,2,3,4,5,6,7,8,44);
+endchar;
+
+beginchar(hex"34",9u#+c#,cap_height#,0);
+y1=y2=33/53h; y4c=0; x4h=w-s;
+serif(4,7/8cap_stem,90,cap_jut,cap_jut);
+x1=x4r; x2=x1-bar;
+x3=x4l; y3=28/53h;
+numeric theta[]; theta1=angle(z2-z3);
+fill z3{dir theta1}--z2{dir theta1}..{down}z1--reverse serif_edge4--z3&cycle;
+y5=y6=15/53h; x5=x4e; x6=s+cap_bar;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e; fill z5r..z5l..cycle;
+y7=y6l; x7l=x6; z8=(6/36w, 21/53h);
+z9=(2/3w,h);
+penpos7(cap_bar,180); penpos8(cap_bar,150);
+penpos9(cap_stem,180);
+penstroke z7e{up}..z8e..{dir 70}z9e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"35",9u#,cap_height#,0);
+x7=x4=18/39w; y7=0; y5=cap_bar_height+c; y4=y5+s;
+x8e=s; y8=0; x5=x8d;
+dl_drop(8,cap_drop_round,18/39w-s,1.3cap_drop_round,slab);
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z5e..z4e{right}..tension.85..{down}z6e{down}..tension.85..{left}z7e;
+fill z5r..z5l..cycle;
+fill dl_drop_edge8;
+z3=z5; x2=x3; y2=h;
+penpos3(cap_bar,0); penpos2(cap_bar,0);
+penstroke z3e--z2e; fill z2l..tension 1.7..z2r..tension 1.7..cycle;
+y1r=h; x1=x2r; x13=x6; y13=h; 2(x12-x1)=x13-x12; y12=h-.6cap_stem;
+penpos1(7/8cap_stem,90); penpos13(1.1cap_bar,90); penpos12(3/4cap_stem,90);
+penstroke z1e..z12e..z13e; fill z13r..tension 1.7..z13l..tension 1.7..cycle;
+penlabels(1,2,3,4,5,6,7,8,12,13);
+endchar;
+
+beginchar(hex"36",9u#+c#,cap_height#,0);
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=x9=.45w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.1h-c; y4=0.9h+c; y6=0.92h+c; x8=x6=x7+15/32(x5-x7); x4=x10=x5+10/16(x3-x5); x2=x4-1/2c;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.08h-c; y11=y7;
+x11l=x3l+.2c; y10=y8; z12 = z1;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e{right}..z10e..{up}z11e;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+z13 = (.5w,.5h);
+currentpicture := currentpicture rotatedaround(z13,180);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"37",9u#-c#,cap_height#,0);
+x4=w-s-1/2cap_bar; y4=h-1/2cap_bar;z12 = z1;
+penpos4(cap_bar,0);
+y3=y2=h-7/16cap_stem; y1=h-7/8cap_stem+1/2cap_bar;
+x3=x4l; x1e=s;
+T_serif(1,cap_bar,3/5border_height,0);
+x2=x1e;
+penpos3(7/8cap_stem,90);
+penpos2(7/8cap_stem,90);
+penstroke z2e--z3e;
+fill T_edge1; z44=(x4,h); fill z4r{up}..{left}z44--z3r--z4l--cycle;
+x10=s+c; x11=s; y10=y11=h;
+unfill z1d{up}..z10--z11--cycle;
+unfill z1d{up}..z10--z11--cycle;
+x5r=x3; y5=h-7/8cap_stem;
+x6=14/30w; y6=1/3cap_curve;
+penpos5(cap_bar,0); penpos6(cap_curve,0);
+penstroke z4e{dir -105}..z5e..{dir -95}z6e; fill z6l..z6r..cycle;
+penlabels(1,2,3,4,5,6,10,11,12);
+endchar;
+
+beginchar(hex"38",10u#-s#,cap_height#,0);
+x6=x4=x2=x8=1/2w; y6=0; y2=h;
+y5=11/53h; y7=13/53h; x5=w-s-1/2(1.9hair);
+y4=y8=28/53h; y3=42/53h; y1=40/53h; x3=2s+1/2(1.9cap_bar);
+x1=w-2s-1/2(1.9cap_bar); x7=w-x5;
+penpos6(cap_bar,-90);
+penpos5(2.5hair,0);
+penpos4(cap_curve,90);
+penpos3(2.5hair,0);
+penpos2(cap_bar,-90);
+penpos1(2.5hair,-180);
+penpos7(2.5hair,-180);
+penpos8(cap_bar,-270);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"39",9u#+c#,cap_height#,0);
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=x9=.45w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.1h-c; y4=0.9h+c; y6=0.92h+c; x8=x6=x7+15/32(x5-x7); x4=x10=x5+10/16(x3-x5); x2=x4-1/2c;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.08h-c; y11=y7;
+x11l=x3l+.2c; y10=y8; z12 = z1;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e{right}..z10e..{up}z11e;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+beginchar(oct"56",cap_stem#+2s#,cap_stem#,0);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+endchar;
+
+beginchar(oct"54",cap_stem#+2s#+c#,cap_stem#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"60",cap_stem#+2s#+c#,asc_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(oct"41", cap_stem#+2s#,cap_height#,0); "Exclamation mark";
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+ x3=.5w-1/2cap_bar; x4=.5w+1/2cap_bar; y3=y4=3/2cap_stem;
+ x6=x1; x5=x2; y5=y6=h;
+ fill z6--z3..z4--z5{up}..z6&cycle;
+endchar;
+
+beginchar(hex"22",2cap_stem#+3s#+2c#,cap_height#,0);
+ z1=(s,h-1/2cap_stem); z2=(x1+cap_stem+c,h-1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-cap_stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"5C",2cap_stem#+3s#+2c#,cap_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(x1+cap_stem+c,1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"7b",10u#-1.5c#,x_height#,0); "En dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"3D",10u#+1.5c#,x_height#,0);
+ z1=(s+1/2bar,bar_height-3c); z2=(w-s-1/2bar,bar_height-3c);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+3c); z4=(w-s-1/2bar,bar_height+3c);
+ penpos3(bar,90); penpos4(bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"23",13u#,asc_height#,body_depth#);
+ z1=(s+1/2bar,bar_height-5c); z2=(w-s-1/2bar,bar_height-5c);
+ penpos1(1.5bar,90); penpos2(1.5bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+5c); z4=(w-s-1/2bar,bar_height+5c);
+ penpos3(1.5bar,90); penpos4(1.5bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ z5=(.5w-5c,bar_height); z6=(.5w+5c,bar_height);
+ z7=z5+whatever*dir 76; y7=h; z8=whatever[z5,z7]; y8=-d;
+ penpos7(1.5bar,0); penpos8(1.5bar,0);
+ fill z7l{up}..{down}z7r--z8r{down}..{up}z8l--z7l&cycle;
+ z9=z6+whatever*dir 76; y9=h; z10=whatever[z6,z9]; y10=-d;
+ penpos9(1.5bar,0); penpos10(1.5bar,0);
+ fill z9l{up}..{down}z9r--z10r{down}..{up}z10l--z9l&cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"7c",14u#,x_height#,0); "Em dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(oct"55",2cap_jut#+cap_stem#+2s#,x_height#,0); "hyphen";
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"5F",1.1stem#+2s#,x_height#+2.1stem#,0);
+ z1=(.5w,h); z2=(.5w,h-1.1stem);
+ fill z1..z2..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7E",7u#,body_height#,0);
+ pickup pencircle xscaled .6pt yscaled .2pt rotated 55;
+ z4=(w-s-c,h-s); x1=s+c; y1=y4-1/2cap_stem;
+ y2-y1=y4-y3=3(y4-y1); z2-z1=z4-z3=whatever * dir 55;
+ draw z1..controls z2 and z3..z4;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"3C",7u#-2c#,x_height#,0); "looks like <<";
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(.9stem,0);
+ penpos3(.9stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.54stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.7stem,0);
+ penpos7(.7stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3E",7u#-2c#,x_height#,0);
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(.9stem,0);
+ penpos3(.9stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.54stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.7stem,0);
+ penpos7(.7stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ z10=(.5w,.5h);
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ currentpicture := currentpicture rotatedaround(z10,180);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3B",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+3/2c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ z8=(s,h-1/2cap_stem); z9=(w-s,h-1/2cap_stem);
+ fill z8..z9..cycle;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(hex"3A",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ fill z1..z2..cycle;
+ penlabels(1,2,3,4);
+ z3=(s,1/2cap_stem); z4=(w-s,1/2cap_stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2B",2cap_jut#+cap_stem#+2s#,x_height#,0);
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ x3=x4=.5w; y3=y2+1/2(x2-x1); y4=y2-1/2(x2-x1);
+ penpos3(1.8bar,0); penpos4(1.8bar,0);
+ penstroke z3e--z4e;
+ fill z3r..z3l..cycle; fill z4r..z4l..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2F",2s#+bar#,body_height#,body_depth#);
+ z1=(.5w,h-.5bar); z2=(.5w,-d+.5bar);
+ %pickup pencircle xscaled bar yscaled bar;
+ penpos1(bar,0); penpos2(bar,0);
+ penstroke z1e--z2e; fill z1r..z1l..cycle;
+ fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"27",cap_stem#+2s#+c#,x_height#+2.1stem#,0);
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ z6=(.5w-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"28",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"29",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"86",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"87",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"5B",2s#+3cap_bar#,body_height#,body_depth#);
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x2,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z1r..z1l..cycle; fill z6r..z6l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"5D",2s#+3cap_bar#,body_height#,body_depth#);
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x1,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z2r..z2l..cycle; fill z5r..z5l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"B9",16u#,cap_height#,0);
+ x1=x2=cap_jut+1/2cap_bar+s+cap_stem;
+ x3=w-x1-1/2cap_stem; y1c=h; y4=y5=0;
+ x4=x3r; x5=x3l; y2=12/53h; y3=h-y2;
+ x8=x2-stem; y8=0; z9=z8;
+ dl_drop(9,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill dl_drop_edge9; penpos8(bar,-90);
+ serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+ penpos2(bar,0); penpos3(bar,0);
+ penstroke z2e{down}..{left}z8e;
+ fill z2l--z2r--reverse serif_edge1--cycle;
+ numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+ theta1=angle(z5-z7); x10=x3+stem; y10=h; z11=z10;
+ penpos10(bar,-90); penstroke z3e{up}..{right}z10e;
+ ur_drop(11,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill ur_drop_edge11;
+ z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+ fill z6--z1h--z7--z5{down}..{up}z4--z3r--z3l--cycle;
+ unfill z1b--z1l--z1a--cycle;
+ y12=y13=2cap_bar; x12=x4+2cap_bar+s; x13=w-2s;
+ penpos12(.4stem,90); penpos13(.4stem,90);
+ penstroke z12e--z13e; y16=y11d-4cap_bar;
+ x13-x14=x14-x12; x16=x14; y14=y13+4cap_bar;
+ x17=w-s-1/4stem; x17-x16=x16-x15; y16-y15=y15-y14;
+ y17=y15; penpos17(.7stem,0); penpos16(bar,90);
+ penpos15(.7stem,180); penpos14(bar,270);
+ penstroke z17e{up}..{left}z16e{left}..{down}z15e{down}..{right}z14e{right}..{up}z17e;
+ fill z12l..tension1.2..z12r..tension1.2..cycle;
+ fill z13l..tension1.2..z13r..tension1.2..cycle;
+ penlabels(range 1 thru 17);
+endchar;
+
+beginchar(hex"24",9u#-.7s#,body_height#,body_height#-cap_height#);
+ x6=x7=1/2w-c; y6=y7=0;
+ dl_drop(7,cap_drop_round,x6-s,1.5drop_round,cap_bar);
+ y5=11/53cap_height; x5=w-s-1/2(1.9hair);
+ y4=1/2cap_height; x4=19/38w; y3=42/53cap_height; x3=s+1/2(1.9cap_bar);
+ x2=.5w+c; y2=cap_height; z1=z2;
+ penpos6(cap_bar,-90); penpos5(1.9hair,0);
+ penpos4(cap_curve,80); penpos3(1.9hair,0);
+ penpos2(cap_bar,-90);
+ penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e;
+ fill dl_drop_edge7;
+ ur_drop(1,cap_drop_round,w-s-x2,1.5drop_round,cap_bar);
+ fill ur_drop_edge1;
+ z8=(.5w,h); z9=(.5w,-d);
+ penpos8(cap_bar,0); penpos9(cap_bar,0);
+ penstroke z8e--z9e;
+ fill z9r..z9l..cycle; fill z8r..z8l..cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"25",12u#,asc_height#,0);
+penpos1(vair,90); penpos2(.5curve,0);
+penpos3(vair,-90); penpos4(.5curve,-180);
+y1=.55h; y3=h; y3-y4=y4-y1; y2=y4; x2=1/4curve+s; x4=2curve+s;
+x4-x1=x1-x2; x3=x1;
+penstroke z1e{left}..tension.9..{up}z2e{up}..tension1.2..{right}z3e..tension.9..{down}z4e{down}..tension1.2..{left}z1e..cycle;
+penpos5(vair,90); penpos6(.5curve,0);
+penpos7(vair,-90); penpos8(.5curve,-180);
+y5=0; y7=.45h; y7-y8=y8-y5; y6=y8; x8=w-1/4curve-s; x6=w-2curve-s;
+x8-x5=x5-x6; x7=x5;
+penstroke z5e{left}..tension.9..{up}z6e{up}..tension1.2..{right}z7e..tension.9..{down}z8e{down}..tension1.2..{left}z5e..cycle;
+x9l=x7; y9=h; x10r=x1; y10=0;
+penpos9(1.2bar,0); penpos10(1.2bar,0);
+penstroke z9e--z10e;
+penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"26",14u#,cap_height#,0);
+x4=x8=x3+.5curve; y6=0; y2=h; x2=x3+cap_curve;
+y7=13/53h; y5=11/53h; x5=x7+3cap_curve; x6=x7+1.8cap_curve;
+y4=y8=30/53h; y1=44/53h; y3=42/53h; x3=3s+curve;
+x1=x3+2cap_curve; x7=s+1/2cap_curve;
+x10=w-s; y10=9/53h; x10-x9=x9-x5; y9=1/5cap_curve;
+th:=angle(z4-z5)+5; th1:=th-11; x11h=w-s-c; y11h=y1-4s;
+A_serif(11,cap_bar,-110,cap_jut,cap_jut); z12l=z11a;
+penpos6(cap_bar,-90); penpos5(cap_stem,45);
+penpos4(cap_stem,45); penpos3(2.5hair,0);
+penpos2(cap_bar,-90); penpos1(2hair,-180);
+penpos7(cap_curve,-180); penpos8(cap_bar,-250);
+penpos9(.5cap_curve,70); penpos10(cap_bar,150);
+penpos12(cap_bar,0);
+penstroke z10e..z9e..z5e{dir th}..{dir th1}z4e..tension.9..z3e..tension1..z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e{dir 8}..{dir 70}z12e;
+fill z12l--z12r..reverse A_serif_edge11--cycle;
+fill z10l..tension1.2..z10r..tension1.2..cycle;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"40",14u#,x_height#+2curve#,2curve#);
+a_width:=9u+c-2s;
+x1=2s+a_width-s-3/4stem+1.5curve; y1=x_height; y2=7/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=3s+a_width+1.5curve; y4=15/33x_height;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.2vair,270); penpos4(bar,360);
+x5=x1-3/2stem; y5=x_height; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c+1.2curve; y6=.54x_height; y8=.46x_height; z8l=whatever[z1r,z2r];
+x13=x5; y13=h-1/2bar; x14=s+1/2bar; y14=y6; y15=-d+1/2bar; x15=x7;
+x16=x4; y16=-d+3bar; penpos7(vair,270); penpos16(bar,270);
+penpos13(bar,90); penpos14(bar,180); penpos15(bar,270);
+penpos8(2bar,0); penpos5(vair,90); penpos6(curve,180);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 80}z4e..z13e{left}..z14e..{right}z15e..z16e;
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=x_height-c; z10=(x1r+c,x_height); z11=(x1l-c,x_height);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+fill z16r..z16l..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar(hex"12",1.5cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=s+.45cap_stem*cosd 45;
+x2=w-s+cap_bar*cosd 45; z2=z1+whatever*dir -45;
+penpos1(.8cap_stem,45); penpos2(cap_bar,45);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"13",1.5cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=w-s-.45cap_stem*cosd 45;
+x2=s-cap_bar*cosd 45; z2=z1+whatever*dir -135;
+penpos1(.8cap_stem,135); penpos2(cap_bar,135);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"3F",7u#+s#,cap_height#,0);
+ x1=s+4/5cap_stem; y1=1/2cap_stem;
+ penpos1(cap_stem,0);
+ fill z1r..z1l..cycle;
+ y2=cap_stem+cap_bar; x2=x1;
+ z3l=z2l+whatever*dir 96; y3l=25/53h;
+ penpos2(cap_bar,0); penpos3(cap_bar,0);
+ penstroke z2e--z3e;
+ z4l=z3l; penpos4(cap_bar,0);
+ y5=y4-2bar; x5=x4+3cap_bar; penpos7(cap_bar,-90);
+ x6=w-s-1/2cap_curve; y6=37/51h; x7=12/31w; y7=h;
+ penpos5(cap_bar,90); penpos6(cap_curve,180); z8=z7;
+ penstroke z4e{dir -69}..z5e{dir 10}..tension1..{up}z6e{up}..tension.9..{left}z7e;
+ ul_drop(8,cap_drop_round,x7-s,cap_curve,cap_bar);
+ fill ul_drop_edge8;.
+ fill z3r..tension1.2..z3l..tension1.2..cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"10",2jut#+stem#+2s#,x_height#,0);
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"11",5u#+c#,x_height#,desc_depth#);
+x1h=w-s; y1c=x_height; y2=0; x2=x1;
+serif(1,stem,-90,1.5jut,0);
+penpos2(stem,0);
+fill z2l--z2r--reverse serif_edge1--cycle;
+y5=-1/4desc_depth; x5r=x2r;
+y6=-d+1/2bar; x6=x2l-.3stem;
+penpos5(.97stem,0);
+penpos6(bar,-90);
+penstroke z2e--z5e{down}..{left}z6e;
+x7e=s; y7=-d+1/2bar;
+dl_drop(7,drop_round,x6-x7e,drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(hex"2A",3cap_stem#+3s#,body_height#,0);
+ x1=x2=x3=x4=.5w; y1=h-1/2stem; y2=y1-cap_stem; y3=y2-bar; y4=y3-bar;
+ penpos1(stem,0); penpos2(cap_bar,0); penpos3(2cap_bar,0);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle;
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,60);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,120);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,180);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,240);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,300);
+ penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"0B",round (4jut#+2stem#+3s#),asc_height#,0);
+w:=w+1;
+numeric dist; dist := 2jut+2stem-3c;
+x1g=x2g=s+dist; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x1; y3=x_height; x4r=x1l-.1stem; y4=x_height+1/2(asc_height-x_height);
+x5l=x4l-.05stem; y5=y4+1.5bar; x6=round (x1r+.2stem); y6=h-1/2bar;
+penpos3(stem,180);
+penpos4(.75curve,180);
+penpos5(.6curve,180);
+penpos6(bar,90);
+penstroke z3e{dir 95}...{up}z4e..z5e..{right}z6e;
+y6=y7; x7e=w-s;
+ur_drop(7,drop_round,x7e-x6,drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+x11g=x12g=s; y11c=x_height; y12c=0;
+serif(11,stem,-90,jut,jut);
+serif(12,stem,90,jut,jut);
+fill serif_edge12--reverse serif_edge11--cycle;
+x13=x11; y13=x_height; x14l=x13l; y14=x_height+1/2(asc_height-x_height);
+x15l=x14l; y15=y14+1.5bar; x16=x11r+.8stem; y16=h-1/2bar;
+x17r=x5l; y17=y5;
+penpos13(stem,180);
+penpos14(.75curve,180);
+penpos15(.6curve,180);
+penpos16(bar,90);
+penpos17(bar,0);
+penstroke z13e{dir 95}...{up}z14e..z15e..{right}z16e{right}..{down}z17e;
+fill z11d--z1c--z1b--z11e--cycle;
+penlabels(1,2,3,4,5,6,7,11,12,13,14,15,16,17);
+endchar;
+
+beginchar(hex"5E",6u#,body_height#,0);
+ x1=s+.45cap_bar*cosd 45; x2=w/2; y2=h-bar;
+ z1=z2+whatever*dir -135; x3=w-x1; z3=z2+whatever*dir -45;
+ penpos1(bar,135); penpos2(2bar,90); penpos3(bar,45);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"16",6u#,body_height#,0);
+ x1=s; x2=w-x1; y1=y2=h-4bar;
+ penpos1(.8bar,90); penpos2(.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7F",2stem#+4s#,x_height#+2.1stem#,0);
+ z1=(s+.5stem,h); z2=(s+.5stem,h-stem);
+ fill z1..z2..cycle;
+ z3=(w-s-.5stem,h); z4=(w-s-.5stem,h-stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+ligtable CYR_A: "A":
+ CYR_O kern -k#,
+ "O" kern -k#,
+ CYR_ES kern -k#,
+ "C" kern -k#,
+ CYR_TE kern -k#,
+ CYR_U kern -kk#,
+ CYR_EF kern -k#,
+ CYR_CHE kern -kkk#,
+ CYR_HARD_SIGN kern -k#,
+ "W" kern -kkk#,
+ "V" kern -kkk#,
+ "Y" kern -kkk#,
+ "T" kern -k#,
+ "w" kern -kk#,
+ "v" kern -kk#,
+ %CYR_o kern -k#,
+ %CYR_es kern -k#,
+ CYR_che kern -kk#;
+ %CYR_ie kern -k#,
+ %CYR_ye kern -k#;
+
+ligtable CYR_GHE: CYR_TE: "T":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_DE kern -k#,
+ CYR_EL kern -kk#,
+ CYR_el kern -k#,
+ CYR_o kern -k#,
+ "o" kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#;
+
+ligtable CYR_O: CYR_E: CYR_YU:
+ CYR_U kern -k#,
+ "X" kern -k#,
+ CYR_HA kern -k#;
+
+ligtable CYR_ER: "P":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_EL kern -k#,
+ CYR_el kern -k#;
+
+ligtable CYR_U:
+ CYR_A kern -kkk#,
+ "A" kern -kkk#,
+ CYR_O kern -k#,
+ "O" kern -k#,
+ CYR_ES kern -k#,
+ "C" kern -k#,
+ CYR_EL kern -kk#,
+ CYR_el kern -kkk#,
+ CYR_EF kern -k#;
+
+ligtable CYR_HA: "X":
+ "O" kern -k#,
+ CYR_O kern -k#,
+ "Q" kern -k#,
+ "C" kern -k#,
+ CYR_ES kern -k#,
+ "G" kern -k#;
+
+ligtable CYR_ghe: CYR_te:
+ CYR_de kern -k#,
+ CYR_el kern -k#;
+
+ligtable CYR_o: CYR_er: CYR_e: CYR_yu: CYR_ye:
+ "x" kern -k#,
+ CYR_ha kern -k#;
+
+ligtable CYR_u: "y":
+ CYR_de kern -k#,
+ CYR_el kern -k#,
+ CYR_ie kern -k#,
+ "e" kern -k#,
+ CYR_es kern -k#,
+ "c" kern -k#,
+ CYR_ye kern -k#,
+ CYR_ef kern -k#;
+
+ligtable CYR_ha: "x":
+ CYR_ie kern -k#,
+ "d" kern -k#,
+ "e" kern -k#,
+ "o" kern -k#,
+ "q" kern -k#,
+ CYR_o kern -k#;
+
+ligtable "D": "O": "Q":
+ "X" kern -k#;
+
+ligtable "L":
+ "T" kern -kk#,
+ CYR_TE kern -kk#,
+ "Y" kern -kk#;
+
+ligtable "V": "W":
+ "A" kern -kkk#,
+ CYR_A kern -kkk#,
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ CYR_EL kern -k#,
+ CYR_el kern -kk#,
+ "d" kern -k#;
+
+ligtable "Y":
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "d" kern -k#,
+ "A" kern -kk#,
+ CYR_A kern -kk#;
+
+ligtable "a": CYR_a:
+ "V" kern -kk#,
+ "W" kern -kk#,
+ "T" kern -k#,
+ CYR_TE kern -k#,
+ "y" kern -k#,
+ CYR_u kern -k#,
+ "v" kern -k#,
+ "u" kern -k#,
+ CYR_che kern -kk#,
+ "Y" kern -kk#;
+
+ligtable "e": CYR_ie:
+ CYR_ha kern -k#,
+ "v" kern -k#,
+ "w" kern -k#,
+ "V" kern -k#,
+ "W" kern -k#;
+
+ligtable "f":
+ "f" =: hex"0B";
+
+ligtable "k": "l":
+ CYR_o kern -k#,
+ "o" kern -k#;
+
+ligtable "m": "n":
+ "y" kern -k#,
+ CYR_u kern -k#,
+ CYR_o kern -k#,
+ "o" kern -k#;
+
+ligtable "o": "b": "p":
+ "e" kern k#,
+ CYR_ie kern k#,
+ "o" kern k#,
+ CYR_o kern k#,
+ "v" kern -k#,
+ "w" kern -k#,
+ "V" kern -k#,
+ "W" kern -k#,
+ "x" kern -k#,
+ CYR_ha kern -k#, 1:: "!" kern kk#;
+
+ligtable "v": "w":
+ "A" kern -kk#,
+ CYR_A kern -kk#,
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ "d" kern -k#;
+
+ligtable hex"37":
+ CYR_A kern -kk#,
+ "A" kern -kk#;
+ligtable oct"55":
+ oct"55" =: hex"7b";
+ligtable hex"7b":
+ oct"55" =: hex"7c";
+end
diff --git a/fonts/obnov/obnb12.mf b/fonts/obnov/obnb12.mf
new file mode 100644
index 0000000000..dbaba0fc24
--- /dev/null
+++ b/fonts/obnov/obnb12.mf
@@ -0,0 +1,3491 @@
+%written by Basil Solomykov, Russia
+%(C) Copyright 2011 LPPL (LaTeX Project Public License)
+%Font Ordinary New (Obyknovennaya novaya), Bold
+
+design_size := 12pt#;
+o# := 1.3*.54pt#;
+u# := 1.1*22/35pt#;
+bar# := 12/36pt#;
+slab# := 12/36pt#;
+cap_bar# := 12/36pt#;
+vair# := 12/36pt#;
+hair# := 12/36pt#;
+jut# := 24/36pt#;
+cap_jut# := 31.2/36pt#;
+stem# := 1.3*33/36pt#;
+curve# := 1.3*37.2/36pt#;
+cap_stem# := 1.3*43.2/36pt#;
+cap_curve# := 1.3*44.64/36pt#;
+s# := 0.5pt#;
+c# := .25pt#;
+
+input obn_lcyw_code.mf;
+font_identifier "OBNB";
+mode_setup;
+clear_pen_memory;
+
+font_size design_size*pt#;
+asc_height# := 24/36*design_size*pt#;
+cap_height# := 24/36*design_size*pt#;
+body_height# := 27/36*design_size*pt#;
+x_height# := 15.4/36*design_size*pt#;
+desc_depth# := 8/36*design_size*pt#;
+body_depth# := 9/36*design_size*pt#;
+comma_depth# := 5/36*design_size*pt#;
+x_depth# := 4/5comma_depth#;
+bar_height# := .52x_height#;
+cap_bar_height# := .52cap_height#;
+cap_bar2_height# := .45cap_height#;
+border_height# := comma_depth#;
+cap_drop_round# := 4.2*slab#;
+drop_round# := 6.8/8cap_drop_round#;
+A_bracket# := 1.4pt#;
+bracket# := pt#;
+
+font_x_height x_height#;
+font_normal_space 6u#;
+font_normal_stretch 4u#;
+font_normal_shrink 2u#;
+font_quad 16u#;
+font_extra_space 6u#;
+
+k# := .8u#;
+kk# := 1.5u#;
+kkk# := 3u#;
+
+serif_darkness := 1/30;
+define_pixels(bracket,cap_o_width,sss_width,css_width);
+define_pixels(c,s,cap_bar_height,cap_bar2_height);
+define_pixels(border_height,A_bracket,cap_drop_round,x_depth,drop_round);
+define_whole_blacker_pixels(stem,cap_stem,curve,cap_curve,bar,slab,cap_bar,vair,hair);
+define_whole_pixels(asc_height,cap_height,x_height,u,desc_depth,comma_depth,bar_height,body_height,body_depth,u,o,cap_jut,jut);
+%define_corrected_pixels();
+lowres_fix(stem,curve) 1.2;
+lowres_fix(cap_stem,cap_curve) 1.2;
+if jut=cap_jut: jut:=jut-1; fi
+
+def serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g if left_jut=0: -1/2slab fi +1/2slab; x$d=x$e=x$h if right_jut=0: +1/2slab fi-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def serif_edge suffix $ =
+(serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse serif_bracket($f,$r,$e)) enddef;
+
+def serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...serif_darkness[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def T_serif(suffix $)(expr slab, bord_height, direction)= %Direction: 0-left, 1-right;
+penpos$(slab,if direction=1: - fi 90);
+x$=x$a=x$g; y$g-y$=y$-y$a=1/2slab;
+x$b=x$a + if direction=0: - fi .882bord_height; y$b=y$d=y$c+1/2slab;
+x$c=x$b + if direction=0: - fi 1/2slab; y$c=y$a-bord_height;
+x$d=x$e=x$b + if direction=0: - fi slab;
+y$e=y$g-1/2slab; y$f=y$g; x$f=x$c;
+labels($a,$b,$c,$d,$e,$f,$g) enddef;
+
+def T_edge suffix $ =
+(z$a..{down}z$b..z$c..z$d--z$e{up}..z$f--z$g--cycle) enddef;
+
+def A_serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(A_bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g+1/2slab; x$d=x$e=x$h-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def A_serif_edge suffix $ =
+(A_serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse A_serif_bracket($f,$r,$e)) enddef;
+
+def A_serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...0.6[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def ur_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a= 1/2slab;
+x$e=x$a + drop_length; y$e=y$f- drop_height;
+x$d=x$e - 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e - drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); if y$b > y$a: y$b := y$a; fi
+x$b=round (x$d - 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ur_drop_edge suffix $ =
+(z$f{right}..tension.9..{down}z$e{down}..{left}z$d{left}..{up}z$c{up}..z$b...{left}z$a--cycle) enddef;
+
+def ul_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$f- drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); if y$b > y$a: y$b := y$a; fi
+x$b=round (x$d + 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ul_drop_edge suffix $ =
+(z$f{left}..tension.9..{down}z$e{down}..{right}z$d{right}..{up}z$c{up}..z$b...{right}z$a--cycle) enddef;
+
+def dl_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, -90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$a + drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e + 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d - drop_round); if y$b < y$f: y$b := y$f; fi
+x$b=x$d + 1/90drop_round;
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def dl_drop_edge suffix $ =
+(z$a{left}..tension.9..{up}z$e{up}..{right}z$d{right}..{down}z$c..{dir 250}z$b{dir -80}..{right}z$f--cycle) enddef;
+
+def S_serif (suffix $)(expr serif_slab, serif_length, serif_height)=
+%penpos$(serif_slab,90);
+x$a=x$i=x$; y$i=y$+1/2serif_slab; y$a=y$-1/2serif_slab;
+x$f=x$e=x$a+serif_length; y$f=y$g-1/2serif_slab; y$e=y$c=y$d+1/2serif_slab;
+x$g=x$f-1/2serif_slab; y$g=y$i-1/2serif_slab;
+y$h=y$f-1/4serif_slab; x$h=x$g-serif_slab;
+x$c=x$e-serif_slab; x$d=x$e-1/2serif_slab; y$d=y$g-serif_height;
+x$b=x$h-6/18serif_length; y$b=y$h-1/2slab;
+labels ($a,$b,$c,$d,$e,$f,$g,$h,$i) enddef;
+
+def S_serif_edge suffix $ =
+(z$a{right}...z$b..{dir -80}z$c..z$d..z$e--z$f{up}..z$g{left}..z$h{dir 150}..{left}z$i--cycle) enddef;
+
+beginchar(CYR_A,13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar(CYR_BE,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=y5=h-1/2slab;
+y1c=h; y2c=0; x5e=w-s-1/2cap_stem;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h; x4=w-s-1/2cap_stem-border_height;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_VE,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+css_width := x8 - x2r; save css_width;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar(CYR_GHE,9u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; x3=x4+2u;
+y5=y3; x5e=w-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_DE,12u#,cap_height#,comma_depth#);
+x10e=w-s; y10c=-d;
+y4c=h; x4h=w-s-1/2slab;
+x9=x4; y9c=0;
+x3=x8=x9d; y8=y7=1/2cap_bar; y3=y2=h-y8;
+x6e=s; y6=y10; x7=border_height+s;
+y5=y9; x5g=s+.5u; y1=y4; x1=x5+1.5u;
+x2=x1c;
+A_serif(1,1.2cap_bar,-96,10/7cap_jut,cap_jut);
+A_serif(5,1.2cap_bar,81,6/7cap_jut,cap_jut);
+serif(4,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+penpos2(cap_bar,90);
+penpos3(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_bar,90);
+penstroke z7e--z8e; penstroke z2e--z3e;
+fill A_serif_edge5...reverse A_serif_edge1...cycle;
+fill serif_edge9--reverse serif_edge4--cycle;
+T_serif(6,slab,border_height,0);
+T_serif(10,slab,border_height,1);
+fill T_edge6;
+fill T_edge10;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_IE,10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_YE,10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+x12=x13=x2r-.7c; y12=h+1/4cap_stem; y13=y12+cap_stem;
+x14=x15=x12+1.7cap_stem; y14=y12; y15=y13;
+fill z12..z13..cycle; fill z14..z15..cycle;
+penlabels(range 1 thru 15);
+endchar;
+
+beginchar(CYR_ZHE,round (16u#+s#),cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; y7=y4=y10=y11=cap_bar_height; x4=x7-1.5u;
+x10=x8r; x11=x10+1.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+x6=s; y6=0; y4-y5=y5-y6; x4-x5=x5-x6;
+penpos7(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,90);
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z6e{right}..tension.8..{up}z5e{up}..tension.8..{right}z4e--z7e;
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+x3=x5+1/2cap_stem; y2=h; x4-x3=x3-x2; y2-y3=y3-y4;
+penpos3(hair,0);
+penpos2(cap_bar,90);
+penstroke z4e{left}..tension.8..{up}z3e{up}..tension.8..{left}z2e;
+y1=h; x1a=x2; fill z6l..z6r..cycle;
+ul_drop(1,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ul_drop_edge1; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ZE,10u#+.5s#,cap_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height;
+x4=x6-3/2cap_stem; x5=x4-3u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3c,1.4border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.5cap_drop_round,slab);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_I,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-20); penpos6(cap_bar,-20);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar(CYR_SHORT_I,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-20); penpos6(cap_bar,-20);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+x7=.5w; y7=h+cap_bar;
+ur_drop(7,.8cap_drop_round,1/2(x3l-x1r),.8cap_drop_round,1.2cap_bar);
+fill ur_drop_edge7 rotatedaround(z7,180);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_KA,12u#+s#,cap_height#,0);
+x8g=x9g=s; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+y10=y11=cap_bar_height;
+x10=x8r; x11=x10+2.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13; fill z16l..z16r..cycle;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_EL,13u#+1/2s#,cap_height#,0);
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.9cap_drop_round; y3=1.1cap_drop_round;
+dl_drop(1,cap_drop_round,cap_drop_round,.9cap_drop_round,slab);
+fill dl_drop_edge1;
+penpos2(cap_bar,-90);
+penpos3(cap_bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-slab;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,cap_bar,theta1,1.3cap_jut,1.3cap_jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,cap_stem,-90,cap_jut,cap_jut);
+serif(8,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_EM,13u#+s#,cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,.51cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 110; y7l=13/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EN,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_O,11u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.05h; y4=y6=0.95h; x2=x4=x3+8/16(x5-x3); x6=x8=x5+8/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+cap_o_width := x7-x3; save cap_o_width;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_PE,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ER,10u#+s#,cap_height#,0);
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_ES,10u#+s#,cap_height#,0);
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=.05h; y4=0.95h; x2=x4=x3+8/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_TE,round (11u#+s#),cap_height#,0);
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_U,13u#,cap_height#,0);
+x1l=s+cap_jut; y1l=.98h-cap_bar;
+x3r=w-s-.8cap_jut; y3r=.98h-cap_bar;
+x4=33/60w; y4=6/53h;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.2cap_jut,.8cap_jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=0; x6=x4-.9cap_stem; z7l=z2;
+penpos7(cap_bar,theta2+90);
+penpos5(cap_bar,theta2+90);
+penpos6(cap_bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,1.1cap_drop_round,2u, 10/53h, round cap_bar);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EF,round (14u#+s#),cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1=x2=.5w; y2c=0; y1h=h;
+y6=y7=y8=y9=1.3cap_jut; y4=y3=y11=y12=h-1.3cap_jut+1/2slab;
+x3=x7=x2l; x8=x12=x2r; x4=x6=x3-u; x11=x9=x12+u;
+x5=s+1/2cap_curve; x10-x1=x1-x5; y4-y5=y5-y6; y10=y5;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,270);
+penpos7(cap_bar,270);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+penpos10(cap_curve,0);
+penpos11(cap_bar,90);
+penpos12(cap_bar,90);
+penstroke z3e--z4e{left}..tension.8..{down}z5e{down}..tension.8..{right}z6e--z7e;
+penstroke z8e--z9e{right}..tension.8..{up}z10e{up}..tension.8..{left}z11e--z12e;
+penlabels (range 1 thru 12);
+endchar;
+
+beginchar(CYR_HA,12u#+s#,cap_height#,0);
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_TSE,12.5u#+s#,cap_height#,comma_depth#);
+x1=x2=x5=cap_jut+1/2cap_stem+s;
+x3=x4=x6=w-x1-.5u; y5=y6=y2h;
+y1c=y3c=h; y2c=y4c=0; x7e=w-s; y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e;
+T_serif(7,cap_bar,border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_CHE,12u#+s#,cap_height#,0);
+x1=cap_jut+1/2cap_stem+s;
+x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,-90,cap_jut,cap_jut);
+serif(3,cap_stem,90,cap_jut,cap_jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=cap_bar_height-cap_bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-1.5cap_bar;
+penpos6(cap_stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SHA,16u#+s#,cap_height#,0);
+if .5w <> good.x .5w: change_width; fi
+x1=x2=good.x (cap_jut+1/2cap_stem+s);
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=good.x .5w; y5=y1; y6=y2;
+y9b=slab; x9=good.x w-x1;
+x10=x9; y10b=h-slab;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_SHCHA,16.5u#+s#,cap_height#,comma_depth#);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=slab; x9h=w-s-.5u;
+x10=x9; y10b=h-slab;
+x11e=w-s; y11=y9h;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,slab,border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_HARD_SIGN,13.5u#+c#,cap_height#,0);
+x2r=x5-css_width; x1=x2; x8e=s; y8g=h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+x7=x1d; y1c=h; y2c=0;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=round(x3+5u-cap_stem);
+y6=y7=y2h;
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(8,cap_bar,border_height,0);
+fill T_edge8;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YERU,16u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+y3=y4=cap_bar_height; x3=round x2r; x4=x6=round (x3+5u-cap_stem) - 1;
+y4-y5=y5-y6; x5=x2r+css_width; y8b=slab; x8h=w-s;
+y6=y7=y2h; x9=x8; y9b=h-slab;
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(8,cap_stem,90,cap_jut,cap_jut);
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge9--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SOFT_SIGN,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=x3+5u-cap_stem;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y6=y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_E,10u#+.5s#,cap_height#,0);
+x1=16/39w; x5=.5w; y1=0; y5=h;
+y7=.5h; x7=w-1/2cap_curve-s;
+x9e=s; y9=0;
+dl_drop(9,cap_drop_round,16/39w-s,1.3cap_drop_round,slab);
+y8=0.04h; y6=0.96h; x8=x9+7/16(x7-x9); x6=x5+7/16(x7-x5);
+penpos5(cap_bar,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+penpos1(cap_bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+y2=y5; x2=x5-epsilon;
+S_serif(2,slab,x1,1.5border_height);
+x3=x7-1/2cap_stem; y3=y4=cap_bar_height; x4=x2b-x1;
+penpos3(cap_bar,90); penpos4(cap_bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YU,16u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+y3=y7=.5h; x7=w-1/2cap_curve-s; x3=x7-cap_o_width; y9=0; y5=h; x7-x5=x5-x3; x9=x5;
+y10=y8=0.05h; y4=y6=0.95h; x10=x4=x3+8/16(x5-x3); x6=x8=x5+8/16(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3cap_stem; y11=y12=cap_bar_height;
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+
+beginchar(CYR_YA,11u#+s#,cap_height#,0);
+x1=x2=w-cap_jut-1/2cap_stem-s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2l;
+y1c=h; y2c=0; x6=x4=x7-2.5u; x3=x1c;
+y4-y5=y5-y6; x5=x8-1.5c; x9=s; y9=0; y6-y8=y8-y9; x7-x10=3(x10-x6); x10-x8=x8-x9;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos7(cap_bar,270);
+penpos6(cap_bar,270);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90); fill z9l..z9r..cycle;
+penstroke z3e--z4e{left}..tension.9..z5e..tension.9..{right}z6e--z7e;
+penstroke z9e{right}..tension1..{up}z8e{up}..tension1..{right}z10e;
+fill z9r..tension1.2..z9l..tension1.2..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_a,9u#-s#+2/7stem#,x_height#,0);
+x5=w-s-1/2bar; y5=0; y4=6/7stem; x4=x3=x5-5/7stem-1/2stem;
+y3=bar_height+2bar; y2=y1=h; x2=s+c+6/20w; x1e=s+c;
+ul_drop(1,1.05drop_round,x2-s-c,5/4drop_round,bar);
+fill ul_drop_edge1;
+penpos2(bar,90);
+penpos3(stem,0);
+penpos4(stem,0);
+penpos5(bar,90);
+penstroke z2e{right}..{down}z3e--z4e{down}..{right}z5e;
+fill z5r..z5l..cycle;
+y6=bar_height+1/2bar; x6=x3+1/2stem; x7=s+1/2stem; y7=7/17bar_height;
+y8=0; x9=x4-1/2stem+.6bar; 8(x9-x8)=7(x8-x7); y9=y4+3/2bar; x66=x8; y66=y6-c;
+numeric theta[]; theta1=angle(z66-z6);
+penpos6(vair,90);
+penpos66(vair,90);
+penpos7(curve,180);
+penpos8(vair,270);
+penpos9(bar,360);
+penstroke z6e{left}..z66e{dir theta1}..tension.9..{down}z7e{down}..tension.9..z8e{right}..{up}z9e;
+penlabels(range 1 thru 9,66);
+endchar;
+
+beginchar(CYR_be,8u#+c#,asc_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=x_height;
+y3=y7=.5x_height; x3=.5curve+s; x7=w-1/2curve-s;
+y2=y8=0.08x_height; y4=y6=0.92x_height; x2=x4=x3+15/32(x5-x3)-.2c; x6=x8=x5+17/32(x7-x5)+.2c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+y9=y3; x9=s+1/2bar; y10=44/51h; x10=x5+c; x11=w-s-1/2bar; y11=h-1/2bar; %x11=w-1/2bar*sind 45; y11=h-1/2bar*sind 45;
+penpos9(hair,180);
+penpos10(curve,90);
+penpos11(hair,180);
+penstroke z9e{up}..{right}z10e{right}..tension1..z11e;
+fill z11r..tension1.2..z11l..tension1.2..cycle;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_ve,9u#-s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x9=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h; y8=y9=h-1/2bar; x8=x1d;
+y9-y10=y10-y4; x10=x5-c;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penpos8(bar,270);
+penpos9(bar,270);
+penpos10(curve,180);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penstroke z8e--z9e{right}..tension.8..z10e..tension.8..{left}z4e;
+sss_width := x5 - x2r; save sss_width;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ghe,7u#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; y3=y4=y5=h-1/2bar; x3=x1d; x5e=w-s;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+T_serif(5,bar,4/5border_height,1);
+x4=x5;
+fill serif_edge2--reverse serif_edge1--cycle;
+fill T_edge5;
+penpos3(bar,90);
+penpos4(bar,90);
+penstroke z3e--z4e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_de,9u#,x_height#,x_depth#);
+x3=x4=w-jut-1/2stem-s-.1u;
+y3c=h; y4c=0;
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+x7e=s; x10e=w-s; y7=y8=y9=y10=y4h; x8=x7; x9=x4c;
+T_serif(7,bar,4/5border_height,0);
+T_serif(10,bar,4/5border_height,1);
+fill T_edge7; fill T_edge10;
+penpos8(bar,90); penpos9(bar,90);
+penstroke z8e--z9e;
+x2=s+1.3jut+1/2bar; y2=bar; x1=x2+3/2bar; y1=h-bar;
+numeric theta[]; theta1=angle(z1-z2);
+A_serif(1,bar,theta1-180,1.3jut,jut);
+A_serif(2,bar,theta1,1.3jut,.8jut);
+fill A_serif_edge2..reverse A_serif_edge1..cycle;
+y5=y6=y3h; x5=x1d; x6=x3c;
+penpos5(bar,90);
+penpos6(bar,90);
+penstroke z5e--z6e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ie,8u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.05h; y4=y6=0.95h; x2=x4=x3+4/8(x5-x3); x6=x5+4/8(x7-x5);
+x10=w-s-1/2bar; y10=y7-stem;
+penstroke z10e{down}..tension1.1..{left}z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ye,8u#+c#,asc_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=x5=.5w; y1=0; y5=x_height;
+y3=.5x_height; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.05x_height; y4=y6=0.95x_height; x2=x4=x3+4/8(x5-x3); x6=x5+4/8(x7-x5);
+x10=w-s-1/2bar; y10=y7-stem;
+penstroke z10e{down}..tension1.1..{left}z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+y12=y14=h; y11=y13=h-stem; x11=x12=x3r+c; x13=x14=x7r-c;
+fill z11..z12..cycle; fill z13..z14..cycle;
+penlabels(range 1 thru 14);
+endchar;
+
+beginchar(CYR_zhe,round (13u#+c#),x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,stem,-90,jut,jut);
+serif(9,stem,90,jut,jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; x4=x7-u; y4=y7=y10=y11=bar_height; x10=x8r; x11=x10+u;
+x6=s+1/2bar; y6=y16=0; y4-y5=y5-y6; x4-x5=1.3(x5-x6);
+x16=w-s-1/2bar; 1.3(x16-x15)=x15-x11; y11-y15=y15-y16;
+x2=x5-c; y2=y1=h; x4-x3=x3-x2; y2-y3=y3-y4; x1e=s+c;
+y13=y14=h; x13=x15+c; x13-x12=x12-x11; y13-y12=y12-y11; x14e=w-s-c;
+penpos2(bar,90);
+penpos3(hair,0);
+penpos4(bar,90);
+penpos5(curve,180);
+penpos6(bar,90);
+penpos7(bar,90);
+penpos10(bar,90);
+penpos11(bar,90);
+penpos12(hair,180);
+penpos13(bar,90);
+penpos15(curve,0);
+penpos16(bar,90);
+penstroke z7e--z4e{left}..tension.9..{down}z5e{down}..tension.9..{left}z6e;
+fill z6r..z6l..cycle;
+penstroke z10e--z11e{right}..tension.9..{down}z15e{down}..tension.9..{right}z16e;
+fill z16r..z16l..cycle;
+penstroke z4e{left}..z3e..{left}z2e;
+penstroke z11e{right}..z12e..{right}z13e;
+ul_drop(1,drop_round,x2-s-.7c,3/4drop_round,bar);
+ur_drop(14,drop_round,x2-s-.7c,3/4drop_round,bar);
+fill ul_drop_edge1; fill z1e..z1c..cycle;
+fill ur_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ze,6u#+2s#,x_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=bar_height;
+x4=x6-3/2stem; x5=x4-u;
+x6=w-s-1/2curve; y4-y6=y6-y7;
+x2=.45w; y2=h; x3=x6-1/5curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(bar,90);
+penpos3(curve,0);
+penpos44(bar,-90);
+penpos4(bar,90);
+penpos5(bar,90);
+penpos6(curve,0);
+penpos7(bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3.5c,border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,drop_round,18/39w-s,1.2drop_round,bar);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_i,9u#+s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r-1/2bar; x6=x3l+1/2bar;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,-20); penpos6(bar,-20);
+y5=.1h; y6=.9h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_short_i,9u#+s#,asc_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r-1/2bar; x6=x3l+1/2bar;
+y1c=y3c=x_height; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,-20); penpos6(bar,-20);
+y5=.1x_height; y6=.9x_height; penstroke z5e--z6e;
+x7=.5w; y7=h-3/2drop_round;
+ur_drop(7,drop_round,x3-.5w,1.1drop_round,1.2bar);
+fill ur_drop_edge7 rotatedaround(z7,180);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ka,9u#+.5s#,x_height#,0);
+x1g=x2g=s; y1c=h; y2c=y9=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=bar_height; x3=x1r; x4=x3+1.25u;
+x9=w-s-1/2bar; 1.3(x9-x8)=x8-x4; y4-y8=y8-y9;
+y6=y7=h; x6=x8+c; x6-x5=x5-x4; y6-y5=y5-y4; x7e=w-s-c;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(hair,180);
+penpos6(bar,90);
+penpos8(curve,0);
+penpos9(bar,90);
+penstroke z3e--z4e{right}..tension.9..{down}z8e{down}..tension.9..{right}z9e;
+fill z9r..z9l..cycle;
+penstroke z4e{right}..z5e..{right}z6e;
+ur_drop(7,drop_round,w-x6-s-.7c,3/4drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_el,9u#+s#,x_height#,0);
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.7drop_round; y3=1.1drop_round;
+dl_drop(1,1.05drop_round,drop_round,drop_round,bar);
+fill dl_drop_edge1;
+fill z1c..z1e..cycle;
+penpos2(bar,-90);
+penpos3(bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-bar;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,bar,theta1,1.4jut,1.3jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,stem,-90,jut,jut);
+serif(8,stem,90,jut,jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(bar,90);
+penpos6(bar,90);
+penstroke z5e--z6e;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_em,10u#+s#,x_height#,0);
+x1g=s; y1c=0; y2=h-bar;
+A_serif(1,bar,90,jut,jut);
+x2=x1; serif(2,bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2bar; y4c=0;
+serif(3,stem,-90,.51bar, jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -110; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 110; y7l=9/28h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(stem,0); penpos8(stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_en,9u#+s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_o,8u#+s#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2curve-s;
+y2=y8=0.09h; y4=y6=0.91h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_pe,9u#+s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_er,8u#+jut#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+.2s+.6(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=0.1h; y8=0.05h; y4=0.9h; y6=0.95h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+1/3(x7-x5)+c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=-desc_depth;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_es,8u#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.9hair,180);
+x1=x5=.52w; y1=0; y5=h;
+y3=.5h; x3=1/2curve+s;
+y2=0.05h; y4=0.95h; x2=x4=x3+8.3/16(x5-x3);
+x6=w-s-1/2hair; y6=y3-.65stem;
+penstroke z6e{down}..tension1..{left}z1e..z2e..z3e..z4e..{right}z5e;
+fill z6r..z6l..cycle;
+z7=z5;
+ur_drop(7,drop_round,7/8(x6l-x1),1.1drop_round,bar);
+fill ur_drop_edge7;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(CYR_te,round (8u#-.5s#),x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x2=x3=.5w; x1e=s; x4e=w-s; y1=y4=y2h;
+y2c=h; y3c=0;
+serif(2,stem,-90,jut,jut);
+serif(3,stem,90,jut,jut);
+T_serif(1,bar,4/5border_height,0);
+T_serif(4,bar,4/5border_height,1);
+fill serif_edge3--reverse serif_edge2--cycle;
+fill T_edge1; fill T_edge4;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_u,9u#+s#,x_height#,desc_depth#);
+x1l=s+jut; y1l=h-bar;
+x3r=w-s-.8jut; y3r=h-bar;
+x4=33/60w; y4=-2/5d;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,bar,theta2,1.2jut,.8jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=-d; x6=x4-stem; z7l=z2;
+penpos7(bar,theta2+90);
+penpos5(bar,theta2+90);
+penpos6(bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,1.1drop_round,1.7u,drop_round,bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(CYR_ef,12u#+s#,asc_height#,desc_depth#);
+if .5w = good.x .5w: change_width; fi
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w+.5(.5w-s)-.8c; y1=0; y5=x_height;
+y3=y7=y12=.5x_height; x3=.5w; x7=w-1/2curve-s;
+y2=y9=0.09x_height; y11=y8=0.04x_height; y4=y15=0.91x_height; y6=y13=.96x_height;
+x2=x4=x3+3/8(x5-x3); x6=x8=x5+1/3(x7-x5)+.55c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+z16=z3; x14=x10=.5w-.5(.5w-s)+.8c; y10=0; y14=x_height;
+x12=s+1/2curve; x9=x15=x16-3/8(x16-x14); x11=x13=x14-1/3(x14-x12)-.55c;
+penpos10(vair,90);
+penpos11(o,30);
+penpos12(curve,0);
+penpos13(o,-30);
+penpos14(vair,-90);
+penpos15(.7o,-150);
+penpos16(stem,-180);
+penpos9(.7o,-210);
+penstroke z10e..z11e..z12e..z13e..z14e..z15e..z16e..z9e..cycle;
+x99=x155=x3l; x44=x222=x3r; y99=y222=.5x_height-3/2stem; y155=y44=.5x_height+3/2stem;
+%unfill z99--z155--z44--z222--cycle; penlabels(44,99,155,222);
+x20=.5w; y20=-.75d; x17=x30=x3l; x23=x24=x3r; y17=y23=-1/2d;
+x18=x19=x17-4/5stem; x21=x22=x23+4/5stem; y18=y22=-d+bar; y19=y21=-d;
+y24=y30=x_height+3/5(asc_height-x_height);x25=x22-c; x29=x18+c; y29=y25=h-1/2bar;
+y28=y26=h; x28=x29+1/2bar; x26=x25-1/2bar; x27=.5w; y27=h-bar;
+fill z30---z17{dir -100}..tension2..z18{left}..{right}z19{right}..{dir 20}z20{dir -20}..{right}z21{right}..{left}z22..tension2..{dir 100}z23---z24{dir 80}..{dir 20}z25{dir 160}..{left}z26{left}..{dir -160}z27{dir 160}..{left}z28{left}..{dir -160}z29{dir -20}..{dir -80}z30&cycle;
+penlabels (range 1 thru 30);
+endchar;
+
+beginchar(CYR_ha,9u#+c#,x_height#,0);
+y3=y4=bar; x3=w-s-jut-1/2stem; x4=s+jut+1/2bar;
+y1=y2=h-bar; x1=s+jut+1/2stem+c; x2=w-s-1.25c-jut-1/2bar;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,stem,theta1-180,jut,jut);
+A_serif(2,1.2bar,theta2-180,jut,jut);
+serif(3,stem,theta1,jut,jut);
+A_serif(4,1.2bar,theta2,jut,1.3jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_tse,9.1u#+s#,x_height#,x_depth#);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1-.1u; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=y2h; penstroke z5e--z6e;
+x7e=w-s; y7=y4h;
+T_serif(7,bar,4/5border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_che,9u#+s#,x_height#,0);
+x1=jut+1/2stem+s;
+x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,-90,jut,jut);
+serif(3,stem,90,jut,jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=bar_height-1/2bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-.8bar;
+penpos6(stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_sha,round (13u#+s#),x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=.5w; y5=y1; y6=y2;
+y9b=bar; x9h=w-s;
+x10=x9; y10b=h-bar;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,stem,-90,jut,jut);
+serif(6,stem,90,jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,stem,90,jut,jut);
+serif(10,stem,-90,jut,jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos7(bar,90);
+penpos8(bar,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_shcha,13u#+s#,x_height#,x_depth#);
+if .5w <> good.x .5w: change_width; fi
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=bar; x9h=w-s-.1u;
+x10=x9; y10b=h-bar;
+x11e=w-s; y11=y9h;
+serif(9,stem,90,jut,jut);
+serif(10,stem,-90,jut,jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,stem,-90,jut,jut);
+serif(6,stem,90,jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos7(bar,90);
+penpos8(bar,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,bar,4/5border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_hard_sign,10u#,x_height#,0);
+x2r=x5-sss_width; x1=x2;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h; x8e=s; y8g=h;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+T_serif(8,bar,4/5border_height,0);
+fill T_edge8;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+x9=s+c; y9=y10=h; x10=s;
+unfill z8d{up}..z9--z10--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_yeru,12u#-c#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=x2r+sss_width;
+y6=y7=y2h; x8h=x9h=w-s; y8c=h; y9c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(8,stem,-90,jut,jut);
+serif(9,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge9--reverse serif_edge8--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_soft_sign,9u#-s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_e,6u#+2s#,x_height#,0);
+x1=16/39w; x5=.5w-c; y1=0; y5=h;
+y7=.5h; x7=w-1/2curve-s;
+x9e=s; y9=0;
+dl_drop(9,drop_round,18/39w-s,1.2drop_round,bar);
+y2=y5; x2=x5;
+S_serif(2,bar,x5-s-c,border_height);
+x3=x7-1/2stem; y3=y4=bar_height; x4=x9c-.5c;
+penpos3(bar,90); penpos4(bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+y8=0.04h; y6=0.96h; x8=x1+4/8(x7-x9)+.1c; x6=x2+8/16(x7-x5);
+penpos5(bar,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+penpos1(bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_yu,12u#+.5s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x3l=x1h+.3bar; y9=0; y5=h;
+y3=y7=.5h; x7=w-1/2curve-s; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+c+3/8(x5-x3); x6=x8=x5-c+5/8(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3stem; y11=y12=bar_height;
+penpos11(bar,90); penpos12(bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ya,8u#+s#+1/2bar#,x_height#,0);
+x1=x2=w-jut-1/2stem-s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2l; x4=x6=x3-2.5u+stem;
+y5-y4=y6-y5; x5=1/2stem+2s;
+y6=y7=y1h; x9=s; y9=0; x4-x8=x8-x9; y4-y8=y8-y9;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,-90);
+penpos4(bar,-90);
+penpos5(curve,180);
+penpos6(bar,90);
+penpos7(bar,90);
+penpos8(curve,0);
+penpos9(bar,-90);
+penstroke z3e--z4e{left}..tension.8..z5e..tension.8..{right}z6e--z7e;
+penstroke z9e{right}..{up}z8e{up}..{right}z4e;
+fill z9r..z9l..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar("A",13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar("B",11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,1/2cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("C",10u#+s#,cap_height#,0);
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=.05h; y4=0.95h; x2=x4=x3+8/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("D",12u#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(o,30);
+penpos6(cap_curve,0);
+penpos7(o,-30);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+x3=x9=x1d;
+x8=x4=.5w; y8=y9=1/2cap_bar; y4=y3=h-1/2cap_bar;
+y6=.5h; x6=w-1/2cap_curve-s;
+y7=0.06h; y5=0.94h; x5=x7=x4+4/8(x6-x4);
+penstroke z3e--z4e{right}..z5e..z6e..z7e..{left}z8e--z9e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("E",10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("F",10u#+.5s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("G",10u#+cap_jut#+c#+s#,cap_height#,0);
+x1=x5=23/42(w-cap_jut-c); y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s-cap_jut-c; y8=y1; x8=x1-.1(w-cap_jut-c);
+S_serif(6,slab,w-s-2c-x1-cap_jut,1.5border_height);
+S_serif(7,slab,w-s-x1-cap_jut+c,7/4border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+x9r=x7e; y9r=7/4border_height-1/2cap_bar;
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+x10=x9l; x11=x9r; y10=y11=3/4cap_bar;
+fill reverse serif_edge9--z10--z11--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("H",12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("I",2cap_jut#+cap_stem#+2s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+endchar;
+
+beginchar("J",7u#+s#,cap_height#,0);
+x1=x4=w-cap_jut-1/2cap_stem-s;
+y1c=h; y2=y3=y4=13/53h; x2=x1r; x3=x1l;
+y5=0; x5=x3-.4cap_stem;
+serif(1,cap_stem,-90,1.2cap_jut,cap_jut);
+fill z3--z2--reverse serif_edge1--cycle;
+penpos4(cap_stem,0);
+penpos5(cap_bar,-90);
+penstroke z4e{down}..{left}z5e;
+x6e=s; y6=0;
+dl_drop(6,cap_drop_round,x5-s,1.3drop_round,cap_bar);
+fill dl_drop_edge6;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("K",13u#-c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=cap_bar_height; x3l=w-cap_jut-.5cap_jut-cap_bar-s; y3l=h-cap_bar;
+x5=x6=x1r; y5=cap_bar_height-cap_bar; y6=y5-1.2cap_bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+A_serif(3,.9cap_bar,theta1,1.5cap_jut,.6cap_jut);
+x4l=w-s-1.2cap_jut-cap_stem; y4l=cap_bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,cap_stem,theta2,.8cap_jut,cap_jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("L",10u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=y5=y2h; x3=x2d; x5e=w-s;
+T_serif(5,cap_bar,border_height,1); x4=x5;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penstroke z3e--z4e;
+fill T_edge5 reflectedabout(z3,z4);
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar("M",13u#+s#,cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,.51cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 110; y7l=13/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("N",12u#-c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_bar+s;
+x3=w-x1; y1c=y3c=h; y2c=y4=y5=0;
+x4=x3r; x5=x3l;
+serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+A_serif(2,cap_bar,90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill A_serif_edge2--reverse serif_edge1--cycle;
+numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+theta1=angle(z5-z7);
+z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+fill z6--z1h--z7--z5{down}..{up}z4--reverse A_serif_edge3--cycle;
+unfill z1b--z1l--z1a--cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("O",11u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.05h; y4=y6=0.95h; x2=x4=x3+8/16(x5-x3); x6=x8=x5+8/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+cap_o_width := x7-x3; save cap_o_width;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar("P",10u#+s#,cap_height#,0);
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Q",11u#+s#,cap_height#,comma_depth#);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.05h; y4=y6=0.95h; x2=x4=x3+8/16(x5-x3); x6=x8=x5+8/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x12-1.5c; x12=x7l-c; y11=y12=-comma_depth;
+y9=0; x9=x1-c; y9-y10=y10-y11; x11-x10=x10-x9;
+penpos9(cap_bar,90); penpos10(cap_curve,0);
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z9e{dir -20}..tension.8..z10e..tension.8..{right}z11e--z12e;
+fill z12r..z12l..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("R",11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2r;
+y1c=h; y2c=0; x6=x4=x7+2u; x3=x1d;
+y4-y5=y5-y6; x5=x8; x9=w-s-1/2cap_bar; y9=0; y6-y8=y8-y9; x10=x6; x9-x8=6/7(x8-x10);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,-90);
+penpos6(cap_bar,-90);
+penpos8(cap_curve,-180);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penstroke z9e{left}..tension.8..{up}z8e{up}..tension.8..{left}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("S",9u#+s#,cap_height#,0);
+x6=x7=1/2w; y6=y7=0;
+S_serif(7,cap_bar,x6-s,1.5border_height);
+y5=11/53h; x5=w-s-1/2(1.9hair);
+y4=28/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2(1.9cap_bar);
+x2=.5w-c; y2=h; z1=z2;
+penpos6(cap_bar,-90);
+penpos5(1.9hair,0);
+penpos4(1.1cap_curve,90);
+penpos3(1.9hair,0);
+penpos2(cap_bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-cap_bar,1.2border_height);
+fill S_serif_edge1;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("T",round (11u#+s#),cap_height#,0);
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("U",12u#+s#,cap_height#,0);
+x1=cap_jut+1/2cap_stem+s;
+x3=w-s-cap_jut-1/2cap_bar;
+y1c=y3c=h; y2=y4=y5=y6=y24=y56=16/53h; x2=x1l;
+x4=x1r; x5=x3l; x6=x3r;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill z2--z4--reverse serif_edge1--cycle;
+fill z5--z6--reverse A_serif_edge3--cycle;
+x7=x1+.5(x3-x1); y7=0; x4-x24=x24-x2; x6-x56=x56-x5;
+penpos24(cap_stem,-180); penpos7(vair,-90);
+penpos56(cap_bar,0);
+penstroke z24e{down}..tension.9..{right}z7e{right}..tension.9..{up}z56e;
+penlabels(range 1 thru 7,24,56);
+endchar;
+
+beginchar("V",12u#,cap_height#,0);
+x1l=cap_jut+s;
+x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w-1/2cap_bar; x5=.5w+1/2cap_bar;
+y4=y5=1/2cap_bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("W",17u#,cap_height#,0);
+x9l=.5w-.3cap_stem;
+x7r=w-s-cap_jut;
+y9l=y7r=y1l=h-cap_bar; x5=x9l+.5(x7r-x9l)-1/2cap_bar; x6=x9l+.5(x7r-x9l)+1/2cap_bar;
+y5=y6=y2=y3=1/2cap_bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(7,cap_bar,theta2,1.3cap_jut,cap_jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+cap_jut;
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+z2=z1l+whatever*dir theta1; x3=x2+cap_bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("X",12u#+s#,cap_height#,0);
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("Y",12u#,cap_height#,0);
+x1l=cap_jut+s;
+x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w;
+y4=8/25h;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+y5c=0; x5=.5w+.5c;
+serif(5,cap_stem,90,cap_jut,cap_jut);
+x6=x5l; x7=x5r;
+z6=z1l+whatever*dir theta1;
+z7=z3r+whatever*dir theta2;
+fill z6--serif_edge5--z7--reverse A_serif_edge3--z2--reverse serif_edge1--z6&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Z",9u#+1.5s#,cap_height#,0);
+x6=s+1/2cap_bar; y6=y7=y8=1/2cap_bar;
+x8e=w-s; x7=x8;
+T_serif(8,cap_bar,border_height,1);
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4cap_bar;
+x4r=w-s-1/4cap_bar; y4=h-cap_bar;
+penpos4(cap_stem,0);
+penpos5(cap_stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2cap_bar;
+x3=w-s-1/2cap_bar; x1e=s+c;
+T_serif(1,cap_bar,border_height,0);
+x2=x1;
+penpos3(cap_bar,90);
+penpos2(cap_bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar("a",9u#-s#+2/7stem#,x_height#,0);
+x5=w-s-1/2bar; y5=0; y4=6/7stem; x4=x3=x5-5/7stem-1/2stem;
+y3=bar_height+2bar; y2=y1=h; x2=s+c+6/20w; x1e=s+c;
+ul_drop(1,1.05drop_round,x2-s-c,5/4drop_round,bar);
+fill ul_drop_edge1;
+penpos2(bar,90);
+penpos3(stem,0);
+penpos4(stem,0);
+penpos5(bar,90);
+penstroke z2e{right}..{down}z3e--z4e{down}..{right}z5e;
+fill z5r..z5l..cycle;
+y6=bar_height+1/2bar; x6=x3+1/2stem; x7=s+1/2stem; y7=7/17bar_height;
+y8=0; x9=x4-1/2stem+.6bar; 8(x9-x8)=7(x8-x7); y9=y4+3/2bar; x66=x8; y66=y6-c;
+numeric theta[]; theta1=angle(z66-z6);
+penpos6(vair,90);
+penpos66(vair,90);
+penpos7(curve,180);
+penpos8(vair,270);
+penpos9(bar,360);
+penstroke z6e{left}..z66e{dir theta1}..tension.9..{down}z7e{down}..tension.9..z8e{right}..{up}z9e;
+penlabels(range 1 thru 9,66);
+endchar;
+
+beginchar("b",8u#+jut#+c#,asc_height#,0);
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+.2s+.6(w-jut-2s); y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=0.1x_height; y8=0.05x_height; y4=0.9x_height; y6=0.95x_height;
+x2=x4=x3+3/8(x5-x3); x6=x8=x5+1/3(x7-x5)+c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=0;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,0);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("c",8u#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.9hair,180);
+x1=x5=.52w; y1=0; y5=h;
+y3=.5h; x3=1/2curve+s;
+y2=0.05h; y4=0.95h; x2=x4=x3+8.3/16(x5-x3);
+x6=w-s-1/2hair; y6=y3-.65stem;
+penstroke z6e{down}..tension1..{left}z1e..z2e..z3e..z4e..{right}z5e;
+fill z6r..z6l..cycle;
+z7=z5;
+ur_drop(7,drop_round,7/8(x6l-x1),1.1drop_round,bar);
+fill ur_drop_edge7;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar("d",8u#+jut#+c#,asc_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.7o,-150);
+penpos7(stem,-180);
+penpos8(.7o,-210);
+x1=x5=1.8s+.4(w-jut-2s); y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2curve+s; x7=w-1/2stem-s-jut;
+y8=0.1x_height; y2=0.05x_height; y6=0.9x_height; y4=0.95x_height;
+x2=x4=x3+2/3(x5-x3)-c; x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10h=w-s; x9=x10; y9c=h; y10c=0;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,0,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("e",8u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.05h; y4=y6=0.95h; x2=x4=x3+4/8(x5-x3); x6=x5+4/8(x7-x5);
+x10=w-s-1/2bar; y10=y7-stem;
+penstroke z10e{down}..tension1.1..{left}z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("f",2jut#+stem#+2c#+2s#,asc_height#,0);
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x1; y3=x_height; x4r=x1l-.1stem; y4=x_height+1/2(asc_height-x_height);
+x5l=x4l-.05stem; y5=y4+1.5bar; x6=x1r+.2stem; y6=h-1/2bar;
+penpos3(stem,180);
+penpos4(.75curve,180);
+penpos5(.6curve,180);
+penpos6(bar,90);
+penstroke z3e{dir 95}...{up}z4e..z5e..{right}z6e;
+y6=y7; x7e=w-.95s;
+ur_drop(7,drop_round,x7e-x6,drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("g",9u#+c#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+y3=y7=2/3h; x3=1/2curve+s+c; x7=w-3/2stem-s;
+x1=x5=x3+1/2(x7-x3); y1=3/11h; y5=h;
+y2=y8=y1+0.09(8/11h); y4=y6=y1+0.91(8/11h); x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x9=x7; y9=y7+1/2(y6-y7); y10=h; x10=x7l+c;
+x11e=w-s; y11=y10;
+ur_drop(11,.8stem,x11e-x10,drop_round,bar);
+penpos9(hair,180); penpos10(vair,90);
+penstroke z9e{up}..{right}z10e;
+fill ur_drop_edge11;
+y12=y1; x12=x1; y13=5/8*y12; x13=s+1/4stem+.5c;
+y14=y15=0; x14=x2r; x15=x8r; y16=y18=-d/2; x16=w-s-1/2stem;
+x18=s+.7hair; y17=-d+1/2bar; x17=s+.6bar+9/20(x16-x18); x19=x14; y19l=y14r;
+penpos12(vair,90); penpos13(1/2curve,180); penpos14(curve,270);
+z144=z14; penpos144(curve,90); penpos15(curve,90);penpos16(1/2curve,0);
+penpos17(vair,-90); penpos18(1.4hair,-180); penpos19(1.4vair,-270);
+penstroke z12e{left}..{down}z13e{down}..{right}z14e;
+penstroke z144e--z15e{right}..tension.8..{down}z16e{down}..{left}z17e{left}..{up}z18e{up}..{right}z19e;
+penlabels(range 1 thru 19);
+endchar;
+
+beginchar("h",round (10u#-1.5c#),asc_height#,0);
+w:=w+1;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6h=w-s; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33x_height;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=x_height; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("i",2jut#+stem#+2s#,x_height#+2.1stem#,0);
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+z3=(x1,h); z4=(x1,h-1.1stem);
+fill z3..z4..cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("j",5u#+c#,x_height#+2.1stem#,desc_depth#);
+x1h=w-s; y1c=x_height; y2=0; x2=x1;
+serif(1,stem,-90,1.5jut,0);
+penpos2(stem,0);
+fill z2l--z2r--reverse serif_edge1--cycle;
+z3=(x1-.05stem,h); z4=(x1-.05stem,h-1.1stem);
+fill z3..z4..cycle;
+y5=-1/4desc_depth; x5r=x2r;
+y6=-d+1/2bar; x6=x2l-.4stem;
+penpos5(.97stem,0);
+penpos6(bar,-90);
+penstroke z2e--z5e{down}..{left}z6e;
+x7e=s; y7=-d+1/2bar;
+dl_drop(7,drop_round,x6-x7e,drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar("k",round (10u#-c#),asc_height#,0);
+w:=w+1;
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=bar_height; x3l=w-jut-.7jut-s; y3l=x_height-bar;
+x5=x6=x1r; y5=bar_height-bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+y6=y5-bar/cosd (theta1+180);
+A_serif(3,.9bar,theta1,1.8jut,.8jut);
+x4l=w-s-1.2jut-stem; y4l=bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,stem,theta2,.8jut,jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("l",2.4jut#+stem#+2s#,asc_height#,0);
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,1.2jut,0);
+serif(2,stem,90,1.2jut,1.2jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penlabels(1,2);
+endchar;
+
+beginchar("m",14u#,x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6=.5w; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33h;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=h; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+x10h=w-s; y10c=0;
+serif(10,stem,90,jut,jut);
+x9=x10; y9=y5;
+penpos9(stem,0);
+fill serif_edge10--z9r--z9l--cycle;
+x8=x10g; y8=h; y7=y9-1/4bar; x7l=x6r;
+penpos8(vair,90);
+penpos7(bar,180);
+penstroke z9e{up}..{left}z8e{left}..z7e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("n",round (10u#-1.5c#),x_height#,0);
+w:=w+1;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6h=w-s; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33h;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=h; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("o",8u#+s#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2curve-s;
+y2=y8=0.09h; y4=y6=0.91h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("p",8u#+jut#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+.2s+.6(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=0.1h; y8=0.05h; y4=0.9h; y6=0.95h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+1/3(x7-x5)+c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=-desc_depth;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("q",8u#+jut#+c#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.7o,-150);
+penpos7(stem,-180);
+penpos8(.7o,-210);
+x1=x5=1.8s+.4(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2stem-s-jut;
+y8=0.1h; y2=0.05h; y6=0.9h; y4=0.95h; x2=x4=x3+2/3(x5-x3)-c; x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10h=w-s; x9=x10; y9c=h; y10c=-d;
+serif(9,stem,-90,0,jut);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("r",7u#+c#,x_height#,0);
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,1.2jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x4=round (x2h+1/2bar+c); y4=h; y3=23/33h-1/4bar; x3l=x2r;
+penpos4(bar,90);
+penpos3(bar,180);
+penstroke z4e{left}...{down}z3e;
+x5e=w-s; y5=h;
+ur_drop(5,1.05drop_round,x5e-x4,drop_round,bar);
+fill ur_drop_edge5;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar("s",7u#,x_height#,0);
+x6=x7=1/2w; y6=y7=1/2bar;
+S_serif(7,bar,x6-s,border_height);
+y5=11/53h; x5=w-s-1/2(1.4hair);
+y4=29/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2hair;
+x2=.5w; y2=h; z1=z2;
+penpos6(bar,-90);
+penpos5(1.4hair,0);
+penpos4(curve,90);
+penpos3(1.4hair,0);
+penpos2(bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.9..{dir 170}z4e{dir 170}..tension.9..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-1/3bar,.9border_height);
+fill S_serif_edge1;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("t",7u#-s#,asc_height#,0);
+y1=y2=46/53h; y4c=x_height; x4g=s;
+serif(4,stem,-90,jut,1.4jut);
+x1=x4r; x2=x1-bar;
+y5=7/33x_height; x5=x4; x3=x4l; y3=42/53h;
+penpos5(stem,180); numeric theta[];
+theta1=angle(z3-z2);
+fill z5l--reverse serif_edge4--z5r--cycle;
+fill z4r--z1{up}..{dir theta1}z2--z3--z4l--cycle;
+y6=1/4bar; x6=x4r+.7jut; x7=w-s-1/2bar; y7=13/53h;
+penpos6(vair,270); penpos7(hair,360);
+penstroke z5e{down}..{right}z6e{right}..{up}z7e;
+fill z7r..z7l..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar("u",round (10u#-1.5c#),x_height#,0);
+w:=w+1;
+x2h=w-s; y1c=h; y2c=0; x1=x2;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,0,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6g=s; y6c=h;
+serif(6,stem,-90,jut,0);
+x5=x6; y5=10/33h;
+penpos5(stem,180);
+fill serif_edge6--z5l--z5r--cycle;
+x4=x6+1/2stem+jut; y4=0; y3=y5+1/4bar; x3l=x2l;
+penpos4(vair,270);
+penpos3(bar,360);
+penstroke z5e{down}..{right}z4e{right}..z3e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar("v",10u#-1.5c#,x_height#,0);
+x1l=jut+s;
+x3r=w-s-jut;
+y1l=y3r=h-bar; x4=.5w-1/2bar; x5=.5w+1/2bar;
+y4=y5=1/2bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,bar,theta2,1.3jut,jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("w",13u#,x_height#,0);
+x9l=.5w-.3stem;
+x7r=w-s-jut;
+y9l=y7r=y1l=h-bar; x5=x9l+.5(x7r-x9l)-1/2bar; x6=x9l+.5(x7r-x9l)+1/2bar;
+y5=y6=y2=y3=1/2bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,stem,theta1,jut,jut);
+A_serif(7,bar,theta2,1.1jut,jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+jut;
+serif(1,stem,theta1,jut,jut);
+z2=z1l+whatever*dir theta1; x3=x2+bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("x",9u#+c#,x_height#,0);
+y3=y4=bar; x3=w-s-jut-1/2stem; x4=s+jut+1/2bar;
+y1=y2=h-bar; x1=s+jut+1/2stem+c; x2=w-s-1.25c-jut-1/2bar;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,stem,theta1-180,jut,jut);
+A_serif(2,1.2bar,theta2-180,jut,jut);
+serif(3,stem,theta1,jut,jut);
+A_serif(4,1.2bar,theta2,jut,1.3jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("y",9u#+s#,x_height#,desc_depth#);
+x1l=s+jut; y1l=h-bar;
+x3r=w-s-.8jut; y3r=h-bar;
+x4=33/60w; y4=-2/5d;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,bar,theta2,1.2jut,.8jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=-d; x6=x4-stem; z7l=z2;
+penpos7(bar,theta2+90);
+penpos5(bar,theta2+90);
+penpos6(bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,1.1drop_round,1.7u,drop_round,bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar("z",7u#+c#,x_height#,0);
+x6=s+1/2bar; y6=y7=y8=1/2bar;
+x8e=w-s; x7=x8;
+T_serif(8,bar,.8border_height,1);
+penpos6(bar,90);
+penpos7(bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-.5c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4bar;
+x4r=w-s-1/4bar; y4=h-bar;
+penpos4(stem,0);
+penpos5(stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2bar;
+x3=w-s-1/2bar; x1e=s+c;
+T_serif(1,bar,.8border_height,0);
+x2=x1;
+penpos3(bar,90);
+penpos2(bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(hex"30",9u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.08h-c; y4=y6=0.92h+c; x2=x4=x3+9/16(x5-x3); x6=x8=x5+7/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"31",6u#+3/2c#,cap_height#,0);
+y1c=0; x1h=w-s;
+serif(1,cap_stem,90,cap_jut,cap_jut);
+x6=x1f; y5=y6=h; x5=x1; x2=x1a; y2=42/53h;
+penpos4(1.1cap_bar,-25);
+penpos3(1.1cap_bar,-25);
+x4l=s; y4=30/53h; numeric theta[]; theta1=angle(z5-z4);
+z3l=z5; penstroke z3e--z4e; fill z4l{down}..{dir 60}z4r--cycle;
+fill serif_edge1--z6{dir 110}..{dir 250}z5--z2--cycle;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"32",9u#,cap_height#,0);
+z4=(9/33w,14/53h); z5=(s+11/20cap_bar,0);
+z3=(w-s-.5c-7/16cap_curve,40/53h); z2=(15/33w,h);
+penpos2(cap_bar,90);
+penpos3(.95cap_curve,0);
+penpos4(1.1cap_bar,-45);
+penpos5(1.1cap_bar,0);
+x6=x5r; y6=y7=7/16cap_stem; y8=1/2cap_bar;
+x8e=w-s; x7=x8e;
+T_serif(8,cap_bar,3/5border_height,1);
+penpos6(7/8cap_stem,90);
+penpos7(7/8cap_stem,90);
+penstroke z6e--z7e; %fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+unfill z11{down}..z9--z10--cycle;
+penstroke z5e{up}..z4e..{up}z3e{up}..{left}z2e;
+z1=z2; ul_drop(1,1.1cap_drop_round,15/33w-3c,1.4cap_drop_round,slab);
+fill ul_drop_edge1;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"33",9u#,cap_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height+c;
+x4=x6-3/2cap_stem; x5=x4-1.4u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.49w; y2=h; x3=x6-.2cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_stem,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..{down}z3e{down}..{left}z44e;
+penstroke z5e--z4e{right}..tension.9..{down}z6e{down}..tension.9..{left}z7e;
+fill z5r..z5l..cycle;
+ul_drop(1,cap_drop_round,17/39w-s,cap_drop_round,slab);
+fill ul_drop_edge1;
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.3cap_drop_round,slab);
+fill dl_drop_edge8;
+penlabels(1,2,3,4,5,6,7,8,44);
+endchar;
+
+beginchar(hex"34",9u#+c#,cap_height#,0);
+y1=y2=33/53h; y4c=0; x4h=w-s;
+serif(4,7/8cap_stem,90,cap_jut,cap_jut);
+x1=x4r; x2=x1-bar;
+x3=x4l; y3=28/53h;
+numeric theta[]; theta1=angle(z2-z3);
+fill z3{dir theta1}--z2{dir theta1}..{down}z1--reverse serif_edge4--z3&cycle;
+y5=y6=15/53h; x5=x4e; x6=s+cap_bar;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e; fill z5r..z5l..cycle;
+y7=y6l; x7l=x6; z8=(6/36w, 21/53h);
+z9=(2/3w,h);
+penpos7(cap_bar,180); penpos8(cap_bar,150);
+penpos9(cap_stem,180);
+penstroke z7e{up}..z8e..{dir 70}z9e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"35",9u#,cap_height#,0);
+x7=x4=18/39w; y7=0; y5=cap_bar_height+c; y4=y5+s;
+x8e=s; y8=0; x5=x8d;
+dl_drop(8,cap_drop_round,18/39w-s,1.2cap_drop_round,slab);
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z5e..z4e{right}..tension.85..{down}z6e{down}..tension.85..{left}z7e;
+fill z5r..z5l..cycle;
+fill dl_drop_edge8;
+z3=z5; x2=x3; y2=h;
+penpos3(cap_bar,0); penpos2(cap_bar,0);
+penstroke z3e--z2e; fill z2l..tension 1.7..z2r..tension 1.7..cycle;
+y1r=h; x1=x2r; x13=x6; y13=h; 2(x12-x1)=x13-x12; y12=h-.6cap_stem;
+penpos1(7/8cap_stem,90); penpos13(1.1cap_bar,90); penpos12(3/4cap_stem,90);
+penstroke z1e..z12e..z13e; fill z13r..tension 1.7..z13l..tension 1.7..cycle;
+penlabels(1,2,3,4,5,6,7,8,12,13);
+endchar;
+
+beginchar(hex"36",9u#,cap_height#,0);
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=.45w; x9=.5w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.05h; y4=0.95h; y6=0.97h; x8=x6=x7+17/32(x5-x7); x10=x5+9/16(x3-x5); x4=x5+8/16(x3-x5); x2=x4-1/2c;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.04h; y11=y7-2slab;
+x11l=x3l+.5c; y10=y8; z12 = z1;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e{right}..z10e..{up}z11e;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+z13 = (.5w,.5h);
+currentpicture := currentpicture rotatedaround(z13,180);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"37",9u#-c#,cap_height#,0);
+x4=w-s-1/2cap_bar; y4=h-1/2cap_bar;z12 = z1;
+penpos4(cap_bar,0);
+y3=y2=h-7/16cap_stem; y1=h-7/8cap_stem+1/2cap_bar;
+x3=x4l; x1e=s;
+T_serif(1,cap_bar,3/5border_height,0);
+x2=x1e;
+penpos3(7/8cap_stem,90);
+penpos2(7/8cap_stem,90);
+penstroke z2e--z3e;
+fill T_edge1; z44=(x4,h); fill z4r{up}..{left}z44--z3r--z4l--cycle;
+x10=s+c; x11=s; y10=y11=h;
+unfill z1d{up}..z10--z11--cycle;
+unfill z1d{up}..z10--z11--cycle;
+x5r=x3; y5=h-7/8cap_stem;
+x6=14/30w; y6=1/3cap_curve;
+penpos5(cap_bar,0); penpos6(cap_curve,0);
+penstroke z4e{dir -105}..z5e..{dir -95}z6e; fill z6l..z6r..cycle;
+penlabels(1,2,3,4,5,6,10,11,12);
+endchar;
+
+beginchar(hex"38",10u#-s#,cap_height#,0);
+x6=x4=x2=x8=1/2w; y6=0; y2=h;
+y5=11/53h; y7=13/53h; x5=w-s-1/2(1.9hair);
+y4=y8=28/53h; y3=42/53h; y1=40/53h; x3=2s+1/2(1.9cap_bar);
+x1=w-2s-1/2(1.9cap_bar); x7=w-x5;
+penpos6(cap_bar,-90);
+penpos5(2.5hair,0);
+penpos4(cap_curve,90);
+penpos3(2.5hair,0);
+penpos2(cap_bar,-90);
+penpos1(2.5hair,-180);
+penpos7(2.5hair,-180);
+penpos8(cap_bar,-270);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"39",9u#,cap_height#,0);
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=.45w; x9=.5w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.05h; y4=0.95h; y6=0.97h; x8=x6=x7+17/32(x5-x7); x10=x5+9/16(x3-x5); x4=x5+8/16(x3-x5); x2=x4-1/2c;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.04h; y11=y7-2slab;
+x11l=x3l+.5c; y10=y8; z12 = z1;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e{right}..z10e..{up}z11e;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+beginchar(oct"56",cap_stem#+2s#,cap_stem#,0);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+endchar;
+
+beginchar(oct"54",cap_stem#+2s#+c#,cap_stem#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"60",cap_stem#+2s#+c#,asc_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(oct"41", cap_stem#+2s#,cap_height#,0); "Exclamation mark";
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+ x3=.5w-1/2cap_bar; x4=.5w+1/2cap_bar; y3=y4=3/2cap_stem;
+ x6=x1; x5=x2; y5=y6=h;
+ fill z6--z3..z4--z5{up}..z6&cycle;
+endchar;
+
+beginchar(hex"22",2cap_stem#+3s#+2c#,cap_height#,0);
+ z1=(s,h-1/2cap_stem); z2=(x1+cap_stem+c,h-1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-cap_stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"5C",2cap_stem#+3s#+2c#,cap_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(x1+cap_stem+c,1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"7b",10u#-1.5c#,x_height#,0); "En dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"3D",10u#+1.5c#,x_height#,0);
+ z1=(s+1/2bar,bar_height-3c); z2=(w-s-1/2bar,bar_height-3c);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+3c); z4=(w-s-1/2bar,bar_height+3c);
+ penpos3(bar,90); penpos4(bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"23",13u#,asc_height#,body_depth#);
+ z1=(s+1/2bar,bar_height-5c); z2=(w-s-1/2bar,bar_height-5c);
+ penpos1(1.5bar,90); penpos2(1.5bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+5c); z4=(w-s-1/2bar,bar_height+5c);
+ penpos3(1.5bar,90); penpos4(1.5bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ z5=(.5w-5c,bar_height); z6=(.5w+5c,bar_height);
+ z7=z5+whatever*dir 76; y7=h; z8=whatever[z5,z7]; y8=-d;
+ penpos7(1.5bar,0); penpos8(1.5bar,0);
+ fill z7l{up}..{down}z7r--z8r{down}..{up}z8l--z7l&cycle;
+ z9=z6+whatever*dir 76; y9=h; z10=whatever[z6,z9]; y10=-d;
+ penpos9(1.5bar,0); penpos10(1.5bar,0);
+ fill z9l{up}..{down}z9r--z10r{down}..{up}z10l--z9l&cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"7c",14u#,x_height#,0); "Em dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(oct"55",2cap_jut#+cap_stem#+2s#,x_height#,0); "hyphen";
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"5F",1.1stem#+2s#,x_height#+2.1stem#,0);
+ z1=(.5w,h); z2=(.5w,h-1.1stem);
+ fill z1..z2..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7E",7u#,body_height#,0);
+ pickup pencircle xscaled .6pt yscaled .2pt rotated 55;
+ z4=(w-s-c,h-s); x1=s+c; y1=y4-1/2cap_stem;
+ y2-y1=y4-y3=3(y4-y1); z2-z1=z4-z3=whatever * dir 55;
+ draw z1..controls z2 and z3..z4;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"3C",7u#-2c#,x_height#,0); "looks like <<";
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.5stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3E",7u#-2c#,x_height#,0);
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.5stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ z10=(.5w,.5h);
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ currentpicture := currentpicture rotatedaround(z10,180);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3B",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+3/2c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ z8=(s,h-1/2cap_stem); z9=(w-s,h-1/2cap_stem);
+ fill z8..z9..cycle;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(hex"3A",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ fill z1..z2..cycle;
+ penlabels(1,2,3,4);
+ z3=(s,1/2cap_stem); z4=(w-s,1/2cap_stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2B",2cap_jut#+cap_stem#+2s#,x_height#,0);
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ x3=x4=.5w; y3=y2+1/2(x2-x1); y4=y2-1/2(x2-x1);
+ penpos3(1.8bar,0); penpos4(1.8bar,0);
+ penstroke z3e--z4e;
+ fill z3r..z3l..cycle; fill z4r..z4l..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2F",2s#+bar#,body_height#,body_depth#);
+ z1=(.5w,h-.5bar); z2=(.5w,-d+.5bar);
+ %pickup pencircle xscaled bar yscaled bar;
+ penpos1(bar,0); penpos2(bar,0);
+ penstroke z1e--z2e; fill z1r..z1l..cycle;
+ fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"27",cap_stem#+2s#+c#,x_height#+2.1stem#,0);
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ z6=(.5w-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"28",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"29",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"86",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"87",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"5B",2s#+3cap_bar#,body_height#,body_depth#);
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x2,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z1r..z1l..cycle; fill z6r..z6l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"5D",2s#+3cap_bar#,body_height#,body_depth#);
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x1,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z2r..z2l..cycle; fill z5r..z5l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"B9",16u#,cap_height#,0);
+ x1=x2=cap_jut+1/2cap_bar+s+cap_stem;
+ x3=w-x1-1/2cap_stem; y1c=h; y4=y5=0;
+ x4=x3r; x5=x3l; y2=12/53h; y3=h-y2;
+ x8=x2-stem; y8=0; z9=z8;
+ dl_drop(9,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill dl_drop_edge9; penpos8(bar,-90);
+ serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+ penpos2(bar,0); penpos3(bar,0);
+ penstroke z2e{down}..{left}z8e;
+ fill z2l--z2r--reverse serif_edge1--cycle;
+ numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+ theta1=angle(z5-z7); x10=x3+stem; y10=h; z11=z10;
+ penpos10(bar,-90); penstroke z3e{up}..{right}z10e;
+ ur_drop(11,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill ur_drop_edge11;
+ z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+ fill z6--z1h--z7--z5{down}..{up}z4--z3r--z3l--cycle;
+ unfill z1b--z1l--z1a--cycle;
+ y12=y13=2cap_bar; x12=x4+2cap_bar+s; x13=w-2s;
+ penpos12(.4stem,90); penpos13(.4stem,90);
+ penstroke z12e--z13e; y16=y11d-4cap_bar;
+ x13-x14=x14-x12; x16=x14; y14=y13+4cap_bar;
+ x17=w-s-1/4stem; x17-x16=x16-x15; y16-y15=y15-y14;
+ y17=y15; penpos17(.7stem,0); penpos16(bar,90);
+ penpos15(.7stem,180); penpos14(bar,270);
+ penstroke z17e{up}..{left}z16e{left}..{down}z15e{down}..{right}z14e{right}..{up}z17e;
+ fill z12l..tension1.2..z12r..tension1.2..cycle;
+ fill z13l..tension1.2..z13r..tension1.2..cycle;
+ penlabels(range 1 thru 17);
+endchar;
+
+beginchar(hex"24",9u#-s#,body_height#,body_height#-cap_height#);
+ x6=x7=1/2w-c; y6=y7=0;
+ dl_drop(7,.9cap_drop_round,x6-s,1.5drop_round,cap_bar);
+ y5=10/53cap_height; x5=w-s-1/2(1.9hair);
+ y4=1/2cap_height; x4=19/38w; y3=41/53cap_height; x3=s+1/2(1.9cap_bar);
+ x2=.5w+c; y2=cap_height; z1=z2;
+ penpos6(cap_bar,-90); penpos5(1.9hair,0);
+ penpos4(1.1cap_curve,90); penpos3(1.9hair,0);
+ penpos2(cap_bar,-90);
+ penstroke z6e{right}..z5e..tension.9..z4e..tension.9..z3e..{right}z2e;
+ fill dl_drop_edge7;
+ ur_drop(1,.9cap_drop_round,w-s-x2,1.5drop_round,cap_bar);
+ fill ur_drop_edge1;
+ z8=(.5w,h); z9=(.5w,-d);
+ penpos8(cap_bar,0); penpos9(cap_bar,0);
+ penstroke z8e--z9e;
+ fill z9r..z9l..cycle; fill z8r..z8l..cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"25",12u#,asc_height#,0);
+penpos1(vair,90); penpos2(.5curve,0);
+penpos3(vair,-90); penpos4(.5curve,-180);
+y1=.55h; y3=h; y3-y4=y4-y1; y2=y4; x2=1/4curve+s; x4=2curve+s;
+x4-x1=x1-x2; x3=x1;
+penstroke z1e{left}..tension.9..{up}z2e{up}..tension1.2..{right}z3e..tension.9..{down}z4e{down}..tension1.2..{left}z1e..cycle;
+penpos5(vair,90); penpos6(.5curve,0);
+penpos7(vair,-90); penpos8(.5curve,-180);
+y5=0; y7=.45h; y7-y8=y8-y5; y6=y8; x8=w-1/4curve-s; x6=w-2curve-s;
+x8-x5=x5-x6; x7=x5;
+penstroke z5e{left}..tension.9..{up}z6e{up}..tension1.2..{right}z7e..tension.9..{down}z8e{down}..tension1.2..{left}z5e..cycle;
+x9l=x7; y9=h; x10r=x1; y10=0;
+penpos9(1.2bar,0); penpos10(1.2bar,0);
+penstroke z9e--z10e;
+penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"26",14u#,cap_height#,0);
+x4=x8=x3+.55curve; y6=0; y2=h; x2=x3+.9cap_curve;
+y7=13/53h; y5=9/53h; x5=x7+3cap_curve; x6=x7+1.8cap_curve;
+y4=y8=30/53h; y1=44/53h; y3=42/53h; x3=4s+.8curve;
+x1=x3+1.8cap_curve; x7=s+1/2cap_curve;
+x10=w-s; y10=9/53h; x10-x9=x9-x5; y9=1/5cap_curve;
+th:=angle(z4-z5)+5; th1:=th-11; x11h=w-s-c; y11h=y1-4s;
+A_serif(11,cap_bar,-110,cap_jut,cap_jut); z12l=z11a;
+penpos6(cap_bar,-90); penpos5(cap_stem,45);
+penpos4(cap_stem,45); penpos3(2.5hair,0);
+penpos2(cap_bar,-90); penpos1(2hair,-180);
+penpos7(cap_curve,-180); penpos8(cap_bar,-250);
+penpos9(.5cap_curve,70); penpos10(cap_bar,150);
+penpos12(cap_bar,0);
+penstroke z10e..z9e..z5e{dir th}..{dir th1}z4e..tension.9..z3e..tension1..z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e{dir 8}..{dir 70}z12e;
+fill z12l--z12r..reverse A_serif_edge11--cycle;
+fill z10l..tension1.2..z10r..tension1.2..cycle;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"40",14u#,x_height#+2curve#,2curve#);
+a_width:=9u+c-2s;
+x1=2s+a_width-s-3/4stem+1.5curve; y1=x_height; y2=7/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=3s+a_width+1.5curve; y4=15/33x_height;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.2vair,270); penpos4(bar,360);
+x5=x1-3/2stem; y5=x_height; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c+1.2curve; y6=.54x_height; y8=.46x_height; z8l=whatever[z1r,z2r];
+x13=x5; y13=h-1/2bar; x14=s+1/2bar; y14=y6; y15=-d+1/2bar; x15=x7;
+x16=x4; y16=-d+3bar; penpos7(vair,270); penpos16(bar,270);
+penpos13(bar,90); penpos14(bar,180); penpos15(bar,270);
+penpos8(2bar,0); penpos5(vair,90); penpos6(curve,180);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 80}z4e..z13e{left}..z14e..{right}z15e..z16e;
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=x_height-c; z10=(x1r+c,x_height); z11=(x1l-c,x_height);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+fill z16r..z16l..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar(hex"12",1.5cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=s+.45cap_stem*cosd 45;
+x2=w-s+cap_bar*cosd 45; z2=z1+whatever*dir -45;
+penpos1(.8cap_stem,45); penpos2(cap_bar,45);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"13",1.5cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=w-s-.45cap_stem*cosd 45;
+x2=s-cap_bar*cosd 45; z2=z1+whatever*dir -135;
+penpos1(.8cap_stem,135); penpos2(cap_bar,135);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"3F",7u#+1.5s#,cap_height#,0);
+ x1=s+4/5cap_stem; y1=1/2cap_stem;
+ penpos1(cap_stem,0);
+ fill z1r..z1l..cycle;
+ y2=cap_stem+cap_bar; x2=x1;
+ z3l=z2l+whatever*dir 96; y3l=25/53h;
+ penpos2(cap_bar,0); penpos3(cap_bar,0);
+ penstroke z2e--z3e;
+ z4l=z3l; penpos4(cap_bar,0);
+ y5=y4-2bar; x5=x4+3cap_bar; penpos7(cap_bar,-90);
+ x6=w-s-1/2cap_curve; y6=37/51h; x7=12/31w; y7=h;
+ penpos5(cap_bar,90); penpos6(cap_curve,180); z8=z7;
+ penstroke z4e{dir -69}..z5e{dir 10}..tension1..{up}z6e{up}..tension.9..{left}z7e;
+ ul_drop(8,.8cap_drop_round,x7-s,cap_curve,cap_bar);
+ fill ul_drop_edge8;.
+ fill z3r..tension1.2..z3l..tension1.2..cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"10",2jut#+stem#+2s#,x_height#,0);
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"11",5u#+c#,x_height#,desc_depth#);
+x1h=w-s; y1c=x_height; y2=0; x2=x1;
+serif(1,stem,-90,1.5jut,0);
+penpos2(stem,0);
+fill z2l--z2r--reverse serif_edge1--cycle;
+y5=-1/4desc_depth; x5r=x2r;
+y6=-d+1/2bar; x6=x2l-.4stem;
+penpos5(.97stem,0);
+penpos6(bar,-90);
+penstroke z2e--z5e{down}..{left}z6e;
+x7e=s; y7=-d+1/2bar;
+dl_drop(7,stem,x6-x7e,drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(hex"2A",3cap_stem#+3s#,body_height#,0);
+ x1=x2=x3=x4=.5w; y1=h-1/2stem; y2=y1-cap_stem; y3=y2-bar; y4=y3-bar;
+ penpos1(stem,0); penpos2(cap_bar,0); penpos3(2cap_bar,0);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle;
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,60);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,120);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,180);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,240);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,300);
+ penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"0B",4jut#+2stem#+5s#,asc_height#,0);
+w:=w+1;
+numeric dist; dist := 2jut+2stem-3c;
+x1g=x2g=s+dist; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x1; y3=x_height; x4r=x1l-.1stem; y4=x_height+1/2(asc_height-x_height);
+x5l=x4l-.05stem; y5=y4+1.5bar; x6=round (x1r+.2stem); y6=h-1/2bar;
+penpos3(stem,180);
+penpos4(.75curve,180);
+penpos5(.6curve,180);
+penpos6(bar,90);
+penstroke z3e{dir 95}...{up}z4e..z5e..{right}z6e;
+y6=y7; x7e=w-s;
+ur_drop(7,stem,x7e-x6,drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+x11g=x12g=s; y11c=x_height; y12c=0;
+serif(11,stem,-90,jut,jut);
+serif(12,stem,90,jut,jut);
+fill serif_edge12--reverse serif_edge11--cycle;
+x13=x11; y13=x_height; x14l=x13l; y14=x_height+1/2(asc_height-x_height);
+x15l=x14l; y15=y14+1.5bar; x16=x11r+.8stem; y16=h-1/2bar;
+x17r=x5l; y17=y5;
+penpos13(stem,180);
+penpos14(.75curve,180);
+penpos15(.6curve,180);
+penpos16(bar,90);
+penpos17(bar,0);
+penstroke z13e{dir 95}...{up}z14e..z15e..{right}z16e{right}..{down}z17e;
+fill z11d--z1c--z1b--z11e--cycle;
+penlabels(1,2,3,4,5,6,7,11,12,13,14,15,16,17);
+endchar;
+
+beginchar(hex"5E",6u#,body_height#,0);
+ x1=s+.45cap_bar*cosd 45; x2=w/2; y2=h-bar;
+ z1=z2+whatever*dir -135; x3=w-x1; z3=z2+whatever*dir -45;
+ penpos1(bar,135); penpos2(2bar,90); penpos3(bar,45);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"16",6u#,body_height#,0);
+ x1=s; x2=w-x1; y1=y2=h-4bar;
+ penpos1(.8bar,90); penpos2(.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7F",2stem#+4s#,x_height#+2.1stem#,0);
+ z1=(s+.5stem,h); z2=(s+.5stem,h-stem);
+ fill z1..z2..cycle;
+ z3=(w-s-.5stem,h); z4=(w-s-.5stem,h-stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+ligtable CYR_A: "A":
+ CYR_O kern -k#,
+ "O" kern -k#,
+ CYR_ES kern -k#,
+ "C" kern -k#,
+ CYR_TE kern -k#,
+ CYR_U kern -kk#,
+ CYR_EF kern -k#,
+ CYR_CHE kern -kkk#,
+ CYR_HARD_SIGN kern -k#,
+ "W" kern -kkk#,
+ "V" kern -kkk#,
+ "Y" kern -kkk#,
+ "T" kern -k#,
+ "w" kern -kk#,
+ "v" kern -kk#,
+ %CYR_o kern -k#,
+ %CYR_es kern -k#,
+ CYR_che kern -kk#;
+ %CYR_ie kern -k#,
+ %CYR_ye kern -k#;
+
+ligtable CYR_GHE: CYR_TE: "T":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_DE kern -k#,
+ CYR_EL kern -kk#,
+ CYR_el kern -k#,
+ CYR_o kern -k#,
+ "o" kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#;
+
+ligtable CYR_O: CYR_E: CYR_YU:
+ CYR_U kern -k#,
+ "X" kern -k#,
+ CYR_HA kern -k#;
+
+ligtable CYR_ER: "P":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_EL kern -k#,
+ CYR_el kern -k#;
+
+ligtable CYR_U:
+ CYR_A kern -kkk#,
+ "A" kern -kkk#,
+ CYR_O kern -k#,
+ "O" kern -k#,
+ CYR_ES kern -k#,
+ "C" kern -k#,
+ CYR_EL kern -kk#,
+ CYR_el kern -kkk#,
+ CYR_EF kern -k#;
+
+ligtable CYR_HA: "X":
+ "O" kern -k#,
+ CYR_O kern -k#,
+ "Q" kern -k#,
+ "C" kern -k#,
+ CYR_ES kern -k#,
+ "G" kern -k#;
+
+ligtable CYR_ghe: CYR_te:
+ CYR_de kern -k#,
+ CYR_el kern -k#;
+
+ligtable CYR_o: CYR_er: CYR_e: CYR_yu: CYR_ye:
+ "x" kern -k#,
+ CYR_ha kern -k#;
+
+ligtable CYR_u: "y":
+ CYR_de kern -k#,
+ CYR_el kern -k#,
+ CYR_ie kern -k#,
+ "e" kern -k#,
+ CYR_es kern -k#,
+ "c" kern -k#,
+ CYR_ye kern -k#,
+ CYR_ef kern -k#;
+
+ligtable CYR_ha: "x":
+ CYR_ie kern -k#,
+ "d" kern -k#,
+ "e" kern -k#,
+ "o" kern -k#,
+ "q" kern -k#,
+ CYR_o kern -k#;
+
+ligtable "D": "O": "Q":
+ "X" kern -k#;
+
+ligtable "L":
+ "T" kern -kk#,
+ CYR_TE kern -kk#,
+ "Y" kern -kk#;
+
+ligtable "V": "W":
+ "A" kern -kkk#,
+ CYR_A kern -kkk#,
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ CYR_el kern -kk#,
+ CYR_EL kern -k#,
+ "d" kern -k#;
+
+ligtable "Y":
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "d" kern -k#,
+ "A" kern -kk#,
+ CYR_A kern -kk#;
+
+ligtable "a": CYR_a:
+ "V" kern -kk#,
+ "W" kern -kk#,
+ "T" kern -k#,
+ CYR_TE kern -k#,
+ "y" kern -k#,
+ CYR_u kern -k#,
+ "v" kern -k#,
+ "u" kern -k#,
+ CYR_che kern -kk#,
+ "Y" kern -kk#;
+
+ligtable "e": CYR_ie:
+ CYR_ha kern -k#,
+ "v" kern -k#,
+ "w" kern -k#,
+ "V" kern -k#,
+ "W" kern -k#;
+
+ligtable "f":
+ "f" =: hex"0B";
+
+ligtable "k": "l":
+ CYR_o kern -k#,
+ "o" kern -k#;
+
+ligtable "m": "n":
+ "y" kern -k#,
+ CYR_u kern -k#,
+ CYR_o kern -k#,
+ "o" kern -k#;
+
+ligtable "o": "b": "p":
+ "e" kern k#,
+ CYR_ie kern k#,
+ "o" kern k#,
+ CYR_o kern k#,
+ "v" kern -k#,
+ "w" kern -k#,
+ "V" kern -k#,
+ "W" kern -k#,
+ "x" kern -k#,
+ CYR_ha kern -k#, 1:: "!" kern kk#;
+
+ligtable "v": "w":
+ "A" kern -kk#,
+ CYR_A kern -kk#,
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ "d" kern -k#;
+
+ligtable hex"37":
+ CYR_A kern -kk#,
+ "A" kern -kk#;
+ligtable oct"55":
+ oct"55" =: hex"7b";
+ligtable hex"7b":
+ oct"55" =: hex"7c";
+end
diff --git a/fonts/obnov/obnb17.mf b/fonts/obnov/obnb17.mf
new file mode 100644
index 0000000000..7476017da6
--- /dev/null
+++ b/fonts/obnov/obnb17.mf
@@ -0,0 +1,3490 @@
+%written by Basil Solomykov, Russia
+%(C) Copyright 2011 LPPL (LaTeX Project Public License)
+%Font Ordinary New (Obyknovennaya novaya), Bold
+
+design_size := 17.28pt#;
+o# := 1.3*.7776pt#;
+u# := 1.1*32/35pt#;
+bar# := 17.28/36pt#;
+slab# := 17.28/36pt#;
+cap_bar# := 17.28/36pt#;
+vair# := 17.28/36pt#;
+hair# := 17.28/36pt#;
+jut# := 34.56/36pt#;
+cap_jut# := 44.928/36pt#;
+stem# := 1.3*51.84/36pt#;
+curve# := 1.3*53.568/36pt#;
+cap_stem# := 1.3*62.21/36pt#;
+cap_curve# := 1.3*64.28/36pt#;
+s# := 0.65pt#;
+c# := .32pt#;
+
+input obn_lcyw_code.mf;
+font_identifier "OBNB";
+mode_setup;
+clear_pen_memory;
+
+font_size design_size*pt#;
+asc_height# := 24/36*design_size*pt#;
+cap_height# := 24/36*design_size*pt#;
+body_height# := 27/36*design_size*pt#;
+x_height# := 15.4/36*design_size*pt#;
+desc_depth# := 8/36*design_size*pt#;
+body_depth# := 9/36*design_size*pt#;
+comma_depth# := 5/36*design_size*pt#;
+x_depth# := 4/5comma_depth#;
+bar_height# := .52x_height#;
+cap_bar_height# := .52cap_height#;
+cap_bar2_height# := .45cap_height#;
+border_height# := comma_depth#;
+cap_drop_round# := 4.3*slab#;
+drop_round# := 6.7/8cap_drop_round#;
+
+bracket# := pt#;
+A_bracket# := 1.6pt#;
+
+font_x_height x_height#;
+font_normal_space 6u#;
+font_normal_stretch 4u#;
+font_normal_shrink 2u#;
+font_quad 16u#;
+font_extra_space 6u#;
+
+k# := .8u#;
+kk# := 1.5u#;
+kkk# := 3u#;
+
+serif_darkness := 1/30;
+define_pixels(bracket,cap_o_width,sss_width,css_width);
+define_pixels(c,s,cap_bar_height,cap_bar2_height);
+define_pixels(border_height,A_bracket,cap_drop_round,x_depth,drop_round);
+define_whole_blacker_pixels(stem,cap_stem,curve,cap_curve,bar,slab,cap_bar,vair,hair);
+define_whole_pixels(asc_height,cap_height,x_height,u,desc_depth,comma_depth,bar_height,body_height,body_depth,u,o,cap_jut,jut);
+%define_corrected_pixels();
+lowres_fix(stem,curve) 1.2;
+lowres_fix(cap_stem,cap_curve) 1.2;
+if jut=cap_jut: jut:=jut-1; fi
+
+def serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g if left_jut=0: -1/2slab fi +1/2slab; x$d=x$e=x$h if right_jut=0: +1/2slab fi-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def serif_edge suffix $ =
+(serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse serif_bracket($f,$r,$e)) enddef;
+
+def serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...serif_darkness[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def T_serif(suffix $)(expr slab, bord_height, direction)= %Direction: 0-left, 1-right;
+penpos$(slab,if direction=1: - fi 90);
+x$=x$a=x$g; y$g-y$=y$-y$a=1/2slab;
+x$b=x$a + if direction=0: - fi .882bord_height; y$b=y$d=y$c+1/2slab;
+x$c=x$b + if direction=0: - fi 1/2slab; y$c=y$a-bord_height;
+x$d=x$e=x$b + if direction=0: - fi slab;
+y$e=y$g-1/2slab; y$f=y$g; x$f=x$c;
+labels($a,$b,$c,$d,$e,$f,$g) enddef;
+
+def T_edge suffix $ =
+(z$a..{down}z$b..z$c..z$d--z$e{up}..z$f--z$g--cycle) enddef;
+
+def A_serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(A_bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g+1/2slab; x$d=x$e=x$h-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def A_serif_edge suffix $ =
+(A_serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse A_serif_bracket($f,$r,$e)) enddef;
+
+def A_serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...0.6[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def ur_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a= 1/2slab;
+x$e=x$a + drop_length; y$e=y$f- drop_height;
+x$d=x$e - 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e - drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); if y$b > y$a: y$b := y$a; fi
+x$b=round (x$d - 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ur_drop_edge suffix $ =
+(z$f{right}..tension.9..{down}z$e{down}..{left}z$d{left}..{up}z$c{up}..z$b...{left}z$a--cycle) enddef;
+
+def ul_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$f- drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); if y$b > y$a: y$b := y$a; fi
+x$b=round (x$d + 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ul_drop_edge suffix $ =
+(z$f{left}..tension.9..{down}z$e{down}..{right}z$d{right}..{up}z$c{up}..z$b...{right}z$a--cycle) enddef;
+
+def dl_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, -90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$a + drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e + 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d - drop_round); if y$b < y$f: y$b := y$f; fi
+x$b=x$d + 1/90drop_round;
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def dl_drop_edge suffix $ =
+(z$a{left}..tension.9..{up}z$e{up}..{right}z$d{right}..{down}z$c..{dir 250}z$b{dir -80}..{right}z$f--cycle) enddef;
+
+def S_serif (suffix $)(expr serif_slab, serif_length, serif_height)=
+%penpos$(serif_slab,90);
+x$a=x$i=x$; y$i=y$+1/2serif_slab; y$a=y$-1/2serif_slab;
+x$f=x$e=x$a+serif_length; y$f=y$g-1/2serif_slab; y$e=y$c=y$d+1/2serif_slab;
+x$g=x$f-1/2serif_slab; y$g=y$i-1/2serif_slab;
+y$h=y$f-1/4serif_slab; x$h=x$g-serif_slab;
+x$c=x$e-serif_slab; x$d=x$e-1/2serif_slab; y$d=y$g-serif_height;
+x$b=x$h-6/18serif_length; y$b=y$h-1/2slab;
+labels ($a,$b,$c,$d,$e,$f,$g,$h,$i) enddef;
+
+def S_serif_edge suffix $ =
+(z$a{right}...z$b..{dir -80}z$c..z$d..z$e--z$f{up}..z$g{left}..z$h{dir 150}..{left}z$i--cycle) enddef;
+
+beginchar(CYR_A,13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar(CYR_BE,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=y5=h-1/2slab;
+y1c=h; y2c=0; x5e=w-s-1/2cap_stem;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h; x4=w-s-1/2cap_stem-border_height;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_VE,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+css_width := x8 - x2r; save css_width;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar(CYR_GHE,9u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; x3=x4+2u;
+y5=y3; x5e=w-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_DE,12u#,cap_height#,comma_depth#);
+x10e=w-s; y10c=-d;
+y4c=h; x4h=w-s-1/2slab;
+x9=x4; y9c=0;
+x3=x8=x9d; y8=y7=1/2cap_bar; y3=y2=h-y8;
+x6e=s; y6=y10; x7=border_height+s;
+y5=y9; x5g=s+.5u; y1=y4; x1=x5+1.5u;
+x2=x1c;
+A_serif(1,1.2cap_bar,-96,10/7cap_jut,cap_jut);
+A_serif(5,1.2cap_bar,81,6/7cap_jut,cap_jut);
+serif(4,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+penpos2(cap_bar,90);
+penpos3(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_bar,90);
+penstroke z7e--z8e; penstroke z2e--z3e;
+fill A_serif_edge5...reverse A_serif_edge1...cycle;
+fill serif_edge9--reverse serif_edge4--cycle;
+T_serif(6,slab,border_height,0);
+T_serif(10,slab,border_height,1);
+fill T_edge6;
+fill T_edge10;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_IE,10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_YE,10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+x12=x13=x2r-c; y12=h+1/4cap_stem; y13=y12+cap_stem;
+x14=x15=x12+1.7cap_stem; y14=y12; y15=y13;
+fill z12..z13..cycle; fill z14..z15..cycle;
+penlabels(range 1 thru 15);
+endchar;
+
+beginchar(CYR_ZHE,round (16u#+s#),cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; y7=y4=y10=y11=cap_bar_height; x4=x7-1.5u;
+x10=x8r; x11=x10+1.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+x6=s; y6=0; y4-y5=y5-y6; x4-x5=x5-x6;
+penpos7(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,90);
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z6e{right}..tension.8..{up}z5e{up}..tension.8..{right}z4e--z7e;
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,.9cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+x3=x5+1/2cap_stem; y2=h; x4-x3=x3-x2; y2-y3=y3-y4;
+penpos3(hair,0);
+penpos2(cap_bar,90);
+penstroke z4e{left}..tension.8..{up}z3e{up}..tension.8..{left}z2e;
+y1=h; x1a=x2; fill z6l..z6r..cycle;
+ul_drop(1,cap_drop_round,.9cap_drop_round,.9cap_drop_round,cap_bar);
+fill ul_drop_edge1; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ZE,10u#,cap_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height;
+x4=x6-3/2cap_stem; x5=x4-2.5u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.45w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.85..{down}z6e{down}..tension.85..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.45w-3c,1.4border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.3cap_drop_round,slab);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_I,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-20); penpos6(cap_bar,-20);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar(CYR_SHORT_I,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-20); penpos6(cap_bar,-20);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+x7=.5w; y7=h+cap_bar;
+ur_drop(7,.8cap_drop_round,1/2(x3l-x1r),.8cap_drop_round,1.2cap_bar);
+fill ur_drop_edge7 rotatedaround(z7,180);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_KA,12u#+s#,cap_height#,0);
+x8g=x9g=s; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+y10=y11=cap_bar_height;
+x10=x8r; x11=x10+2.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13; fill z16l..z16r..cycle;
+ur_drop(14,cap_drop_round,.9cap_drop_round,.9cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_EL,13u#,cap_height#,0);
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.9cap_drop_round; y3=1.1cap_drop_round;
+dl_drop(1,1.12cap_drop_round,cap_drop_round,cap_drop_round,slab);
+fill dl_drop_edge1;
+penpos2(cap_bar,-90);
+penpos3(cap_bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-slab;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,cap_bar,theta1,1.5cap_jut,1.5cap_jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,cap_stem,-90,cap_jut,cap_jut);
+serif(8,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_EM,13u#+c#,cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,.51cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 110; y7l=13/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EN,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_O,11u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+cap_o_width := x7-x3; save cap_o_width;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_PE,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ER,10u#+s#,cap_height#,0);
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_ES,10u#+s#,cap_height#,0);
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_TE,round (11u#+s#),cap_height#,0);
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_U,13u#+.5s#,cap_height#,0);
+x1l=s+cap_jut; y1l=.98h-cap_bar;
+x3r=w-s-.8cap_jut; y3r=.98h-cap_bar;
+x4=33/60w; y4=6/53h;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,1.2cap_bar,theta2,1.2cap_jut,.8cap_jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=0; x6=x4-.9cap_stem; z7l=z2;
+penpos7(cap_bar,theta2+90);
+penpos5(cap_bar,theta2+90);
+penpos6(cap_bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,cap_drop_round,2u, 10/53h, round cap_bar);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EF,round (14u#+s#),cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1=x2=.5w; y2c=0; y1h=h;
+y6=y7=y8=y9=1.3cap_jut; y4=y3=y11=y12=h-1.3cap_jut+1/2slab;
+x3=x7=x2l; x8=x12=x2r; x4=x6=x3-u; x11=x9=x12+u;
+x5=s+1/2cap_curve; x10-x1=x1-x5; y4-y5=y5-y6; y10=y5;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,270);
+penpos7(cap_bar,270);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+penpos10(cap_curve,0);
+penpos11(cap_bar,90);
+penpos12(cap_bar,90);
+penstroke z3e--z4e{left}..tension.8..{down}z5e{down}..tension.8..{right}z6e--z7e;
+penstroke z8e--z9e{right}..tension.8..{up}z10e{up}..tension.8..{left}z11e--z12e;
+penlabels (range 1 thru 12);
+endchar;
+
+beginchar(CYR_HA,12u#+s#,cap_height#,0);
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_TSE,12.5u#+s#,cap_height#,comma_depth#);
+x1=x2=x5=cap_jut+1/2cap_stem+s;
+x3=x4=x6=w-x1-.5u; y5=y6=y2h;
+y1c=y3c=h; y2c=y4c=0; x7e=w-s; y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e;
+T_serif(7,cap_bar,border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_CHE,12u#+s#,cap_height#,0);
+x1=cap_jut+1/2cap_stem+s;
+x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,-90,cap_jut,cap_jut);
+serif(3,cap_stem,90,cap_jut,cap_jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=round(cap_bar_height-1/2cap_bar); z6=z4;
+x5-x7=x7-x4r; y7=y5-1.5cap_bar;
+penpos6(cap_stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SHA,16u#+s#,cap_height#,0);
+if .5w <> good.x .5w: change_width; fi
+x1=x2=good.x (cap_jut+1/2cap_stem+s);
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=good.x .5w; y5=y1; y6=y2;
+y9b=slab; x9=good.x w-x1;
+x10=x9; y10b=h-slab;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_SHCHA,16.5u#+s#,cap_height#,comma_depth#);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=slab; x9h=w-s-.5u;
+x10=x9; y10b=h-slab;
+x11e=w-s; y11=y9h;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,slab,border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_HARD_SIGN,13.5u#+c#,cap_height#,0);
+x2r=x5-css_width; x1=x2; x8e=s; y8g=h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+x7=x1d; y1c=h; y2c=0;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=round(x3+5u-cap_stem);
+y6=y7=y2h;
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(8,cap_bar,border_height,0);
+fill T_edge8;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YERU,16u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+y3=y4=cap_bar_height; x3=round x2r; x4=x6=round (x3+5u-cap_stem) - 1;
+y4-y5=y5-y6; x5=x2r+css_width; y8b=slab; x8h=w-s;
+y6=y7=y2h; x9=x8; y9b=h-slab;
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(8,cap_stem,90,cap_jut,cap_jut);
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge9--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SOFT_SIGN,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=x3+5u-cap_stem;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y6=y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_E,10u#+.5s#,cap_height#,0);
+x1=16/39w; x5=.5w; y1=0; y5=h;
+y7=.5h; x7=w-1/2cap_curve-s;
+x9e=s; y9=0;
+dl_drop(9,cap_drop_round,16/39w-s,1.5cap_drop_round,slab);
+y8=0.1h-c; y6=0.9h+c; x8=x9+9/16(x7-x9); x6=x5+9/16(x7-x5);
+penpos5(cap_bar,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+penpos1(cap_bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+y2=y5; x2=x5-c;
+S_serif(2,slab,x1+c,1.5border_height);
+x3=x7-1/2cap_stem; y3=y4=cap_bar_height; x4=x2b-x1;
+penpos3(cap_bar,90); penpos4(cap_bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YU,16u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+y3=y7=.5h; x7=w-1/2cap_curve-s; x3=x7-cap_o_width; y9=0; y5=h; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3cap_stem; y11=y12=cap_bar_height;
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_YA,11u#+s#,cap_height#,0);
+x1=x2=w-cap_jut-1/2cap_stem-s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2l;
+y1c=h; y2c=0; x6=x4=x7-2.5u; x3=x1c;
+y4-y5=y5-y6; x5=x8-1.5c; x9=s; y9=0; y6-y8=y8-y9; x7-x10=3(x10-x6); x10-x8=x8-x9;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos7(cap_bar,270);
+penpos6(cap_bar,270);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90); fill z9l..z9r..cycle;
+penstroke z3e--z4e{left}..tension.9..z5e..tension.9..{right}z6e--z7e;
+penstroke z9e{right}..tension1..{up}z8e{up}..tension1..{right}z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_a,9u#-s#+2/7stem#,x_height#,0);
+x5=w-s-1/2bar; y5=0; y4=6/7stem; x4=x3=x5-5/7stem-1/2stem;
+y3=bar_height+2bar; y2=y1=h; x2=s+c+6/20w; x1e=s+c;
+ul_drop(1,drop_round,x2-s-c,5/4drop_round,bar);
+fill ul_drop_edge1;
+penpos2(bar,90);
+penpos3(stem,0);
+penpos4(stem,0);
+penpos5(bar,90);
+penstroke z2e{right}..{down}z3e--z4e{down}..{right}z5e;
+fill z5r..z5l..cycle;
+y6=bar_height+1/2bar; x6=x3+1/2stem; x7=s+1/2stem; y7=7/17bar_height;
+y8=0; x9=x4-1/2stem+1/2bar; 8(x9-x8)=7(x8-x7); y9=y4+3/2bar; x66=x8; y66=y6-c;
+numeric theta[]; theta1=angle(z66-z6);
+penpos6(vair,90);
+penpos66(vair,90);
+penpos7(curve,180);
+penpos8(vair,270);
+penpos9(bar,360);
+penstroke z6e{left}..z66e{dir theta1}..tension.9..{down}z7e{down}..tension.9..z8e{right}..{up}z9e;
+penlabels(range 1 thru 9,66);
+endchar;
+
+beginchar(CYR_be,8u#,asc_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=x_height;
+y3=y7=.5x_height; x3=.5curve+s; x7=w-.5curve-s;
+y2=y8=0.08x_height; y4=y6=0.92x_height; x2=x4=x3+14/32(x5-x3); x6=x8=x5+18/32(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+y9=y3; x9=s+1/2bar; y10=44/51h; x10=x5+c; x11=w-s-1/2bar; y11=h-1/2bar; %x11=w-1/2bar*sind 45; y11=h-1/2bar*sind 45;
+penpos9(hair,180);
+penpos10(curve,90);
+penpos11(hair,180);
+penstroke z9e{up}..tension.8..{right}z10e{right}..tension1..z11e;
+fill z11r..tension1.2..z11l..tension1.2..cycle;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_ve,9u#-.8s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x9=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h; y8=y9=h-1/2bar; x8=x1d;
+y9-y10=y10-y4; x10=x5-c;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penpos8(bar,270);
+penpos9(bar,270);
+penpos10(curve,180);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penstroke z9e{right}..tension.8..z10e..tension.8..{left}z4e;
+sss_width := x5 - x2r; save sss_width;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ghe,7u#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; y3=y4=y5=h-1/2bar; x3=x1d; x5e=w-s;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+T_serif(5,bar,4/5border_height,1);
+x4=x5;
+fill serif_edge2--reverse serif_edge1--cycle;
+fill T_edge5;
+penpos3(bar,90);
+penpos4(bar,90);
+penstroke z3e--z4e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_de,9u#,x_height#,x_depth#);
+x3=x4=w-jut-1/2stem-s-.1u;
+y3c=h; y4c=0;
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+x7e=s; x10e=w-s; y7=y8=y9=y10=y4h; x8=x7; x9=x4c;
+T_serif(7,bar,4/5border_height,0);
+T_serif(10,bar,4/5border_height,1);
+fill T_edge7; fill T_edge10;
+penpos8(bar,90); penpos9(bar,90);
+penstroke z8e--z9e;
+x2=s+1.3jut+1/2bar; y2=bar; x1=x2+3/2bar; y1=h-bar;
+numeric theta[]; theta1=angle(z1-z2);
+A_serif(1,bar,theta1-180,1.3jut,jut);
+A_serif(2,bar,theta1,1.3jut,.8jut);
+fill A_serif_edge2..reverse A_serif_edge1..cycle;
+y5=y6=y3h; x5=x1d; x6=x3c;
+penpos5(bar,90);
+penpos6(bar,90);
+penstroke z5e--z6e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ie,8u#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=.52w; x5=.5w; y1=0; y5=h;
+y3=.5h; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.1h; y4=y6=0.9h; x2=x3+3/8(x5-x3)+.2c; x4=x2-.1c; x6=x5+5/8(x7-x5);
+x10=w-s-1/2bar; y10=y7-stem;
+penstroke z10e{down}..tension1.1..{left}z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ye,8u#,asc_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=.52w; x5=.5w; y1=0; y5=x_height;
+y3=.5x_height; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.1x_height; y4=y6=0.9x_height; x2=x3+3/8(x5-x3)+.2c; x4=x2-.1c; x6=x5+5/8(x7-x5);
+x10=w-s-1/2bar; y10=y7-stem;
+penstroke z10e{down}..tension1.1..{left}z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+y12=y14=h; y11=y13=h-stem; x11=x12=x3r+c; x13=x14=x7r-c;
+fill z11..z12..cycle; fill z13..z14..cycle;
+penlabels(range 1 thru 14);
+endchar;
+
+beginchar(CYR_zhe,round (13u#+c#),x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,stem,-90,jut,jut);
+serif(9,stem,90,jut,jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; x4=x7-u; y4=y7=y10=y11=bar_height; x10=x8r; x11=x10+u;
+x6=s+1/2bar; y6=y16=0; y4-y5=y5-y6; x4-x5=1.3(x5-x6);
+x16=w-s-1/2bar; 1.3(x16-x15)=x15-x11; y11-y15=y15-y16;
+x2=x5-c; y2=y1=h; x4-x3=x3-x2; y2-y3=y3-y4; x1e=s+c;
+y13=y14=h; x13=x15+c; x13-x12=x12-x11; y13-y12=y12-y11; x14e=w-s-c;
+penpos2(bar,90);
+penpos3(hair,0);
+penpos4(bar,90);
+penpos5(curve,180);
+penpos6(bar,90);
+penpos7(bar,90);
+penpos10(bar,90);
+penpos11(bar,90);
+penpos12(hair,180);
+penpos13(bar,90);
+penpos15(curve,0);
+penpos16(bar,90);
+penstroke z7e--z4e{left}..tension.9..{down}z5e{down}..tension.9..{left}z6e;
+fill z6r..z6l..cycle;
+penstroke z10e--z11e{right}..tension.9..{down}z15e{down}..tension.9..{right}z16e;
+fill z16r..z16l..cycle;
+penstroke z4e{left}..z3e..{left}z2e;
+penstroke z11e{right}..z12e..{right}z13e;
+ul_drop(1,drop_round,x2-s-.7c,3/4drop_round,bar);
+ur_drop(14,drop_round,x2-s-.7c,3/4drop_round,bar);
+fill ul_drop_edge1; fill z1e..z1c..cycle;
+fill ur_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ze,6u#+2s#,x_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=bar_height;
+x4=x6-3/2stem; x5=x4-u;
+x6=w-s-1/2curve; y4-y6=y6-y7;
+x2=.45w; y2=h; x3=x6-1/5curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(bar,90);
+penpos3(curve,0);
+penpos44(bar,-90);
+penpos4(bar,90);
+penpos5(bar,90);
+penpos6(curve,0);
+penpos7(bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3.5c,border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,drop_round,18/39w-s,1.2drop_round,bar);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_i,9u#+s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r-1/2bar; x6=x3l+1/2bar;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,-20); penpos6(bar,-20);
+y5=.1h; y6=.9h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_short_i,9u#+s#,asc_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r-1/2bar; x6=x3l+1/2bar;
+y1c=y3c=x_height; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,-20); penpos6(bar,-20);
+y5=.1x_height; y6=.9x_height; penstroke z5e--z6e;
+x7=.5w; y7=h-3/2drop_round;
+ur_drop(7,drop_round,x3-.5w,1.1drop_round,1.2bar);
+fill ur_drop_edge7 rotatedaround(z7,180);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ka,9u#+.5s#,x_height#,0);
+x1g=x2g=s; y1c=h; y2c=y9=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=bar_height; x3=x1r; x4=x3+1.25u;
+x9=w-s-1/2bar; 1.3(x9-x8)=x8-x4; y4-y8=y8-y9;
+y6=y7=h; x6=x8+c; x6-x5=x5-x4; y6-y5=y5-y4; x7e=w-s-c;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(hair,180);
+penpos6(bar,90);
+penpos8(curve,0);
+penpos9(bar,90);
+penstroke z3e--z4e{right}..tension.9..{down}z8e{down}..tension.9..{right}z9e;
+fill z9r..z9l..cycle;
+penstroke z4e{right}..z5e..{right}z6e;
+ur_drop(7,drop_round,w-x6-s-.7c,3/4drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_el,9u#+c#,x_height#,0);
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.7drop_round; y3=1.1drop_round;
+dl_drop(1,drop_round,drop_round,drop_round,bar);
+fill dl_drop_edge1;
+fill z1c..z1e..cycle;
+penpos2(bar,-90);
+penpos3(bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-bar;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,bar,theta1,1.4jut,1.3jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,stem,-90,jut,jut);
+serif(8,stem,90,jut,jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(bar,90);
+penpos6(bar,90);
+penstroke z5e--z6e;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_em,10u#+4/3c#,x_height#,0);
+x1g=s; y1c=0; y2=h-bar;
+A_serif(1,bar,90,jut,jut);
+x2=x1; serif(2,bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2bar; y4c=0;
+serif(3,stem,-90,.51bar, jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -110; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 110; y7l=7/28h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(stem,0); penpos8(stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_en,9u#+s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_o,8u#+s#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2curve-s;
+y2=y8=0.09h; y4=y6=0.91h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_pe,9u#+s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_er,8u#+jut#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+.2s+.6(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=0.1h; y8=0.08h; y4=0.9h; y6=0.92h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+1/2(x7-x5)+.5c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=-desc_depth;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_es,8u#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.9hair,180);
+x1=.52w; x5=.52w; y1=0; y5=h;
+y3=.5h; x3=1/2curve+s;
+y2=0.1h; y4=0.9h; x2=x4=x3+3/8(x5-x3);
+x6=w-s-1/2hair; y6=y3-.7stem;
+penstroke z6e{down}..tension1.1..{left}z1e..z2e..z3e..z4e..
+{right}z5e;
+fill z6r..z6l..cycle;
+z7=z5;
+ur_drop(7,drop_round,7/8(x6l-x1),1.35drop_round,bar);
+fill ur_drop_edge7;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(CYR_te,round (8u#-.5s#),x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x2=x3=.5w; x1e=s; x4e=w-s; y1=y4=y2h;
+y2c=h; y3c=0;
+serif(2,stem,-90,jut,jut);
+serif(3,stem,90,jut,jut);
+T_serif(1,bar,4/5border_height,0);
+T_serif(4,bar,4/5border_height,1);
+fill serif_edge3--reverse serif_edge2--cycle;
+fill T_edge1; fill T_edge4;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_u,9u#+s#,x_height#,desc_depth#);
+x1l=s+jut; y1l=h-bar;
+x3r=w-s-.8jut; y3r=h-bar;
+x4=33/60w; y4=-2/5d;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,1.2bar,theta2,1.2jut,.8jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=-d; x6=x4-stem; z7l=z2;
+penpos7(1.2bar,theta2+90);
+penpos5(1.2bar,theta2+90);
+penpos6(1.2bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,1.1drop_round,1.7u,drop_round,1.2bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(CYR_ef,12u#+c#,asc_height#,desc_depth#);
+if .5w = good.x .5w: change_width; fi
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(1.3o,-150);
+penpos7(curve,-180);
+penpos8(1.3o,-210);
+x1=x5=.5w+.5(.5w-s)-.7c; y1=0; y5=x_height;
+y3=y7=y12=.5x_height; x3=.5w; x7=w-1/2curve-s+.1c;
+y2=y9=0.1x_height; y11=y8=0.06x_height; y4=y15=0.9x_height; y6=y13=.94x_height;
+x2=x4=x3+3/8(x5-x3); x6=x8=x5+1/2(x7-x5)+.5c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+z16=z3; x14=x10=.5w-.5(.5w-s)+.7c; y10=0; y14=x_height;
+x12=s+1/2curve-.1c; x9=x15=x16-3/8(x16-x14); x11=x13=x14-1/2(x14-x12)-.5c;
+penpos10(vair,90);
+penpos11(1.3o,30);
+penpos12(curve,0);
+penpos13(1.3o,-30);
+penpos14(vair,-90);
+penpos15(.7o,-150);
+penpos16(stem,-180);
+penpos9(.7o,-210);
+penstroke z10e..z11e..z12e..z13e..z14e..z15e..z16e..z9e..cycle;
+x99=x155=x3l; x44=x222=x3r; y99=y222=.5x_height-3/2stem; y155=y44=.5x_height+3/2stem;
+%unfill z99--z155--z44--z222--cycle; penlabels(44,99,155,222);
+x20=.5w; y20=-.75d; x17=x30=x3l; x23=x24=x3r; y17=y23=-1/2d;
+x18=x19=x17-4/5stem; x21=x22=x23+4/5stem; y18=y22=-d+bar; y19=y21=-d;
+y24=y30=x_height+3/5(asc_height-x_height);x25=x22-c; x29=x18+c; y29=y25=h-1/2bar;
+y28=y26=h; x28=x29+1/2bar; x26=x25-1/2bar; x27=.5w; y27=h-bar;
+fill z30---z17{dir -100}..tension2..z18{left}..{right}z19{right}..{dir 20}z20{dir -20}..{right}z21{right}..{left}z22..tension2..{dir 100}z23---z24{dir 80}..{dir 20}z25{dir 160}..{left}z26{left}..{dir -160}z27{dir 160}..{left}z28{left}..{dir -160}z29{dir -20}..{dir -80}z30&cycle;
+penlabels (range 1 thru 30);
+endchar;
+
+beginchar(CYR_ha,9u#+c#,x_height#,0);
+y3=y4=bar; x3=w-s-jut-1/2stem; x4=s+jut+1/2bar;
+y1=y2=h-bar; x1=s+jut+1/2stem+c; x2=w-s-1.25c-jut-1/2bar;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,stem,theta1-180,jut,jut);
+A_serif(2,1.2bar,theta2-180,jut,jut);
+serif(3,stem,theta1,jut,jut);
+A_serif(4,1.2bar,theta2,jut,1.3jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_tse,9.1u#+s#,x_height#,x_depth#);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1-.1u; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=y2h; penstroke z5e--z6e;
+x7e=w-s; y7=y4h;
+T_serif(7,bar,4/5border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_che,9u#+s#,x_height#,0);
+x1=jut+1/2stem+s;
+x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,-90,jut,jut);
+serif(3,stem,90,jut,jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=bar_height-1/2bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-.8bar;
+penpos6(stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_sha,round (13u#+s#),x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=.5w; y5=y1; y6=y2;
+y9b=bar; x9h=w-s;
+x10=x9; y10b=h-bar;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,stem,-90,jut,jut);
+serif(6,stem,90,jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,stem,90,jut,jut);
+serif(10,stem,-90,jut,jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos7(bar,90);
+penpos8(bar,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_shcha,13.1u#+3/2s#,x_height#,x_depth#);
+if .5w <> good.x .5w: change_width; fi
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=bar; x9h=w-s-.1u;
+x10=x9; y10b=h-bar;
+x11e=w-s; y11=y9h;
+serif(9,stem,90,jut,jut);
+serif(10,stem,-90,jut,jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,stem,-90,jut,jut);
+serif(6,stem,90,jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos7(bar,90);
+penpos8(bar,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,bar,4/5border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_hard_sign,10u#,x_height#,0);
+x2r=x5-sss_width; x1=x2;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h; x8e=s; y8g=h;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+T_serif(8,bar,4/5border_height,0);
+fill T_edge8;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+x9=s+c; y9=y10=h; x10=s;
+unfill z8d{up}..z9--z10--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_yeru,12u#-c#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=x2r+sss_width;
+y6=y7=y2h; x8h=x9h=w-s; y8c=h; y9c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(8,stem,-90,jut,jut);
+serif(9,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge9--reverse serif_edge8--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_soft_sign,9u#-s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_e,6u#+2s#,x_height#,0);
+x1=16/39w; x5=.5w-c; y1=0; y5=h;
+y7=.5h; x7=w-1/2curve-s;
+x9e=s; y9=0;
+dl_drop(9,drop_round,18/39w-s,1.25drop_round,bar);
+y2=y5; x2=x5;
+S_serif(2,bar,x5-s-c,border_height);
+x3=x7-1/2stem; y3=y4=bar_height; x4=x9c-.5c;
+penpos3(bar,90); penpos4(bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+y8=0.1h-c; y6=0.9h+c; x8=x1+5/8(x7-x9)+.1c; x6=x2+9/16(x7-x5);
+penpos5(bar,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+penpos1(bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_yu,12u#+.5s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x3l=x1h+.3bar; y9=0; y5=h;
+y3=y7=.5h; x7=w-1/2curve-s; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+c+3/8(x5-x3); x6=x8=x5-c+5/8(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3stem; y11=y12=bar_height;
+penpos11(bar,90); penpos12(bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ya,8u#+s#+1/2bar#,x_height#,0);
+x1=x2=w-jut-1/2stem-s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2l; x4=x6=x3-2.5u+stem;
+y5-y4=y6-y5; x5=1/2stem+2s;
+y6=y7=y1h; x9=s; y9=0; x4-x8=x8-x9; y4-y8=y8-y9;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,-90);
+penpos4(bar,-90);
+penpos5(curve,180);
+penpos6(bar,90);
+penpos7(bar,90);
+penpos8(curve,0);
+penpos9(bar,-90);
+penstroke z3e--z4e{left}..tension.8..z5e..tension.8..{right}z6e--z7e;
+penstroke z9e{right}..{up}z8e{up}..{right}z4e;
+fill z9r..z9l..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar("A",13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar("B",11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,1/2cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("C",10u#+s#,cap_height#,0);
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("D",12u#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(o,30);
+penpos6(cap_curve,0);
+penpos7(o,-30);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+x3=x9=x1d;
+x8=x4=.5w; y8=y9=1/2cap_bar; y4=y3=h-1/2cap_bar;
+y6=.5h; x6=w-1/2cap_curve-s;
+y7=0.1h-c+1/2cap_bar; y5=0.9h+c-1/2cap_bar; x5=x7=x4+5/8(x6-x4)-.2c;
+penstroke z3e--z4e{right}..z5e..z6e..z7e..{left}z8e--z9e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("E",10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("F",10u#+.5s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("G",10u#+cap_jut#+c#+s#,cap_height#,0);
+x1=x5=23/42(w-cap_jut-c); y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s-cap_jut-c; y8=y1; x8=x1-.1(w-cap_jut-c);
+S_serif(6,slab,w-s-2c-x1-cap_jut,1.5border_height);
+S_serif(7,slab,w-s-x1-cap_jut+c,7/4border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+x9r=x7e; y9r=7/4border_height-1/2cap_bar;
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+x10=x9l; x11=x9r; y10=y11=3/4cap_bar;
+fill reverse serif_edge9--z10--z11--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("H",12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("I",2cap_jut#+cap_stem#+2s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+endchar;
+
+beginchar("J",7u#+s#,cap_height#,0);
+x1=x4=w-cap_jut-1/2cap_stem-s;
+y1c=h; y2=y3=y4=13/53h; x2=x1r; x3=x1l;
+y5=0; x5=x3-.4cap_stem;
+serif(1,cap_stem,-90,1.2cap_jut,cap_jut);
+fill z3--z2--reverse serif_edge1--cycle;
+penpos4(cap_stem,0);
+penpos5(cap_bar,-90);
+penstroke z4e{down}..{left}z5e;
+x6e=s; y6=0;
+dl_drop(6,cap_drop_round,x5-s,1.3drop_round,cap_bar);
+fill dl_drop_edge6;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("K",13u#-c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=cap_bar_height; x3l=w-cap_jut-.5cap_jut-cap_bar-s; y3l=h-cap_bar;
+x5=x6=x1r; y5=cap_bar_height-cap_bar; y6=y5-1.2cap_bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+A_serif(3,.9cap_bar,theta1,1.5cap_jut,.6cap_jut);
+x4l=w-s-1.2cap_jut-cap_stem; y4l=cap_bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,cap_stem,theta2,.8cap_jut,cap_jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("L",10u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=y5=y2h; x3=x2d; x5e=w-s;
+T_serif(5,cap_bar,border_height,1); x4=x5;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penstroke z3e--z4e;
+fill T_edge5 reflectedabout(z3,z4);
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar("M",13u#+c#,cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,.51cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 110; y7l=13/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("N",12u#-c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_bar+s;
+x3=w-x1; y1c=y3c=h; y2c=y4=y5=0;
+x4=x3r; x5=x3l;
+serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+A_serif(2,cap_bar,90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill A_serif_edge2--reverse serif_edge1--cycle;
+numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+theta1=angle(z5-z7);
+z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+fill z6--z1h--z7--z5{down}..{up}z4--reverse A_serif_edge3--cycle;
+unfill z1b--z1l--z1a--cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("O",11u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("P",10u#+s#,cap_height#,0);
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Q",11u#+s#,cap_height#,comma_depth#);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x12-1.5c; x12=x7l-c; y11=y12=-comma_depth;
+y9=0; x9=x1-c; y9-y10=y10-y11; x11-x10=x10-x9;
+penpos9(cap_bar,90); penpos10(cap_curve,0);
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z9e{dir -20}..tension.8..z10e..tension.8..{right}z11e--z12e;
+fill z12r..z12l..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("R",11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2r;
+y1c=h; y2c=0; x6=x4=x7+2.1u; x3=x1d;
+y4-y5=y5-y6; x5=x8; x9=w-s-1/2cap_bar; y9=0; y6-y8=y8-y9; x10=x6; x9-x8=6/7(x8-x10);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,-90);
+penpos6(cap_bar,-90);
+penpos8(cap_curve,-180);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penstroke z9e{left}..tension.8..{up}z8e{up}..tension.8..{left}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("S",9u#+s#,cap_height#,0);
+x6=x7=1/2w; y6=y7=0;
+S_serif(7,cap_bar,x6-s,1.5border_height);
+y5=11/53h; x5=w-s-1/2(1.9hair);
+y4=28/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2(1.9cap_bar);
+x2=.5w-c; y2=h; z1=z2;
+penpos6(cap_bar,-90);
+penpos5(1.9hair,0);
+penpos4(1.1cap_curve,90);
+penpos3(1.9hair,0);
+penpos2(cap_bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-cap_bar,1.2border_height);
+fill S_serif_edge1;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("T",round (11u#+s#),cap_height#,0);
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("U",12u#+s#,cap_height#,0);
+x1=cap_jut+1/2cap_stem+s;
+x3=w-s-cap_jut-1/2cap_bar;
+y1c=y3c=h; y2=y4=y5=y6=y24=y56=16/53h; x2=x1l;
+x4=x1r; x5=x3l; x6=x3r;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill z2--z4--reverse serif_edge1--cycle;
+fill z5--z6--reverse A_serif_edge3--cycle;
+x7=x1+.5(x3-x1); y7=0; x4-x24=x24-x2; x6-x56=x56-x5;
+penpos24(cap_stem,-180); penpos7(vair,-90);
+penpos56(cap_bar,0);
+penstroke z24e{down}..tension.9..{right}z7e{right}..tension.9..{up}z56e;
+penlabels(range 1 thru 7,24,56);
+endchar;
+
+beginchar("V",12u#,cap_height#,0);
+x1l=cap_jut+s;
+x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w-1/2cap_bar; x5=.5w+1/2cap_bar;
+y4=y5=1/2cap_bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("W",17u#,cap_height#,0);
+x9l=.5w-.3cap_stem;
+x7r=w-s-cap_jut;
+y9l=y7r=y1l=h-cap_bar; x5=x9l+.5(x7r-x9l)-1/2cap_bar; x6=x9l+.5(x7r-x9l)+1/2cap_bar;
+y5=y6=y2=y3=1/2cap_bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(7,cap_bar,theta2,1.3cap_jut,cap_jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+cap_jut;
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+z2=z1l+whatever*dir theta1; x3=x2+cap_bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("X",12u#+s#,cap_height#,0);
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("Y",12u#,cap_height#,0);
+x1l=cap_jut+s;
+x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w;
+y4=8/25h;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+y5c=0; x5=.5w+.5c;
+serif(5,cap_stem,90,cap_jut,cap_jut);
+x6=x5l; x7=x5r;
+z6=z1l+whatever*dir theta1;
+z7=z3r+whatever*dir theta2;
+fill z6--serif_edge5--z7--reverse A_serif_edge3--z2--reverse serif_edge1--z6&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Z",9u#+1.5s#,cap_height#,0);
+x6=s+1/2cap_bar; y6=y7=y8=1/2cap_bar;
+x8e=w-s; x7=x8;
+T_serif(8,cap_bar,border_height,1);
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4cap_bar;
+x4r=w-s-1/4cap_bar; y4=h-cap_bar;
+penpos4(cap_stem,0);
+penpos5(cap_stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2cap_bar;
+x3=w-s-1/2cap_bar; x1e=s+c;
+T_serif(1,cap_bar,border_height,0);
+x2=x1;
+penpos3(cap_bar,90);
+penpos2(cap_bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar("a",9u#-s#+2/7stem#,x_height#,0);
+x5=w-s-1/2bar; y5=0; y4=6/7stem; x4=x3=x5-5/7stem-1/2stem;
+y3=bar_height+2bar; y2=y1=h; x2=s+c+6/20w; x1e=s+c;
+ul_drop(1,drop_round,x2-s-c,5/4drop_round,bar);
+fill ul_drop_edge1;
+penpos2(bar,90);
+penpos3(stem,0);
+penpos4(stem,0);
+penpos5(bar,90);
+penstroke z2e{right}..{down}z3e--z4e{down}..{right}z5e;
+fill z5r..z5l..cycle;
+y6=bar_height+1/2bar; x6=x3+1/2stem; x7=s+1/2stem; y7=7/17bar_height;
+y8=0; x9=x4-1/2stem+1/2bar; 8(x9-x8)=7(x8-x7); y9=y4+3/2bar; x66=x8; y66=y6-c;
+numeric theta[]; theta1=angle(z66-z6);
+penpos6(vair,90);
+penpos66(vair,90);
+penpos7(curve,180);
+penpos8(vair,270);
+penpos9(bar,360);
+penstroke z6e{left}..z66e{dir theta1}..tension.9..{down}z7e{down}..tension.9..z8e{right}..{up}z9e;
+penlabels(range 1 thru 9,66);
+endchar;
+
+beginchar("b",8u#+jut#,asc_height#,0);
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+.2s+.6(w-jut-2s); y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=0.1x_height; y8=0.08x_height; y4=0.9x_height; y6=0.92x_height;
+x2=x4=x3+3/8(x5-x3); x6=x8=x5+1/2(x7-x5)+.5c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=0;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,0);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("c",8u#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.9hair,180);
+x1=.52w; x5=.52w; y1=0; y5=h;
+y3=.5h; x3=1/2curve+s;
+y2=0.1h; y4=0.9h; x2=x4=x3+3/8(x5-x3);
+x6=w-s-1/2hair; y6=y3-.7stem;
+penstroke z6e{down}..tension1.1..{left}z1e..z2e..z3e..z4e..
+{right}z5e;
+fill z6r..z6l..cycle; z7=z5;
+ur_drop(7,drop_round,7/8(x6l-x1),1.35drop_round,bar);
+fill ur_drop_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("d",8u#+jut#,asc_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.7o,-150);
+penpos7(stem,-180);
+penpos8(.7o,-210);
+x1=x5=1.8s+.4(w-jut-2s); y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2curve+s; x7=w-1/2stem-s-jut;
+y8=0.1x_height; y2=0.08x_height; y6=0.9x_height; y4=0.92x_height;
+x2=x4=x3+1/2(x5-x3)-.5c; x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10h=w-s; x9=x10; y9c=h; y10c=0;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,0,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("e",8u#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=.52w; x5=.5w; y1=0; y5=h;
+y3=.5h; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.1h; y4=y6=0.9h; x2=x3+3/8(x5-x3)+.2c; x4=x2-.1c; x6=x5+5/8(x7-x5);
+x10=w-s-1/2bar; y10=y7-stem;
+penstroke z10e{down}..tension1.1..{left}z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("f",2jut#+stem#+3c#+2s#,asc_height#,0);
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x1; y3=x_height; x4r=x1l-.06stem; y4=x_height+1/2(asc_height-x_height);
+x5l=x4l-.02stem; y5=y4+1.5bar; x6=x1r+.15stem; y6=h-1/2bar;
+penpos3(stem,180);
+penpos4(.75curve,180);
+penpos5(.6curve,180);
+penpos6(bar,90);
+penstroke z3e{dir 95}...{up}z4e..z5e..{right}z6e;
+y6=y7; x7e=w-s;
+ur_drop(7,stem,x7e-x6,drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("g",9u#+c#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+y3=y7=2/3h; x3=1/2curve+s+c; x7=w-3/2stem-s;
+x1=x5=x3+1/2(x7-x3); y1=3/11h; y5=h;
+y2=y8=y1+0.09(8/11h); y4=y6=y1+0.91(8/11h); x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x9=x7; y9=y7+1/2(y6-y7); y10=h; x10=x7l+c;
+x11e=w-s; y11=y10;
+ur_drop(11,.8stem,x11e-x10,drop_round,bar);
+penpos9(hair,180); penpos10(vair,90);
+penstroke z9e{up}..{right}z10e;
+fill ur_drop_edge11;
+y12=y1; x12=x1; y13=5/8*y12; x13=s+1/4stem+.5c;
+y14=y15=0; x14=x2r; x15=x8r; y16=y18=-d/2; x16=w-s-1/2stem;
+x18=s+.7hair; y17=-d+1/2bar; x17=s+.6bar+9/20(x16-x18); x19=x14; y19l=y14r;
+penpos12(vair,90); penpos13(1/2curve,180); penpos14(curve,270);
+z144=z14; penpos144(curve,90); penpos15(curve,90);penpos16(1/2curve,0);
+penpos17(vair,-90); penpos18(1.4hair,-180); penpos19(1.4vair,-270);
+penstroke z12e{left}..{down}z13e{down}..{right}z14e;
+penstroke z144e--z15e{right}..tension.8..{down}z16e{down}..{left}z17e{left}..{up}z18e{up}..{right}z19e;
+penlabels(range 1 thru 19);
+endchar;
+
+beginchar("h",round (10u#-1.5c#),asc_height#,0);
+w:=w+1;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6h=w-s; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33x_height;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=x_height; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("i",2jut#+stem#+2s#,x_height#+2.1stem#,0);
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+z3=(x1,h); z4=(x1,h-1.1stem);
+fill z3..z4..cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("j",5u#+c#,x_height#+2.1stem#,desc_depth#);
+x1h=w-s; y1c=x_height; y2=0; x2=x1;
+serif(1,stem,-90,1.5jut,0);
+penpos2(stem,0);
+fill z2l--z2r--reverse serif_edge1--cycle;
+z3=(x1-.05stem,h); z4=(x1-.05stem,h-1.1stem);
+fill z3..z4..cycle;
+y5=-1/4desc_depth; x5r=x2r;
+y6=-d+1/2bar; x6=x2l-.3stem;
+penpos5(.97stem,0);
+penpos6(bar,-90);
+penstroke z2e--z5e{down}..{left}z6e;
+x7e=s; y7=-d+1/2bar;
+dl_drop(7,drop_round,x6-x7e,drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar("k",round (10u#-c#),asc_height#,0);
+w:=w+1;
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=.9bar_height; x3l=w-jut-.7jut-s; y3l=x_height-bar;
+x5=x6=x1r; y5=bar_height-bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+y6=y5-bar/cosd (theta1+180);
+A_serif(3,.9bar,theta1,1.8jut,.8jut);
+x4l=w-s-1.2jut-stem; y4l=bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,stem,theta2,.8jut,jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("l",2.4jut#+stem#+2s#,asc_height#,0);
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,1.2jut,0);
+serif(2,stem,90,1.2jut,1.2jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penlabels(1,2);
+endchar;
+
+beginchar("m",14u#,x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6=.5w; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33h;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=h; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+x10h=w-s; y10c=0;
+serif(10,stem,90,jut,jut);
+x9=x10; y9=y5;
+penpos9(stem,0);
+fill serif_edge10--z9r--z9l--cycle;
+x8=x10g; y8=h; y7=y9-1/4bar; x7l=x6r;
+penpos8(vair,90);
+penpos7(bar,180);
+penstroke z9e{up}..{left}z8e{left}..z7e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("n",round (10u#-1.5c#),x_height#,0);
+w:=w+1;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6h=w-s; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33h;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=h; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("o",8u#+s#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2curve-s;
+y2=y8=0.09h; y4=y6=0.91h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("p",8u#+jut#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+.2s+.6(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=0.1h; y8=0.08h; y4=0.9h; y6=0.92h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+1/2(x7-x5)+.5c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=-desc_depth;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("q",8u#+jut#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.7o,-150);
+penpos7(stem,-180);
+penpos8(.7o,-210);
+x1=x5=1.8s+.4(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2stem-s-jut;
+y8=0.1h; y2=0.08h; y6=0.9h; y4=0.92h; x2=x4=x3+1/2(x5-x3)-.5c; x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10h=w-s; x9=x10; y9c=h; y10c=-d;
+serif(9,stem,-90,0,jut);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("r",7u#+c#,x_height#,0);
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,1.2jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x4=round (x2h+1/2bar+c); y4=h; y3=23/33h-1/4bar; x3l=x2r;
+penpos4(bar,90);
+penpos3(bar,180);
+penstroke z4e{left}...{down}z3e;
+x5e=w-s; y5=h;
+ur_drop(5,1.1drop_round,x5e-x4,drop_round,bar);
+fill ur_drop_edge5;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar("s",7u#,x_height#,0);
+x6=x7=1/2w; y6=y7=1/2bar;
+S_serif(7,bar,x6-s,border_height);
+y5=11/53h; x5=w-s-1/2(1.4hair);
+y4=29/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2hair;
+x2=.5w; y2=h; z1=z2;
+penpos6(bar,-90);
+penpos5(1.4hair,0);
+penpos4(curve,90);
+penpos3(1.4hair,0);
+penpos2(bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.9..{dir 170}z4e{dir 170}..tension.9..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-1/3bar,.9border_height);
+fill S_serif_edge1;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("t",7u#-s#,asc_height#,0);
+y1=y2=46/53h; y4c=x_height; x4g=s;
+serif(4,stem,-90,jut,1.4jut);
+x1=x4r; x2=x1-bar;
+y5=7/33x_height; x5=x4; x3=x4l; y3=42/53h;
+penpos5(stem,180); numeric theta[];
+theta1=angle(z3-z2);
+fill z5l--reverse serif_edge4--z5r--cycle;
+fill z4r--z1{up}..{dir theta1}z2--z3--z4l--cycle;
+y6=1/4bar; x6=x4r+.7jut; x7=w-s-1/2bar; y7=13/53h;
+penpos6(vair,270); penpos7(hair,360);
+penstroke z5e{down}..{right}z6e{right}..{up}z7e;
+fill z7r..z7l..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar("u",round (10u#-1.5c#),x_height#,0);
+w:=w+1;
+x2h=w-s; y1c=h; y2c=0; x1=x2;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,0,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6g=s; y6c=h;
+serif(6,stem,-90,jut,0);
+x5=x6; y5=10/33h;
+penpos5(stem,180);
+fill serif_edge6--z5l--z5r--cycle;
+x4=x6+1/2stem+jut; y4=0; y3=y5+1/4bar; x3l=x2l;
+penpos4(vair,270);
+penpos3(bar,360);
+penstroke z5e{down}..{right}z4e{right}..z3e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar("v",10u#-1.5c#,x_height#,0);
+x1l=jut+s;
+x3r=w-s-jut;
+y1l=y3r=h-bar; x4=.5w-1/2bar; x5=.5w+1/2bar;
+y4=y5=1/2bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,bar,theta2,1.3jut,jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("w",13u#,x_height#,0);
+x9l=.5w-.3stem;
+x7r=w-s-jut;
+y9l=y7r=y1l=h-bar; x5=x9l+.5(x7r-x9l)-1/2bar; x6=x9l+.5(x7r-x9l)+1/2bar;
+y5=y6=y2=y3=1/2bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,stem,theta1,jut,jut);
+A_serif(7,bar,theta2,1.1jut,jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+jut;
+serif(1,stem,theta1,jut,jut);
+z2=z1l+whatever*dir theta1; x3=x2+bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("x",9u#+c#,x_height#,0);
+y3=y4=bar; x3=w-s-jut-1/2stem; x4=s+jut+1/2bar;
+y1=y2=h-bar; x1=s+jut+1/2stem+c; x2=w-s-1.25c-jut-1/2bar;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,stem,theta1-180,jut,jut);
+A_serif(2,1.2bar,theta2-180,jut,jut);
+serif(3,stem,theta1,jut,jut);
+A_serif(4,1.2bar,theta2,jut,1.3jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("y",9u#+s#,x_height#,desc_depth#);
+x1l=s+jut; y1l=h-bar;
+x3r=w-s-.8jut; y3r=h-bar;
+x4=33/60w; y4=-2/5d;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,1.2bar,theta2,1.2jut,.8jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=-d; x6=x4-stem; z7l=z2;
+penpos7(1.2bar,theta2+90);
+penpos5(1.2bar,theta2+90);
+penpos6(1.2bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,1.1drop_round,1.7u,drop_round,1.2bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("z",7u#+c#,x_height#,0);
+x6=s+1/2bar; y6=y7=y8=1/2bar;
+x8e=w-s; x7=x8;
+T_serif(8,bar,.8border_height,1);
+penpos6(bar,90);
+penpos7(bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-.5c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4bar;
+x4r=w-s-1/4bar; y4=h-bar;
+penpos4(stem,0);
+penpos5(stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2bar;
+x3=w-s-1/2bar; x1e=s+c;
+T_serif(1,bar,.8border_height,0);
+x2=x1;
+penpos3(bar,90);
+penpos2(bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(hex"30",9u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.08h-c; y4=y6=0.92h+c; x2=x4=x3+9/16(x5-x3)-.3c; x6=x8=x5+7/16(x7-x5)+.3c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"31",6u#+3/2c#,cap_height#,0);
+y1c=0; x1h=w-s;
+serif(1,cap_stem,90,cap_jut,cap_jut);
+x6=x1f; y5=y6=h; x5=x1; x2=x1a; y2=42/53h;
+penpos4(1.1cap_bar,-25);
+penpos3(1.1cap_bar,-25);
+x4l=s; y4=30/53h; numeric theta[]; theta1=angle(z5-z4);
+z3l=z5; penstroke z3e--z4e; fill z4l{down}..{dir 60}z4r--cycle;
+fill serif_edge1--z6{dir 110}..{dir 250}z5--z2--cycle;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"32",9u#,cap_height#,0);
+z4=(9/33w,14/53h); z5=(s+11/20cap_bar,0);
+z3=(w-s-.5c-7/16cap_curve,40/53h); z2=(15/33w,h);
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos4(1.1cap_bar,-45);
+penpos5(1.1cap_bar,0);
+x6=x5r; y6=y7=7/16cap_stem; y8=1/2cap_bar;
+x8e=w-s; x7=x8e;
+T_serif(8,cap_bar,3/5border_height,1);
+penpos6(7/8cap_stem,90);
+penpos7(7/8cap_stem,90);
+penstroke z6e--z7e; %fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+unfill z11{down}..z9--z10--cycle;
+penstroke z5e{up}..z4e..{up}z3e{up}..{left}z2e;
+z1=z2; ul_drop(1,1.1cap_drop_round,15/33w-3c,1.4cap_drop_round,slab);
+fill ul_drop_edge1;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"33",9u#,cap_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height+c;
+x4=x6-1.5cap_stem; x5=x4-1.5u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.48w; y2=h; x3=x6-.2cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_stem,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..{down}z3e{down}..{left}z44e;
+penstroke z5e--z4e{right}..tension.9..{down}z6e{down}..tension.9..{left}z7e;
+fill z5r..z5l..cycle;
+ul_drop(1,cap_drop_round,17/39w-s,cap_drop_round,slab);
+fill ul_drop_edge1;
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.3cap_drop_round,slab);
+fill dl_drop_edge8;
+penlabels(1,2,3,4,5,6,7,8,44);
+endchar;
+
+beginchar(hex"34",9u#+c#,cap_height#,0);
+y1=y2=33/53h; y4c=0; x4h=w-s;
+serif(4,7/8cap_stem,90,cap_jut,cap_jut);
+x1=x4r; x2=x1-bar;
+x3=x4l; y3=28/53h;
+numeric theta[]; theta1=angle(z2-z3);
+fill z3{dir theta1}--z2{dir theta1}..{down}z1--reverse serif_edge4--z3&cycle;
+y5=y6=15/53h; x5=x4e; x6=s+cap_bar;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e; fill z5r..z5l..cycle;
+y7=y6l; x7l=x6; z8=(6/36w, 21/53h);
+z9=(2/3w,h);
+penpos7(cap_bar,180); penpos8(cap_bar,150);
+penpos9(cap_stem,180);
+penstroke z7e{up}..z8e..{dir 70}z9e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"35",9u#,cap_height#,0);
+x7=x4=18/39w; y7=0; y5=cap_bar_height+c; y4=y5+s;
+x8e=s; y8=0; x5=x8d;
+dl_drop(8,cap_drop_round,18/39w-s,1.3cap_drop_round,slab);
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z5e..z4e{right}..tension.85..{down}z6e{down}..tension.85..{left}z7e;
+fill z5r..z5l..cycle;
+fill dl_drop_edge8;
+z3=z5; x2=x3; y2=h;
+penpos3(cap_bar,0); penpos2(cap_bar,0);
+penstroke z3e--z2e; fill z2l..tension 1.7..z2r..tension 1.7..cycle;
+y1r=h; x1=x2r; x13=x6; y13=h; 2(x12-x1)=x13-x12; y12=h-.6cap_stem;
+penpos1(7/8cap_stem,90); penpos13(1.1cap_bar,90); penpos12(3/4cap_stem,90);
+penstroke z1e..z12e..z13e; fill z13r..tension 1.7..z13l..tension 1.7..cycle;
+penlabels(1,2,3,4,5,6,7,8,12,13);
+endchar;
+
+beginchar(hex"36",9u#,cap_height#,0);
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=x9=.45w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.1h-c; y4=0.95h; y6=0.92h+c; x8=x6=x7+15/32(x5-x7); x10=x5+9/16(x3-x5); x4=x5+8/16(x3-x5); x2=x4-1/2c;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.08h-c; y11=y7;
+x11l=x3l+.5c; y10=y8; z12 = z1;
+penstroke z1e{right}..z2e..z3e{up}..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e..z10e..{up}z11e;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+z13 = (.5w,.5h);
+currentpicture := currentpicture rotatedaround(z13,180);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"37",9u#-c#,cap_height#,0);
+x4=w-s-1/2cap_bar; y4=h-1/2cap_bar;z12 = z1;
+penpos4(cap_bar,0);
+y3=y2=h-7/16cap_stem; y1=h-7/8cap_stem+1/2cap_bar;
+x3=x4l; x1e=s;
+T_serif(1,cap_bar,3/5border_height,0);
+x2=x1e;
+penpos3(7/8cap_stem,90);
+penpos2(7/8cap_stem,90);
+penstroke z2e--z3e;
+fill T_edge1; z44=(x4,h); fill z4r{up}..{left}z44--z3r--z4l--cycle;
+x10=s+c; x11=s; y10=y11=h;
+unfill z1d{up}..z10--z11--cycle;
+unfill z1d{up}..z10--z11--cycle;
+x5r=x3; y5=h-7/8cap_stem;
+x6=14/30w; y6=1/3cap_curve;
+penpos5(cap_bar,0); penpos6(cap_curve,0);
+penstroke z4e{dir -105}..z5e..{dir -95}z6e; fill z6l..z6r..cycle;
+penlabels(1,2,3,4,5,6,10,11,12);
+endchar;
+
+beginchar(hex"38",10u#-s#,cap_height#,0);
+x6=x4=x2=x8=1/2w; y6=0; y2=h;
+y5=11/53h; y7=13/53h; x5=w-s-1/2(1.9hair);
+y4=y8=28/53h; y3=42/53h; y1=40/53h; x3=2s+1/2(1.9cap_bar);
+x1=w-2s-1/2(1.9cap_bar); x7=w-x5;
+penpos6(cap_bar,-90);
+penpos5(2.5hair,0);
+penpos4(cap_curve,90);
+penpos3(2.5hair,0);
+penpos2(cap_bar,-90);
+penpos1(2.5hair,-180);
+penpos7(2.5hair,-180);
+penpos8(cap_bar,-270);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"39",9u#,cap_height#,0);
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=x9=.45w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.1h-c; y4=0.95h; y6=0.92h+c; x8=x6=x7+15/32(x5-x7); x10=x5+9/16(x3-x5); x4=x5+8/16(x3-x5); x2=x4-1/2c;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.08h-c; y11=y7;
+x11l=x3l+.5c; y10=y8; z12 = z1;
+penstroke z1e{right}..z2e..z3e{up}..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e..z10e..{up}z11e;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+beginchar(oct"56",cap_stem#+2s#,cap_stem#,0);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+endchar;
+
+beginchar(oct"54",cap_stem#+2s#+c#,cap_stem#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"60",cap_stem#+2s#+c#,asc_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(oct"41", cap_stem#+2s#,cap_height#,0); "Exclamation mark";
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+ x3=.5w-1/2cap_bar; x4=.5w+1/2cap_bar; y3=y4=3/2cap_stem;
+ x6=x1; x5=x2; y5=y6=h;
+ fill z6--z3..z4--z5{up}..z6&cycle;
+endchar;
+
+beginchar(hex"22",2cap_stem#+3s#+2c#,cap_height#,0);
+ z1=(s,h-1/2cap_stem); z2=(x1+cap_stem+c,h-1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-cap_stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"5C",2cap_stem#+3s#+2c#,cap_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(x1+cap_stem+c,1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"7b",10u#-1.5c#,x_height#,0); "En dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"3D",10u#+1.5c#,x_height#,0);
+ z1=(s+1/2bar,bar_height-3c); z2=(w-s-1/2bar,bar_height-3c);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+3c); z4=(w-s-1/2bar,bar_height+3c);
+ penpos3(bar,90); penpos4(bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"23",13u#,asc_height#,body_depth#);
+ z1=(s+1/2bar,bar_height-5c); z2=(w-s-1/2bar,bar_height-5c);
+ penpos1(1.5bar,90); penpos2(1.5bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+5c); z4=(w-s-1/2bar,bar_height+5c);
+ penpos3(1.5bar,90); penpos4(1.5bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ z5=(.5w-5c,bar_height); z6=(.5w+5c,bar_height);
+ z7=z5+whatever*dir 76; y7=h; z8=whatever[z5,z7]; y8=-d;
+ penpos7(1.5bar,0); penpos8(1.5bar,0);
+ fill z7l{up}..{down}z7r--z8r{down}..{up}z8l--z7l&cycle;
+ z9=z6+whatever*dir 76; y9=h; z10=whatever[z6,z9]; y10=-d;
+ penpos9(1.5bar,0); penpos10(1.5bar,0);
+ fill z9l{up}..{down}z9r--z10r{down}..{up}z10l--z9l&cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"7c",14u#,x_height#,0); "Em dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(oct"55",2cap_jut#+cap_stem#+2s#,x_height#,0); "hyphen";
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"5F",1.1stem#+2s#,x_height#+2.1stem#,0);
+ z1=(.5w,h); z2=(.5w,h-1.1stem);
+ fill z1..z2..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7E",7u#,body_height#,0);
+ pickup pencircle xscaled 1pt yscaled .2pt rotated 55;
+ z4=(w-s-c,h-s); x1=s+c; y1=y4-1/2cap_stem;
+ y2-y1=y4-y3=3(y4-y1); z2-z1=z4-z3=whatever * dir 55;
+ draw z1..controls z2 and z3..z4;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"3C",7u#-2c#,x_height#,0); "looks like <<";
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.5stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3E",7u#-2c#,x_height#,0);
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.5stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ z10=(.5w,.5h);
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ currentpicture := currentpicture rotatedaround(z10,180);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3B",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+3/2c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ z8=(s,h-1/2cap_stem); z9=(w-s,h-1/2cap_stem);
+ fill z8..z9..cycle;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(hex"3A",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ fill z1..z2..cycle;
+ penlabels(1,2,3,4);
+ z3=(s,1/2cap_stem); z4=(w-s,1/2cap_stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2B",2cap_jut#+cap_stem#+2s#,x_height#,0);
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ x3=x4=.5w; y3=y2+1/2(x2-x1); y4=y2-1/2(x2-x1);
+ penpos3(1.8bar,0); penpos4(1.8bar,0);
+ penstroke z3e--z4e;
+ fill z3r..z3l..cycle; fill z4r..z4l..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2F",2s#+bar#,body_height#,body_depth#);
+ z1=(.5w,h-.5bar); z2=(.5w,-d+.5bar);
+ %pickup pencircle xscaled bar yscaled bar;
+ penpos1(bar,0); penpos2(bar,0);
+ penstroke z1e--z2e; fill z1r..z1l..cycle;
+ fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"27",cap_stem#+2s#+c#,x_height#+2.1stem#,0);
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ z6=(.5w-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"28",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"29",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"86",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"87",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"5B",2s#+3cap_bar#,body_height#,body_depth#);
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x2,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z1r..z1l..cycle; fill z6r..z6l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"5D",2s#+3cap_bar#,body_height#,body_depth#);
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x1,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z2r..z2l..cycle; fill z5r..z5l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"B9",16u#,cap_height#,0);
+ x1=x2=cap_jut+1/2cap_bar+s+cap_stem;
+ x3=w-x1-1/2cap_stem; y1c=h; y4=y5=0;
+ x4=x3r; x5=x3l; y2=12/53h; y3=h-y2;
+ x8=x2-stem; y8=0; z9=z8;
+ dl_drop(9,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill dl_drop_edge9; penpos8(bar,-90);
+ serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+ penpos2(bar,0); penpos3(bar,0);
+ penstroke z2e{down}..{left}z8e;
+ fill z2l--z2r--reverse serif_edge1--cycle;
+ numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+ theta1=angle(z5-z7); x10=x3+stem; y10=h; z11=z10;
+ penpos10(bar,-90); penstroke z3e{up}..{right}z10e;
+ ur_drop(11,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill ur_drop_edge11;
+ z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+ fill z6--z1h--z7--z5{down}..{up}z4--z3r--z3l--cycle;
+ unfill z1b--z1l--z1a--cycle;
+ y12=y13=2cap_bar; x12=x4+2cap_bar+s; x13=w-2s;
+ penpos12(.4stem,90); penpos13(.4stem,90);
+ penstroke z12e--z13e; y16=y11d-4cap_bar;
+ x13-x14=x14-x12; x16=x14; y14=y13+4cap_bar;
+ x17=w-s-1/4stem; x17-x16=x16-x15; y16-y15=y15-y14;
+ y17=y15; penpos17(.7stem,0); penpos16(bar,90);
+ penpos15(.7stem,180); penpos14(bar,270);
+ penstroke z17e{up}..{left}z16e{left}..{down}z15e{down}..{right}z14e{right}..{up}z17e;
+ fill z12l..tension1.2..z12r..tension1.2..cycle;
+ fill z13l..tension1.2..z13r..tension1.2..cycle;
+ penlabels(range 1 thru 17);
+endchar;
+
+beginchar(hex"24",9u#-s#,body_height#,body_height#-cap_height#);
+ x6=x7=1/2w-c; y6=y7=0;
+ dl_drop(7,.9cap_drop_round,x6-s,1.5drop_round,cap_bar);
+ y5=10/53cap_height; x5=w-s-1/2(1.9hair);
+ y4=1/2cap_height; x4=19/38w; y3=41/53cap_height; x3=s+1/2(1.9cap_bar);
+ x2=.5w+c; y2=cap_height; z1=z2;
+ penpos6(cap_bar,-90); penpos5(1.9hair,0);
+ penpos4(1.1cap_curve,90); penpos3(1.9hair,0);
+ penpos2(cap_bar,-90);
+ penstroke z6e{right}..z5e..tension.9..z4e..tension.9..z3e..{right}z2e;
+ fill dl_drop_edge7;
+ ur_drop(1,.9cap_drop_round,w-s-x2,1.5drop_round,cap_bar);
+ fill ur_drop_edge1;
+ z8=(.5w,h); z9=(.5w,-d);
+ penpos8(cap_bar,0); penpos9(cap_bar,0);
+ penstroke z8e--z9e;
+ fill z9r..z9l..cycle; fill z8r..z8l..cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"25",12u#,asc_height#,0);
+penpos1(vair,90); penpos2(.6curve,0);
+penpos3(vair,-90); penpos4(.6curve,-180);
+y1=.55h; y3=h; y3-y4=y4-y1; y2=y4; x2=1/4curve+s; x4=2curve+s;
+x4-x1=x1-x2; x3=x1;
+penstroke z1e{left}..tension.9..{up}z2e{up}..tension1.2..{right}z3e..tension.9..{down}z4e{down}..tension1.2..{left}z1e..cycle;
+penpos5(vair,90); penpos6(.6curve,0);
+penpos7(vair,-90); penpos8(.6curve,-180);
+y5=0; y7=.45h; y7-y8=y8-y5; y6=y8; x8=w-1/4curve-s; x6=w-2curve-s;
+x8-x5=x5-x6; x7=x5;
+penstroke z5e{left}..tension.9..{up}z6e{up}..tension1.2..{right}z7e..tension.9..{down}z8e{down}..tension1.2..{left}z5e..cycle;
+x9l=x7; y9=h; x10r=x1; y10=0;
+penpos9(1.2bar,0); penpos10(1.2bar,0);
+penstroke z9e--z10e;
+penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"26",14u#,cap_height#,0);
+x4=x8=x3+.55curve; y6=0; y2=h; x2=x3+.9cap_curve;
+y7=13/53h; y5=9/53h; x5=x7+3cap_curve; x6=x7+1.8cap_curve;
+y4=y8=30/53h; y1=44/53h; y3=42/53h; x3=4s+.8curve;
+x1=x3+1.8cap_curve; x7=s+1/2cap_curve;
+x10=w-s; y10=9/53h; x10-x9=x9-x5; y9=1/5cap_curve;
+th:=angle(z4-z5)+5; th1:=th-11; x11h=w-s-c; y11h=y1-4s;
+A_serif(11,cap_bar,-110,cap_jut,cap_jut); z12l=z11a;
+penpos6(cap_bar,-90); penpos5(cap_stem,45);
+penpos4(cap_stem,45); penpos3(2.5hair,0);
+penpos2(cap_bar,-90); penpos1(2hair,-180);
+penpos7(cap_curve,-180); penpos8(cap_bar,-250);
+penpos9(.5cap_curve,70); penpos10(cap_bar,150);
+penpos12(cap_bar,0);
+penstroke z10e..z9e..z5e{dir th}..{dir th1}z4e..tension.9..z3e..tension1..z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e{dir 8}..{dir 70}z12e;
+fill z12l--z12r..reverse A_serif_edge11--cycle;
+fill z10l..tension1.2..z10r..tension1.2..cycle;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"40",14u#,x_height#+2curve#,2curve#);
+a_width:=9u+c-2s;
+x1=2s+a_width-s-3/4stem+1.5curve; y1=x_height; y2=7/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=3s+a_width+1.5curve; y4=15/33x_height;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.2vair,270); penpos4(bar,360);
+x5=x1-3/2stem; y5=x_height; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c+1.2curve; y6=.54x_height; y8=.46x_height; z8l=whatever[z1r,z2r];
+x13=x5; y13=h-1/2bar; x14=s+1/2bar; y14=y6; y15=-d+1/2bar; x15=x7;
+x16=x4; y16=-d+3bar; penpos7(vair,270); penpos16(bar,270);
+penpos13(bar,90); penpos14(bar,180); penpos15(bar,270);
+penpos8(2bar,0); penpos5(vair,90); penpos6(curve,180);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 80}z4e..z13e{left}..z14e..{right}z15e..z16e;
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=x_height-c; z10=(x1r+c,x_height); z11=(x1l-c,x_height);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+fill z16r..z16l..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar(hex"12",1.5cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=s+.45cap_stem*cosd 45;
+x2=w-s+cap_bar*cosd 45; z2=z1+whatever*dir -45;
+penpos1(.8cap_stem,45); penpos2(cap_bar,45);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"13",1.5cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=w-s-.45cap_stem*cosd 45;
+x2=s-cap_bar*cosd 45; z2=z1+whatever*dir -135;
+penpos1(.8cap_stem,135); penpos2(cap_bar,135);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"3F",7u#+s#,cap_height#,0);
+ x1=s+4/5cap_stem; y1=1/2cap_stem;
+ penpos1(cap_stem,0);
+ fill z1r..z1l..cycle;
+ y2=cap_stem+cap_bar; x2=x1;
+ z3l=z2l+whatever*dir 96; y3l=25/53h;
+ penpos2(cap_bar,0); penpos3(cap_bar,0);
+ penstroke z2e--z3e;
+ z4l=z3l; penpos4(cap_bar,0);
+ y5=y4-2bar; x5=x4+3cap_bar; penpos7(cap_bar,-90);
+ x6=w-s-1/2cap_curve; y6=37/51h; x7=12/31w; y7=h;
+ penpos5(cap_bar,90); penpos6(cap_curve,180); z8=z7;
+ penstroke z4e{dir -69}..z5e{dir 10}..tension1..{up}z6e{up}..tension.9..{left}z7e;
+ ul_drop(8,.8cap_drop_round,x7-s,cap_curve,cap_bar);
+ fill ul_drop_edge8;.
+ fill z3r..tension1.2..z3l..tension1.2..cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"10",2jut#+stem#+2s#,x_height#,0);
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"11",5u#+c#,x_height#,desc_depth#);
+x1h=w-s; y1c=x_height; y2=0; x2=x1;
+serif(1,stem,-90,1.5jut,0);
+penpos2(stem,0);
+fill z2l--z2r--reverse serif_edge1--cycle;
+y5=-1/4desc_depth; x5r=x2r;
+y6=-d+1/2bar; x6=x2l-.25stem;
+penpos5(.97stem,0);
+penpos6(bar,-90);
+penstroke z2e--z5e{down}..{left}z6e;
+x7e=s; y7=-d+1/2bar;
+dl_drop(7,stem,x6-x7e,drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(hex"2A",3cap_stem#+3s#,body_height#,0);
+ x1=x2=x3=x4=.5w; y1=h-1/2stem; y2=y1-cap_stem; y3=y2-bar; y4=y3-bar;
+ penpos1(stem,0); penpos2(cap_bar,0); penpos3(2cap_bar,0);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle;
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,60);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,120);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,180);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,240);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,300);
+ penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"0B",4jut#+2stem#+4.5s#,asc_height#,0);
+w:=w+1;
+numeric dist; dist := 2jut+2stem-3.7c;
+x1g=x2g=s+dist; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x1; y3=x_height; x4r=x1l-.1stem; y4=x_height+1/2(asc_height-x_height);
+x5l=x4l-.05stem; y5=y4+1.5bar; x6=round (x1r+.2stem); y6=h-1/2bar;
+penpos3(stem,180);
+penpos4(.75curve,180);
+penpos5(.6curve,180);
+penpos6(bar,90);
+penstroke z3e{dir 95}...{up}z4e..z5e..{right}z6e;
+y6=y7; x7e=w-s;
+ur_drop(7,stem,x7e-x6,drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+x11g=x12g=s; y11c=x_height; y12c=0;
+serif(11,stem,-90,jut,jut);
+serif(12,stem,90,jut,jut);
+fill serif_edge12--reverse serif_edge11--cycle;
+x13=x11; y13=x_height; x14l=x13l; y14=x_height+1/2(asc_height-x_height);
+x15l=x14l; y15=y14+1.5bar; x16=x11r+.8stem; y16=h-1/2bar;
+x17r=x5l; y17=y5;
+penpos13(stem,180);
+penpos14(.75curve,180);
+penpos15(.6curve,180);
+penpos16(bar,90);
+penpos17(bar,0);
+penstroke z13e{dir 95}...{up}z14e..z15e..{right}z16e{right}..{down}z17e;
+fill z11d--z1c--z1b--z11e--cycle;
+penlabels(1,2,3,4,5,6,7,11,12,13,14,15,16,17);
+endchar;
+
+beginchar(hex"5E",6u#,body_height#,0);
+ x1=s+.45cap_bar*cosd 45; x2=w/2; y2=h-bar;
+ z1=z2+whatever*dir -135; x3=w-x1; z3=z2+whatever*dir -45;
+ penpos1(bar,135); penpos2(2bar,90); penpos3(bar,45);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"16",6u#,body_height#,0);
+ x1=s; x2=w-x1; y1=y2=h-4bar;
+ penpos1(.8bar,90); penpos2(.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7F",2stem#+4s#,x_height#+2.1stem#,0);
+ z1=(s+.5stem,h); z2=(s+.5stem,h-stem);
+ fill z1..z2..cycle;
+ z3=(w-s-.5stem,h); z4=(w-s-.5stem,h-stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+ligtable CYR_A: "A":
+ CYR_O kern -k#,
+ "O" kern -k#,
+ CYR_ES kern -k#,
+ "C" kern -k#,
+ CYR_TE kern -k#,
+ CYR_U kern -kk#,
+ CYR_EF kern -k#,
+ CYR_CHE kern -kkk#,
+ CYR_HARD_SIGN kern -k#,
+ "W" kern -kkk#,
+ "V" kern -kkk#,
+ "Y" kern -kkk#,
+ "T" kern -k#,
+ "w" kern -kk#,
+ "v" kern -kk#,
+ %CYR_o kern -k#,
+ %CYR_es kern -k#,
+ CYR_che kern -kk#;
+ %CYR_ie kern -k#,
+ %CYR_ye kern -k#;
+
+ligtable CYR_GHE: CYR_TE: "T":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_DE kern -k#,
+ CYR_EL kern -kk#,
+ CYR_el kern -k#,
+ CYR_o kern -k#,
+ "o" kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#;
+
+ligtable CYR_O: CYR_E: CYR_YU:
+ CYR_U kern -k#,
+ "X" kern -k#,
+ CYR_HA kern -k#;
+
+ligtable CYR_ER: "P":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_EL kern -k#,
+ CYR_el kern -k#;
+
+ligtable CYR_U:
+ CYR_A kern -kkk#,
+ "A" kern -kkk#,
+ CYR_O kern -k#,
+ "O" kern -k#,
+ CYR_ES kern -k#,
+ "C" kern -k#,
+ CYR_EL kern -kk#,
+ CYR_el kern -kkk#,
+ CYR_EF kern -k#;
+
+ligtable CYR_HA: "X":
+ "O" kern -k#,
+ CYR_O kern -k#,
+ "Q" kern -k#,
+ "C" kern -k#,
+ CYR_ES kern -k#,
+ "G" kern -k#;
+
+ligtable CYR_ghe: CYR_te:
+ CYR_de kern -k#,
+ CYR_el kern -k#;
+
+ligtable CYR_o: CYR_er: CYR_e: CYR_yu: CYR_ye:
+ "x" kern -k#,
+ CYR_ha kern -k#;
+
+ligtable CYR_u: "y":
+ CYR_de kern -k#,
+ CYR_el kern -k#,
+ CYR_ie kern -k#,
+ "e" kern -k#,
+ CYR_es kern -k#,
+ "c" kern -k#,
+ CYR_ye kern -k#,
+ CYR_ef kern -k#;
+
+ligtable CYR_ha: "x":
+ CYR_ie kern -k#,
+ "d" kern -k#,
+ "e" kern -k#,
+ "o" kern -k#,
+ "q" kern -k#,
+ CYR_o kern -k#;
+
+ligtable "D": "O": "Q":
+ "X" kern -k#;
+
+ligtable "L":
+ "T" kern -kk#,
+ CYR_TE kern -kk#,
+ "Y" kern -kk#;
+
+ligtable "V": "W":
+ "A" kern -kkk#,
+ CYR_A kern -kkk#,
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ CYR_EL kern -k#,
+ CYR_el kern -kk#,
+ "d" kern -k#;
+
+ligtable "Y":
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "d" kern -k#,
+ "A" kern -kk#,
+ CYR_A kern -kk#;
+
+ligtable "a": CYR_a:
+ "V" kern -kk#,
+ "W" kern -kk#,
+ "T" kern -k#,
+ CYR_TE kern -k#,
+ "y" kern -k#,
+ CYR_u kern -k#,
+ "v" kern -k#,
+ "u" kern -k#,
+ CYR_che kern -kk#,
+ "Y" kern -kk#;
+
+ligtable "e": CYR_ie:
+ CYR_ha kern -k#,
+ "v" kern -k#,
+ "w" kern -k#,
+ "V" kern -k#,
+ "W" kern -k#;
+
+ligtable "f":
+ "f" =: hex"0B";
+
+ligtable "k": "l":
+ CYR_o kern -k#,
+ "o" kern -k#;
+
+ligtable "m": "n":
+ "y" kern -k#,
+ CYR_u kern -k#,
+ CYR_o kern -k#,
+ "o" kern -k#;
+
+ligtable "o": "b": "p":
+ "e" kern k#,
+ CYR_ie kern k#,
+ "o" kern k#,
+ CYR_o kern k#,
+ "v" kern -k#,
+ "w" kern -k#,
+ "V" kern -k#,
+ "W" kern -k#,
+ "x" kern -k#,
+ CYR_ha kern -k#, 1:: "!" kern kk#;
+
+ligtable "v": "w":
+ "A" kern -kk#,
+ CYR_A kern -kk#,
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ "d" kern -k#;
+
+ligtable hex"37":
+ CYR_A kern -kk#,
+ "A" kern -kk#;
+ligtable oct"55":
+ oct"55" =: hex"7b";
+ligtable hex"7b":
+ oct"55" =: hex"7c";
+end
diff --git a/fonts/obnov/obnb7.mf b/fonts/obnov/obnb7.mf
new file mode 100644
index 0000000000..81f95c9b04
--- /dev/null
+++ b/fonts/obnov/obnb7.mf
@@ -0,0 +1,3485 @@
+%written by Basil Solomykov, Russia
+%(C) Copyright 2011 LPPL (LaTeX Project Public License)
+%Font Ordinary New (Obyknovennaya novaya), Bold
+
+design_size := 7pt#;
+o# := 1.3*.32pt#;
+u# := 15/35pt#;
+bar# := 7.5/36pt#;
+slab# := 7.5/36pt#;
+cap_bar# := 7.5/36pt#;
+vair# := 7.5/36pt#;
+hair# := 7.5/36pt#;
+jut# := 15/36pt#;
+cap_jut# := 20/36pt#;
+stem# := 1.3*23/36pt#;
+curve# := 1.3*23.7/36pt#;
+cap_stem# := 1.3*27/36pt#;
+cap_curve# := 1.3*27.5/36pt#;
+s# := .32pt#;
+c# := .16pt#;
+
+input obn_lcyw_code.mf;
+font_identifier "OBNB";
+mode_setup;
+clear_pen_memory;
+
+font_size design_size*pt#;
+asc_height# := 24/36*design_size*pt#;
+cap_height# := 24/36*design_size*pt#;
+body_height# := 27/36*design_size*pt#;
+x_height# := 15.4/36*design_size*pt#;
+desc_depth# := 8/36*design_size*pt#;
+body_depth# := 9/36*design_size*pt#;
+comma_depth# := 5/36*design_size*pt#;
+x_depth# := 4/5comma_depth#;
+bar_height# := .52x_height#;
+cap_bar_height# := .52cap_height#;
+cap_bar2_height# := .45cap_height#;
+border_height# := comma_depth#;
+cap_drop_round# := 4.2*slab#;
+drop_round# := 6.7/8cap_drop_round#;
+
+bracket# := pt#;
+
+font_x_height x_height#;
+font_normal_space 6u#;
+font_normal_stretch 4u#;
+font_normal_shrink 2u#;
+font_quad 16u#;
+font_extra_space 6u#;
+
+k# := .8u#;
+kk# := 1.5u#;
+kkk# := 3u#;
+
+serif_darkness := 1/30;
+define_pixels(bracket,cap_o_width,sss_width,css_width);
+define_pixels(c,s,cap_bar_height,cap_bar2_height);
+define_pixels(border_height,A_bracket,cap_drop_round,x_depth,drop_round);
+define_whole_blacker_pixels(stem,cap_stem,curve,cap_curve,bar,slab,cap_bar,vair,hair);
+define_whole_pixels(asc_height,cap_height,x_height,u,desc_depth,comma_depth,bar_height,body_height,body_depth,u,o,cap_jut,jut);
+%define_corrected_pixels();
+lowres_fix(stem,curve) 1.2;
+lowres_fix(cap_stem,cap_curve) 1.2;
+if jut=cap_jut: jut:=jut-1; fi
+
+def serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g if left_jut=0: -1/2slab fi +1/2slab; x$d=x$e=x$h if right_jut=0: +1/2slab fi-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def serif_edge suffix $ =
+(serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse serif_bracket($f,$r,$e)) enddef;
+
+def serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...serif_darkness[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def T_serif(suffix $)(expr slab, bord_height, direction)= %Direction: 0-left, 1-right;
+penpos$(slab,if direction=1: - fi 90);
+x$=x$a=x$g; y$g-y$=y$-y$a=1/2slab;
+x$b=x$a + if direction=0: - fi .882bord_height; y$b=y$d=y$c+1/2slab;
+x$c=x$b + if direction=0: - fi 1/2slab; y$c=y$a-bord_height;
+x$d=x$e=x$b + if direction=0: - fi slab;
+y$e=y$g-1/2slab; y$f=y$g; x$f=x$c;
+labels($a,$b,$c,$d,$e,$f,$g) enddef;
+
+def T_edge suffix $ =
+(z$a..{down}z$b..z$c..z$d--z$e{up}..z$f--z$g--cycle) enddef;
+
+def A_serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g+1/2slab; x$d=x$e=x$h-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def A_serif_edge suffix $ =
+(A_serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse A_serif_bracket($f,$r,$e)) enddef;
+
+def A_serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...0.6[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def ur_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a= 1/2slab;
+x$e=x$a + drop_length; y$e=y$f- drop_height;
+x$d=x$e - 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e - drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); if y$b > y$a: y$b := y$a; fi
+x$b=round (x$d - 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ur_drop_edge suffix $ =
+(z$f{right}..tension.9..{down}z$e{down}..{left}z$d{left}..{up}z$c{up}..z$b...{left}z$a--cycle) enddef;
+
+def ul_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$f- drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); if y$b > y$a: y$b := y$a; fi
+x$b=round (x$d + 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ul_drop_edge suffix $ =
+(z$f{left}..tension.9..{down}z$e{down}..{right}z$d{right}..{up}z$c{up}..z$b...{right}z$a--cycle) enddef;
+
+def dl_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, -90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$a + drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e + 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d - drop_round); if y$b < y$f: y$b := y$f; fi
+x$b=x$d + 1/90drop_round;
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def dl_drop_edge suffix $ =
+(z$a{left}..tension.9..{up}z$e{up}..{right}z$d{right}..{down}z$c..{dir 250}z$b{dir -80}..{right}z$f--cycle) enddef;
+
+def S_serif (suffix $)(expr serif_slab, serif_length, serif_height)=
+%penpos$(serif_slab,90);
+x$a=x$i=x$; y$i=y$+1/2serif_slab; y$a=y$-1/2serif_slab;
+x$f=x$e=x$a+serif_length; y$f=y$g-1/2serif_slab; y$e=y$c=y$d+1/2serif_slab;
+x$g=x$f-1/2serif_slab; y$g=y$i-1/2serif_slab;
+y$h=y$f-1/4serif_slab; x$h=x$g-serif_slab;
+x$c=x$e-serif_slab; x$d=x$e-1/2serif_slab; y$d=y$g-serif_height;
+x$b=x$h-6/18serif_length; y$b=y$h-1/2slab;
+labels ($a,$b,$c,$d,$e,$f,$g,$h,$i) enddef;
+
+def S_serif_edge suffix $ =
+(z$a{right}...z$b..{dir -80}z$c..z$d..z$e--z$f{up}..z$g{left}..z$h{dir 150}..{left}z$i--cycle) enddef;
+
+beginchar(CYR_A,13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar(CYR_BE,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=y5=h-1/2slab;
+y1c=h; y2c=0; x5e=w-s-1/2cap_stem;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h; x4=w-s-1/2cap_stem-border_height;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_VE,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+css_width := x8 - x2r; save css_width;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar(CYR_GHE,9u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; x3=x4+2u;
+y5=y3; x5e=w-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_DE,12u#,cap_height#,comma_depth#);
+x10e=w-s; y10c=-d;
+y4c=h; x4h=w-s-1/2slab;
+x9=x4; y9c=0;
+x3=x8=x9d; y8=y7=1/2cap_bar; y3=y2=h-y8;
+x6e=s; y6=y10; x7=border_height+s;
+y5=y9; x5g=s+.5u; y1=y4; x1=x5+1.5u;
+x2=x1c;
+A_serif(1,1.2cap_bar,-96,10/7cap_jut,cap_jut);
+A_serif(5,1.2cap_bar,81,6/7cap_jut,cap_jut);
+serif(4,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+penpos2(cap_bar,90);
+penpos3(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_bar,90);
+penstroke z7e--z8e; penstroke z2e--z3e;
+fill A_serif_edge5...reverse A_serif_edge1...cycle;
+fill serif_edge9--reverse serif_edge4--cycle;
+T_serif(6,slab,border_height,0);
+T_serif(10,slab,border_height,1);
+fill T_edge6;
+fill T_edge10;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_IE,10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_YE,10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+x12=x13=x2r-.5c; y12=h+1/4cap_stem; y13=y12+cap_stem;
+x14=x15=x12+1.7cap_stem; y14=y12; y15=y13;
+fill z12..z13..cycle; fill z14..z15..cycle;
+penlabels(range 1 thru 15);
+endchar;
+
+beginchar(CYR_ZHE,round (16u#+s#),cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; y7=y4=y10=y11=cap_bar_height; x4=x7-1.5u;
+x10=x8r; x11=x10+1.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+x6=s; y6=0; y4-y5=y5-y6; x4-x5=x5-x6;
+penpos7(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,90);
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z6e{right}..tension.8..{up}z5e{up}..tension.8..{right}z4e--z7e;
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,w-x13-s,.9cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+x3=x5+1/2cap_stem; y2=h; x4-x3=x3-x2; y2-y3=y3-y4;
+penpos3(hair,0);
+penpos2(cap_bar,90);
+penstroke z4e{left}..tension.8..{up}z3e{up}..tension.8..{left}z2e;
+y1=h; x1a=x2; fill z6l..z6r..cycle;
+ul_drop(1,cap_drop_round,x2-s,.9cap_drop_round,cap_bar);
+fill ul_drop_edge1; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ZE,10u#+.5s#,cap_height#,0);
+x7=15/39w; y7=0; y4=y5=y44=cap_bar_height;
+x4=x6-3/2cap_stem; x5=x4-3u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-.28cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3c,1.4border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,15/39w-s,1.3cap_drop_round,slab);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_I,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-20); penpos6(cap_bar,-20);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar(CYR_SHORT_I,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-20); penpos6(cap_bar,-20);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+x7=.5w; y7=h+cap_bar;
+ur_drop(7,.9cap_drop_round,.6(x3l-x1r),.9cap_drop_round,1.2cap_bar);
+fill ur_drop_edge7 rotatedaround(z7,180);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_KA,12u#+s#,cap_height#,0);
+x8g=x9g=s; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+y10=y11=cap_bar_height;
+x10=x8r; x11=x10+2.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13; fill z16l..z16r..cycle;
+ur_drop(14,cap_drop_round,w-x13-s,.9cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_EL,13u#+1/2s#,cap_height#,0);
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.8cap_drop_round; y3=1.1cap_drop_round;
+dl_drop(1,cap_drop_round,cap_drop_round,.9cap_drop_round,slab);
+fill dl_drop_edge1;
+penpos2(cap_bar,-90); penpos3(cap_bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-slab;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,cap_bar,theta1,1.2cap_jut,1.2cap_jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,cap_stem,-90,cap_jut,cap_jut);
+serif(8,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_EM,13u#+c#,cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,1/2cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 110; y7l=13/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EN,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_O,11u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3)+.4c; x6=x8=x5+9/16(x7-x5)-.4c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+cap_o_width := x7-x3; save cap_o_width;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_PE,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ER,10u#+s#,cap_height#,0);
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_ES,10u#+s#,cap_height#,0);
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3)+.4c;
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_TE,round (11u#+s#),cap_height#,0);
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_U,13u#+s#,cap_height#,0);
+x1l=s+cap_jut; y1l=.98h-cap_bar;
+x3r=w-s-.8cap_jut; y3r=.98h-cap_bar;
+x4=33/60w; y4=6/53h;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,1.2cap_bar,theta2,1.2cap_jut,.8cap_jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=0; x6=x4-cap_stem; z7l=z2;
+penpos7(1.2cap_bar,theta2+90);
+penpos5(1.2cap_bar,theta2+90);
+penpos6(1.2cap_bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,cap_drop_round,2u, 10/53h, round 1.2cap_bar);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EF,14u#+s#,cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1=x2=.5w; y2c=0; y1h=h;
+y6=y7=y8=y9=1.3cap_jut; y4=y3=y11=y12=h-1.3cap_jut+1/2slab;
+x3=x7=x2l; x8=x12=x2r; x4=x6=x3-u; x11=x9=x12+u;
+x5=s+1/2cap_curve; x10-x1=x1-x5; y4-y5=y5-y6; y10=y5;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,270);
+penpos7(cap_bar,270);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+penpos10(cap_curve,0);
+penpos11(cap_bar,90);
+penpos12(cap_bar,90);
+penstroke z3e--z4e{left}..tension.8..{down}z5e{down}..tension.8..{right}z6e--z7e;
+penstroke z8e--z9e{right}..tension.8..{up}z10e{up}..tension.8..{left}z11e--z12e;
+penlabels (range 1 thru 12);
+endchar;
+
+beginchar(CYR_HA,12u#+s#,cap_height#,0);
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_TSE,12.5u#+s#,cap_height#,comma_depth#);
+x1=x2=x5=cap_jut+1/2cap_stem+s;
+x3=x4=x6=w-x1-.5u; y5=y6=y2h;
+y1c=y3c=h; y2c=y4c=0; x7e=w-s; y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e;
+T_serif(7,cap_bar,border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_CHE,12u#+s#,cap_height#,0);
+x1=cap_jut+1/2cap_stem+s;
+x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,-90,cap_jut,cap_jut);
+serif(3,cap_stem,90,cap_jut,cap_jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l+c; y5=round(cap_bar_height-1/2cap_bar); z6=z4;
+x5-x7=x7-x4r; y7=round(y5-1.7cap_bar)-1;
+penpos6(cap_stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SHA,16u#+s#,cap_height#,0);
+if .5w <> good.x .5w: change_width; fi
+x1=x2=good.x (cap_jut+1/2cap_stem+s);
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=good.x .5w; y5=y1; y6=y2;
+y9b=slab; x9=good.x w-x1;
+x10=x9; y10b=h-slab;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_SHCHA,16.5u#+s#,cap_height#,comma_depth#);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=slab; x9h=w-s-.5u;
+x10=x9; y10b=h-slab;
+x11e=w-s; y11=y9h;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,slab,border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_HARD_SIGN,13.5u#+c#,cap_height#,0);
+x2r=x5-css_width; x1=x2; x8e=s; y8g=h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+x7=x1d; y1c=h; y2c=0;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=round(x3+5u-cap_stem);
+y6=y7=y2h;
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(8,cap_bar,border_height,0);
+fill T_edge8;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YERU,16u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+y3=y4=cap_bar_height; x3=round x2r; x4=x6=round (x3+5u-cap_stem) - 1;
+y4-y5=y5-y6; x5=x2r+css_width; y8b=slab; x8h=w-s;
+y6=y7=y2h; x9=x8; y9b=h-slab;
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(8,cap_stem,90,cap_jut,cap_jut);
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge9--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SOFT_SIGN,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=x3+5u-cap_stem;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y6=y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_E,10u#+.5s#,cap_height#,0);
+x1=18/39w; x5=.5w; y1=0; y5=h;
+y7=.5h; x7=w-1/2cap_curve-s;
+x9e=s; y9=0;
+dl_drop(9,cap_drop_round,18/39w-s,1.4cap_drop_round,slab);
+y8=0.1h-c; y6=0.9h+c; x8=x9+9/16(x7-x9)-.5c; x6=x5+9/16(x7-x5)-.4c;
+penpos5(cap_bar,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+penpos1(cap_bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+y2=y5; x2=x5-c;
+S_serif(2,slab,x1-c,1.5border_height);
+x3=x7-1/2cap_stem; y3=y4=cap_bar_height; x4=x2b-x1;
+penpos3(cap_bar,90); penpos4(cap_bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YU,16u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+y3=y7=.5h; x7=w-1/2cap_curve-s; x3=x7-cap_o_width; y9=0; y5=h; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+7/16(x5-x3)+.4c; x6=x8=x5+9/16(x7-x5)-.4c;
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3cap_stem; y11=y12=cap_bar_height;
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_YA,11u#+s#,cap_height#,0);
+x1=x2=w-cap_jut-1/2cap_stem-s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2l;
+y1c=h; y2c=0; x6=x4=x7-2.5u; x3=x1c;
+y4-y5=y5-y6; x5=x8-1.5c; x9=s; y9=0; y6-y8=y8-y9; x7-x10=3(x10-x6); x10-x8=x8-x9;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos7(cap_bar,270);
+penpos6(cap_bar,270);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90); fill z9l..z9r..cycle;
+penstroke z3e--z4e{left}..tension.9..z5e..tension.9..{right}z6e--z7e;
+penstroke z9e{right}..tension1..{up}z8e{up}..tension1..{right}z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_a,9u#-s#+2/7stem#,x_height#,0);
+x5=w-s-1/2bar; y5=0; y4=6/7stem; x4=x3=x5-3/7stem-1/2stem;
+y3=bar_height+2bar; y2=y1=h; x2=s+c+6/20w; x1e=s+c;
+ul_drop(1,drop_round,x2-s-c,1.2drop_round,bar);
+fill ul_drop_edge1;
+penpos2(bar,90);
+penpos3(stem,0);
+penpos4(stem,0);
+penpos5(bar,90);
+penstroke z2e{right}..{down}z3e--z4e{down}..{right}z5e;
+fill z5r..z5l..cycle;
+y6=bar_height+1/2bar; x6=x3+1/2stem; x7=s+1/2stem; y7=7/17bar_height;
+y8=0; x9=x4-1/2stem+1/2bar; x9-x8=x8-x7; y9=y4+3/2bar; x66=x8; y66=y6-c;
+numeric theta[]; theta1=angle(z66-z6);
+penpos6(vair,90);
+penpos66(vair,90);
+penpos7(curve,180);
+penpos8(vair,270);
+penpos9(bar,360);
+penstroke z6e{left}..z66e{dir theta1}..tension.8..{down}z7e{down}..tension.8..z8e{right}..{up}z9e;
+penlabels(range 1 thru 9,66);
+endchar;
+
+beginchar(CYR_be,8u#+s#,asc_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2stem+s; x7=w-1/2stem-s;
+y2=y8=0.08x_height; y4=y6=0.92x_height; x2=x4=x3+15/32(x5-x3); x6=x8=x5+17/32(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+y9=y3; x9=s+1/2bar; y10=44/51h; x10=x5+c; x11=w-s-1/2bar; y11=h-1/2bar; %x11=w-1/2bar*sind 45; y11=h-1/2bar*sind 45;
+penpos9(hair,180);
+penpos10(curve,90);
+penpos11(hair,180); fill z11r..z11l..cycle;
+penstroke z9e{up}..{right}z10e{right}..tension1..z11e;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_ve,9u#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x9=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h; y8=y9=h-1/2bar; x8=x1d;
+y9-y10=y10-y4; x10=x5-c;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penpos8(bar,270);
+penpos9(bar,270);
+penpos10(.9curve,180);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penstroke z9e{right}..tension.8..z10e..tension.8..{left}z4e;
+sss_width := x5 - x2r; save sss_width;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ghe,7u#+c#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; y3=y4=y5=h-1/2bar; x3=x1d; x5e=w-s;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+T_serif(5,bar,4/5border_height,1);
+x4=x5;
+fill serif_edge2--reverse serif_edge1--cycle;
+fill T_edge5;
+penpos3(bar,90);
+penpos4(bar,90);
+penstroke z3e--z4e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_de,9u#,x_height#,x_depth#);
+x3=x4=w-jut-1/2stem-s-.1u;
+y3c=h; y4c=0;
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+x7e=s; x10e=w-s; y7=y8=y9=y10=y4h; x8=x7; x9=x4c;
+T_serif(7,bar,4/5border_height,0);
+T_serif(10,bar,4/5border_height,1);
+fill T_edge7; fill T_edge10;
+penpos8(bar,90); penpos9(bar,90);
+penstroke z8e--z9e;
+x2=s+1.3jut+1/2bar; y2=bar; x1=x2+3/2bar; y1=h-bar;
+numeric theta[]; theta1=angle(z1-z2);
+A_serif(1,bar,theta1-180,1.3jut,jut);
+A_serif(2,bar,theta1,1.3jut,.8jut);
+fill A_serif_edge2..reverse A_serif_edge1..cycle;
+y5=y6=y3h; x5=x1d; x6=x3c;
+penpos5(bar,90);
+penpos6(bar,90);
+penstroke z5e--z6e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ie,8u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=.53w; x5=.5w; y1=0; y5=h;
+y3=.5h; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.07h; y4=y6=0.92h; x4=x3+3/8(x5-x3)+.3c; x2=x4+.3c; x6=x5+5/8(x7-x5)-.3c;
+x10=w-s-1/2bar; y10=y7-.94stem;
+penstroke z10e{down}..tension1.1..{left}z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ye,8u#+c#,asc_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=.53w; x5=.5w; y1=0; y5=x_height;
+y3=.5x_height; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.07x_height; y4=y6=0.92x_height; x4=x3+3/8(x5-x3)+.3c; x2=x4+.3c; x6=x5+5/8(x7-x5)-.3c;
+x10=w-s-1/2bar; y10=y7-.94stem;
+penstroke z10e{down}..tension1.1..{left}z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+y12=y14=h; y11=y13=h-stem; x11=x12=x3r; x13=x14=x7r;
+fill z11..z12..cycle; fill z13..z14..cycle;
+penlabels(range 1 thru 14);
+endchar;
+
+beginchar(CYR_zhe,round (13u#+c#),x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,stem,-90,jut,jut);
+serif(9,stem,90,jut,jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; x4=x7-u; y4=y7=y10=y11=bar_height; x10=x8r; x11=x10+u;
+x6=s+1/2bar; y6=y16=0; y4-y5=y5-y6; x4-x5=1.3(x5-x6);
+x16=w-s-1/2bar; 1.3(x16-x15)=x15-x11; y11-y15=y15-y16;
+x2=x5-c; y2=y1=h; x4-x3=x3-x2; y2-y3=y3-y4; x1e=s+c;
+y13=y14=h; x13=x15+c; x13-x12=x12-x11; y13-y12=y12-y11; x14e=w-s-c;
+penpos2(bar,90);
+penpos3(hair,0);
+penpos4(bar,90);
+penpos5(curve,180);
+penpos6(bar,90);
+penpos7(bar,90);
+penpos10(bar,90);
+penpos11(bar,90);
+penpos12(hair,180);
+penpos13(bar,90);
+penpos15(curve,0);
+penpos16(bar,90);
+penstroke z7e--z4e{left}..tension.9..{down}z5e{down}..tension.9..{left}z6e;
+fill z6r..z6l..cycle;
+penstroke z10e--z11e{right}..tension.9..{down}z15e{down}..tension.9..{right}z16e;
+fill z16r..z16l..cycle;
+penstroke z4e{left}..z3e..{left}z2e;
+penstroke z11e{right}..z12e..{right}z13e;
+ul_drop(1,7/8stem,x2-s-c,3/4drop_round,bar);
+ur_drop(14,7/8stem,x2-s-c,3/4drop_round,bar);
+fill ul_drop_edge1; fill z1e..z1c..cycle;
+fill ur_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ze,6u#+2s#,x_height#,0);
+x7=17/39w; y7=0; y4=y5=y44=bar_height;
+x4=x6-3/2stem; x5=x4-u;
+x6=w-s-1/2curve; y4-y6=y6-y7;
+x2=.45w; y2=h; x3=x6-1/5curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(bar,90);
+penpos3(curve,0);
+penpos44(bar,-90);
+penpos4(bar,90);
+penpos5(bar,90);
+penpos6(curve,0);
+penpos7(bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3.5c,border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,drop_round,17/39w-s,1.15drop_round,bar);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_i,9u#+s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r-1/2bar; x6=x3l+1/2bar;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,-20); penpos6(bar,-20);
+y5=.1h; y6=.9h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_short_i,9u#+s#,asc_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r-1/2bar; x6=x3l+1/2bar;
+y1c=y3c=x_height; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,-20); penpos6(bar,-20);
+y5=.1x_height; y6=.9x_height; penstroke z5e--z6e;
+x7=.5w; y7=h-3/2drop_round;
+ur_drop(7,drop_round,x3-.5w,1.1drop_round,1.2bar);
+fill ur_drop_edge7 rotatedaround(z7,180);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ka,9u#+.5s#,x_height#,0);
+x1g=x2g=s; y1c=h; y2c=y9=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=bar_height; x3=x1r; x4=x3+1.25u;
+x9=w-s-1/2bar; 1.3(x9-x8)=x8-x4; y4-y8=y8-y9;
+y6=y7=h; x6=x8+c; x6-x5=x5-x4; y6-y5=y5-y4; x7e=w-s-.3c;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(hair,180);
+penpos6(bar,90);
+penpos8(curve,0);
+penpos9(bar,90);
+penstroke z3e--z4e{right}..tension.9..{down}z8e{down}..tension.9..{right}z9e;
+fill z9r..z9l..cycle;
+penstroke z4e{right}..z5e..{right}z6e;
+ur_drop(7,drop_round,w-x6-s,4/5drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_el,9u#+s#,x_height#,0);
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.6drop_round; y3=1.1drop_round;
+dl_drop(1,.9drop_round,.9drop_round,.9drop_round,bar);
+fill dl_drop_edge1;
+fill z1c..z1e..cycle;
+penpos2(bar,-90);
+penpos3(bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-bar;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,bar,theta1,1.4jut,1.3jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,stem,-90,jut,jut);
+serif(8,stem,90,jut,jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(bar,90);
+penpos6(bar,90);
+penstroke z5e--z6e;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_em,10u#+s#,x_height#,0);
+x1g=s; y1c=0; y2=h-bar;
+A_serif(1,bar,90,jut,jut);
+x2=x1; serif(2,bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2bar; y4c=0;
+serif(3,stem,-90,1/2bar, jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -110; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 110; y7l=9/28h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(stem,0); penpos8(stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_en,9u#+s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_o,8u#+s#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2curve-s;
+y2=y8=0.08h; y4=y6=0.92h; x2=x4=x3+3/8(x5-x3)+.4c; x6=x8=x5+5/8(x7-x5)-.4c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_pe,9u#+s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_er,8u#+jut#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+.5s+.6(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=0.1h; y8=0.08h; y4=0.9h; y6=0.92h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+1/2(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=-desc_depth;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_es,8u#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.9hair,180);
+x1=.53w; x5=.53w; y1=0; y5=h;
+y3=.5h; x3=1/2curve+s;
+y2=0.08h; y4=0.92h; x2=x4=x3+3/8(x5-x3)+.6c;
+x6=w-s-1/2hair; y6=y3-.85stem;
+penstroke z6e{down}..tension1.1..{left}z1e..z2e..z3e..z4e..z5e{right};
+fill z6r..z6l..cycle;
+z7=z5;
+ur_drop(7,drop_round,7/8(x6l-x5),drop_round,bar);
+fill ur_drop_edge7;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(CYR_te,8u#-.5s#,x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x2=x3=.5w; x1e=s; x4e=w-s; y1=y4=y2h;
+y2c=h; y3c=0;
+serif(2,stem,-90,jut,jut);
+serif(3,stem,90,jut,jut);
+T_serif(1,bar,4/5border_height,0);
+T_serif(4,bar,4/5border_height,1);
+fill serif_edge3--reverse serif_edge2--cycle;
+fill T_edge1; fill T_edge4;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_u,9u#+s#,x_height#,desc_depth#);
+x1l=s+jut; y1l=h-bar;
+x3r=w-s-.8jut; y3r=h-bar;
+x4=33/60w; y4=-2/5d;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,1.2bar,theta2,1.2jut,.8jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=-d; x6=x4-1.1stem; z7l=z2;
+penpos7(1.2bar,theta2+90);
+penpos5(1.2bar,theta2+90);
+penpos6(1.2bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,1.1drop_round,1.4u,drop_round,1.2bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(CYR_ef,12u#+c#,asc_height#,desc_depth#);
+if .5w = good.x .5w: change_width; fi
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w+.5(.5w-s)-.4c; y1=0; y5=x_height;
+y3=y7=y12=.5x_height; x3=.5w; x7=w-1/2curve-s;
+y2=y9=0.1x_height; y11=y8=0.08x_height; y4=y15=0.9x_height; y6=y13=.92x_height;
+x2=x4=x3+3/8(x5-x3); x6=x8=x5+1/2(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+z16=z3; x14=x10=.5w-.5(.5w-s)+.4c; y10=0; y14=x_height;
+x12=s+1/2curve; x9=x15=x16-3/8(x16-x14); x11=x13=x14-1/2(x14-x12);
+penpos10(vair,90);
+penpos11(o,30);
+penpos12(curve,0);
+penpos13(o,-30);
+penpos14(vair,-90);
+penpos15(.7o,-150);
+penpos16(stem,-180);
+penpos9(.7o,-210);
+penstroke z10e..z11e..z12e..z13e..z14e..z15e..z16e..z9e..cycle;
+x99=x155=x3l; x44=x222=x3r; y99=y222=.5x_height-3/2stem; y155=y44=.5x_height+3/2stem;
+%unfill z99--z155--z44--z222--cycle; penlabels(44,99,155,222);
+x20=.5w; y20=-.75d; x17=x30=x3l; x23=x24=x3r; y17=y23=-1/2d;
+x18=x19=x17-4/5stem; x21=x22=x23+4/5stem; y18=y22=-d+bar; y19=y21=-d;
+y24=y30=x_height+3/5(asc_height-x_height);x25=x22-c; x29=x18+c; y29=y25=h-1/2bar;
+y28=y26=h; x28=x29+1/2bar; x26=x25-1/2bar; x27=.5w; y27=h-bar;
+fill z30---z17{dir -100}..tension2..z18{left}..{right}z19{right}..{dir 20}z20{dir -20}..{right}z21{right}..{left}z22..tension2..{dir 100}z23---z24{dir 80}..{dir 20}z25{dir 160}..{left}z26{left}..{dir -160}z27{dir 160}..{left}z28{left}..{dir -160}z29{dir -20}..{dir -80}z30&cycle;
+penlabels (range 1 thru 30);
+endchar;
+
+beginchar(CYR_ha,9u#+c#,x_height#,0);
+y3=y4=bar; x3=w-s-jut-1/2stem; x4=s+jut+1/2bar;
+y1=y2=h-bar; x1=s+jut+1/2stem+c; x2=w-s-1.25c-jut-1/2bar;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,stem,theta1-180,jut,jut);
+A_serif(2,1.2bar,theta2-180,jut,jut);
+serif(3,stem,theta1,jut,jut);
+A_serif(4,1.2bar,theta2,jut,1.3jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_tse,9.1u#+s#,x_height#,x_depth#);
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1-.1u; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=y2h; penstroke z5e--z6e;
+x7e=w-s; y7=y4h;
+T_serif(7,bar,4/5border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_che,9u#+s#,x_height#,0);
+x1=jut+1/2stem+s;
+x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,-90,jut,jut);
+serif(3,stem,90,jut,jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=bar_height-1/2bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-.8bar;
+penpos6(stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_sha,round (13u#+s#),x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=.5w; y5=y1; y6=y2;
+y9b=bar; x9h=w-s;
+x10=x9; y10b=h-bar;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,stem,-90,jut,jut);
+serif(6,stem,90,jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,stem,90,jut,jut);
+serif(10,stem,-90,jut,jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos7(bar,90);
+penpos8(bar,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_shcha,13.1u#+3/2s#,x_height#,x_depth#);
+if .5w <> good.x .5w: change_width; fi
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=bar; x9h=w-s-.1u;
+x10=x9; y10b=h-bar;
+x11e=w-s; y11=y9h;
+serif(9,stem,90,jut,jut);
+serif(10,stem,-90,jut,jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,stem,-90,jut,jut);
+serif(6,stem,90,jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos7(bar,90);
+penpos8(bar,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,bar,4/5border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_hard_sign,10u#,x_height#,0);
+x2r=x5-sss_width; x1=x2;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h; x8e=s; y8g=h;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+T_serif(8,bar,4/5border_height,0);
+fill T_edge8;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+x9=s+c; y9=y10=h; x10=s;
+unfill z8d{up}..z9--z10--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_yeru,12u#+c#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=x2r+sss_width;
+y6=y7=y2h; x8h=x9h=w-s; y8c=h; y9c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(8,stem,-90,jut,jut);
+serif(9,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge9--reverse serif_edge8--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_soft_sign,9u#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_e,6u#+2s#,x_height#,0);
+x1=16/39w; x5=.5w-c; y1=0; y5=h;
+y7=.5h; x7=w-1/2curve-s;
+x9e=s; y9=0;
+dl_drop(9,drop_round,18/39w-s,1.2drop_round,bar);
+y2=y5; x2=x5;
+S_serif(2,bar,x5-s-c,border_height);
+x3=x7-1/2stem; y3=y4=bar_height; x4=x9c-.5c;
+penpos3(bar,90); penpos4(bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+y8=0.1h-c; y6=0.9h+c; x8=x1+5/8(x7-x9)+.1c; x6=x2+9/16(x7-x5);
+penpos5(bar,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+penpos1(bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_yu,12u#+.5s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x7=w-1/2curve-s; x3l=x7l-8u+s; y9=0; y5=h;
+y3=y7=.5h; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+c+3/8(x5-x3); x6=x8=x5-c+5/8(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3stem; y11=y12=bar_height;
+penpos11(bar,90); penpos12(bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ya,8u#+s#+1/2bar#,x_height#,0);
+x1=x2=w-jut-1/2stem-s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2l; x4=x6=x3-2.5u+stem;
+y5-y4=y6-y5; x5=1/2stem+2s;
+y6=y7=y1h; x9=s; y9=0; x4-x8=x8-x9; y4-y8=y8-y9;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,-90);
+penpos4(bar,-90);
+penpos5(curve,180);
+penpos6(bar,90);
+penpos7(bar,90);
+penpos8(curve,0);
+penpos9(bar,-90);
+penstroke z3e--z4e{left}..tension.8..z5e..tension.8..{right}z6e--z7e;
+penstroke z9e{right}..{up}z8e{up}..{right}z4e;
+fill z9r..z9l..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar("A",13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar("B",11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,1/2cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("C",10u#+s#,cap_height#,0);
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3)+.4c;
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("D",12u#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(o,30);
+penpos6(cap_curve,0);
+penpos7(o,-30);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+x3=x9=x1d;
+x8=x4=.5w; y8=y9=1/2cap_bar; y4=y3=h-1/2cap_bar;
+y6=.5h; x6=w-1/2cap_curve-s;
+y7=0.08h; y5=0.92h; x5=x7=x4+5/8(x6-x4)-c;
+penstroke z3e--z4e{right}..z5e..z6e..z7e..{left}z8e--z9e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("E",10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("F",10u#+.5s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("G",10u#+cap_jut#+c#+s#,cap_height#,0);
+x1=x5=23/42(w-cap_jut-c); y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3)+.4c;
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s-cap_jut-c; y8=y1; x8=x1-.1(w-cap_jut-c);
+S_serif(6,slab,w-s-2c-x1-cap_jut,1.5border_height);
+S_serif(7,slab,w-s-x1-cap_jut+c,7/4border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+x9r=x7e; y9r=7/4border_height-1/2cap_bar;
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+x10=x9l; x11=x9r; y10=y11=3/4cap_bar;
+fill reverse serif_edge9--z10--z11--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("H",12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("I",2cap_jut#+cap_stem#+2s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+endchar;
+
+beginchar("J",7u#+1.5s#,cap_height#,0);
+x1=x4=w-cap_jut-1/2cap_stem-s;
+y1c=h; y2=y3=y4=13/53h; x2=x1r; x3=x1l;
+y5=0; x5=x3-2/3cap_stem;
+serif(1,cap_stem,-90,1.2cap_jut,cap_jut);
+fill z3--z2--reverse serif_edge1--cycle;
+penpos4(cap_stem,0);
+penpos5(cap_bar,-90);
+penstroke z4e{down}..{left}z5e;
+x6e=s; y6=0;
+dl_drop(6,cap_drop_round,x5-s,drop_round,cap_bar);
+fill dl_drop_edge6;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("K",13u#-c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=cap_bar_height; x3l=w-cap_jut-.5cap_jut-cap_bar-s; y3l=h-cap_bar;
+x5=x6=x1r; y5=cap_bar_height-cap_bar; y6=y5-1.3cap_bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+A_serif(3,.9cap_bar,theta1,1.5cap_jut,.6cap_jut);
+x4l=w-s-1.2cap_jut-cap_stem; y4l=cap_bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,cap_stem,theta2,.8cap_jut,cap_jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("L",10u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=y5=y2h; x3=x2d; x5e=w-s;
+T_serif(5,cap_bar,border_height,1); x4=x5;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penstroke z3e--z4e;
+fill T_edge5 reflectedabout(z3,z4);
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar("M",13u#+c#,cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,1/2cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 110; y7l=13/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("N",12u#-c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_bar+s;
+x3=w-x1; y1c=y3c=h; y2c=y4=y5=0;
+x4=x3r; x5=x3l;
+serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+A_serif(2,cap_bar,90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill A_serif_edge2--reverse serif_edge1--cycle;
+numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+theta1=angle(z5-z7);
+z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+fill z6--z1h--z7--z5{down}..{up}z4--reverse A_serif_edge3--cycle;
+unfill z1b--z1l--z1a--cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("O",11u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3)+.4c; x6=x8=x5+9/16(x7-x5)-.4c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("P",10u#+s#,cap_height#,0);
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Q",11u#+s#,cap_height#,comma_depth#);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3)+.4c; x6=x8=x5+9/16(x7-x5)-.4c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x12-1.5c; x12=x7l-c; y11=y12=-comma_depth;
+y9=0; x9=x1-c; y9-y10=y10-y11; x11-x10=x10-x9;
+penpos9(cap_bar,90); penpos10(cap_curve,0);
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z9e{dir -20}..tension.8..z10e..tension.8..{right}z11e--z12e;
+fill z12r..z12l..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("R",11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2r;
+y1c=h; y2c=0; x6=x4=x7+2.5u; x3=x1d;
+y4-y5=y5-y6; x5=x8+(6/7)*.5c; x9=w-s-1/2cap_bar; y9=0; y6-y8=y8-y9; x10=x6-c; x9-x8=6/7(x8-x10);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,-90);
+penpos6(cap_bar,-90);
+penpos8(cap_curve,-180);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penstroke z9e{left}..tension.8..{up}z8e{up}..tension.8..{left}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("S",9u#+s#,cap_height#,0);
+x6=x7=1/2w; y6=y7=0;
+S_serif(7,cap_bar,x6-s,1.5border_height);
+y5=11/53h; x5=w-s-1/2(1.9hair);
+y4=28/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2(1.9cap_bar);
+x2=.5w-c; y2=h; z1=z2;
+penpos6(cap_bar,-90);
+penpos5(1.9hair,0);
+penpos4(1.1cap_curve,90);
+penpos3(1.9hair,0);
+penpos2(cap_bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-cap_bar,1.2border_height);
+fill S_serif_edge1;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("T",round (11u#+s#),cap_height#,0);
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("U",12u#+s#,cap_height#,0);
+x1=cap_jut+1/2cap_stem+s;
+x3=w-s-cap_jut-1/2cap_bar;
+y1c=y3c=h; y2=y4=y5=y6=y24=y56=16/53h; x2=x1l;
+x4=x1r; x5=x3l; x6=x3r;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill z2--z4--reverse serif_edge1--cycle;
+fill z5--z6--reverse A_serif_edge3--cycle;
+x7=x1+.5(x3-x1); y7=0; x4-x24=x24-x2; x6-x56=x56-x5;
+penpos24(cap_stem,-180); penpos7(vair,-90);
+penpos56(cap_bar,0);
+penstroke z24e{down}..tension.9..{right}z7e{right}..tension.9..{up}z56e;
+penlabels(range 1 thru 7,24,56);
+endchar;
+
+beginchar("V",12u#,cap_height#,0);
+x1l=cap_jut+s;
+x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w-1/2cap_bar; x5=.5w+1/2cap_bar;
+y4=y5=1/2cap_bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("W",17u#,cap_height#,0);
+x9l=.5w-.3cap_stem;
+x7r=w-s-cap_jut;
+y9l=y7r=y1l=h-cap_bar; x5=x9l+.5(x7r-x9l)-1/2cap_bar; x6=x9l+.5(x7r-x9l)+1/2cap_bar;
+y5=y6=y2=y3=1/2cap_bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(7,cap_bar,theta2,1.3cap_jut,cap_jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+cap_jut;
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+z2=z1l+whatever*dir theta1; x3=x2+cap_bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("X",12u#+s#,cap_height#,0);
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("Y",12u#,cap_height#,0);
+x1l=cap_jut+s;
+x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w;
+y4=8/25h;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+y5c=0; x5=.5w+.5c;
+serif(5,cap_stem,90,cap_jut,cap_jut);
+x6=x5l; x7=x5r;
+z6=z1l+whatever*dir theta1;
+z7=z3r+whatever*dir theta2;
+fill z6--serif_edge5--z7--reverse A_serif_edge3--z2--reverse serif_edge1--z6&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Z",9u#+1.5s#,cap_height#,0);
+x6=s+1/2cap_bar; y6=y7=y8=1/2cap_bar;
+x8e=w-s; x7=x8;
+T_serif(8,cap_bar,border_height,1);
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4cap_bar;
+x4r=w-s-1/4cap_bar; y4=h-cap_bar;
+penpos4(cap_stem,0);
+penpos5(cap_stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2cap_bar;
+x3=w-s-1/2cap_bar; x1e=s+c;
+T_serif(1,cap_bar,border_height,0);
+x2=x1;
+penpos3(cap_bar,90);
+penpos2(cap_bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar("a",9u#-s#+2/7stem#,x_height#,0);
+x5=w-s-1/2bar; y5=0; y4=6/7stem; x4=x3=x5-3/7stem-1/2stem;
+y3=bar_height+2bar; y2=y1=h; x2=s+c+6/20w; x1e=s+c;
+ul_drop(1,drop_round,x2-s-c,1.2drop_round,bar);
+fill ul_drop_edge1;
+penpos2(bar,90);
+penpos3(stem,0);
+penpos4(stem,0);
+penpos5(bar,90);
+penstroke z2e{right}..{down}z3e--z4e{down}..{right}z5e;
+fill z5r..z5l..cycle;
+y6=bar_height+1/2bar; x6=x3+1/2stem; x7=s+1/2stem; y7=7/17bar_height;
+y8=0; x9=x4-1/2stem+1/2bar; x9-x8=x8-x7; y9=y4+3/2bar; x66=x8; y66=y6-c;
+numeric theta[]; theta1=angle(z66-z6);
+penpos6(vair,90);
+penpos66(vair,90);
+penpos7(curve,180);
+penpos8(vair,270);
+penpos9(bar,360);
+penstroke z6e{left}..z66e{dir theta1}..tension.8..{down}z7e{down}..tension.8..z8e{right}..{up}z9e;
+penlabels(range 1 thru 9,66);
+endchar;
+
+beginchar("b",8u#+jut#,asc_height#,0);
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+.5s+.6(w-jut-2s); y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=0.1x_height; y8=0.08x_height; y4=0.9x_height; y6=0.92x_height;
+x2=x4=x3+3/8(x5-x3); x6=x8=x5+1/2(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=0;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,0);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("c",8u#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.9hair,180);
+x1=.53w; x5=.53w; y1=0; y5=h;
+y3=.5h; x3=1/2curve+s;
+y2=0.08h; y4=0.92h; x2=x4=x3+3/8(x5-x3)+.6c;
+x6=w-s-1/2hair; y6=y3-.85stem;
+penstroke z6e{down}..tension1.1..{left}z1e..z2e..z3e..z4e..z5e{right};
+fill z6r..z6l..cycle;
+z7=z5;
+ur_drop(7,drop_round,7/8(x6l-x5),drop_round,bar);
+fill ur_drop_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("d",8u#+jut#,asc_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.7o,-150);
+penpos7(stem,-180);
+penpos8(.7o,-210);
+x1=x5=s+.4(w-jut-2s)+.5s; y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2curve+s; x7=w-1/2stem-s-jut;
+y8=0.1x_height; y2=0.08x_height; y6=0.9x_height; y4=0.92x_height;
+x2=x4=x3+1/2(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10h=w-s; x9=x10; y9c=h; y10c=0;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,0,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("e",8u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=.53w; x5=.5w; y1=0; y5=h;
+y3=.5h; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.07h; y4=y6=0.92h; x4=x3+3/8(x5-x3)+.3c; x2=x4+.3c; x6=x5+5/8(x7-x5)-.3c;
+x10=w-s-1/2bar; y10=y7-.94stem;
+penstroke z10e{down}..tension1.1..{left}z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("f",2jut#+stem#+2c#+2s#,asc_height#,0);
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x1; y3=x_height; x4r=x1l-.1stem; y4=x_height+1/2(asc_height-x_height);
+x5l=x4l-.05stem; y5=y4+1.5bar; x6=x1r+.2stem; y6=h-1/2bar;
+penpos3(stem,180);
+penpos4(.75curve,180);
+penpos5(.6curve,180);
+penpos6(bar,90);
+penstroke z3e{dir 95}...{up}z4e..z5e..{right}z6e;
+y6=y7; x7e=w-s;
+ur_drop(7,drop_round,x7e-x6,drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("g",9u#+c#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+y3=y7=2/3h; x3=1/2curve+s+c; x7=w-3/2stem-s;
+x1=x5=x3+1/2(x7-x3); y1=3/11h; y5=h;
+y2=y8=y1+0.09(8/11h); y4=y6=y1+0.91(8/11h); x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x9=x7; y9=y7+1/2(y6-y7); y10=h; x10=x7l+c;
+x11e=w-s; y11=y10;
+ur_drop(11,.8stem,x11e-x10,drop_round,bar);
+penpos9(hair,180); penpos10(vair,90);
+penstroke z9e{up}..{right}z10e;
+fill ur_drop_edge11;
+y12=y1; x12=x1; y13=5/8*y12; x13=s+1/4stem+.5c;
+y14=y15=0; x14=x2r; x15=x8r; y16=y18=-d/2; x16=w-s-1/2stem;
+x18=s+.7hair; y17=-d+1/2bar; x17=s+.6bar+9/20(x16-x18); x19=x14; y19l=y14r;
+penpos12(vair,90); penpos13(1/2curve,180); penpos14(curve,270);
+z144=z14; penpos144(curve,90); penpos15(curve,90);penpos16(1/2curve,0);
+penpos17(vair,-90); penpos18(1.4hair,-180); penpos19(1.4vair,-270);
+penstroke z12e{left}..{down}z13e{down}..{right}z14e;
+penstroke z144e--z15e{right}..tension.8..{down}z16e{down}..{left}z17e{left}..{up}z18e{up}..{right}z19e;
+penlabels(range 1 thru 19);
+endchar;
+
+beginchar("h",10u#-c#,asc_height#,0);
+w:=w+1;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6h=w-s; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33x_height;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=x_height; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("i",2jut#+stem#+2s#,x_height#+2.1stem#,0);
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+z3=(x1,h); z4=(x1,h-1.1stem);
+fill z3..z4..cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("j",5u#+s#,x_height#+2.1stem#,desc_depth#);
+x1h=w-s; y1c=x_height; y2=0; x2=x1;
+serif(1,stem,-90,1.5jut,0);
+penpos2(stem,0);
+fill z2l--z2r--reverse serif_edge1--cycle;
+z3=(x1-.05stem,h); z4=(x1-.05stem,h-1.1stem);
+fill z3..z4..cycle;
+y5=-1/4desc_depth; x5r=x2r;
+y6=-d+1/2bar; x6=x2l-1/2stem;
+penpos5(.97stem,0);
+penpos6(bar,-90);
+penstroke z2e--z5e{down}..{left}z6e;
+x7e=s; y7=-d+1/2bar;
+dl_drop(7,drop_round,x6-x7e,drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar("k",10u#,asc_height#,0);
+w:=w+1;
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=bar_height; x3l=w-jut-.7jut-s; y3l=x_height-bar;
+x5=x6=x1r; y5=bar_height-.6bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+y6=y5-bar/cosd (theta1+180);
+A_serif(3,.9bar,theta1,1.8jut,.8jut);
+x4l=w-s-1.2jut-stem; y4l=bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,stem,theta2,.8jut,jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("l",2.4jut#+stem#+2s#,asc_height#,0);
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,1.2jut,0);
+serif(2,stem,90,1.2jut,1.2jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penlabels(1,2);
+endchar;
+
+beginchar("m",14u#,x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6=.5w; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33h;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=h; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+x10h=w-s; y10c=0;
+serif(10,stem,90,jut,jut);
+x9=x10; y9=y5;
+penpos9(stem,0);
+fill serif_edge10--z9r--z9l--cycle;
+x8=x10g; y8=h; y7=y9-1/4bar; x7l=x6r;
+penpos8(vair,90);
+penpos7(bar,180);
+penstroke z9e{up}..{left}z8e{left}..z7e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("n",10u#-c#,x_height#,0);
+w:=w+1;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6h=w-s; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33h;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=h; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("o",8u#+s#,x_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2curve-s;
+y2=y8=0.08h; y4=y6=0.92h; x2=x4=x3+3/8(x5-x3)+.4c; x6=x8=x5+5/8(x7-x5)-.4c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("p",8u#+jut#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+.5s+.6(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=0.1h; y8=0.08h; y4=0.9h; y6=0.92h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+1/2(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=-desc_depth;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("q",8u#+jut#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.7o,-150);
+penpos7(stem,-180);
+penpos8(.7o,-210);
+x1=x5=1.5s+.4(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2stem-s-jut;
+y8=0.1h; y2=0.09h; y6=0.9h; y4=0.91h; x2=x4=x3+1/2(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10h=w-s; x9=x10; y9c=h; y10c=-d;
+serif(9,stem,-90,0,jut);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("r",7u#+c#,x_height#,0);
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,1.2jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x4=x2h+1/2bar; y4=h; y3=23/33h-1/4bar; x3l=x2r;
+penpos4(bar,90);
+penpos3(bar,180);
+penstroke z4e{left}...{down}z3e;
+x5e=w-s; y5=h;
+ur_drop(5,drop_round,x5e-x4,.8drop_round,bar);
+fill ur_drop_edge5; fill z5c..z5e..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar("s",7u#,x_height#,0);
+x6=x7=1/2w; y6=y7=1/2bar;
+S_serif(7,bar,x6-s,border_height);
+y5=11/53h; x5=w-s-1/2(1.4hair);
+y4=29/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2hair;
+x2=.5w; y2=h; z1=z2;
+penpos6(bar,-90);
+penpos5(1.4hair,0);
+penpos4(curve,90);
+penpos3(1.4hair,0);
+penpos2(bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.9..{dir 170}z4e{dir 170}..tension.9..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-1/3bar,.9border_height);
+fill S_serif_edge1;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("t",7u#-.7s#,asc_height#,0);
+y1=y2=46/53h; y4c=x_height; x4g=s;
+serif(4,stem,-90,jut,1.4jut);
+x1=x4r; x2=x1-bar;
+y5=7/33x_height; x5=x4; x3=x4l; y3=42/53h;
+penpos5(stem,180); numeric theta[];
+theta1=angle(z3-z2);
+fill z5l--reverse serif_edge4--z5r--cycle;
+fill z4r--z1{up}..{dir theta1}z2--z3--z4l--cycle;
+y6=1/4bar; x6=x4r+.7jut; x7=w-s-1/2bar; y7=13/53h;
+penpos6(vair,270); penpos7(hair,360);
+penstroke z5e{down}..{right}z6e{right}..{up}z7e;
+fill z7r..z7l..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar("u",round (10u#-1.5c#),x_height#,0);
+w:=w+1;
+x2h=w-s; y1c=h; y2c=0; x1=x2;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,0,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6g=s; y6c=h;
+serif(6,stem,-90,jut,0);
+x5=x6; y5=10/33h;
+penpos5(stem,180);
+fill serif_edge6--z5l--z5r--cycle;
+x4=x6+1/2stem+jut; y4=0; y3=y5+1/4bar; x3l=x2l;
+penpos4(vair,270);
+penpos3(bar,360);
+penstroke z5e{down}..{right}z4e{right}..z3e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar("v",10u#-1.5c#,x_height#,0);
+x1l=jut+s;
+x3r=w-s-jut;
+y1l=y3r=h-bar; x4=.5w-1/2bar; x5=.5w+1/2bar;
+y4=y5=1/2bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,bar,theta2,1.3jut,jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("w",13u#,x_height#,0);
+x9l=.5w-.3stem;
+x7r=w-s-jut;
+y9l=y7r=y1l=h-bar; x5=x9l+.5(x7r-x9l)-1/2bar; x6=x9l+.5(x7r-x9l)+1/2bar;
+y5=y6=y2=y3=1/2bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,stem,theta1,jut,jut);
+A_serif(7,bar,theta2,1.1jut,jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+jut;
+serif(1,stem,theta1,jut,jut);
+z2=z1l+whatever*dir theta1; x3=x2+bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("x",9u#+c#,x_height#,0);
+y3=y4=bar; x3=w-s-jut-1/2stem; x4=s+jut+1/2bar;
+y1=y2=h-bar; x1=s+jut+1/2stem+c; x2=w-s-1.25c-jut-1/2bar;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,stem,theta1-180,jut,jut);
+A_serif(2,1.2bar,theta2-180,jut,jut);
+serif(3,stem,theta1,jut,jut);
+A_serif(4,1.2bar,theta2,jut,1.3jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("y",9u#+s#,x_height#,desc_depth#);
+x1l=s+jut; y1l=h-bar;
+x3r=w-s-.8jut; y3r=h-bar;
+x4=33/60w; y4=-2/5d;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,1.2bar,theta2,1.2jut,.8jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=-d; x6=x4-1.1stem; z7l=z2;
+penpos7(1.2bar,theta2+90);
+penpos5(1.2bar,theta2+90);
+penpos6(1.2bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,1.1drop_round,1.4u,drop_round,1.2bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("z",7u#+c#,x_height#,0);
+x6=s+1/2bar; y6=y7=y8=1/2bar;
+x8e=w-s; x7=x8;
+T_serif(8,bar,.8border_height,1);
+penpos6(bar,90);
+penpos7(bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-.5c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4bar;
+x4r=w-s-1/4bar; y4=h-bar;
+penpos4(stem,0);
+penpos5(stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2bar;
+x3=w-s-1/2bar; x1e=s+c;
+T_serif(1,bar,.8border_height,0);
+x2=x1;
+penpos3(bar,90);
+penpos2(bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(hex"30",9u#+1.2s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,25);
+penpos3(cap_curve,0);
+penpos4(o,-25);
+penpos5(vair,-90);
+penpos6(o,-155);
+penpos7(cap_curve,-180);
+penpos8(o,-205);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.07h-c; y4=y6=0.93h+c; x2=x4=x3+9/16(x5-x3)+.5c; x6=x8=x5+7/16(x7-x5)-.5c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"31",6u#+3/2c#,cap_height#,0);
+y1c=0; x1h=w-s;
+serif(1,cap_stem,90,cap_jut,cap_jut);
+x6=x1f; y5=y6=h; x5=x1; x2=x1a; y2=42/53h;
+penpos4(1.1cap_bar,-20);
+penpos3(1.1cap_bar,-20);
+x4l=s; y4=30/53h; numeric theta[]; theta1=angle(z5-z4);
+z3l=z5; penstroke z3e--z4e; fill z4l{down}..{dir 60}z4r--cycle;
+fill serif_edge1--z6{dir 110}..{dir 250}z5--z2--cycle;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"32",9u#,cap_height#,0);
+z4=(9/33w,14/53h); z5=(s+11/20cap_bar,0);
+z3=(w-s-.5c-7/16cap_curve,40/53h); z2=(15/33w,h);
+penpos2(cap_bar,90);
+penpos3(7/8cap_curve,0);
+penpos4(1.1cap_bar,-45);
+penpos5(1.1cap_bar,0);
+x6=x5r; y6=y7=7/16cap_stem; y8=1/2cap_bar;
+x8e=w-s; x7=x8e;
+T_serif(8,cap_bar,3/5border_height,1);
+penpos6(7/8cap_stem,90);
+penpos7(7/8cap_stem,90);
+penstroke z6e--z7e; %fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+unfill z11{down}..z9--z10--cycle;
+penstroke z5e{up}..z4e..{up}z3e{up}..{left}z2e;
+z1=z2; ul_drop(1,cap_drop_round,15/33w-3c,1.2cap_drop_round,slab);
+fill ul_drop_edge1;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"33",9u#,cap_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height+c;
+x4=x6-3/2cap_stem; x5=x4-1.5u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.47w; y2=h; x3=x6-.24cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_stem,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..z3e..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.9..{left}z7e;
+fill z5r..z5l..cycle;
+ul_drop(1,cap_drop_round,17/39w-s,cap_drop_round,slab);
+fill ul_drop_edge1;
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.2cap_drop_round,slab);
+fill dl_drop_edge8;
+penlabels(1,2,3,4,5,6,7,8,44);
+endchar;
+
+beginchar(hex"34",9u#+c#,cap_height#,0);
+y1=y2=33/53h; y4c=0; x4h=w-s;
+serif(4,7/8cap_stem,90,cap_jut,cap_jut);
+x1=x4r; x2=x1-bar;
+x3=x4l; y3=28/53h;
+numeric theta[]; theta1=angle(z2-z3);
+fill z3{dir theta1}--z2{dir theta1}..{down}z1--reverse serif_edge4--z3&cycle;
+y5=y6=15/53h; x5=x4e; x6=s+cap_bar;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e; fill z5r..z5l..cycle;
+y7=y6l; x7l=x6; z8=(6/36w, 21/53h);
+z9=(2/3w,h);
+penpos7(cap_bar,180); penpos8(cap_bar,150);
+penpos9(cap_stem,180);
+penstroke z7e{up}..z8e..{dir 70}z9e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"35",9u#-c#,cap_height#,0);
+x7=x4=18/39w; y7=0; y5=cap_bar_height+c; y4=y5+s;
+x8e=s; y8=0; x5=x8d;
+dl_drop(8,cap_drop_round,18/39w-s,1.2cap_drop_round,slab);
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z5e..z4e{right}..tension.85..{down}z6e{down}..tension.85..{left}z7e;
+fill z5r..z5l..cycle;
+fill dl_drop_edge8;
+z3=z5; x2=x3; y2=h;
+penpos3(cap_bar,0); penpos2(cap_bar,0);
+penstroke z3e--z2e; fill z2l..tension 1.7..z2r..tension 1.7..cycle;
+y1r=h; x1=x2r; x13=x6; y13=h; 2(x12-x1)=x13-x12; y12=h-.6cap_stem;
+penpos1(7/8cap_stem,90); penpos13(1.1cap_bar,90); penpos12(3/4cap_stem,90);
+penstroke z1e..z12e..z13e; fill z13r..tension 1.7..z13l..tension 1.7..cycle;
+penlabels(1,2,3,4,5,6,7,8,12,13);
+endchar;
+
+beginchar(hex"36",9u#,cap_height#,0);
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=x9=.45w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.06h; y4=0.95h; y6=0.92h+c; x8=x6=x7+15/32(x5-x7); x10=x5+7/16(x3-x5); x2=x4=x10+.5c;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.08h-c; y11=y7;
+x11l=x3l+.3c; y10=y8; z12 = z1;
+penstroke z1e..z2e..{up}z3e{up}..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e{right}..z10e..z11e;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+z13 = (.5w,.5h);
+currentpicture := currentpicture rotatedaround(z13,180);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"37",9u#-c#,cap_height#,0);
+x4=w-s-1/2cap_bar; y4=h-1/2cap_bar;z12 = z1;
+penpos4(cap_bar,0);
+y3=y2=h-7/16cap_stem; y1=h-7/8cap_stem+1/2cap_bar;
+x3=x4l; x1e=s;
+T_serif(1,cap_bar,3/5border_height,0);
+x2=x1e;
+penpos3(7/8cap_stem,90);
+penpos2(7/8cap_stem,90);
+penstroke z2e--z3e;
+fill T_edge1; z44=(x4,h); fill z4r{up}..{left}z44--z3r--z4l--cycle;
+x10=s+c; x11=s; y10=y11=h;
+unfill z1d{up}..z10--z11--cycle;
+unfill z1d{up}..z10--z11--cycle;
+x5r=x3; y5=h-7/8cap_stem;
+x6=14/30w; y6=1/3cap_curve;
+penpos5(cap_bar,0); penpos6(cap_curve,0);
+penstroke z4e{dir -105}..z5e..{dir -95}z6e; fill z6l..z6r..cycle;
+penlabels(1,2,3,4,5,6,10,11,12);
+endchar;
+
+beginchar(hex"38",10u#-s#,cap_height#,0);
+x6=x4=x2=x8=1/2w; y6=0; y2=h;
+y5=11/53h; y7=13/53h; x5=w-s-1/2(1.9hair);
+y4=y8=28/53h; y3=42/53h; y1=40/53h; x3=2s+1/2(1.9cap_bar);
+x1=w-2s-1/2(1.9cap_bar); x7=w-x5;
+penpos6(cap_bar,-90);
+penpos5(2.5hair,0);
+penpos4(cap_curve,50);
+penpos3(2.5hair,0);
+penpos2(cap_bar,-90);
+penpos1(2.5hair,-180);
+penpos7(2.5hair,-180);
+penpos8(cap_bar,-270);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"39",9u#,cap_height#,0);
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=x9=.45w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.06h; y4=0.95h; y6=0.92h+c; x8=x6=x7+15/32(x5-x7); x10=x5+7/16(x3-x5); x2=x4=x10+.5c;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.08h-c; y11=y7;
+x11l=x3l+.3c; y10=y8; z12 = z1;
+penstroke z1e..z2e..{up}z3e{up}..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e{right}..z10e..z11e;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+beginchar(oct"56",cap_stem#+2s#,cap_stem#,0);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+endchar;
+
+beginchar(oct"54",cap_stem#+2s#+c#,cap_stem#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"60",cap_stem#+2s#+c#,asc_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(oct"41", cap_stem#+2s#,cap_height#,0); "Exclamation mark";
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+ x3=.5w-1/2cap_bar; x4=.5w+1/2cap_bar; y3=y4=3/2cap_stem;
+ x6=x1; x5=x2; y5=y6=h;
+ fill z6--z3..z4--z5{up}..z6&cycle;
+endchar;
+
+beginchar(hex"22",2cap_stem#+3s#+2c#,cap_height#,0);
+ z1=(s,h-1/2cap_stem); z2=(x1+cap_stem+c,h-1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-cap_stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"5C",2cap_stem#+3s#+2c#,cap_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(x1+cap_stem+c,1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"7b",10u#-1.5c#,x_height#,0); "En dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"3D",10u#+1.5c#,x_height#,0);
+ z1=(s+1/2bar,bar_height-3c); z2=(w-s-1/2bar,bar_height-3c);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+3c); z4=(w-s-1/2bar,bar_height+3c);
+ penpos3(bar,90); penpos4(bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"23",13u#,asc_height#,body_depth#);
+ z1=(s+1/2bar,bar_height-5c); z2=(w-s-1/2bar,bar_height-5c);
+ penpos1(1.5bar,90); penpos2(1.5bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+5c); z4=(w-s-1/2bar,bar_height+5c);
+ penpos3(1.5bar,90); penpos4(1.5bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ z5=(.5w-5c,bar_height); z6=(.5w+5c,bar_height);
+ z7=z5+whatever*dir 76; y7=h; z8=whatever[z5,z7]; y8=-d;
+ penpos7(1.5bar,0); penpos8(1.5bar,0);
+ fill z7l{up}..{down}z7r--z8r{down}..{up}z8l--z7l&cycle;
+ z9=z6+whatever*dir 76; y9=h; z10=whatever[z6,z9]; y10=-d;
+ penpos9(1.5bar,0); penpos10(1.5bar,0);
+ fill z9l{up}..{down}z9r--z10r{down}..{up}z10l--z9l&cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"7c",14u#,x_height#,0); "Em dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(oct"55",2cap_jut#+cap_stem#+2s#,x_height#,0); "hyphen";
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"5F",1.1stem#+2s#,x_height#+2.1stem#,0);
+ z1=(.5w,h); z2=(.5w,h-1.1stem);
+ fill z1..z2..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7E",7u#,body_height#,0);
+ pickup pencircle xscaled .6pt yscaled .2pt rotated 55;
+ z4=(w-s-c,h-s); x1=s+c; y1=y4-1/2cap_stem;
+ y2-y1=y4-y3=3(y4-y1); z2-z1=z4-z3=whatever * dir 55;
+ draw z1..controls z2 and z3..z4;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"3C",7u#-2c#,x_height#,0); "looks like <<";
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(.9stem,0);
+ penpos3(.9stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.4stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.7stem,0);
+ penpos7(.7stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3E",7u#-2c#,x_height#,0);
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(.9stem,0);
+ penpos3(.9stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.4stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.7stem,0);
+ penpos7(.7stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ z10=(.5w,.5h);
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ currentpicture := currentpicture rotatedaround(z10,180);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3B",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+3/2c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ z8=(s,h-1/2cap_stem); z9=(w-s,h-1/2cap_stem);
+ fill z8..z9..cycle;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(hex"3A",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ fill z1..z2..cycle;
+ penlabels(1,2,3,4);
+ z3=(s,1/2cap_stem); z4=(w-s,1/2cap_stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2B",2cap_jut#+cap_stem#+2s#,x_height#,0);
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ x3=x4=.5w; y3=y2+1/2(x2-x1); y4=y2-1/2(x2-x1);
+ penpos3(1.8bar,0); penpos4(1.8bar,0);
+ penstroke z3e--z4e;
+ fill z3r..z3l..cycle; fill z4r..z4l..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2F",2s#+bar#,body_height#,body_depth#);
+ z1=(.5w,h-.5bar); z2=(.5w,-d+.5bar);
+ %pickup pencircle xscaled bar yscaled bar;
+ penpos1(bar,0); penpos2(bar,0);
+ penstroke z1e--z2e; fill z1r..z1l..cycle;
+ fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"27",cap_stem#+2s#+c#,x_height#+2.1stem#,0);
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ z6=(.5w-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"28",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"29",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"86",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"87",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"5B",2s#+3cap_bar#,body_height#,body_depth#);
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x2,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z1r..z1l..cycle; fill z6r..z6l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"5D",2s#+3cap_bar#,body_height#,body_depth#);
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x1,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z2r..z2l..cycle; fill z5r..z5l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"B9",16u#,cap_height#,0);
+ x1=x2=cap_jut+1/2cap_bar+s+cap_stem;
+ x3=w-x1-1/2cap_stem; y1c=h; y4=y5=0;
+ x4=x3r; x5=x3l; y2=12/53h; y3=h-y2;
+ x8=x2-stem; y8=0; z9=z8;
+ dl_drop(9,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill dl_drop_edge9; penpos8(bar,-90);
+ serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+ penpos2(bar,0); penpos3(bar,0);
+ penstroke z2e{down}..{left}z8e;
+ fill z2l--z2r--reverse serif_edge1--cycle;
+ numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+ theta1=angle(z5-z7); x10=x3+stem; y10=h; z11=z10;
+ penpos10(bar,-90); penstroke z3e{up}..{right}z10e;
+ ur_drop(11,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill ur_drop_edge11;
+ z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+ fill z6--z1h--z7--z5{down}..{up}z4--z3r--z3l--cycle;
+ unfill z1b--z1l--z1a--cycle;
+ y12=y13=2cap_bar; x12=x4+2cap_bar+s; x13=w-2s;
+ penpos12(.4stem,90); penpos13(.4stem,90);
+ penstroke z12e--z13e; y16=y11d-4cap_bar;
+ x13-x14=x14-x12; x16=x14; y14=y13+4cap_bar;
+ x17=w-s-1/4stem; x17-x16=x16-x15; y16-y15=y15-y14;
+ y17=y15; penpos17(.7stem,0); penpos16(bar,90);
+ penpos15(.7stem,180); penpos14(bar,270);
+ penstroke z17e{up}..{left}z16e{left}..{down}z15e{down}..{right}z14e{right}..{up}z17e;
+ fill z12l..tension1.2..z12r..tension1.2..cycle;
+ fill z13l..tension1.2..z13r..tension1.2..cycle;
+ penlabels(range 1 thru 17);
+endchar;
+
+beginchar(hex"24",9u#-s#,body_height#,body_height#-cap_height#);
+ x6=x7=1/2w-c; y6=y7=0;
+ dl_drop(7,cap_drop_round,x6-s,1.1cap_drop_round,cap_bar);
+ y5=12/53cap_height; x5=w-s-1/2(1.9hair);
+ y4=1/2cap_height; x4=19/38w; y3=41/53cap_height; x3=s+1/2(1.9cap_bar);
+ x2=.5w+c; y2=cap_height; z1=z2;
+ penpos6(cap_bar,-90); penpos5(1.9hair,0);
+ penpos4(cap_curve,60); penpos3(1.9hair,0);
+ penpos2(cap_bar,-90);
+ penstroke z6e{right}..z5e..tension1..z4e..tension1..z3e..{right}z2e;
+ fill dl_drop_edge7;
+ ur_drop(1,cap_drop_round,w-s-x2,1.1cap_drop_round,cap_bar);
+ fill ur_drop_edge1;
+ z8=(.5w,h); z9=(.5w,-d);
+ penpos8(cap_bar,0); penpos9(cap_bar,0);
+ penstroke z8e--z9e;
+ fill z9r..z9l..cycle; fill z8r..z8l..cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"25",12u#,asc_height#,0);
+penpos1(vair,90); penpos2(.45curve,0);
+penpos3(vair,-90); penpos4(.45curve,-180);
+y1=.55h; y3=h; y3-y4=y4-y1; y2=y4; x2=1/4curve+s; x4=4/2curve+s;
+x4-x1=x1-x2; x3=x1;
+penstroke z1e{left}..tension.9..{up}z2e{up}..tension1.2..{right}z3e..tension.9..{down}z4e{down}..tension1.2..{left}z1e..cycle;
+penpos5(vair,90); penpos6(.45curve,0);
+penpos7(vair,-90); penpos8(.45curve,-180);
+y5=0; y7=.45h; y7-y8=y8-y5; y6=y8; x8=w-1/4curve-s; x6=w-4/2curve-s;
+x8-x5=x5-x6; x7=x5;
+penstroke z5e{left}..tension.9..{up}z6e{up}..tension1.2..{right}z7e..tension.9..{down}z8e{down}..tension1.2..{left}z5e..cycle;
+x9l=x7; y9=h; x10r=x1; y10=0;
+penpos9(1.2bar,0); penpos10(1.2bar,0);
+penstroke z9e--z10e;
+penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"26",14u#,cap_height#,0);
+x4=x8=x3+.5curve; y6=0; y2=h; x2=x3+1.3cap_curve;
+y7=13/53h; y5=9/53h; x5=x7+3.5cap_curve; x6=x7+1.8cap_curve;
+y4=y8=30/53h; y1=44/53h; y3=42/53h; x3=4s+curve;
+x1=x3+2.1cap_curve; x7=s+1/2cap_curve;
+x10=w-s; y10=5/53h; x10-x9=x9-x5; y9=1/5cap_curve;
+th:=angle(z4-z5)+5; th1:=th-11; x11h=w-s-c; y11h=y1-4s;
+A_serif(11,cap_bar,-110,cap_jut,cap_jut); z12l=z11a;
+penpos6(cap_bar,-90); penpos5(cap_stem,45);
+penpos4(cap_stem,45); penpos3(3hair,0);
+penpos2(cap_bar,-90); penpos1(2hair,-180);
+penpos7(cap_curve,-180); penpos8(cap_bar,-250);
+penpos9(.7cap_curve,70); penpos10(cap_bar,150);
+penpos12(cap_bar,0);
+penstroke z10e..z9e..z5e{dir th}..{dir th1}z4e..tension.9..{up}z3e{up}..tension1..z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e{dir 8}..{dir 70}z12e;
+fill z12l--z12r..reverse A_serif_edge11--cycle;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"40",14u#,x_height#+2curve#,2curve#);
+a_width:=9u+c-2s;
+x1=2s+a_width-s-3/4stem+1.5curve; y1=x_height; y2=7/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=3s+a_width+1.5curve; y4=15/33x_height;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.2vair,270); penpos4(bar,360);
+x5=x1-1.33stem; y5=x_height; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c+1.2curve; y6=.54x_height; y8=.46x_height; z8l=whatever[z1r,z2r];
+x13=x5; y13=h-1/2bar; x14=s+1/2bar; y14=y6; y15=-d+1/2bar; x15=x7;
+x16=x4; y16=-d+3bar; penpos7(vair,270); penpos16(bar,270);
+penpos13(bar,90); penpos14(bar,180); penpos15(bar,270);
+penpos8(2bar,0); penpos5(vair,90); penpos6(curve,180);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 80}z4e..z13e{left}..z14e..{right}z15e..z16e;
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=x_height-c; z10=(x1r+c,x_height); z11=(x1l-c,x_height);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+fill z16r..z16l..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar(hex"12",1.5cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=s+.45cap_stem*cosd 45;
+x2=w-s+cap_bar*cosd 45; z2=z1+whatever*dir -45;
+penpos1(.8cap_stem,45); penpos2(cap_bar,45);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"13",1.5cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=w-s-.45cap_stem*cosd 45;
+x2=s-cap_bar*cosd 45; z2=z1+whatever*dir -135;
+penpos1(.8cap_stem,135); penpos2(cap_bar,135);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"3F",7u#+s#,cap_height#,0);
+ x1=s+4/5cap_stem; y1=1/2cap_stem;
+ penpos1(cap_stem,0);
+ fill z1r..z1l..cycle;
+ y2=cap_stem+cap_bar; x2=x1;
+ z3l=z2l+whatever*dir 96; y3l=25/53h;
+ penpos2(cap_bar,0); penpos3(cap_bar,0);
+ penstroke z2e--z3e;
+ z4l=z3l; penpos4(cap_bar,0);
+ y5=y4-1.5bar; x5=x4+3cap_bar; penpos7(cap_bar,-90);
+ x6=w-s-1/2cap_curve; y6=37/51h; x7=12/31w; y7=h;
+ penpos5(cap_bar,90); penpos6(cap_curve,180); z8=z7;
+ penstroke z4e{dir -69}..z5e{dir 10}..tension1..{up}z6e{up}..tension.9..{left}z7e;
+ ul_drop(8,cap_drop_round,x7-s,cap_curve,cap_bar);
+ fill ul_drop_edge8;.
+ fill z3r..tension1.2..z3l..tension1.2..cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"10",2jut#+stem#+2s#,x_height#,0);
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"11",5u#+s#,x_height#,desc_depth#);
+x1h=w-s; y1c=x_height; y2=0; x2=x1;
+serif(1,stem,-90,1.5jut,0);
+penpos2(stem,0);
+fill z2l--z2r--reverse serif_edge1--cycle;
+y5=-1/4desc_depth; x5r=x2r;
+y6=-d+1/2bar; x6=x2l-1/2stem;
+penpos5(.97stem,0);
+penpos6(bar,-90);
+penstroke z2e--z5e{down}..{left}z6e;
+x7e=s; y7=-d+1/2bar;
+dl_drop(7,drop_round,x6-x7e,drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(hex"2A",3cap_stem#+3s#,body_height#,0);
+ x1=x2=x3=x4=.5w; y1=h-1/2stem; y2=y1-cap_stem; y3=y2-bar; y4=y3-bar;
+ penpos1(stem,0); penpos2(cap_bar,0); penpos3(2cap_bar,0);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle;
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,60);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,120);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,180);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,240);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,300);
+ penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"0B",4jut#+2stem#+4.5s#,asc_height#,0);
+w:=w+1;
+numeric dist; dist := 2jut+2stem-3c;
+x1g=x2g=s+dist; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x1; y3=x_height; x4r=x1l-.1stem; y4=x_height+1/2(asc_height-x_height);
+x5l=x4l-.05stem; y5=y4+1.5bar; x6=round (x1r+.2stem); y6=h-1/2bar;
+penpos3(stem,180);
+penpos4(.75curve,180);
+penpos5(.6curve,180);
+penpos6(bar,90);
+penstroke z3e{dir 95}...{up}z4e..z5e..{right}z6e;
+y6=y7; x7e=w-s;
+ur_drop(7,drop_round,x7e-x6,drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+x11g=x12g=s; y11c=x_height; y12c=0;
+serif(11,stem,-90,jut,jut);
+serif(12,stem,90,jut,jut);
+fill serif_edge12--reverse serif_edge11--cycle;
+x13=x11; y13=x_height; x14l=x13l; y14=x_height+1/2(asc_height-x_height);
+x15l=x14l; y15=y14+1.5bar; x16=x11r+.8stem; y16=h;
+x17r=x5l; y17=y5;
+penpos13(stem,180);
+penpos14(.75curve,180);
+penpos15(.6curve,180);
+penpos16(bar,90);
+penpos17(bar,0);
+penstroke z13e{dir 95}...{up}z14e..z15e..{right}z16e{right}..{down}z17e;
+fill z11d--z1c--z1b--z11e--cycle;
+penlabels(1,2,3,4,5,6,7,11,12,13,14,15,16,17);
+endchar;
+
+beginchar(hex"5E",6u#,body_height#,0);
+ x1=s+.45cap_bar*cosd 45; x2=w/2; y2=h-bar;
+ z1=z2+whatever*dir -135; x3=w-x1; z3=z2+whatever*dir -45;
+ penpos1(bar,135); penpos2(2bar,90); penpos3(bar,45);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"16",6u#,body_height#,0);
+ x1=s; x2=w-x1; y1=y2=h-4bar;
+ penpos1(.8bar,90); penpos2(.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7F",2stem#+4s#,x_height#+2.1stem#,0);
+ z1=(s+.5stem,h); z2=(s+.5stem,h-stem);
+ fill z1..z2..cycle;
+ z3=(w-s-.5stem,h); z4=(w-s-.5stem,h-stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+ligtable CYR_A: "A":
+ CYR_O kern -k#,
+ "O" kern -k#,
+ CYR_ES kern -k#,
+ "C" kern -k#,
+ CYR_TE kern -k#,
+ CYR_U kern -kk#,
+ CYR_EF kern -k#,
+ CYR_CHE kern -kkk#,
+ CYR_HARD_SIGN kern -k#,
+ "W" kern -kkk#,
+ "V" kern -kkk#,
+ "Y" kern -kkk#,
+ "T" kern -k#,
+ "w" kern -kk#,
+ "v" kern -kk#,
+ %CYR_o kern -k#,
+ %CYR_es kern -k#,
+ CYR_che kern -kk#;
+ %CYR_ie kern -k#,
+ %CYR_ye kern -k#;
+
+ligtable CYR_GHE: CYR_TE: "T":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_DE kern -k#,
+ CYR_EL kern -kk#,
+ CYR_o kern -k#,
+ "o" kern -k#,
+ "c" kern -k#,
+ CYR_el kern -k#,
+ CYR_es kern -k#;
+
+ligtable CYR_O: CYR_E: CYR_YU:
+ CYR_U kern -k#,
+ "X" kern -k#,
+ CYR_HA kern -k#;
+
+ligtable CYR_ER: "P":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_EL kern -k#,
+ CYR_el kern -k#;
+
+ligtable CYR_U:
+ CYR_A kern -kkk#,
+ "A" kern -kkk#,
+ CYR_O kern -k#,
+ "O" kern -k#,
+ CYR_ES kern -k#,
+ "C" kern -k#,
+ CYR_el kern -kkk#,
+ CYR_EL kern -kk#,
+ CYR_EF kern -k#;
+
+ligtable CYR_HA: "X":
+ "O" kern -k#,
+ CYR_O kern -k#,
+ "Q" kern -k#,
+ "C" kern -k#,
+ CYR_ES kern -k#,
+ "G" kern -k#;
+
+ligtable CYR_ghe: CYR_te:
+ CYR_de kern -k#,
+ CYR_el kern -k#;
+
+ligtable CYR_o: CYR_er: CYR_e: CYR_yu: CYR_ye:
+ "x" kern -k#,
+ CYR_ha kern -k#;
+
+ligtable CYR_u: "y":
+ CYR_de kern -k#,
+ CYR_el kern -k#,
+ CYR_ie kern -k#,
+ "e" kern -k#,
+ CYR_es kern -k#,
+ "c" kern -k#,
+ CYR_ye kern -k#,
+ CYR_ef kern -k#;
+
+ligtable CYR_ha: "x":
+ CYR_ie kern -k#,
+ "d" kern -k#,
+ "e" kern -k#,
+ "o" kern -k#,
+ "q" kern -k#,
+ CYR_o kern -k#;
+
+ligtable "D": "O": "Q":
+ "X" kern -k#;
+
+ligtable "L":
+ "T" kern -kk#,
+ CYR_TE kern -kk#,
+ "Y" kern -kk#;
+
+ligtable "V": "W":
+ "A" kern -kkk#,
+ CYR_A kern -kkk#,
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ CYR_el kern -kk#,
+ CYR_EL kern -k#,
+ "d" kern -k#;
+
+ligtable "Y":
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "d" kern -k#,
+ "A" kern -kk#,
+ CYR_A kern -kk#;
+
+ligtable "a": CYR_a:
+ "V" kern -kk#,
+ "W" kern -kk#,
+ "T" kern -k#,
+ CYR_TE kern -k#,
+ "y" kern -k#,
+ CYR_u kern -k#,
+ "v" kern -k#,
+ "u" kern -k#,
+ CYR_che kern -kk#,
+ "Y" kern -kk#;
+
+ligtable "e": CYR_ie:
+ CYR_ha kern -k#,
+ "v" kern -k#,
+ "w" kern -k#,
+ "V" kern -k#,
+ "W" kern -k#;
+
+ligtable "f":
+ "f" =: hex"0B";
+
+ligtable "k": "l":
+ CYR_o kern -k#,
+ "o" kern -k#;
+
+ligtable "m": "n":
+ "y" kern -k#,
+ CYR_u kern -k#,
+ CYR_o kern -k#,
+ "o" kern -k#;
+
+ligtable "o": "b": "p":
+ "e" kern k#,
+ CYR_ie kern k#,
+ "o" kern k#,
+ CYR_o kern k#,
+ "v" kern -k#,
+ "w" kern -k#,
+ "V" kern -k#,
+ "W" kern -k#,
+ "x" kern -k#,
+ CYR_ha kern -k#, 1:: "!" kern kk#;
+
+ligtable "v": "w":
+ "A" kern -kk#,
+ CYR_A kern -kk#,
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ "d" kern -k#;
+
+ligtable hex"37":
+ CYR_A kern -kk#,
+ "A" kern -kk#;
+ligtable oct"55":
+ oct"55" =: hex"7b";
+ligtable hex"7b":
+ oct"55" =: hex"7c";
+end
diff --git a/fonts/obnov/obnit10.mf b/fonts/obnov/obnit10.mf
new file mode 100644
index 0000000000..7a53fd9bcb
--- /dev/null
+++ b/fonts/obnov/obnit10.mf
@@ -0,0 +1,3565 @@
+%written by Basil Solomykov, Russia
+%(C) Copyright 2011 LPPL (LaTeX Project Public License)
+%Font Ordinary New (Obyknovennaya novaya), Italic
+
+design_size := 10pt#;
+o# := .45pt#;
+u# := 19/35pt#;
+bar# := 10/36pt#;
+slab# := 10/36pt#;
+cap_bar# := 10/36pt#;
+vair# := 10/36pt#;
+hair# := 10/36pt#;
+jut# := 20/36pt#;
+cap_jut# := 26/36pt#;
+stem# := 30/36pt#;
+curve# := 31/36pt#;
+cap_stem# := 36/36pt#;
+cap_curve# := 37.2/36pt#;
+s# := 0.4pt#;
+c# := .2pt#;
+
+input obn_lcyw_code.mf
+font_identifier "OBNIT";
+mode_setup;
+clear_pen_memory;
+
+font_size design_size*pt#;
+asc_height# := 24/36*design_size*pt#;
+cap_height# := 24/36*design_size*pt#;
+body_height# := 27/36*design_size*pt#;
+x_height# := 15.4/36*design_size*pt#;
+desc_depth# := 8/36*design_size*pt#;
+body_depth# := 9/36*design_size*pt#;
+comma_depth# := 5/36*design_size*pt#;
+x_depth# := 4/5comma_depth#;
+bar_height# := .52x_height#;
+cap_bar_height# := .52cap_height#;
+cap_bar2_height# := .45cap_height#;
+border_height# := comma_depth#;
+cap_drop_round# := 4*slab#;
+drop_round# := 6/8cap_drop_round#;
+
+bracket# := pt#;
+
+font_slant 1.5u#;
+font_x_height x_height#;
+font_normal_space 9u#;
+font_normal_stretch 4u#;
+font_normal_shrink 2u#;
+font_quad 16u#;
+font_extra_space 6u#;
+
+k# := .8u#;
+kk# := 1.5u#;
+kkk# := 3u#;
+
+serif_darkness := 1/30;
+define_pixels(bracket,cap_o_width,sss_width,css_width);
+define_pixels(c,s,cap_bar_height,cap_bar2_height);
+define_pixels(border_height,A_bracket,cap_drop_round,x_depth,drop_round);
+define_whole_blacker_pixels(stem,cap_stem,curve,cap_curve,bar,slab,cap_bar);
+define_good_x_pixels(hair); define_good_y_pixels(vair);
+define_whole_pixels(asc_height,cap_height,x_height,u,desc_depth,comma_depth,bar_height,body_height,body_depth,u,o,cap_jut,jut);
+%define_corrected_pixels();
+lowres_fix(stem,curve) 1.2;
+lowres_fix(cap_stem,cap_curve) 1.2;
+if jut=cap_jut: jut:=jut-1; fi
+
+def serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g if left_jut=0: -1/2slab fi +1/2slab; x$d=x$e=x$h if right_jut=0: +1/2slab fi-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut; %п я─п╟п╧п╫п╦п╣ я┌п╬я┤п╨п╦ п╥п╟п╨я─я┐пЁп╩п╣п╫п╦п╧
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def serif_edge suffix $ =
+(serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse serif_bracket($f,$r,$e)) enddef;
+
+def serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...serif_darkness[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def T_serif(suffix $)(expr slab, bord_height, direction)= %Direction: 0-left, 1-right;
+penpos$(slab,if direction=1: - fi 90);
+x$=x$a=x$g; y$g-y$=y$-y$a=1/2slab;
+x$b=x$a + if direction=0: - fi .882bord_height; y$b=y$d=y$c+1/2slab;
+x$c=x$b + if direction=0: - fi 1/2slab; y$c=y$a-bord_height;
+x$d=x$e=x$b + if direction=0: - fi slab;
+y$e=y$g-1/2slab; y$f=y$g; x$f=x$c;
+labels($a,$b,$c,$d,$e,$f,$g) enddef;
+
+def T_edge suffix $ =
+(z$a..{down}z$b..z$c..z$d--z$e{up}..z$f--z$g--cycle) enddef;
+
+def A_serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g+1/2slab; x$d=x$e=x$h-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def A_serif_edge suffix $ =
+(A_serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse A_serif_bracket($f,$r,$e)) enddef;
+
+def A_serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...0.6[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def ur_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a= 1/2slab;
+x$e=x$a + drop_length; y$e=y$f- drop_height;
+x$d=x$e - 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e - drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d - 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ur_drop_edge suffix $ =
+(z$f{right}..tension.9..{down}z$e{down}..{left}z$d{left}..{up}z$c{up}..z$b...{left}z$a--cycle) enddef;
+
+def ul_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$f- drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d + 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ul_drop_edge suffix $ =
+(z$f{left}..tension.9..{down}z$e{down}..{right}z$d{right}..{up}z$c{up}..z$b...{right}z$a--cycle) enddef;
+
+def dl_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, -90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$a + drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e + 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d - drop_round); x$b=x$d + 1/90drop_round;
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def dl_drop_edge suffix $ =
+(z$a{left}..tension.9..{up}z$e{up}..{right}z$d{right}..{down}z$c..{dir 250}z$b{dir -80}..{right}z$f--cycle) enddef;
+
+def S_serif (suffix $)(expr serif_slab, serif_length, serif_height)=
+%penpos$(serif_slab,90);
+x$a=x$i=x$; y$i=y$+1/2serif_slab; y$a=y$-1/2serif_slab;
+x$f=x$e=x$a+serif_length; y$f=y$g-1/2serif_slab; y$e=y$c=y$d+1/2serif_slab;
+x$g=x$f-1/2serif_slab; y$g=y$i-1/2serif_slab;
+y$h=y$f-1/4serif_slab; x$h=x$g-serif_slab;
+x$c=x$e-serif_slab; x$d=x$e-1/2serif_slab; y$d=y$g-serif_height;
+x$b=x$h-6/18serif_length; y$b=y$h-1/2slab;
+labels ($a,$b,$c,$d,$e,$f,$g,$h,$i) enddef;
+
+def S_serif_edge suffix $ =
+(z$a{right}...z$b..{dir -80}z$c..z$d..z$e--z$f{up}..z$g{left}..z$h{dir 150}..{left}z$i--cycle) enddef;
+
+currenttransform := identity slanted sind 18;
+beginchar(CYR_A,13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4b]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar(CYR_BE,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.67u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=y5=h-1/2slab;
+y1c=h; y2c=0; x5e=w-s-cap_stem;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h; x4=w-s-cap_stem-border_height;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_VE,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.27u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+css_width := x8 - x2r; save css_width;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar(CYR_GHE,9u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.77u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; x3=x4+2u;
+y5=y3; x5e=w-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_DE,12u#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-1.03u#;
+x10e=w-s; y10c=-d;
+y4c=h; x4h=w-s-1/2slab;
+x9=x4; y9c=0;
+x3=x8=x9d; y8=y7=1/2cap_bar; y3=y2=h-y8;
+x6e=s; y6=y10; x7=border_height+s;
+y5=y9; x5g=s+.5u; y1=y4; x1=x5+1.5u;
+x2=x1c;
+A_serif(1,1.2cap_bar,-96,10/7cap_jut,cap_jut);
+A_serif(5,1.2cap_bar,81,6/7cap_jut,cap_jut);
+serif(4,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+penpos2(cap_bar,90);
+penpos3(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_bar,90);
+penstroke z7e--z8e; penstroke z2e--z3e;
+fill A_serif_edge5...reverse A_serif_edge1...cycle;
+fill serif_edge9--reverse serif_edge4--cycle;
+T_serif(6,slab,border_height,0);
+T_serif(10,slab,border_height,1);
+fill T_edge6;
+fill T_edge10;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_IE,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.2u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_YE,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.2u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+x12=x13=x2r; y12=h+1/4cap_stem; y13=y12+cap_stem;
+x14=x15=x12+2cap_stem; y14=y12; y15=y13;
+fill z12..z13..cycle; fill z14..z15..cycle;
+penlabels(range 1 thru 15);
+endchar;
+
+beginchar(CYR_ZHE,round (16u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-1.1u#;
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; y7=y4=y10=y11=cap_bar_height; x4=x7-1.5u;
+x10=x8r; x11=x10+1.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+x6=s; y6=0; y4-y5=y5-y6; x4-x5=x5-x6;
+penpos7(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,90);
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z6e{right}..tension.8..{up}z5e{up}..tension.8..{right}z4e--z7e;
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+x3=x5+1/2cap_stem; y2=h; x4-x3=x3-x2; y2-y3=y3-y4;
+penpos3(hair,0);
+penpos2(cap_bar,90);
+penstroke z4e{left}..tension.8..{up}z3e{up}..tension.8..{left}z2e;
+y1=h; x1a=x2; fill z6l..z6r..cycle;
+ul_drop(1,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ul_drop_edge1; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ZE,10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.1u#;
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height;
+x4=x6-3/2cap_stem; x5=x4-3u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3c,1.4border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.5cap_drop_round,slab);
+fill dl_drop_edge8;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_I,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.8u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-18); penpos6(cap_bar,-18);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar(CYR_SHORT_I,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.8u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-18); penpos6(cap_bar,-18);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+y7d=h+1.5cap_drop_round; z7d=z1r+whatever*dir 78;
+dl_drop(7,.95cap_drop_round,1.3stem,.9cap_drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+z8=z7; y9=y7d-2bar; z9=z3+whatever*dir 105;
+penpos8(bar,90); penpos9(bar,135);
+penstroke z8e{right}..tension1.3..z9e;
+fill z9l..tension1.3..z9r..tension1.3..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_KA,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.11u#;
+x8g=x9g=s; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+y10=y11=cap_bar_height;
+x10=x8r; x11=x10+2.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13; fill z16l..z16r..cycle;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_EL,13u#+1/2s#,cap_height#,0);
+italcorr cap_height#*sind 18-.82u#;
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.8cap_drop_round; y3=1.1cap_drop_round;
+dl_drop(1,1.1cap_drop_round,1.1cap_drop_round,1.2cap_drop_round,slab);
+fill dl_drop_edge1;
+penpos2(cap_bar,-90);
+penpos3(cap_bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-slab;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,cap_bar,theta1,1.3cap_jut,1.3cap_jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,cap_stem,-90,cap_jut,cap_jut);
+serif(8,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z5e--z6e;
+%currentpicture := currentpicture shifted(-.7u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_EM,13u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.8u#;
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,.51cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,-18); penpos6(bar,-18);
+z6=z5+whatever*dir -109; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 109; y7l=11/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EN,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.8u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_O,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.2u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+cap_o_width := x7-x3; save cap_o_width;
+%currentpicture := currentpicture shifted(-1.8u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_PE,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.8u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ER,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.55u#;
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_ES,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.2u#;
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+%currentpicture := currentpicture shifted(-1.7u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_TE,round (11u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-.8u#;
+x1=x2=.5w; y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+%currentpicture := currentpicture shifted(-3u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_U,13u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.8u#;
+x1l=s+cap_jut; y1l=.98h-cap_bar;
+x3r=w-s-.8cap_jut; y3r=.98h-cap_bar;
+x4=33/60w; y4=6/53h;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,1.2cap_bar,theta2,1.2cap_jut,.8cap_jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=0; x6=x4-1.2cap_stem; z7l=z2;
+penpos7(1.2cap_bar,theta2+90);
+penpos5(1.2cap_bar,theta2+90);
+penpos6(1.2cap_bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,cap_drop_round,2u, 10/53h, round 1.2cap_bar);
+fill dl_drop_edge8;
+%currentpicture := currentpicture shifted(-3.2u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EF,round (14u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-2.2u#;
+if .5w = good.x .5w: change_width; fi
+x1=x2=.5w; y2c=0; y1h=h;
+y6=y7=y8=y9=1.3cap_jut; y4=y3=y11=y12=h-1.3cap_jut+1/2slab;
+x3=x7=x2l; x8=x12=x2r; x4=x6=x3-u; x11=x9=x12+u;
+x5=s+1/2cap_curve; x10-x1=x1-x5; y4-y5=y5-y6; y10=y5;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,270);
+penpos7(cap_bar,270);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+penpos10(cap_curve,0);
+penpos11(cap_bar,90);
+penpos12(cap_bar,90);
+penstroke z3e--z4e{left}..tension.8..{down}z5e{down}..tension.8..{right}z6e--z7e;
+penstroke z8e--z9e{right}..tension.8..{up}z10e{up}..tension.8..{left}z11e--z12e;
+%currentpicture := currentpicture shifted(-1.8u,0);
+penlabels (range 1 thru 12);
+endchar;
+
+beginchar(CYR_HA,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.25u#;
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_TSE,12.5u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-1.3u#;
+x1=x2=x5=cap_jut+1/2cap_stem+s;
+x3=x4=x6=w-x1-.5u; y5=y6=y2h;
+y1c=y3c=h; y2c=y4c=0; x7e=w-s; y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e;
+T_serif(7,cap_bar,border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_CHE,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.8u#;
+x1=cap_jut+1/2cap_stem+s; x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,-90,cap_jut,cap_jut);
+serif(3,cap_stem,90,cap_jut,cap_jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=cap_bar_height-1/2cap_bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-2cap_bar;
+penpos6(cap_stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+%currentpicture := currentpicture shifted(-3.3u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SHA,16u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.82u#;
+if .5w <> good.x .5w: change_width; fi
+x1=x2=good.x (cap_jut+1/2cap_stem+s);
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=good.x .5w; y5=y1; y6=y2;
+y9b=slab; x9=good.x w-x1;
+x10=x9; y10b=h-slab;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_SHCHA,16u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-.78u#;
+if .5w <> good.x .5w: change_width; fi
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=slab; x9h=w-s;
+x10=x9; y10b=h-slab;
+x11e=w-s; y11=y9h;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,slab,border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_HARD_SIGN,13.5u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-3.25u#;
+x2r=x5-css_width; x1=x2; x8e=0; y8g=h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+x7=x1d; y1c=h; y2c=0;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=round(x3+5u-cap_stem);
+y6=y7=y2h;
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(8,cap_bar,border_height,0);
+fill T_edge8;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+%currentpicture := currentpicture shifted(-1.6u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YERU,16u#+c#,cap_height#,0);
+italcorr cap_height#*sind 18-.8u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+y3=y4=cap_bar_height; x3=round x2r; x4=x6=round (x3+5u-cap_stem) - 1;
+y4-y5=y5-y6; x5=x2r+css_width; y8b=slab; x8h=w-s;
+y6=y7=y2h; x9=x8; y9b=h-slab;
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(8,cap_stem,90,cap_jut,cap_jut);
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge9--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SOFT_SIGN,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-3.25u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=x3+5u-cap_stem;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y6=y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_E,10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.15u#;
+x1=16/39w; x5=.5w; y1=0; y5=h;
+y7=.5h; x7=w-1/2cap_curve-s;
+x9e=s; y9=0;
+dl_drop(9,cap_drop_round,16/39w-s,1.7cap_drop_round,slab);
+y8=0.1h-c; y6=0.9h+c; x8=x9+9/16(x7-x9); x6=x5+9/16(x7-x5);
+penpos5(cap_bar,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+penpos1(cap_bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+y2=y5; x2=x5-c;
+S_serif(2,slab,x1+c,1.5border_height);
+x3=x7-1/2cap_stem; y3=y4=cap_bar_height; x4=x2b-x1;
+penpos3(cap_bar,90); penpos4(cap_bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YU,16u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.2u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+y3=y7=.5h; x7=w-1/2cap_curve-s; x3=x7-cap_o_width; y9=0; y5=h; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3cap_stem; y11=y12=cap_bar_height;
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_YA,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.8u#;
+x1=x2=w-cap_jut-1/2cap_stem-s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2l;
+y1c=h; y2c=0; x6=x4=x7-2.5u; x3=x1c;
+y4-y5=y5-y6; x5=x8-1.5c; x9=s; y9=0; y6-y8=y8-y9; x7-x10=3(x10-x6); x10-x8=x8-x9;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos7(cap_bar,270);
+penpos6(cap_bar,270);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90); fill z9l..z9r..cycle;
+penstroke z3e--z4e{left}..tension.9..z5e..tension.9..{right}z6e--z7e;
+penstroke z9e{right}..tension1..{up}z8e{up}..tension1..{right}z10e;
+penlabels(range 1 thru 10);
+endchar;
+currenttransform := identity;
+
+beginchar(CYR_a,9u#+c#,x_height#,0);
+x1=w-s-3/4stem; y1=h; y2=7/33h; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=w-s-bar/3; y4=8/33h;
+penpos1(stem,180);
+penpos2(stem,180);
+penpos3(1.2vair,270);
+penpos4(bar,360);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 60}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x5=x1-3/2stem; y5=h; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c; y6=.54h; y8=.46h; z8l=whatever[z1r,z2r];
+penpos8(2bar,0);
+penpos5(vair,90);
+penpos6(curve,180);
+penpos7(vair,270);
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=h-c; z10=(x1r+c,h); z11=(x1l-c,h);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar(CYR_be,8u#+s#+stem#,asc_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5(w-stem)-1/2(x_height*sind 14/cosd 14); x3=.5(w-stem)+1/2(x_height*sind 14/cosd 14); y1=0; y3=x_height;
+y2=.54x_height; y4=.46x_height; x2=1/2curve+s; x4=w-1/2curve-stem-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+y5=y2; x5r=x2l; x6=23/35w; y6=46/51h; y7r=h; x7=w-s;
+penpos5(bar,180);
+penpos6(.9curve,90);
+penpos7(.8curve,90);
+penstroke z5e{dir 76}..{dir 14}z6e{dir 14}..{dir 30}z7e;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_ve,8u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=4/5h; x2=1/2curve+s; x4=w-1/2curve-s; z5r=z2; x6=w-s-s-1/2curve; y6=9/33h; z7=z5;
+penpos5(vair,-270);
+penpos6(curve,180);
+penpos7(vair,270);
+penstroke z7e{dir 14}..tension.9..{dir 256}z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{dir 194}z5e;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_ghe,7u#+s#,x_height#,0);
+x4=0.5w; top y4 = good.y (0.5h+1/3bar); y3=11.5/16h; x3=w-s-1/2curve;
+x2=11/18w; y2=h; x1=s+2/3curve; y1=24/33h;
+x5=s+1/2curve; y5=h-y3; x6=w-x2; y6=0; x7=w-x1; y7=h-y1;
+penpos1(bar,180);
+penpos2(1.2bar,90);
+penpos3(curve,0);
+penpos4(1.2bar,-90);
+penpos5(curve,0);
+penpos6(1.2bar,90);
+penpos7(bar,180);
+penstroke z1e{dir 60}..{right}z2e..z3e{dir -104}...z4e...{dir -104}z5e..z6e{right}..{dir 60}z7e;
+fill z7l..tension1.3..z7r..tension1.3..cycle;
+fill z1l..tension1.3..z1r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_de,8u#+s#+stem#,asc_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5(w-stem)-1/2(x_height*sind 14/cosd 14); x3=.5(w-stem)+1/2(x_height*sind 14/cosd 14); y1=0; y3=x_height;
+y2=.54x_height; y4=.46x_height; x2=1/2curve+s; x4=w-1/2curve-stem-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..tension1..{right}z3e..tension.9..{dir 256}z4e{dir 256}..tension1..{left}z1e..cycle;
+y5=23/33x_height; z5=z4+whatever*dir 77; x6=22/35w; y6=h;
+y56=y5+stem; z56=z4+whatever*dir 76;
+x7=11/35w; y7=42/51h;
+penpos5(curve,-180);
+penpos56(.9curve,-180);
+penpos6(1.2bar,-90);
+penpos7(bar,0);
+penstroke z4e{dir 76}..z5e{dir 76}..z56e..tension1..{dir 174}z6e{left}..z7e;
+fill z7l..tension1.3..z7r..tension1.3..cycle;
+penlabels(range 1 thru 8,56);
+endchar;
+
+beginchar(CYR_ie,8u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=4/5h; x2=1/2curve+s; x4=w-1/2curve-s; z5r=z2; x6=w-s-s-1/2vair; y6=9/33h;
+penpos5(vair,-270);
+penpos6(vair,135);
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{dir 194}z5e;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_ye,8u#+c#,asc_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(x_height*sind 14/cosd 14); x3=.5w+1/2(x_height*sind 14/cosd 14);
+y1=0; y3=x_height; y2=.54x_height; y4=4/5x_height; x2=1/2curve+s;
+x4=w-1/2curve-s; z5r=z2; x6=w-s-s-1/2vair; y6=9/33x_height;
+penpos5(vair,-270);
+penpos6(vair,135);
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{dir 194}z5e;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+z8r=(w,h-1/2curve); y7=y8; x7=x8-2curve;
+penpos7(curve,0); penpos8(curve,0);
+fill z7r..z7l..cycle; fill z8r..z8l..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_zhe,15u#,x_height#,0);
+penpos1(1.2vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+x1=x3-(h*sind 14/cosd 14); x3=w-s-3/4stem; y1=0; y3=h;
+y2=.54h; x2=x1-3/4stem; x5=w-s-4/5stem; y5=7/33h;
+penpos5(vair,135); z4=z3;
+penstroke z5e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e;
+fill z5l..tension1.5..z5r..tension1.5..cycle;
+z77=(.5w,.5h); z9=z77+whatever*dir 76; y9=h;
+z8=whatever[z9,z77]; y8=0;
+penpos8(stem,0); penpos9(stem,0);
+penstroke z8e--z9e;
+ur_drop(4,drop_round,3/4stem,drop_round,bar);
+fill ur_drop_edge4;
+x10=w-x5; y10=26/33h; x11=w-x1; y11=h; x12=w-x2; y12=.46h;
+x13=w-x3; y13=0; z14=z13;
+penpos10(bar,135); penpos11(bar,90);
+penpos12(curve,0); penpos13(bar,-90);
+penstroke z10e..z11e{right}..{dir -104}z12e{dir -104}..{left}z13e;
+fill z10l..tension1.5..z10r..tension1.5..cycle; z14=z13;
+dl_drop(14,drop_round,3/4stem,drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+x7=x12; x6=x2; y6=y7=bar_height;
+penpos7(bar,90); penpos6(bar,90);
+penstroke z6e--z7e;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_ze,8u#,x_height#,0);
+x1=2.5s+1/2vair; y1=26/33h; x2=.5w+1/2(h*sind 14/cosd 14); y2=h;
+x3=w-s-1/2curve; y2-y3=y3-y4; x5=x1+s;
+z4=z2+whatever*dir -104; y4=y5=bar_height;
+z7=whatever[z2,z4]; y7=0; z6=z3+whatever*dir -100;
+y4-y6=y6-y7; z8=z7;
+penpos1(bar,135); penpos2(bar,90);
+penpos3(curve,0); penpos4(bar,-90);
+penpos5(bar,-90); penpos6(curve,180);
+penpos7(bar,90);
+penstroke z1e..z2e{right}..{dir -100}z3e{dir -100}..{left}z4e--z5e;
+penstroke z4e{right}..{dir -100}z6e{dir -100}..{left}z7e;
+fill z1l..tension1.5..z1r..tension1.5..cycle;
+fill z5l..tension1.5..z5r..tension1.5..cycle;
+dl_drop(8,drop_round,x7-s,1.2drop_round,bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_i,10u#,x_height#,0);
+x1=w-s-4.8/4stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=0; y5=8/34h;
+x5=s+1/2stem; x6=x5+stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+z7l=z5r+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_short_i,10u#,asc_height#,0);
+x1=w-s-4.8/4stem; y1=x_height; y2=10/33x_height; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33x_height; y3=y6=0; y5=8/34x_height;
+x5=s+1/2stem; x6=x5+stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33x_height;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+z7l=z5r+whatever*dir 76; y7l=x_height-bar;
+serif(7,stem,-104,jut,0);
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+y9d=h; z9d=z7f+whatever*dir 76;
+dl_drop(9,drop_round,stem,drop_round,bar);
+fill dl_drop_edge9; fill z9e..z9c..cycle;
+z10=z9; y11=h-bar; z11=z8+whatever*dir 76;
+penpos10(bar,90); penpos11(bar,135);
+penstroke z10e{right}..tension1.3..z11e;
+fill z11l..tension1.3..z11r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ka,10u#,x_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-2stem; y1=bar_height-2.5bar; y2=6/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y5=y6=0;
+x8=x2-3/4stem; y8=bar_height; y9=bar_height-2bar; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.1bar,270); penpos9(1.2bar,0);
+penstroke z9e{dir 68}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x10=x3; y10=h; penpos10(1.2bar,270); z11=z10;
+penstroke z9e{dir 60}..{dir 25}z10e;
+ur_drop(11,drop_round,9/8drop_round,drop_round,1.2bar);
+fill ur_drop_edge11;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_el,10u#+c#,x_height#,0);
+x1=w-s-5/4stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=0;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x5=x1r; y5=h-1/2bar; x8=1/5w; y8=0; z9=z8;
+y6=27/34h; y7=7/34h; x6=.5w; z7=z6+whatever*dir -108;
+penpos5(vair,90); penpos6(bar,180);
+penpos7(bar,180); penpos8(vair,90);
+penstroke z5e{left}..z6e--z7e{dir -108}..{left}z8e;
+dl_drop(9,1.1stem,x8-s,drop_round,bar);
+fill dl_drop_edge9; fill z9e..z9c..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_em,12u#+s#,x_height#,0);
+x1=w-s-stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=9/33h; y3=0;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+z5r=z1r; z6=z5+whatever*dir -120; y6=0;
+penpos5(bar,180); penpos6(bar,180);
+penstroke z5e--z6e; fill z6l..tension1.3..z6r..tension1.3..cycle;
+z7l=z6r+whatever*dir 92; y7l=7/28h;
+z8l=whatever[z6r,z7l]; y8l=h;
+penpos7(.9stem,0); penpos8(.9stem,0);
+penstroke z7e--z8e; fill z6r--z7l--z7r--cycle;
+y9=h-bar; x9=x8l; y10=10/33h; z10=z9+whatever*dir -104;
+y11=0; x11=s+stem; z12=z11;
+penpos10(bar,0); penpos11(bar,-90);
+serif(9,bar,-104,jut,0);
+fill z10l--z10r--reverse serif_edge9--cycle;
+penstroke z10e{dir -104}..{left}z11e;
+dl_drop(12,drop_round,x11-s,drop_round,bar);
+fill dl_drop_edge12; fill z12e..z12c..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_en,10u#+s#,x_height#,0);
+x1=w-s-4.8/4stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y5=y6=0;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+y8=y9=bar_height; z9=z2+whatever*dir 76; z8=whatever[z6,z7];
+penpos8(bar,90); penpos9(bar,90);
+penstroke z8e--z9e; fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_o,8u#+s#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=.46h; x2=1/2curve+s; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+italic_o_width := x4-x2; save italic_o_width;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_pe,10u#+s#,x_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-10.5/8stem; y1=26/33h; y2=10/33h; z2=z1+whatever*dir -108;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y5=y6=0;
+x8=x2; y8=h; y9=bar_height-bar; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.2bar,270); penpos9(bar,0);
+penstroke z9e{dir 68}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_er,9u#+c#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=x2+.5(x4-x2)-1/4(h*sind 14/cosd 14); x3=x2+.5(x4-x2)+3/4(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=.46h; x2=x4-italic_o_width+c; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+y5=h-bar; z5=z2+whatever*dir 76;
+serif(5,stem,-104,jut,0); fill z5e{dir 76}..z5d{left}..cycle;
+y6=-d+bar; z6=whatever[z2,z5];
+serif(6,stem,76,.3jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_es,7.5u#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+x1=4u-1/2(h*sind 14/cosd 14); x3=4u+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; x2=1/2curve+s; x6=8u-2.5s-1/2vair; y6=9/33h;
+penpos6(vair,135); z4=z3;
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e;
+fill z6l..tension1.5..z6r..tension1.5..cycle;
+ur_drop(4,drop_round,9/8drop_round,5/4drop_round,bar);
+fill ur_drop_edge4;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_te,round (8u#+.2s#),x_height#,0);
+if .5w = good.x .5w: change_width; fi
+currenttransform := identity slanted sind 14;
+x2=.5w-w*sind 14/cosd 14+c; x1e=s-w*sind 14/cosd 14+c;
+x4e=w-s-w*sind 14/cosd 14+c;
+y1=y4=y2h; y2c=h; y3=y5=0; x3=.5w-1/2stem-w*sind 14/cosd 14+c;
+x5=.5w+1/2stem-w*sind 14/cosd 14+c;
+serif(2,stem,-90,jut,jut);
+T_serif(1,bar,4/5border_height,0);
+T_serif(4,bar,4/5border_height,1);
+fill z3--z5--reverse serif_edge2--cycle;
+fill T_edge1; fill T_edge4;
+currenttransform := identity;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_u,10u#-c#,x_height#,desc_depth#);
+x5=w-s-1/2stem; y5=h; y6=10/33h; z6=z5+whatever*dir -104;
+y3=0; y2=8/34h; x2=s+stem; x3=x2+stem;
+y7=0; z7=z6+whatever*dir -104;
+penpos5(stem,180); penpos6(stem,180);
+z8r=z7r+whatever*dir -104; y8r=-1/2d;
+z4l=whatever[z6r,z5r]; y4l=15/33h;
+penpos2(stem,180); penpos3(1.1bar,270);
+y9=-d; x9=x2l; z10=z9;
+penpos4(bar,360); penpos7(stem,180);
+penpos8(.8stem,180); penpos9(bar,90);
+penstroke z2e{dir -104}..z3e{right}..{dir 76}z4e;
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+penstroke z5e{dir -104}..z6e..z7e..z8e..{left}z9e;
+dl_drop(10,1.1stem,x9-s,1.2drop_round,bar);
+fill dl_drop_edge10; fill z10e..z10c..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ef,12u#+c#,asc_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(.9curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=x2+.5(x4-x2)-3/8(x_height*sind 14/cosd 14);
+x3=x2+.5(x4-x2)+5/8(x_height*sind 14/cosd 14);
+y1=y6=0; y3=y8=x_height; y5=y4; x7=1/2curve+s; y7=y2;
+y2=.52x_height; y4=.48x_height; x4=w-1/2curve-s;
+x4-x2=x2-x7; x5=x2;
+x8=x7+.5(x5-x7)+3/8(x_height*sind 14/cosd 14);
+x6=x7+.5(x5-x7)-5/8(x_height*sind 14/cosd 14);
+penpos6(vair,90); penpos7(curve,0);
+penpos8(vair,-90); penpos5(.9curve,180);
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+penstroke z6e{left}..tension.9..{dir 76}z7e{dir 76}..{right}z8e..tension.9..{dir 256}z5e{dir 256}..{left}z6e..cycle;
+x5-x77=x77-x2; y2-y77=y77-y5;
+y10=h; x10=w-s-stem; y11=44/34x_height; z11=z77+whatever*dir 76;
+y12=-1/8d; z12=z77+whatever*dir -104; y13=-d; x13=s+stem; z9=z10;
+penpos10(bar,90); penpos11(stem,180);
+penpos12(stem,180); penpos13(bar,90);
+penstroke z10e{left}..{dir -104}z11e--z12e{dir -104}..{left}z13e;
+ur_drop(9,drop_round,stem,drop_round,bar);
+fill ur_drop_edge9; z14=z13;
+dl_drop(14,drop_round,stem,drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 14,77);
+endchar;
+
+beginchar(CYR_ha,10u#+c#,x_height#,0);
+penpos1(1.2vair,90);
+penpos2(curve,0);
+penpos3(vair,-90); penpos12(curve,0);
+x1=x3-(h*sind 14/cosd 14); x3=w-s-3/4stem; y1=0; y3=h;
+y2=.54h; x2=x1-if design_size=17.32: stem else: 33/40stem fi;
+x5=w-s-4/5stem; y5=7/33h;
+penpos5(vair,135); z4=z3;
+penstroke z5e..z1e{left}..{dir 76}z2e{dir 76}..{right}z3e;
+fill z5l..tension1.5..z5r..tension1.5..cycle;
+ur_drop(4,drop_round,3/4stem,drop_round,bar);
+fill ur_drop_edge4;
+x10=w-x5; y10=26/33h; x11=w-x1; y11=h; x12=w-x2; y12=.46h;
+x13=w-x3; y13=-2epsilon; z14=z13;
+penpos10(bar,135); penpos11(bar,90);
+penpos13(bar,-90);
+penstroke z10e..z11e{right}..{dir -104}z12e{dir -104}..{left}z13e;
+fill z10l..tension1.5..z10r..tension1.5..cycle; z14=z13;
+dl_drop(14,drop_round,3/4stem,drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_tse,10u#,x_height#,desc_depth#);
+x1=w-s-5/4stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=0; y5=8/34h;
+x5=s+1/2stem; x6=x5+stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+z7l=z5r+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+y9l=0; x9l=x3+bar; x10=x2+1/4stem; y10=-1/2d;
+y11=-d; x11=x10-5/4stem;
+penpos11(bar,90); penpos10(stem,180); penpos9(bar,120);
+penstroke z9e..tension1.3..{down}z10e{down}..tension.8..{left}z11e;
+fill z11l..tension1.3..z11r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_che,9u#,x_height#,0);
+x7g=s; y7g=h-1/2bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=9/33h; y3=0; y6l=bar_height; y5=y6l+2bar;
+z5=z7+whatever*dir -104; x6=x5+3/4stem;
+penpos1(stem,180); penpos2(stem,180);
+z8=whatever[z2r,z1r]; y8l=y5-1/2bar;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(1.2bar,256);
+penstroke z5e{dir -104}..z6e{right}..{dir 25}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_sha,14u#,x_height#,0);
+if .5w <> good.x .5w: change_width; fi
+x1=w-s-5/4stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=y10=0; y5=y11=8/34h;
+x11=s+1/2stem; x10=x11+stem;
+z12=z11+whatever*dir 76; y12=h-bar;
+y13=h; z13=whatever[z11,z12];
+x6=x5+stem; x1-x7=x7-x13; y7l=h; z5=z7+whatever*dir -104;
+serif(12,stem,-104,jut,0);
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=y9l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360); penpos7(stem,180);
+z9l=whatever[z5r,z7r];
+penstroke z7e--z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+penpos11(stem,180); penpos10(1.1bar,270);
+penpos9(bar,360);
+fill z11r--z11l--reverse serif_edge12--cycle;
+fill z12e{dir 76}..z12d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penstroke z11e{dir -104}..z10e{right}..{dir 76}z9e;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_shcha,14u#,x_height#,desc_depth#);
+if .5w <> good.x .5w: change_width; fi
+x1=w-s-5/4stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=y10=0; y5=y11=8/34h;
+x11=s+1/2stem; x10=x11+stem;
+z12=z11+whatever*dir 76; y12=h-bar;
+y13=h; z13=whatever[z11,z12];
+x6=x5+stem; x1-x7=x7-x13; y7l=h; z5=z7+whatever*dir -104;
+serif(12,stem,-104,jut,0);
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=y9l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360); penpos7(stem,180);
+z9l=whatever[z5r,z7r];
+penstroke z7e--z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+penpos11(stem,180); penpos10(1.1bar,270);
+penpos9(bar,360);
+fill z11r--z11l--reverse serif_edge12--cycle;
+fill z12e{dir 76}..z12d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penstroke z11e{dir -104}..z10e{right}..{dir 76}z9e;
+y14l=0; x14l=x3+bar; x15=x2+1/4stem; y15=-1/2d;
+y16=-d; x16=x15-5/4stem;
+penpos16(bar,90); penpos15(stem,180); penpos14(bar,120);
+penstroke z14e..tension1.3..{down}z15e{down}..tension.8..{left}z16e;
+fill z16l..tension1.3..z16r..tension1.3..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_soft_sign,8u#,x_height#,0);
+y2=10/34h; x2=s+1/2stem; x3=x2+3/2stem; z5=z3+whatever*dir 76; y5=bar_height+bar; y4=.5y5; x4=w-s-1/2curve; y3=0;
+y6l=y2+bar; z6l=z2l+whatever*dir 76;
+penpos2(stem,180); penpos3(bar,270);
+penpos4(curve,360); penpos5(bar,90);
+penpos6(1.5bar,180);
+penstroke z2e{dir -104}..z3e{right}..{dir 76}z4e{dir 76}..tension.9..{left}z5e{left}..{dir -104}z6e;
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+sss_italic_width :=x4-x2; save sss_italic_width;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_yeru,12u#+s#,x_height#,0);
+y2=10/34h; x2=s+1/2stem; x3=x2+3/2stem; z5=z3+whatever*dir 76; y5=bar_height+bar; y4=.5y5; x4=x2+sss_italic_width; y3=-2epsilon;
+y6l=y2+bar; z6l=z2l+whatever*dir 76;
+penpos2(stem,180); penpos3(bar,270);
+penpos4(curve,360); penpos5(bar,90);
+penpos6(1.5bar,180);
+penstroke z2e{dir -104}..z3e{right}..{dir 76}z4e{dir 76}..tension.9..{left}z5e{left}..{dir -104}z6e;
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+x7=w-s-5/4stem; y7=h-bar; y8=10/33h; z8=z7+whatever*dir -104;
+x9=x8+3/4stem; x10=w-s-1/2bar; y10=10/33h; y9=2epsilon;
+penpos8(stem,180);
+penpos9(1.1bar,270); penpos10(bar,335);
+penstroke z8e{dir -104}..{right}z9e{dir 20}..{dir 65}z10e;
+fill z10l..tension1.3..z10r..tension1.3..cycle;
+serif(7,stem,-104,jut,0);
+fill z8r--z8l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_hard_sign,11u#-c#,x_height#,0);
+y2=10/34h; x2=x4-sss_italic_width; x3=x2+3/2stem; z5=z3+whatever*dir 76; y5=bar_height+bar; y4=.5y5; x4=w-s-1/2curve; y3=0;
+y6l=y2+bar; z6l=z2l+whatever*dir 76;
+z1r=z2l+whatever*dir 76; y1=h;
+penpos2(stem,180); penpos3(bar,270);
+penpos4(curve,360); penpos5(bar,90);
+penpos6(1.5bar,180); penpos1(bar,180);
+penstroke z1e..z2e{dir -104}..z3e{right}..{dir 76}z4e{dir 76}..tension.9..{left}z5e{left}..{dir -104}z6e;
+x10=s+1/3bar; y10=y5r+1/2bar; y11=h; z11=z10+whatever*dir 70;
+penpos10(bar,0); penpos11(bar,0);
+fill z10l..tension1.3..z10r..tension1.3..cycle;
+fill z11l..tension1.3..z11r..tension1.3..cycle;
+fill z1l..tension1.3..z1r..tension1.3..cycle;
+penstroke z10e--z11e;
+x7=x1r; y7=h-1/2bar; y8=h-5/8stem; x8=x11r+1/2stem;
+x9r=x11r-.1c; y9r=h; penpos9(curve,70);
+penpos7(bar,90); penpos8(.8curve,80);
+penstroke z7e{dir 200}..{left}z8e..{dir 160}z9e;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_e,7.5u#,x_height#,0);
+x10=2.5s+1/2vair; y10=26/33h; x11=.5w+1/2(h*sind 14/cosd 14); y11=h;
+x12=w-s-1/2curve; y12=.46h;
+x13=.5w-1/2(h*sind 14/cosd 14); y13=0; z14=z13;
+penpos10(bar,135); penpos11(bar,90);
+penpos12(curve,0); penpos13(bar,-90);
+penstroke z10e..z11e{right}..{dir -104}z12e{dir -104}..{left}z13e;
+fill z10l..tension1.5..z10r..tension1.5..cycle; z14=z13;
+dl_drop(14,drop_round,x13-s,1.2drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+x1=x14c; x2=x12; y1=y2=bar_height;
+penpos1(bar,90); penpos2(bar,90);
+penstroke z1e--z2e; fill z1r..z1l..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_yu,12u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=x2+.5(x4-x2)-1/2(h*sind 14/cosd 14); x3=x2+.5(x4-x2)+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=.46h; x2=x4-italic_o_width; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+x5=s; y5=y6=0; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5--z6--reverse serif_edge7--cycle;
+y8=y9=bar_height; z8=whatever[z6,z7]; x9=x2;
+penpos8(bar,90); penpos9(bar,90);
+penstroke z8e--z9e; fill z7e{dir 76}..z7d{left}..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ya,10u#+c#,x_height#,0);
+x1=w-s-stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=2epsilon;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x5=x1r; y5=h-1/2bar; x6=x5-4/3stem; y6=h-1/2vair;
+x7=12/40w; y8=y9=bar_height; z9=z5+whatever*dir -104;
+x8=x9-stem; y5-y7l=y7l-y9;
+penpos5(bar,90); penpos6(vair,90);
+penpos7(curve,166); penpos8(bar,270);
+penpos9(bar,270); x11=s+stem; y11=-2epsilon;
+8(x8-x10)=9(x10-x11); y8-y10=y10-y11; z12=z11;
+penpos10(.7curve,360); penpos11(bar,270);
+penstroke z5e--z6e{left}..z7e{dir -104}..{right}z8e--z9e;
+penstroke z9e{left}..tension.8..{dir -104}z10e{dir -104}..{left}z11e;
+dl_drop(12,drop_round,stem,drop_round,bar);
+fill dl_drop_edge12; fill z12e..z12c..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+currenttransform := identity slanted sind 18;
+beginchar("A",13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4b]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar("B",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.2u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("C",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.2u#;
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+%currentpicture := currentpicture shifted(-1.7u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("D",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-2.2u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(o,30);
+penpos6(cap_curve,0);
+penpos7(o,-30);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+x3=x9=x1d;
+x8=x4=.5w; y8=y9=1/2cap_bar; y4=y3=h-1/2cap_bar;
+y6=.5h; x6=w-1/2cap_curve-s;
+y7=0.1h-c+1/2cap_bar; y5=0.9h+c-1/2cap_bar; x5=x7=x4+5/8(x6-x4);
+penstroke z3e--z4e{right}..z5e..z6e..z7e..{left}z8e--z9e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("E",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.2u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("F",10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("G",10u#+cap_jut#+c#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.85u#;
+x1=x5=23/42(w-cap_jut-c); y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s-cap_jut-c; y8=y1; x8=x1-.1(w-cap_jut-c);
+S_serif(6,slab,w-s-2c-x1-cap_jut,1.5border_height);
+S_serif(7,slab,w-s-x1-cap_jut+c,7/4border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+x9r=x7e; y9r=7/4border_height-1/2cap_bar;
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+x10=x9l; x11=x9r; y10=y11=3/4cap_bar;
+fill reverse serif_edge9--z10--z11--cycle;
+%currentpicture := currentpicture shifted(-1.6u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("H",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("I",2cap_jut#+cap_stem#+2s#,cap_height#,0);
+italcorr cap_height#*sind 18-.82u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+endchar;
+
+beginchar("J",7u#,cap_height#,0);
+italcorr cap_height#*sind 18-1.35u#;
+x1=x4=w-cap_jut-1/2cap_stem-s;
+y1c=h; y2=y3=y4=18/53h; x2=x1r; x3=x1l;
+y5=0; x5=s+cap_drop_round;
+serif(1,cap_stem,-90,1.2cap_jut,.6cap_jut);
+fill z3--z2--reverse serif_edge1--cycle;
+x7r=x4r; y7=3cap_bar;
+penpos4(cap_stem,0);
+penpos5(cap_bar,-90);
+penpos7(2/3cap_stem,0);
+penstroke z4e{down}..{down}z7e..{left}z5e;
+x6e=s; y6=0;
+dl_drop(6,cap_drop_round,x5-s,1.3drop_round,cap_bar);
+fill dl_drop_edge6;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("K",13u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-1.9u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=cap_bar_height; x3l=w-cap_jut-.5cap_jut-cap_bar-s; y3l=h-cap_bar;
+x5=x6=x1r; y5=cap_bar_height-cap_bar; y6=y5-1.3cap_bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+A_serif(3,.9cap_bar,theta1,1.5cap_jut,.6cap_jut);
+x4l=w-s-1.2cap_jut-cap_stem; y4l=cap_bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,cap_stem,theta2,.8cap_jut,cap_jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("L",10u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=y5=y2h; x3=x2d; x5e=w-s;
+T_serif(5,cap_bar,border_height,1); x4=x5;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penstroke z3e--z4e;
+fill T_edge5 reflectedabout(z3,z4);
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar("M",13u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.8u#;
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,.51cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,-18); penpos6(bar,-18);
+z6=z5+whatever*dir -109; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 109; y7l=11/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("N",12u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-.8u#;
+x1=x2=cap_jut+1/2cap_bar+s;
+x3=w-x1; y1c=y3c=h; y2c=y4=y5=0;
+x4=x3r; x5=x3l;
+serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+A_serif(2,cap_bar,90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill A_serif_edge2--reverse serif_edge1--cycle;
+numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+theta1=angle(z5-z7);
+z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+fill z6--z1h--z7--z5{down}..{up}z4--reverse A_serif_edge3--cycle;
+unfill z1b--z1l--z1a--cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("O",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.2u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+%currentpicture := currentpicture shifted(-1.8u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("P",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.55u#;
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Q",11u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-2.2u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x12-1.5c; x12=x7l-c; y11=y12=-comma_depth;
+y9=0; x9=x1-c; y9-y10=y10-y11; x11-x10=x10-x9;
+penpos9(cap_bar,90); penpos10(cap_curve,0);
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z9e{dir -20}..tension.8..z10e..tension.8..{right}z11e--z12e;
+fill z12r..z12l..cycle;
+%currentpicture := currentpicture shifted(-1.8u,0);
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("R",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.83u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2r;
+y1c=h; y2c=0; x6=x4=x7+2.5u; x3=x1d;
+y4-y5=y5-y6; x5=x8; x9=w-s-1/2cap_bar; y9=0; y6-y8=y8-y9; x10=x6; x9-x8=6/7(x8-x10);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,-90);
+penpos6(cap_bar,-90);
+penpos8(cap_curve,-180);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penstroke z9e{left}..tension.8..{up}z8e{up}..tension.8..{left}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("S",9u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.8u#;
+x6=x7=1/2w; y6=y7=0;
+S_serif(7,cap_bar,x6-s,1.5border_height);
+y5=13/53h; x5=w-s-1/2(1.9hair);
+y4=28/53h; x4=18/38w; y3=40/53h; x3=s+c+1/2(1.9cap_bar);
+x2=.5w-c; y2=h; z1=z2;
+penpos6(cap_bar,-90);
+penpos5(1.9hair,0);
+penpos4(1.1cap_curve,90);
+penpos3(1.9hair,0);
+penpos2(cap_bar,-90);
+penstroke z6e{right}..{up}z5e{up}..tension.8..z4e..tension.8..{up}z3e..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-cap_bar,1.2border_height);
+fill S_serif_edge1;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("T",round (11u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-.8u#;
+x1=x2=.5w; y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+%currentpicture := currentpicture shifted(-3u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("U",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.8u#;
+x1=cap_jut+1/2cap_stem+s;
+x3=w-s-cap_jut-1/2cap_bar;
+y1c=y3c=h; y2=y4=y5=y6=y24=y56=16/53h; x2=x1l;
+x4=x1r; x5=x3l; x6=x3r;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill z2--z4--reverse serif_edge1--cycle;
+fill z5--z6--reverse A_serif_edge3--cycle;
+x7=x1+.5(x3-x1); y7=0; x4-x24=x24-x2; x6-x56=x56-x5;
+penpos24(cap_stem,-180); penpos7(vair,-90);
+penpos56(cap_bar,0);
+penstroke z24e{down}..tension.9..{right}z7e{right}..tension.9..{up}z56e;
+%currentpicture := currentpicture shifted(-2.5u,0);
+penlabels(range 1 thru 7,24,56);
+endchar;
+
+beginchar("V",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-.8u#;
+x1l=cap_jut+s; x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w-1/2cap_bar; x5=.5w+1/2cap_bar;
+y4=y5=1/2cap_bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+%currentpicture := currentpicture shifted(-3.5u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("W",17u#,cap_height#,0);
+italcorr cap_height#*sind 18-.8u#;
+x9l=.5w-.3cap_stem; x7r=w-s-cap_jut;
+y9l=y7r=y1l=h-cap_bar; x5=x9l+.5(x7r-x9l)-1/2cap_bar; x6=x9l+.5(x7r-x9l)+1/2cap_bar;
+y5=y6=y2=y3=1/2cap_bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(7,cap_bar,theta2,1.3cap_jut,cap_jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+cap_jut;
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+z2=z1l+whatever*dir theta1; x3=x2+cap_bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+%currentpicture := currentpicture shifted(-3.5u,0);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("X",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.25u#;
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("Y",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-.8u#;
+x1l=cap_jut+s; x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w;
+y4=8/25h;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+y5c=0; x5=.5w+.5c;
+serif(5,cap_stem,90,cap_jut,cap_jut);
+x6=x5l; x7=x5r;
+z6=z1l+whatever*dir theta1;
+z7=z3r+whatever*dir theta2;
+fill z6--serif_edge5--z7--reverse A_serif_edge3--z2--reverse serif_edge1--z6&cycle;
+%currentpicture := currentpicture shifted(-3.2u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Z",9u#+1.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x6=s+1/2cap_bar; y6=y7=y8=1/2cap_bar;
+x8e=w-s; x7=x8;
+T_serif(8,cap_bar,border_height,1);
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-.85s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4cap_bar;
+x4r=w-s-1/4cap_bar; y4=h-cap_bar;
+penpos4(cap_stem/(cosd 18),0);
+penpos5(cap_stem/(cosd 18),0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2cap_bar;
+x3=w-s-1/2cap_bar; x1e=s+c;
+T_serif(1,cap_bar,border_height,0);
+x2=x1;
+penpos3(cap_bar,90);
+penpos2(cap_bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+currenttransform := identity;
+
+beginchar("a",9u#+c#,x_height#,0);
+x1=w-s-3/4stem; y1=h; y2=7/33h; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=w-s-bar/3; y4=8/33h;
+penpos1(stem,180);
+penpos2(stem,180);
+penpos3(1.2vair,270);
+penpos4(bar,360);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 60}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x5=x1-3/2stem; y5=h; z7=z5+whatever*dir -104; y7=-3epsilon;
+x6=s+1/2curve+c; y6=.54h; y8=.46h; z8l=whatever[z1r,z2r];
+penpos8(2bar,0);
+penpos5(vair,90);
+penpos6(curve,180);
+penpos7(vair,270);
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=h-c; z10=(x1r+c,h); z11=(x1l-c,h);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar("b",8u#+s#,asc_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(x_height*sind 14/cosd 14); x3=.5w+1/2(x_height*sind 14/cosd 14);
+y1=0; y3=x_height; y2=.54x_height; y4=.46x_height; x2=1/2curve+s; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+y5=h-bar; z5=z2+whatever*dir 76;
+serif(5,stem,-104,jut,0);
+fill z2l--z2r--reverse serif_edge5--cycle;
+fill z5e{dir 76}..z5d{left}..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("c",7.5u#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+x1=4u-1/2(h*sind 14/cosd 14); x3=4u+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; x2=1/2curve+s; x6=8u-2.5s-1/2vair; y6=9/33h;
+penpos6(vair,135); z4=z3;
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e;
+fill z6l..tension1.5..z6r..tension1.5..cycle;
+ur_drop(4,drop_round,9/8drop_round,5/4drop_round,bar);
+fill ur_drop_edge4;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("d",10u#,asc_height#,0);
+x1=w-s-1/2stem; y1=h-bar; y2=11/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem; x4=w-s-1/2bar; y4=10/33x_height; y3=2epsilon;
+serif(1,stem,-104,1.5jut,0);
+penpos2(stem,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+y6=-2epsilon; y8=x_height; x7=1/2curve+s; y7=.54x_height;
+x8=x7+.5(x5-x7)+3/8(x_height*sind 14/cosd 14);
+x6=x7+.5(x5-x7)-5/8(x_height*sind 14/cosd 14);
+y5r=.46x_height; z5r=whatever[z1l,z2r];
+penpos6(vair,90); penpos7(curve,0);
+penpos8(vair,-90); penpos5(.7curve,180);
+penstroke z6e{left}..tension.9..{dir 76}z7e{dir 76}..{right}z8e..tension.9..{dir 256}z5e{dir 256}..{left}z6e..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("e",8u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=4/5h; x2=1/2curve+s; x4=w-1/2curve-s; z5r=z2; x6=w-s-s-1/2vair; y6=9/33h;
+penpos5(vair,-270);
+penpos6(vair,135);
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{dir 194}z5e;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("f",7u#+c#,asc_height#,desc_depth#);
+x1d=w-s; y1d=x_height; y2=7/33x_height;
+serif(1,stem,-104,1.2jut,jut);
+z2=z1+whatever*dir -104; penpos2(stem,180);
+y3l=-2/3d-c; z3l=whatever[z1f,z2l]; penpos3(1.1bar,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penstroke z2e{dir -104}..{dir -104}z3e;
+z4=z3; dl_drop(4,drop_round,1/3d,drop_round,1.1bar);
+y5=h-stem; z5=z1l+whatever*dir 80;
+penpos5(bar,0); z6=z5;
+ur_drop(6,drop_round,stem,drop_round,bar);
+fill ur_drop_edge6 rotatedaround(z5,85);
+fill dl_drop_edge4 rotatedaround(z3,76);
+fill z3l..tension1.3..z3r..tension1.3..cycle;
+fill z5l..tension1.3..z5r..tension1.3..cycle;
+fill z1l..z5l--z5r..z1r--cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("g",9u#+c#,x_height#,desc_depth#);
+currenttransform := identity slanted sind 14;
+penpos1(vair,90); penpos2(o,30);
+penpos3(curve,0); penpos4(o,-30);
+penpos5(vair,-90); penpos6(o,-150);
+penpos7(curve,-180); penpos8(o,-210);
+y3=y7=2/3h; x3=1/2curve+s+c; x7=w-3/2stem-s;
+x1=x5=x3+1/2(x7-x3); y1=3/11h; y5=h;
+y2=y8=y1+0.1(8/11h); y4=y6=y1+0.9(8/11h); x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x9=x7; y9=y7+1/2(y6-y7); y10=h; x10=x7l+c;
+x11e=w-s; y11=y10;
+ur_drop(11,.8stem,x11e-x10,drop_round,bar);
+penpos9(hair,180); penpos10(vair,90);
+penstroke z9e{up}..{right}z10e;
+fill ur_drop_edge11;
+y12=y1; x12=x1; y13=y12/2; x13=s+1/4stem+.5c;
+y14=y15=0; x14=x2r; x15=x8r; y16=y18=-d/2; x16=w-s-1/2stem;
+x18=s+.7hair; y17=-d+1/2bar; x17=s+.6bar+9/20(x16-x18); x19=x14; y19l=y14r;
+penpos12(vair,90); penpos13(1/2curve,180); penpos14(curve,270);
+z144=z14; penpos144(curve,90); penpos15(curve,90);penpos16(1/2curve,0);
+penpos17(vair,-90); penpos18(1.4hair,-180); penpos19(1.4vair,-270);
+penstroke z12e{left}..{down}z13e{down}..{right}z14e;
+penstroke z144e--z15e{right}..tension1..{down}z16e{down}..{left}z17e{left}..{up}z18e{up}..{right}z19e;
+currenttransform := identity;
+penlabels(range 1 thru 19);
+endchar;
+
+beginchar("h",10u#+s#,asc_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-10.5/8stem; y1=26/33x_height; y2=10/33x_height; z2=z1+whatever*dir -108;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33x_height; y3=y5=y6=0;
+x8=x2; y8=x_height; y9=bar_height-bar; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.2bar,270); penpos9(bar,0);
+penstroke z9e{dir 68}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("i",5u#,asc_height#,0);
+x1=w-s-stem; y1=x_height-bar; y2=11/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem; x4=w-s-1/2bar; y4=10/33x_height; y3=0;
+serif(1,stem,-104,jut,0);
+penpos2(stem,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+x5=x1d-c; y5=h-3/2stem; penpos5(curve,0);
+fill z5l..z5r..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("j",7u#,asc_height#,desc_depth#);
+x5=w-s-1/2stem; x1d=x5+c; y5=h-3/2stem; penpos5(curve,0);
+y1d=x_height; y2=7/33x_height; serif(1,stem,-104,jut,0);
+z2=z1+whatever*dir -104; penpos2(stem,180);
+y3l=-2/3d-c; z3l=whatever[z1f,z2l]; penpos3(1.1bar,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penstroke z2e{dir -104}..{dir -104}z3e;
+fill z1e{dir 76}..z1d{left}..cycle;
+fill z5l..z5r..cycle; z4=z3;
+dl_drop(4,drop_round,1/3d,drop_round,1.1bar);
+fill dl_drop_edge4 rotatedaround(z3,76);
+fill z3l..tension1.3..z3r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("k",10u#,asc_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,1.2jut,0);
+x1=w-s-2stem; y1=bar_height-2.5bar; y2=6/33x_height; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-bar; y4=9/33x_height; y3=y5=y6=0;
+x8=x2-stem; y8=y9=bar_height; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.1bar,270); penpos9(1.1bar,270);
+penstroke z9e{right}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+y11=x_height; x11e=w-s;
+ur_drop(11,drop_round,7/8drop_round,drop_round,1bar);
+z12=z11; x12-x10=x10-x8; y12-y10=y10-y8;
+penpos10(bar,-18); penpos12(bar,270);
+penstroke z8e{right}..{dir 72}z10e{dir 72}..{right}z12e;
+fill ur_drop_edge11;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("l",5u#,asc_height#,0);
+x1=w-s-1/2stem; y1=h-bar; y2=11/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem; x4=w-s-1/2bar; y4=10/33x_height; y3=0;
+serif(1,stem,-104,jut,0);
+penpos2(stem,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("m",14u#+c#,x_height#,0);
+x11=s+1/2stem; z12=z11+whatever*dir 76; y12=h-bar;
+y11=0; serif(12,stem,-104,jut,0); penpos11(stem,0);
+x1=w-s-9/8stem; y1=26/33h; y2=10/33h; z2=z1+whatever*dir -108;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=0;
+x5=x2; y5=y9=h; y6r=y10l=bar_height-bar; z6r=z7r+whatever*dir 76;
+y13=0; z13=z1+whatever*dir -104; x13-x7=x7-x11; y7=0;
+y8=y1; z8=z7+whatever*dir 76; x1-x5=x8-x9; z10l=whatever[z11r,z12f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos5(1.2bar,270); penpos6(bar,0);
+penpos7(stem,0); penpos8(stem,0);
+penpos9(1.2bar,90); penpos10(bar,180);
+penstroke z6e{dir 68}..{right}z5e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z11l--z11r--reverse serif_edge12--cycle;
+fill z12e{dir 76}..z12d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penstroke z10e{dir 68}..{right}z9e..z8e{dir -104}..z7e;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar("n",10u#+s#,x_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-10.5/8stem; y1=26/33h; y2=10/33h; z2=z1+whatever*dir -108;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y5=y6=0;
+x8=x2; y8=h; y9=bar_height-bar; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.2bar,270); penpos9(bar,0);
+penstroke z9e{dir 68}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("o",8u#+s#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=.46h; x2=1/2curve+s; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("p",9u#+c#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=x2+.5(x4-x2)-1/4(h*sind 14/cosd 14); x3=x2+.5(x4-x2)+3/4(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=.46h; x2=x4-italic_o_width+c; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+y5=h-bar; z5=z2+whatever*dir 76;
+serif(5,stem,-104,jut,0); fill z5e{dir 76}..z5d{left}..cycle;
+y6=-d+bar; z6=whatever[z2,z5];
+serif(6,stem,76,.3jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("q",9u#,x_height#,desc_depth#);
+x1=w-s-1/2stem; y1=h-1/2bar; y2=-d+bar; z2=z1+whatever*dir -104;
+serif(2,stem,76,1.3jut,1.3jut);
+penpos1(stem,180);
+fill z1l--z1r--serif_edge2--cycle;
+y6=0; y8=h; x7=1/2curve+s; y7=.54h;
+x8=x7+.5(x5-x7)+3/8(x_height*sind 14/cosd 14);
+x6=x7+.5(x5-x7)-5/8(x_height*sind 14/cosd 14);
+y5r=.46x_height; z5r=whatever[z1r,z2l];
+penpos6(vair,90); penpos7(curve,0);
+penpos8(vair,-90); penpos5(.7curve,180);
+penstroke z6e{left}..tension.9..{dir 76}z7e{dir 76}..{right}z8e..tension.9..{dir 256}z5e{dir 256}..{left}z6e..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("r",9u#-c#,x_height#,0);
+y2=0; x2=s+1/2stem; penpos2(stem,180);
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+y3l=15/33h; z3l=whatever[z2l,z1f];
+y4=h; x4=w-s-3/4stem; z5=z4;
+penpos3(1.2bar,180); penpos4(1.1bar,90);
+penstroke z3e{dir 76}..{right}z4e;
+ur_drop(5,drop_round,3/4stem,drop_round,1.1bar);
+fill ur_drop_edge5;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("s",8u#-s#,x_height#,0);
+z4=(.5w,.55h); y2=h; y6=0; y5=9/34h;
+z2=z4+whatever*dir 78; z6=z4+whatever*dir -100;
+x5=w-s-.7stem; x3=s+.9stem; y3=27/34h;
+z34=z4+whatever*dir 150; z45=z4+whatever*dir -40;
+x34=x4-stem*sind 40; x45=x4+stem*sind 40;
+penpos2(bar,90); penpos3(.6stem,180);
+penpos34(stem,240); penpos5(.6stem,180);
+penpos6(bar,90); penpos45(stem,240);
+penstroke z2e{left}..z3e{down}..{dir -40}z34e{dir -40}..{dir -40}z45e{dir -40}..{down}z5e{down}..{left}z6e;
+z1=z2; z7=z6;
+ur_drop(1,.9drop_round,w-s-x2,drop_round,bar);
+fill ur_drop_edge1;
+dl_drop(7,drop_round,x6-s,1.2drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 12,34,45);
+endchar;
+
+beginchar("t",5u#+s#,asc_height#,0);
+x1=w-s-1/2stem-1.2jut; y1=x_height-bar; y2=9/33x_height;
+z2=z1+whatever*dir -104; z5=whatever[z2,z1]; y5=h-stem;
+x3=x2+1/2stem; x4=w-s-bar; y4=10/33x_height; y3=0;
+serif(1,stem,-104,1.2jut,1.2jut);
+penpos2(stem,180); penpos5(.95stem,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1l--z5l--z5r--z1r--cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("u",10u#,x_height#,0);
+x1=w-s-4.8/4stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=0; y5=8/34h;
+x5=s+1/2stem; x6=x5+stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+z7l=z5r+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("v",9u#-c#,x_height#,0);
+y2=10/33h; x2=s+1/2stem;
+x3=x2+stem; x4=w-s-1/2bar; y4=26/33h; y3=0;
+penpos2(stem,180);
+penpos3(1.1bar,270); penpos4(bar,0);
+penstroke z2e{dir -104}..{right}z3e{dir 5}..tension1.3..{dir 80}z4e;
+z7=z2+whatever*dir 76; y7=h-bar;
+serif(7,stem,-104,jut,0); z9=z4;
+fill z2r--z2l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+ul_drop(9,1.1drop_round,7/33h,.9drop_round,bar);
+fill ul_drop_edge9 rotatedaround(z4,-90);
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("w",12u#+s#,x_height#,0);
+z77=(.5w,.5h); z1=z77+whatever*dir 76; y1=h; y2=10/33h;
+z2=z1+whatever*dir -104;
+x3=x2+stem; x4=w-s-1/2bar; y4=26/33h; y3=y6=0; y5=8/34h;
+x5=s+1/2stem; x6=x5+stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,0);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 5}..tension1.3..{dir 80}z4e;
+z7l=z5r+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0); z9=z4;
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+ul_drop(9,1.1drop_round,7/33h,.9drop_round,bar);
+fill ul_drop_edge9 rotatedaround(z4,-90);
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("x",10u#+c#,x_height#,0);
+penpos1(1.2vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+x1=x3-(h*sind 14/cosd 14); x3=w-s-3/4stem; y1=0; y3=h;
+y2=.54h; x2=x1-if design_size=17.32: stem else: 33/40stem fi;
+x5=w-s-4/5stem; y5=7/33h;
+penpos5(vair,135); z4=z3;
+penstroke z5e..z1e{left}..{dir 76}z2e{dir 76}..{right}z3e;
+fill z5l..tension1.5..z5r..tension1.5..cycle;
+ur_drop(4,drop_round,3/4stem,drop_round,bar);
+fill ur_drop_edge4;
+x10=w-x5; y10=26/33h; x11=w-x1; y11=h; x12=w-x2; y12=.46h;
+x13=w-x3; y13=-2epsilon; z14=z13;
+penpos10(bar,135); penpos11(bar,90);
+penpos12(curve,0); penpos13(bar,-90);
+penstroke z10e..z11e{right}..{dir -104}z12e{dir -104}..{left}z13e;
+fill z10l..tension1.5..z10r..tension1.5..cycle; z14=z13;
+dl_drop(14,drop_round,3/4stem,drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar("y",10u#-c#,x_height#,desc_depth#);
+x5=w-s-1/2stem; y5=h; y6=10/33h; z6=z5+whatever*dir -104;
+y3=0; y2=8/34h; x2=s+stem; x3=x2+stem;
+y7=0; z7=z6+whatever*dir -104;
+penpos5(stem,180); penpos6(stem,180);
+z8r=z7r+whatever*dir -104; y8r=-1/2d;
+z4l=whatever[z6r,z5r]; y4l=15/33h;
+penpos2(stem,180); penpos3(1.1bar,270);
+y9=-d; x9=x2l; z10=z9;
+penpos4(bar,360); penpos7(stem,180);
+penpos8(.8stem,180); penpos9(bar,90);
+penstroke z2e{dir -104}..z3e{right}..{dir 76}z4e;
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+penstroke z5e{dir -104}..z6e..z7e..z8e..{left}z9e;
+dl_drop(10,1.1stem,x9-s,1.2drop_round,bar);
+fill dl_drop_edge10; fill z10e..z10c..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("z",8u#,x_height#,0);
+y2=y3=h-1/2(.8stem); y1=y2l+1/2bar;
+x3=w-s-3/4stem; x1e=s+1/2stem; x2=x1;
+T_serif(1,bar,.8border_height,0);
+penpos3(.8stem,90); penpos2(.8stem,90);
+penstroke z2e--z3e; fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+2c;
+fill z1r--z1f--z12--z2r--cycle;
+unfill z1d{up}..z13--z12--cycle;
+x4=w-s-bar*sind 45; y4=h-bar*sind 28;
+x5=w-x4; y5=h-y4; z34=(x4,h);
+penpos4(bar,152); penpos5(bar,152);
+penstroke z4e--z5e; fill z4l..tension1.2..z4r..tension1.2..cycle;
+fill z5l..tension1.2..z5r..tension1.2..cycle;
+fill z3l--z3r--z34--cycle;
+x7=.5w; y7=.4stem; penpos7(.9stem,90);
+x8l=x7+.9stem; y8l=0; penpos8(.6stem,90);
+x9=w-s-.9stem; y9=bar; penpos9(bar,90); z10=z9;
+penstroke z5e{dir 62}..{right}z7e..z8e..z9e;
+dl_drop(10,drop_round,1.2stem,drop_round,bar);
+fill dl_drop_edge10 reflectedabout(z9l,z9r) rotatedaround(z9,28);
+fill z9r..z9l..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(hex"30",10u#,cap_height#,0);
+penpos1(vair,90);
+penpos2(cap_curve,0);
+penpos3(vair,-90);
+penpos4(cap_curve,-180);
+x1=.5w-1/2(h*sind 10/cosd 10); x3=.5w+1/2(h*sind 10/cosd 10); y1=0; y3=h;
+y2=.47h; y4=.53h; x2=1/2cap_curve+s; x4=w-1/2cap_curve-s;
+penstroke z1e{left}..tension.9..{dir 80}z2e{dir 80}..tension1.2..{right}z3e..tension.9..{dir 260}z4e{dir 260}..tension1.2..{left}z1e..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"31",10u#-3/2s#,cap_height#,0);
+y1c=0; x1g=s; y2=y3=h; x3=x2-1/2cap_stem;
+serif(1,cap_stem,72,1.5cap_jut,1.5cap_jut);
+z2=z1f+whatever*dir 72;
+y6=y7=h-cap_stem; y5=y4=y6+cap_bar; y8=y6+.3c;
+z8=z1a+whatever*dir 72;
+x7=x3-1.4stem; x6=x5=x7-.8cap_stem; x4=x7-cap_bar;
+fill serif_edge1--z2{dir 150}..{dir 210}z3{dir 230}..{left}z4--z5{left}..z6--z7..z8--cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"32",10u#,cap_height#,0);
+y2=43/53h; x3=24/37w; y3=h; x2=10/37h;
+z1=z3; x4=w-s-1/2cap_curve; y4=41/53h;
+x5=s+1/2hair; y5=6/53h; x6=x5+2cap_bar; y6=y5+1/2cap_bar;
+y7=1/2curve-1/4cap_bar; x7=.47w; x8=w-s-2.5cap_bar;
+y8=15/53h; penpos6(.4cap_stem,90);
+penpos7(cap_curve,90); penpos8(bar,150);
+penpos2(bar,0); penpos3(vair,-90);
+penpos4(cap_curve,180); penpos5(bar,180);
+penstroke z3e{right}..{dir -104}z4e{dir -100}.. {dir -104}z5e; %z2e{dir 76}..{right}
+penstroke z5e..z6e{dir 10}..z7e{dir -10}..{dir 60}z8e;
+fill z8r..tension1.3..z8l..tension1.3..cycle;
+ul_drop(1,cap_drop_round,x3-x2+bar,1.8cap_curve,cap_bar);
+fill ul_drop_edge1;% rotatedaround(z2,90);
+x9=s-.1c; y9=1/2cap_bar; y10=-1/2cap_bar; x10=x9+cap_bar;
+x11=x10+cap_bar; y11=1/3cap_bar; x12=x11-2/3cap_bar; y12=3/2cap_bar;
+fill z5r..z9..z10..z11{up}..z12..{dir 10}z6l{dir 130}..{dir 190}z5r..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"33",10u#-c#,cap_height#,0);
+penpos2(vair,90); penpos5(cap_bar,-90);
+penpos4(vair,-90); penpos3(cap_curve,-180);
+x2=.5w-1/2(h*sind 14/cosd 14); y2=0; y4=cap_bar_height+c;
+z4=z2+whatever*dir 76; y5=y4-1/3cap_bar-.5c;
+y3=12/53h; x5=cap_curve+s+bar; x3=w-1.2cap_curve-s; z1=z2;
+y6=y5r; x6=x5; x7=w-s-1/2cap_curve; y7=41/53h; z8=z4+whatever*dir 82;
+y8=h; z9=z8; penpos67(cap_bar,110); penpos8(cap_bar,-90);
+penpos6(cap_bar,90); penpos7(.9cap_curve,180); z67=z4;
+penstroke z5e...{right}z4e..tension1..{dir 256}z3e{dir 256}..tension1..{left}z2e;
+penstroke z8e{right}..tension.9..{dir -100}z7e{dir -100}..tension.9..z67e{dir 210}..z6e;
+fill z5l..tension1.2..z6l..tension1.2..cycle;
+dl_drop(1,cap_stem,x1-s,cap_drop_round,cap_bar);
+fill dl_drop_edge1; fill z1e..z1c..cycle;
+ul_drop(9,.8cap_drop_round,x8-x5+bar,1.4cap_curve,cap_bar);
+fill ul_drop_edge9;
+penlabels(1,2,3,4,5,6,7,8,9,67);
+endchar;
+
+beginchar(hex"34",10u#,cap_height#,0);
+y1c=0; x1g=s+1/2cap_stem; y2=h-stem;
+serif(1,cap_stem,72,1.5cap_jut,1.5cap_jut);
+z2=z1+whatever*dir 72; penpos2(cap_stem,0);
+fill serif_edge1--z2r--z2l--cycle;
+z3r=whatever[z1f,z2r]; y3r=h; penpos3(.7cap_stem,0);
+penstroke z2e--z3e; y6=y7=16/53h; x7=w-2s; x6=s+1/2cap_bar;
+penpos6(1.2cap_bar,90); penpos7(1.2cap_bar,90);
+penstroke z6e--z7e; fill z6l..tension1.4..z6r..tension1.4..cycle;
+fill z7l..tension1.2..z7r..tension1.2..cycle;
+z5l=z6r; z4l=z3l; penpos4(1.2cap_bar,-20); penpos5(1.2cap_bar,-20);
+penstroke z4e--z5e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"35",10u#-c#,cap_height#,0);
+penpos2(vair,90); penpos5(cap_bar,0);
+penpos4(vair,-90); penpos3(cap_curve,-180);
+x2=.5w-1/2(h*sind 14/cosd 14); y2=0; y4=34/54h; z4=z2+whatever*dir 76;
+y5=y4-3cap_bar; y3=15/53h; x5=cap_curve+s; x3=w-1.2cap_curve-s; z1=z2;
+penstroke z5e...{right}z4e..tension1..{dir 256}z3e{dir 256}..tension1.2..{left}z2e;
+z6=z5+whatever*dir 72; y6=h-1/3cap_bar;
+penpos6(cap_bar,0); penstroke z5e--z6e;
+fill z6r..tension1.5..z6l..tension1.5..cycle;
+fill z5r..tension1.3..z5l..tension1.3..cycle;
+y7r=y6r; x7r=x6r-.05c; y8=h-4/6cap_curve;
+x8=x7+5/4cap_curve; x9=w-s-cap_bar*sind 25;
+y9=h-cap_bar*cosd 45; penpos7(cap_curve,72); penpos8(.7cap_curve,90);
+penpos9(1.2cap_bar,120); penstroke z7e{dir -18}..z8e..z9e;
+fill z9r..tension1.3..z9l..tension1.3..cycle;
+dl_drop(1,cap_stem,x1-s,cap_drop_round,cap_bar);
+fill dl_drop_edge1; fill z1e..z1c..cycle;
+penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(hex"36",10u#-s#,cap_height#,0);
+penpos1(vair,90); penpos4(.8cap_curve,0);
+penpos3(vair,-90); penpos2(cap_curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y4=38/53h; y2=.53h; x4=cap_curve+s; x2=w-1/2cap_curve-s;
+x5=.505w; y5=21/53h; penpos5(vair,90); z7=z1;
+y6r=y2+2s; z6r=z2r+whatever*dir 76; penpos6(2cap_bar,-180);
+penstroke z6e{dir 256}..{left}z5e{left}..tension.9..{dir 76}z4e{dir 76}..tension.9..{right}z3e..tension1..{dir 256}z2e{dir 256}..tension1.2..{left}z1e; z8=(.5w,.5h);
+dl_drop(7,cap_stem,x1-s,cap_drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+currentpicture := currentpicture rotatedaround(z8,180);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"37",9u#-c#,cap_height#,0);
+x1=s+1/2cap_bar; y1=36/53h; y2=.975h; z2=z1+whatever*dir 70;
+x3=16.5/34w; y4=44/53h; y3=47/53h; z4=z3+whatever*dir -45;
+x5=24/34w; y5=43/53h; x6=w-s-1/2*(3/2cap_bar); y6=y2;
+x7=8/34w; y7=1/2cap_curve;
+penpos1(cap_bar,180); penpos2(cap_bar,180);
+penpos3(.9cap_curve,45); penpos4(.9cap_curve,45);
+penpos5(2cap_bar,110); penpos6(3/2cap_bar,180);
+z67l=z6l;
+penpos7(cap_curve,180); penpos67(cap_bar,180);
+penstroke z1e--z2e;
+penstroke z1e{dir 70}..{dir -45}z3e--z4e{dir -45}..z5e..{up}z6e;
+penstroke z67e{down}..{dir -94}z7e;
+fill z7r..z7l..cycle; fill z1r..tension1.3..z1l..tension1.3..cycle;
+fill z2r..tension1.3..z2l..tension1.3..cycle;
+fill z6r..tension1.3..z6l..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"38",10u#,cap_height#,0);
+y1=0; x1=15/37w; y5=h; z5=z1+whatever*dir 78;
+y7=28/53h; z7=whatever[z1,z5]; x2=s+1/2(.6cap_stem);
+x4=w-x2; y2=13/53h; y4=43/53h; z3=z7; y6=41/53h; 2(x5-x6)=3(x4-x5);
+5(x1-x2)=4(x8-x1); y8=11/53h; penpos7(cap_stem,48);
+y67l=y7+.4cap_stem; y78=y7-cap_stem;
+z67l=z7l+whatever*dir 132; penpos67(.9cap_stem,30);
+z78=whatever[z67,z7]; penpos78(.9cap_stem,30);
+penpos1(cap_bar,-90); penpos2(.7stem,-180);
+penpos3(cap_bar,-235); penpos4(.6stem,-180);
+penpos5(cap_bar,-90); penpos6(.8stem, 0);
+penpos8(.8stem,0);
+penstroke z1e{left}..{dir 78}z2e{dir 78}..z3e..{dir 78}z4e{dir 78}..{left}z5e{left}..{down}z6e..z67e..z7e..z78e..{dir -102}z8e{dir -102}..{left}z1e;
+penlabels(1,2,3,4,5,6,7,8,67,78);
+endchar;
+
+beginchar(hex"39",10u#-s#,cap_height#,0);
+penpos1(vair,90); penpos4(.8cap_curve,0);
+penpos3(vair,-90); penpos2(cap_curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y4=38/53h; y2=.53h; x4=cap_curve+s; x2=w-1/2cap_curve-s;
+x5=.505w; y5=21/53h; penpos5(vair,90); z7=z1;
+y6r=y2+2s; z6r=z2r+whatever*dir 76; penpos6(2cap_bar,-180);
+penstroke z6e{dir 256}..{left}z5e{left}..tension.9..{dir 76}z4e{dir 76}..tension.9..{right}z3e..tension1..{dir 256}z2e{dir 256}..tension1.2..{left}z1e; z8=(.5w,.5h);
+dl_drop(7,cap_stem,x1-s,cap_drop_round,cap_bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(oct"56",cap_stem#+2s#,cap_stem#,0);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+endchar;
+
+beginchar(oct"54",cap_stem#+2s#+c#,cap_stem#,comma_depth#);
+ currenttransform := identity slanted sind 14;
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"60",cap_stem#+2s#+c#,asc_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(oct"41", cap_stem#+2s#,cap_height#,0); "Exclamation mark";
+ italcorr cap_height#*sind 18-1.55u#;
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+ x3=.5w-1/2cap_bar; x4=.5w+1/2cap_bar; y3=y4=3/2cap_stem;
+ x6=x1; x5=x2; y5=y6=h;
+ fill z6--z3..z4--z5{up}..z6&cycle;
+endchar;
+
+beginchar(hex"22",2cap_stem#+3s#+2c#,cap_height#,0);
+ z1=(s,h-1/2cap_stem); z2=(x1+cap_stem+c,h-1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-cap_stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture shifted((sind 18)*-w*1.3,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"5C",2cap_stem#+3s#+2c#,cap_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(x1+cap_stem+c,1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+currenttransform := identity;
+
+beginchar(hex"7b",10u#-1.5c#,x_height#,0); "En dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"3D",10u#+1.5c#,x_height#,0);
+ z1=(s+1/2bar,bar_height-3c); z2=(w-s-1/2bar,bar_height-3c);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+3c); z4=(w-s-1/2bar,bar_height+3c);
+ penpos3(bar,90); penpos4(bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"23",13u#,asc_height#,body_depth#);
+ z1=(s+1/2bar,bar_height-5c); z2=(w-s-1/2bar,bar_height-5c);
+ penpos1(1.5bar,90); penpos2(1.5bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+5c); z4=(w-s-1/2bar,bar_height+5c);
+ penpos3(1.5bar,90); penpos4(1.5bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ z5=(.5w-5c,bar_height); z6=(.5w+5c,bar_height);
+ z7=z5+whatever*dir 76; y7=h; z8=whatever[z5,z7]; y8=-d;
+ penpos7(1.5bar,0); penpos8(1.5bar,0);
+ fill z7l{up}..{down}z7r--z8r{down}..{up}z8l--z7l&cycle;
+ z9=z6+whatever*dir 76; y9=h; z10=whatever[z6,z9]; y10=-d;
+ penpos9(1.5bar,0); penpos10(1.5bar,0);
+ fill z9l{up}..{down}z9r--z10r{down}..{up}z10l--z9l&cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"7c",14u#,x_height#,0); "Em dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(oct"55",2cap_jut#+cap_stem#+2s#,x_height#,0); "hyphen";
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"5F",1.1stem#+2s#,x_height#+2.1stem#,0);
+ z1=(.5w,h); z2=(.5w,h-1.1stem);
+ fill z1..z2..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7E",7u#,body_height#,0);
+ pickup pencircle xscaled .6pt yscaled .2pt rotated 55;
+ z4=(w-s-c,h-s); x1=s+c; y1=y4-1/2cap_stem;
+ y2-y1=y4-y3=3(y4-y1); z2-z1=z4-z3=whatever * dir 55;
+ draw z1..controls z2 and z3..z4;
+ penlabels(1,2,3,4);
+endchar;
+
+currenttransform := identity slanted sind 14;
+beginchar(hex"3C",7u#-2c#,x_height#,0); "looks like <<";
+ italcorr x_height#*sind 18-1.45u#;
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ %currentpicture := currentpicture shifted(-1.2u,0);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3E",7u#-2c#,x_height#,0);
+ italcorr x_height#*sind 18-1.73u#;
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ z10=(.5w,.5h);
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ currentpicture := currentpicture rotatedaround(z10,180) shifted((sind 18)*w*1.3,0);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3B",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ italcorr x_height#*sind 18-1.35u#;
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+3/2c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ z8=(s,h-1/2cap_stem); z9=(w-s,h-1/2cap_stem);
+ fill z8..z9..cycle;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(hex"3A",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ italcorr x_height#*sind 18-1.35u#;
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ fill z1..z2..cycle;
+ penlabels(1,2,3,4);
+ z3=(s,1/2cap_stem); z4=(w-s,1/2cap_stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2B",2cap_jut#+cap_stem#+2s#,x_height#,0);
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ x3=x4=.5w; y3=y2+1/2(x2-x1); y4=y2-1/2(x2-x1);
+ penpos3(1.8bar,0); penpos4(1.8bar,0);
+ penstroke z3e--z4e;
+ fill z3r..z3l..cycle; fill z4r..z4l..cycle;
+ %currentpicture := currentpicture shifted(-u,0);
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2F",2s#+bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.72u#;
+ z1=(.5w,h-.5bar); z2=(.5w,-d+.5bar);
+ %pickup pencircle xscaled bar yscaled bar;
+ penpos1(bar,0); penpos2(bar,0);
+ penstroke z1e--z2e; fill z1r..z1l..cycle;
+ fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"27",cap_stem#+2s#+c#,x_height#+2.1stem#,0);
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ z6=(.5w-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ currentpicture := currentpicture shifted((sind 18)*-w*1.3,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"28",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.8u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"29",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-3.65u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180) shifted((sind 18)*w*1.3,0);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"0E",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.8u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"0F",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180) shifted((sind 18)*w*1.3,0);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"5B",2s#+3cap_bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.7u#;
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x2,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z1r..z1l..cycle; fill z6r..z6l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"5D",2s#+3cap_bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.7u#;
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x1,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z2r..z2l..cycle; fill z5r..z5l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"B9",16u#,cap_height#,0);
+ italcorr cap_height#*sind 18-2.78u#;
+ x1=x2=cap_jut+1/2cap_bar+s+cap_stem;
+ x3=w-x1-1/2cap_stem; y1c=h; y4=y5=0;
+ x4=x3r; x5=x3l; y2=12/53h; y3=h-y2;
+ x8=x2-stem; y8=0; z9=z8;
+ dl_drop(9,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill dl_drop_edge9; penpos8(bar,-90);
+ serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+ penpos2(bar,0); penpos3(bar,0);
+ penstroke z2e{down}..{left}z8e;
+ fill z2l--z2r--reverse serif_edge1--cycle;
+ numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+ theta1=angle(z5-z7); x10=x3+stem; y10=h; z11=z10;
+ penpos10(bar,-90); penstroke z3e{up}..{right}z10e;
+ ur_drop(11,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill ur_drop_edge11;
+ z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+ fill z6--z1h--z7--z5{down}..{up}z4--z3r--z3l--cycle;
+ unfill z1b--z1l--z1a--cycle;
+ y12=y13=2cap_bar; x12=x4+2cap_bar+s; x13=w-2s;
+ penpos12(.4stem,90); penpos13(.4stem,90);
+ penstroke z12e--z13e; y16=y11d-4.5cap_bar;
+ x13-x14=x14-x12; x16=x14; y14=y13+4.5cap_bar;
+ x17=w-s-.2stem; x17-x16=x16-x15; y16-y15=y15-y14;
+ y17=y15; penpos17(.7stem,0); penpos16(bar,90);
+ penpos15(.7stem,180); penpos14(bar,270);
+ penstroke z17e{up}..{left}z16e{left}..{down}z15e{down}..{right}z14e{right}..{up}z17e;
+ fill z12l..tension1.2..z12r..tension1.2..cycle;
+ fill z13l..tension1.2..z13r..tension1.2..cycle;
+ penlabels(range 1 thru 17);
+endchar;
+
+beginchar(hex"24",9u#-s#,body_height#,body_height#-cap_height#);
+ italcorr body_height#*sind 18-2.5u#;
+ x6=x7=1/2w-c; y6=y7=0;
+ dl_drop(7,cap_drop_round,x6-s,1.5drop_round,cap_bar);
+ y5=12/53cap_height; x5=w-s-1/2(1.9hair);
+ y4=1/2cap_height; x4=19/38w; y3=41/53cap_height; x3=s+1/2(1.9cap_bar);
+ x2=.5w+c; y2=cap_height; z1=z2;
+ penpos6(cap_bar,-90); penpos5(1.9hair,0);
+ penpos4(1.1cap_curve,90); penpos3(1.9hair,0);
+ penpos2(cap_bar,-90);
+ penstroke z6e{right}..z5e{up}..tension.8..z4e..tension.8..{up}z3e..{right}z2e;
+ fill dl_drop_edge7;
+ ur_drop(1,cap_drop_round,w-s-x2,1.5drop_round,cap_bar);
+ fill ur_drop_edge1;
+ z8=(.5w,h); z9=(.5w,-d);
+ penpos8(cap_bar,0); penpos9(cap_bar,0);
+ penstroke z8e--z9e;
+ fill z9r..z9l..cycle; fill z8r..z8l..cycle;
+ %currentpicture := currentpicture shifted(-.7u,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"25",12u#,asc_height#,0);
+italcorr asc_height#*sind 18-2.95u#;
+penpos1(vair,90); penpos2(.6curve,0);
+penpos3(vair,-90); penpos4(.6curve,-180);
+y1=.55h; y3=h; y3-y4=y4-y1; y2=y4; x2=1/4curve+s; x4=5/2curve+s;
+x4-x1=x1-x2; x3=x1;
+penstroke z1e{left}..tension.9..{up}z2e{up}..tension1.2..{right}z3e..tension.9..{down}z4e{down}..tension1.2..{left}z1e..cycle;
+penpos5(vair,90); penpos6(.6curve,0);
+penpos7(vair,-90); penpos8(.6curve,-180);
+y5=0; y7=.45h; y7-y8=y8-y5; y6=y8; x8=w-1/4curve-s; x6=w-5/2curve-s;
+x8-x5=x5-x6; x7=x5;
+penstroke z5e{left}..tension.9..{up}z6e{up}..tension1.2..{right}z7e..tension.9..{down}z8e{down}..tension1.2..{left}z5e..cycle;
+x9l=x7; y9=h; x10r=x1; y10=0;
+penpos9(1.2bar,0); penpos10(1.2bar,0);
+penstroke z9e--z10e;
+%currentpicture := currentpicture shifted(-1.4u,0);
+penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"26",14u#,cap_height#,0);
+x4=x8=x3+.5curve; y6=0; y2=h; x2=x3+1.3cap_curve;
+y7=13/53h; y5=9/53h; x5=x7+3.5cap_curve; x6=x7+1.8cap_curve;
+y4=y8=30/53h; y1=44/53h; y3=42/53h; x3=4s+curve;
+x1=x3+2.1cap_curve; x7=s+1/2cap_curve;
+x10=w-s; y10=9/53h; x10-x9=x9-x5; y9=1/5cap_curve;
+th:=angle(z4-z5)+5; th1:=th-11; x11h=w-s-c; y11h=y1-4s;
+A_serif(11,cap_bar,-110,cap_jut,cap_jut); z12l=z11a;
+penpos6(cap_bar,-90); penpos5(cap_stem,45);
+penpos4(cap_stem,45); penpos3(2.5hair,0);
+penpos2(cap_bar,-90); penpos1(2hair,-180);
+penpos7(cap_curve,-180); penpos8(cap_bar,-250);
+penpos9(.5cap_curve,70); penpos10(cap_bar,150);
+penpos12(cap_bar,0);
+penstroke z10e..z9e..z5e{dir th}..{dir th1}z4e..tension.9..{up}z3e{up}..tension1..z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e{dir 8}..{dir 70}z12e;
+fill z12l--z12r..reverse A_serif_edge11--cycle;
+currentpicture := currentpicture shifted(-.9u,0);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+currenttransform := identity;
+
+beginchar(hex"40",13u#,x_height#+2curve#,2curve#);
+a_width:=8.772u+c-2s;
+x1=2s+a_width-s-3/4stem+1.5curve; y1=x_height; y2=7/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=3s+a_width+1.5curve; y4=15/33x_height;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.2vair,270); penpos4(bar,360);
+x5=x1-1.4stem; y5=x_height; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c+1.6curve; y6=.54x_height; y8=.46x_height; z8l=whatever[z1r,z2r];
+x13=x5; y13=h-1/2bar; x14=s+1/2bar; y14=y6; y15=-d+1/2bar; x15=x7;
+x16=x4; y16=-d+3bar; penpos7(vair,270); penpos16(bar,270);
+penpos13(bar,90); penpos14(bar,180); penpos15(bar,270);
+penpos8(2bar,0); penpos5(vair,90); penpos6(curve,180);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 80}z4e..z13e{left}..z14e..{right}z15e..z16e;
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=x_height-c; z10=(x1r+c,x_height); z11=(x1l-c,x_height);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+fill z16r..z16l..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar(hex"12",2cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=s+.45cap_stem*cosd 45;
+x2=w-s+cap_bar*cosd 45; z2=z1+whatever*dir -45;
+penpos1(.9cap_stem,45); penpos2(cap_bar,45);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"13",2cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=w-s-.45cap_stem*cosd 45;
+x2=s-cap_bar*cosd 45; z2=z1+whatever*dir -135;
+penpos1(.9cap_stem,135); penpos2(cap_bar,135);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"3F",8u#+c#,cap_height#,0);
+ x1=s+1/2cap_stem; y1=1/2cap_stem;
+ penpos1(cap_stem,0);
+ fill z1r..z1l..cycle;
+ y2=cap_stem+4/5cap_bar; z2=z1+whatever*dir 78;
+ z3l=z2l+whatever*dir 78; y3l=21/53h;
+ penpos2(cap_bar,0); penpos3(1.3cap_bar,0);
+ penstroke z2e--z3e;
+ z4r=z3l; penpos4(cap_bar,90);
+ y5=y4; x5=x4+2cap_bar; penpos7(cap_bar,-90);
+ x6=w-s-1/2cap_curve; y6=35/51h; x7=18/31w; y7=h;
+ penpos5(cap_bar,90); penpos6(cap_curve,180); z8=z7;
+ penstroke z4e--z5e{right}..tension1.2..{dir 78}z6e{dir 78}..tension1.1..{left}z7e;
+ ul_drop(8,.8cap_drop_round,x7-x3,cap_curve,cap_bar);
+ fill ul_drop_edge8;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"10",5u#,asc_height#,0);
+x1=w-s-stem; y1=x_height-bar; y2=11/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem; x4=w-s-1/2bar; y4=10/33x_height; y3=0;
+serif(1,stem,-104,jut,0);
+penpos2(stem,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"11",7u#-c#,asc_height#,desc_depth#);
+x1d=w-s; y1d=x_height; y2=7/33x_height; serif(1,stem,-104,jut,0);
+z2=z1+whatever*dir -104; penpos2(stem,180);
+y3l=-2/3d-c; z3l=whatever[z1f,z2l]; penpos3(1.1bar,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penstroke z2e{dir -104}..{dir -104}z3e;
+fill z1e{dir 76}..z1d{left}..cycle; z4=z3;
+dl_drop(4,drop_round,1/3d,drop_round,1.1bar);
+fill dl_drop_edge4 rotatedaround(z3,76);
+fill z3l..tension1.3..z3r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"2A",3cap_stem#+3s#,body_height#,0);
+ x1=x2=x3=x4=.5w; y1=h-1/2stem; y2=y1-cap_stem; y3=y2-bar; y4=y3-bar;
+ penpos1(stem,0); penpos2(cap_bar,0); penpos3(2cap_bar,0);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle;
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,60);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,120);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,180);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,240);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,300);
+ penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"5E",6u#,body_height#,0);
+ x1=s+.45cap_bar*cosd 45; x2=w/2; y2=h-bar;
+ z1=z2+whatever*dir -135; x3=w-x1; z3=z2+whatever*dir -45;
+ penpos1(bar,135); penpos2(2bar,90); penpos3(bar,45);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"16",6u#,body_height#,0);
+ x1=s; x2=w-x1; y1=y2=h-4bar;
+ penpos1(.8bar,90); penpos2(.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7F",2stem#+4s#,x_height#+2.1stem#,0);
+ z1=(s+.5stem,h); z2=(s+.5stem,h-stem);
+ fill z1..z2..cycle;
+ z3=(w-s-.5stem,h); z4=(w-s-.5stem,h-stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+ligtable "7":
+ "8" kern -kk#,
+ "A" kern -kkk#,
+ CYR_A kern -kkk#,
+ "f" kern -kk#,
+ "j" kern -kkk#,
+ "g" kern -kkk#,
+ CYR_el kern -kkk#,
+ CYR_em kern -kkk#,
+ CYR_u kern -k#,
+ CYR_er kern -k#,
+ CYR_ya kern -kk#,
+ "c" kern -k#,
+ "q" kern -k#,
+ "p" kern -k#;
+
+ligtable CYR_A: "A":
+ CYR_O kern -k#,
+ CYR_ES kern -k#,
+ CYR_TE kern -k#,
+ CYR_U kern -kk#,
+ CYR_EF kern -k#,
+ CYR_CHE kern -kk#,
+ CYR_HARD_SIGN kern -k#,
+ CYR_che kern -k#,
+ "W" kern -kkk#,
+ "V" kern -kkk#,
+ "Y" kern -kk#,
+ "T" kern -k#;
+
+ligtable CYR_GHE: CYR_TE: "T":
+ CYR_A kern -kk#,
+ CYR_DE kern -k#,
+ CYR_EL kern -kk#,
+ "l" kern kk#,
+ "t" kern k#,
+ "i" kern k#,
+ "k" kern kk#,
+ "b" kern kk#,
+ "h" kern kk#;
+
+ligtable CYR_E: CYR_YU:
+ CYR_U kern -k#,
+ CYR_be kern k#,
+ CYR_te kern kk#,
+ CYR_o kern k#,
+ CYR_pe kern k#,
+ CYR_er kern k#,
+ CYR_ka kern k#,
+ CYR_en kern k#,
+ CYR_che kern kk#,
+ CYR_sha kern kk#,
+ CYR_yu kern k#,
+ CYR_u kern k#,
+ "b" kern k#,
+ "t" kern kk#,
+ CYR_HA kern -k#;
+
+ligtable CYR_O: CYR_EF: "D": "O": "Q":
+ CYR_yeru kern k#,
+ CYR_pe kern k#,
+ CYR_en kern k#,
+ CYR_o kern k#,
+ CYR_be kern k#,
+ CYR_HA kern -k#,
+ CYR_te kern kk#,
+ CYR_ef kern k#,
+ CYR_er kern k#,
+ CYR_ka kern k#,
+ CYR_che kern kk#,
+ CYR_sha kern kk#,
+ CYR_yu kern k#,
+ CYR_u kern k#,
+ "o" kern k#,
+ "e" kern k#,
+ "q" kern k#,
+ "l" kern k#,
+ "p" kern k#,
+ "t" kern k#,
+ "u" kern kk#,
+ "b" kern k#,
+ "X" kern -k#;
+
+ligtable CYR_ER: "P":
+ CYR_A kern -kk#,
+ CYR_el kern -k#,
+ CYR_te kern k#,
+ CYR_pe kern k#,
+ "p" kern k#,
+ CYR_ka kern k#,
+ CYR_en kern k#,
+ CYR_che kern kk#,
+ CYR_sha kern kk#,
+ CYR_yu kern k#,
+ CYR_u kern k#,
+ "i" kern k#,
+ "b" kern k#,
+ "u" kern k#,
+ "l" kern k#,
+ "r" kern k#;
+
+ligtable CYR_ES: "C":
+ CYR_i kern kk#,
+ CYR_pe kern k#,
+ CYR_ve kern k#,
+ "7" kern kk#,
+ "l" kern kk#,
+ "n" kern k#,
+ "h" kern k#,
+ CYR_o kern k#;
+
+ligtable CYR_EN:
+ CYR_i kern k#;
+
+ligtable CYR_U:
+ CYR_A kern -kkk#,
+ CYR_O kern -k#,
+ CYR_ES kern -k#,
+ CYR_EF kern -k#;
+
+ligtable CYR_HA: "X":
+ CYR_ES kern -k#,
+ CYR_EF kern -k#,
+ CYR_O kern -k#,
+ "O" kern -k#,
+ "Q" kern -k#,
+ "C" kern -k#,
+ "G" kern -k#;
+
+ligtable CYR_be:
+ CYR_a kern -kk#,
+ CYR_o kern -kk#,
+ "a" kern -kk#,
+ "o" kern -kk#,
+ "e" kern -kk#,
+ "c" kern -k#,
+ "x" kern -kk#,
+ "p" kern -kk#,
+ CYR_ie kern -kk#,
+ CYR_ze kern -kk#,
+ CYR_el kern -kk#,
+ CYR_em kern -kk#,
+ CYR_es kern -k#,
+ CYR_ef kern -k#,
+ CYR_ha kern -kk#,
+ CYR_e kern -kk#,
+ CYR_ye kern -k#,
+ CYR_ya kern -kk#,
+ CYR_yeru kern -k#,
+ CYR_ve kern -k#,
+ CYR_ghe kern -kk#,
+ CYR_de kern -k#,
+ CYR_zhe kern -kk#,
+ CYR_i kern -k#,
+ CYR_ka kern -kk#,
+ CYR_en kern -kk#,
+ CYR_pe kern -kk#,
+ CYR_er kern -kk#,
+ CYR_u kern -kk#,
+ "y" kern -kk#,
+ CYR_tse kern -kk#,
+ CYR_che kern -k#,
+ CYR_sha kern -k#,
+ CYR_shcha kern -k#,
+ CYR_soft_sign kern -k#,
+ CYR_yu kern -kk#;
+
+ligtable CYR_de:
+ CYR_em kern -kk#,
+ CYR_a kern -kk#,
+ "a" kern -kk#,
+ "c" kern -kk#,
+ "p" kern -kk#,
+ "o" kern -k#,
+ "e" kern -k#,
+ "n" kern -kk#,
+ CYR_zhe kern -kk#,
+ CYR_ze kern -kk#,
+ CYR_el kern -kkk#,
+ CYR_pe kern -kk#,
+ CYR_er kern -kk#,
+ CYR_es kern -kk#,
+ CYR_u kern -kk#,
+ CYR_ha kern -kk#,
+ CYR_ya kern -kk#,
+ CYR_be kern -k#,
+ CYR_ve kern -k#,
+ CYR_ghe kern -k#,
+ CYR_ie kern -k#,
+ CYR_ye kern -k#,
+ CYR_ka kern -k#,
+ CYR_en kern -k#,
+ CYR_o kern -k#,
+ CYR_ef kern -k#,
+ CYR_tse kern -k#,
+ CYR_sha kern -k#,
+ CYR_hard_sign kern -k#,
+ CYR_e kern -k#,
+ CYR_yu kern -k#;
+
+ligtable CYR_ghe:
+ CYR_el kern -k#;
+
+ligtable CYR_pe: "n":
+ "y" kern -k#,
+ CYR_u kern -k#,
+ "f" kern -kk#,
+ "j" kern -kk#,
+ "g" kern -k#;
+
+ligtable CYR_te:
+ CYR_em kern -k#,
+ CYR_ie kern -k#,
+ CYR_el kern -kkk#;
+
+ligtable CYR_u: "y":
+ CYR_el kern -k#,
+ CYR_em kern -k#,
+ CYR_ie kern -k#,
+ CYR_ka kern -k#,
+ CYR_ya kern -k#,
+ CYR_ye kern -k#,
+ "f" kern -kk#,
+ "j" kern -kk#;
+
+ligtable "I": "H": "N": "U":
+ "l" kern kk#,
+ "t" kern k#,
+ "i" kern k#,
+ "k" kern kk#,
+ "b" kern kk#,
+ "h" kern kk#;
+
+ligtable "L":
+ "T" kern -kk#,
+ "W" kern -k#,
+ "V" kern -k#,
+ "Y" kern -kk#;
+
+ligtable "S":
+ "b" kern k#,
+ "c" kern k#,
+ "l" kern k#,
+ "t" kern k#,
+ "j" kern -k#,
+ "o" kern k#;
+
+ligtable "V": "W":
+ "A" kern -kkk#,
+ "l" kern kk#,
+ "t" kern k#,
+ "i" kern k#,
+ "k" kern kk#,
+ "b" kern kk#,
+ "h" kern kk#;
+
+ligtable "d":
+ "f" kern -kk#,
+ "g" kern -k#,
+ "j" kern -kk#;
+
+ligtable "f":
+ "g" kern -k#,
+ "f" kern -kk#,
+ "a" kern -k#,
+ "c" kern -k#,
+ "d" kern -k#,
+ "e" kern -k#,
+ "o" kern -k#,
+ "q" kern -k#,
+ "r" kern -k#,
+ "s" kern -k#,
+ "x" kern -k#,
+ "z" kern -k#,
+ "j" kern -k#;
+
+ligtable "g":
+ "i" kern k#,
+ "u" kern k#,
+ "t" kern k#,
+ "f" kern -k#,
+ "v" kern k#,
+ "w" kern k#;
+
+ligtable "o": "b": "p": "e":
+ "W" kern -kkk#,
+ "V" kern -kkk#,
+ "X" kern -kk#,
+ "e" kern k#,
+ "f" kern -kk#,
+ "j" kern -kk#,
+ "o" kern k#;
+
+ligtable "r":
+ "g" kern -k#,
+ "a" kern -k#;
+
+ligtable "s": "z":
+ "f" kern -kk#,
+ "j" kern -kk#;
+
+ligtable "t":
+ "f" kern -k#,
+ "a" kern -k#;
+
+ligtable "v": "w":
+ "f" kern -kk#,
+ "g" kern -k#,
+ "j" kern -kk#;
+
+ligtable "c": CYR_es:
+ "j" kern -kk#;
+
+ligtable "x": CYR_ha:
+ CYR_el kern -kk#,
+ CYR_em kern -kk#,
+ "j" kern -kk#;
+
+ligtable oct"55":
+ oct"55" =: hex"7b";
+ligtable hex"7b":
+ oct"55" =: hex"7c";
+end
diff --git a/fonts/obnov/obnit12.mf b/fonts/obnov/obnit12.mf
new file mode 100644
index 0000000000..7843c41a6f
--- /dev/null
+++ b/fonts/obnov/obnit12.mf
@@ -0,0 +1,3567 @@
+%written by Basil Solomykov, Russia
+%(C) Copyright 2011 LPPL (LaTeX Project Public License)
+%Font Ordinary New (Obyknovennaya novaya), Italic
+
+design_size := 12pt#;
+o# := .54pt#;
+u# := 23/35pt#;
+bar# := 12/36pt#;
+slab# := 12/36pt#;
+cap_bar# := 12/36pt#;
+vair# := 12/36pt#;
+hair# := 12/36pt#;
+jut# := 24/36pt#;
+cap_jut# := 31.2/36pt#;
+stem# := 36/36pt#;
+curve# := 37.2/36pt#;
+cap_stem# := 43.2/36pt#;
+cap_curve# := 44.64/36pt#;
+s# := 0.5pt#;
+c# := .25pt#;
+
+input obn_lcyw_code.mf
+font_identifier "OBNIT";
+mode_setup;
+clear_pen_memory;
+
+font_size design_size*pt#;
+asc_height# := 24/36*design_size*pt#;
+cap_height# := 24/36*design_size*pt#;
+body_height# := 27/36*design_size*pt#;
+x_height# := 15.4/36*design_size*pt#;
+desc_depth# := 8/36*design_size*pt#;
+body_depth# := 9/36*design_size*pt#;
+comma_depth# := 5/36*design_size*pt#;
+x_depth# := 4/5comma_depth#;
+bar_height# := .52x_height#;
+cap_bar_height# := .52cap_height#;
+cap_bar2_height# := .45cap_height#;
+border_height# := comma_depth#;
+cap_drop_round# := 4*slab#;
+drop_round# := 6/8cap_drop_round#;
+A_bracket# := 1.4pt#;
+bracket# := pt#;
+
+font_slant sind 36;
+font_x_height x_height#;
+font_normal_space 9u#;
+font_normal_stretch 4u#;
+font_normal_shrink 2u#;
+font_quad 16u#;
+font_extra_space 6u#;
+
+k# := .8u#;
+kk# := 1.5u#;
+kkk# := 3u#;
+
+serif_darkness := 1/30;
+define_pixels(bracket,cap_o_width,sss_width,css_width);
+define_pixels(c,s,cap_bar_height,cap_bar2_height);
+define_pixels(border_height,A_bracket,cap_drop_round,x_depth,drop_round);
+define_whole_blacker_pixels(stem,cap_stem,curve,cap_curve,bar,slab,cap_bar);
+define_good_x_pixels(hair); define_good_y_pixels(vair);
+define_whole_pixels(asc_height,cap_height,x_height,u,desc_depth,comma_depth,bar_height,body_height,body_depth,u,o,cap_jut,jut);
+%define_corrected_pixels();
+lowres_fix(stem,curve) 1.2;
+lowres_fix(cap_stem,cap_curve) 1.2;
+if jut=cap_jut: jut:=jut-1; fi
+
+def serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g if left_jut=0: -1/2slab fi +1/2slab; x$d=x$e=x$h if right_jut=0: +1/2slab fi-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def serif_edge suffix $ =
+(serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse serif_bracket($f,$r,$e)) enddef;
+
+def serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...serif_darkness[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def T_serif(suffix $)(expr slab, bord_height, direction)= %Direction: 0-left, 1-right;
+penpos$(slab,if direction=1: - fi 90);
+x$=x$a=x$g; y$g-y$=y$-y$a=1/2slab;
+x$b=x$a + if direction=0: - fi .882bord_height; y$b=y$d=y$c+1/2slab;
+x$c=x$b + if direction=0: - fi 1/2slab; y$c=y$a-bord_height;
+x$d=x$e=x$b + if direction=0: - fi slab;
+y$e=y$g-1/2slab; y$f=y$g; x$f=x$c;
+labels($a,$b,$c,$d,$e,$f,$g) enddef;
+
+def T_edge suffix $ =
+(z$a..{down}z$b..z$c..z$d--z$e{up}..z$f--z$g--cycle) enddef;
+
+def A_serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(A_bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g+1/2slab; x$d=x$e=x$h-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def A_serif_edge suffix $ =
+(A_serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse A_serif_bracket($f,$r,$e)) enddef;
+
+def A_serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...0.6[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def ur_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a= 1/2slab;
+x$e=x$a + drop_length; y$e=y$f- drop_height;
+x$d=x$e - 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e - drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d - 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ur_drop_edge suffix $ =
+(z$f{right}..tension.9..{down}z$e{down}..{left}z$d{left}..{up}z$c{up}..z$b...{left}z$a--cycle) enddef;
+
+def ul_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$f- drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d + 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ul_drop_edge suffix $ =
+(z$f{left}..tension.9..{down}z$e{down}..{right}z$d{right}..{up}z$c{up}..z$b...{right}z$a--cycle) enddef;
+
+def dl_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, -90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$a + drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e + 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d - drop_round); x$b=x$d + 1/90drop_round;
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def dl_drop_edge suffix $ =
+(z$a{left}..tension.9..{up}z$e{up}..{right}z$d{right}..{down}z$c..{dir 250}z$b{dir -80}..{right}z$f--cycle) enddef;
+
+def S_serif (suffix $)(expr serif_slab, serif_length, serif_height)=
+%penpos$(serif_slab,90);
+x$a=x$i=x$; y$i=y$+1/2serif_slab; y$a=y$-1/2serif_slab;
+x$f=x$e=x$a+serif_length; y$f=y$g-1/2serif_slab; y$e=y$c=y$d+1/2serif_slab;
+x$g=x$f-1/2serif_slab; y$g=y$i-1/2serif_slab;
+y$h=y$f-1/4serif_slab; x$h=x$g-serif_slab;
+x$c=x$e-serif_slab; x$d=x$e-1/2serif_slab; y$d=y$g-serif_height;
+x$b=x$h-6/18serif_length; y$b=y$h-1/2slab;
+labels ($a,$b,$c,$d,$e,$f,$g,$h,$i) enddef;
+
+def S_serif_edge suffix $ =
+(z$a{right}...z$b..{dir -80}z$c..z$d..z$e--z$f{up}..z$g{left}..z$h{dir 150}..{left}z$i--cycle) enddef;
+
+currenttransform := identity slanted sind 18;
+beginchar(CYR_A,13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar(CYR_BE,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.67u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=y5=h-1/2slab;
+y1c=h; y2c=0; x5e=w-s-cap_stem;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h; x4=w-s-cap_stem-border_height;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_VE,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.25u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+css_width := x8 - x2r; save css_width;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar(CYR_GHE,9u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.85u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; x3=x4+2u;
+y5=y3; x5e=w-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_DE,12u#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-1.1u#;
+x10e=w-s; y10c=-d;
+y4c=h; x4h=w-s-1/2slab;
+x9=x4; y9c=0;
+x3=x8=x9d; y8=y7=1/2cap_bar; y3=y2=h-y8;
+x6e=s; y6=y10; x7=border_height+s;
+y5=y9; x5g=s+.5u; y1=y4; x1=x5+1.5u;
+x2=x1c;
+A_serif(1,1.2cap_bar,-96,10/7cap_jut,cap_jut);
+A_serif(5,1.2cap_bar,81,6/7cap_jut,cap_jut);
+serif(4,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+penpos2(cap_bar,90);
+penpos3(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_bar,90);
+penstroke z7e--z8e; penstroke z2e--z3e;
+fill A_serif_edge5...reverse A_serif_edge1...cycle;
+fill serif_edge9--reverse serif_edge4--cycle;
+T_serif(6,slab,border_height,0);
+T_serif(10,slab,border_height,1);
+fill T_edge6;
+fill T_edge10;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_IE,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.25u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_YE,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.25u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+x12=x13=x2r; y12=h+1/4cap_stem; y13=y12+cap_stem;
+x14=x15=x12+2cap_stem; y14=y12; y15=y13;
+fill z12..z13..cycle; fill z14..z15..cycle;
+penlabels(range 1 thru 15);
+endchar;
+
+beginchar(CYR_ZHE,round (16u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-1.15u#;
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; y7=y4=y10=y11=cap_bar_height; x4=x7-1.5u;
+x10=x8r; x11=x10+1.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+x6=s; y6=0; y4-y5=y5-y6; x4-x5=x5-x6;
+penpos7(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,90);
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z6e{right}..tension.8..{up}z5e{up}..tension.8..{right}z4e--z7e;
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+x3=x5+1/2cap_stem; y2=h; x4-x3=x3-x2; y2-y3=y3-y4;
+penpos3(hair,0);
+penpos2(cap_bar,90);
+penstroke z4e{left}..tension.8..{up}z3e{up}..tension.8..{left}z2e;
+y1=h; x1a=x2; fill z6l..z6r..cycle;
+ul_drop(1,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ul_drop_edge1; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ZE,10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.12u#;
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height;
+x4=x6-3/2cap_stem; x5=x4-3u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3c,1.4border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.5cap_drop_round,slab);
+fill dl_drop_edge8;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_I,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-20); penpos6(cap_bar,-20);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar(CYR_SHORT_I,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-20); penpos6(cap_bar,-20);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+y7d=h+1.5cap_drop_round; z7d=z1r+whatever*dir 78;
+dl_drop(7,.95cap_drop_round,1.3stem,.9cap_drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+z8=z7; y9=y7d-2bar; z9=z3+whatever*dir 105;
+penpos8(bar,90); penpos9(bar,135);
+penstroke z8e{right}..tension1.3..z9e;
+fill z9l..tension1.3..z9r..tension1.3..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_KA,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.15u#;
+x8g=x9g=s; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+y10=y11=cap_bar_height;
+x10=x8r; x11=x10+2.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13; fill z16l..z16r..cycle;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_EL,13u#+1/2s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x7h=x8h=w-s; y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.8cap_drop_round; y3=1.1cap_drop_round;
+dl_drop(1,1.1cap_drop_round,1.1cap_drop_round,1.2cap_drop_round,slab);
+fill dl_drop_edge1;
+penpos2(cap_bar,-90);
+penpos3(cap_bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-slab;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,cap_bar,theta1,1.3cap_jut,1.3cap_jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,cap_stem,-90,cap_jut,cap_jut);
+serif(8,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z5e--z6e;
+%currentpicture := currentpicture shifted(-.7u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_EM,13u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,.51cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,-18); penpos6(bar,-18);
+z6=z5+whatever*dir -109; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 109; y7l=11/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EN,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r-.1c; x6=x3l+.1c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_O,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.2u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+cap_o_width := x7-x3; save cap_o_width;
+%currentpicture := currentpicture shifted(-1.8u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_PE,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ER,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.58u#;
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_ES,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.25u#;
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+%currentpicture := currentpicture shifted(-1.7u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_TE,round (11u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=.5w; y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+%currentpicture := currentpicture shifted(-3.2u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_U,13u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1l=s+cap_jut; y1l=.98h-cap_bar;
+x3r=w-s-.8cap_jut; y3r=.98h-cap_bar;
+x4=33/60w; y4=6/53h;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,1.2cap_bar,theta2,1.2cap_jut,.8cap_jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=0; x6=x4-1.2cap_stem; z7l=z2;
+penpos7(1.2cap_bar,theta2+90);
+penpos5(1.2cap_bar,theta2+90);
+penpos6(1.2cap_bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,cap_drop_round,2u, 10/53h, round 1.2cap_bar);
+fill dl_drop_edge8;
+%currentpicture := currentpicture shifted(-3.2u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EF,round (14u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-2.2u#;
+if .5w = good.x .5w: change_width; fi
+x1=x2=.5w; y2c=0; y1h=h;
+y6=y7=y8=y9=1.3cap_jut; y4=y3=y11=y12=h-1.3cap_jut+1/2slab;
+x3=x7=x2l+.1c; x8=x12=x2r-.1c; x4=x6=x3-u; x11=x9=x12+u;
+x5=s+1/2cap_curve; x10-x1=x1-x5; y4-y5=y5-y6; y10=y5;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,270);
+penpos7(cap_bar,270);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+penpos10(cap_curve,0);
+penpos11(cap_bar,90);
+penpos12(cap_bar,90);
+penstroke z3e--z4e{left}..tension.8..{down}z5e{down}..tension.8..{right}z6e--z7e;
+penstroke z8e--z9e{right}..tension.8..{up}z10e{up}..tension.8..{left}z11e--z12e;
+%currentpicture := currentpicture shifted(-1.9u,0);
+penlabels (range 1 thru 12);
+endchar;
+
+beginchar(CYR_HA,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.3u#;
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_TSE,12.5u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-1.37u#;
+x1=x2=x5=cap_jut+1/2cap_stem+s;
+x3=x4=x6=w-x1-.5u; y5=y6=y2h;
+y1c=y3c=h; y2c=y4c=0; x7e=w-s; y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e;
+T_serif(7,cap_bar,border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_CHE,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=cap_jut+1/2cap_stem+s; x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,-90,cap_jut,cap_jut);
+serif(3,cap_stem,90,cap_jut,cap_jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l+.1c; y5=cap_bar_height-1/2cap_bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-1.7cap_bar;
+penpos6(cap_stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+%currentpicture := currentpicture shifted(-3.4u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SHA,16u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+if .5w <> good.x .5w: change_width; fi
+x1=x2=good.x (cap_jut+1/2cap_stem+s);
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=good.x .5w; y5=y1; y6=y2;
+y9b=slab; x9=good.x w-x1;
+x10=x9; y10b=h-slab;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_SHCHA,16u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-.84u#;
+if .5w <> good.x .5w: change_width; fi
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=slab; x9h=w-s;
+x10=x9; y10b=h-slab;
+x11e=w-s; y11=y9h;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,slab,border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_HARD_SIGN,13.5u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-3.25u#;
+x2r=x5-css_width; x1=x2; x8e=0; y8g=h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+x7=x1d; y1c=h; y2c=0;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=round(x3+5u-cap_stem);
+y6=y7=y2h;
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(8,cap_bar,border_height,0);
+fill T_edge8;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+%currentpicture := currentpicture shifted(-1.6u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YERU,16u#+c#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+y3=y4=cap_bar_height; x3=round x2r; x4=x6=round (x3+5u-cap_stem) - 1;
+y4-y5=y5-y6; x5=x2r+css_width; y8b=slab; x8h=w-s;
+y6=y7=y2h; x9=x8; y9b=h-slab;
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(8,cap_stem,90,cap_jut,cap_jut);
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge9--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SOFT_SIGN,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-3.25u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=x3+5u-cap_stem;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y6=y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_E,10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.2u#;
+x1=16/39w; x5=.5w; y1=0; y5=h;
+y7=.5h; x7=w-1/2cap_curve-s;
+x9e=s; y9=0;
+dl_drop(9,cap_drop_round,16/39w-s,1.7cap_drop_round,slab);
+y8=0.1h-c; y6=0.9h+c; x8=x9+9/16(x7-x9); x6=x5+9/16(x7-x5);
+penpos5(cap_bar,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+penpos1(cap_bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+y2=y5; x2=x5-c;
+S_serif(2,slab,x1+c,1.5border_height);
+x3=x7-1/2cap_stem; y3=y4=cap_bar_height; x4=x2b-x1;
+penpos3(cap_bar,90); penpos4(cap_bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YU,16u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.25u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+y3=y7=.5h; x7=w-1/2cap_curve-s; x3=x7-cap_o_width; y9=0; y5=h; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3cap_stem; y11=y12=cap_bar_height;
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_YA,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=w-cap_jut-1/2cap_stem-s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2l;
+y1c=h; y2c=0; x6=x4=x7-2.5u; x3=x1c;
+y4-y5=y5-y6; x5=x8-1.5c; x9=s; y9=0; y6-y8=y8-y9; x7-x10=3(x10-x6); x10-x8=x8-x9;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos7(cap_bar,270);
+penpos6(cap_bar,270);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90); fill z9l..z9r..cycle;
+penstroke z3e--z4e{left}..tension.9..z5e..tension.9..{right}z6e--z7e;
+penstroke z9e{right}..tension1..{up}z8e{up}..tension1..{right}z10e;
+penlabels(range 1 thru 10);
+endchar;
+currenttransform := identity;
+
+beginchar(CYR_a,9u#+c#,x_height#,0);
+x1=w-s-3/4stem; y1=h; y2=7/33h; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=w-s-bar/3; y4=8/33h;
+penpos1(stem,180);
+penpos2(stem,180);
+penpos3(1.2vair,270);
+penpos4(bar,360);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 60}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x5=x1-3/2stem; y5=h; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c; y6=.54h; y8=.46h; z8l=whatever[z1r,z2r];
+penpos8(2bar,0);
+penpos5(vair,90);
+penpos6(curve,180);
+penpos7(vair,270);
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=h-c; z10=(x1r+c,h); z11=(x1l-c,h);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar(CYR_be,8u#+s#+stem#,asc_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5(w-stem)-1/2(x_height*sind 14/cosd 14); x3=.5(w-stem)+1/2(x_height*sind 14/cosd 14); y1=0; y3=x_height;
+y2=.54x_height; y4=.46x_height; x2=1/2curve+s; x4=w-1/2curve-stem-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+y5=y2; x5r=x2l; x6=23/35w; y6=46/51h; y7r=h; x7=w-s;
+penpos5(bar,180);
+penpos6(.9curve,90);
+penpos7(.8curve,90);
+penstroke z5e{dir 76}..{dir 14}z6e{dir 14}..{dir 30}z7e;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_ve,8u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=4/5h; x2=1/2curve+s; x4=w-1/2curve-s; z5r=z2; x6=w-s-s-1/2curve; y6=9/33h; z7=z5;
+penpos5(vair,-270);
+penpos6(curve,180);
+penpos7(vair,270);
+penstroke z7e{dir 14}..tension.9..{dir 256}z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{dir 194}z5e;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_ghe,7u#+s#,x_height#,0);
+x4=0.5w; top y4 = good.y (0.5h+1/3bar); y3=11.5/16h; x3=w-s-1/2curve;
+x2=11/18w; y2=h; x1=s+2/3curve; y1=24/33h;
+x5=s+1/2curve; y5=h-y3; x6=w-x2; y6=0; x7=w-x1; y7=h-y1;
+penpos1(bar,180);
+penpos2(1.2bar,90);
+penpos3(curve,0);
+penpos4(1.2bar,-90);
+penpos5(curve,0);
+penpos6(1.2bar,90);
+penpos7(bar,180);
+penstroke z1e{dir 60}..{right}z2e..z3e{dir -104}...z4e...{dir -104}z5e..z6e{right}..{dir 60}z7e;
+fill z7l..tension1.3..z7r..tension1.3..cycle;
+fill z1l..tension1.3..z1r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_de,8u#+s#+stem#,asc_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5(w-stem)-1/2(x_height*sind 14/cosd 14); x3=.5(w-stem)+1/2(x_height*sind 14/cosd 14); y1=0; y3=x_height;
+y2=.54x_height; y4=.46x_height; x2=1/2curve+s; x4=w-1/2curve-stem-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..tension1..{right}z3e..tension.9..{dir 256}z4e{dir 256}..tension1..{left}z1e..cycle;
+y5=23/33x_height; z5=z4+whatever*dir 77; x6=22/35w; y6=h;
+y56=y5+stem; z56=z4+whatever*dir 76;
+x7=11/35w; y7=42/51h;
+penpos5(curve,-180);
+penpos56(.9curve,-180);
+penpos6(1.2bar,-90);
+penpos7(bar,0);
+penstroke z4e{dir 76}..z5e{dir 76}..z56e..tension1..{dir 174}z6e{left}..z7e;
+fill z7l..tension1.3..z7r..tension1.3..cycle;
+penlabels(range 1 thru 8,56);
+endchar;
+
+beginchar(CYR_ie,8u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=4/5h; x2=1/2curve+s; x4=w-1/2curve-s; z5r=z2; x6=w-s-s-1/2vair; y6=9/33h;
+penpos5(vair,-270);
+penpos6(vair,135);
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{dir 194}z5e;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_ye,8u#+c#,asc_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(x_height*sind 14/cosd 14); x3=.5w+1/2(x_height*sind 14/cosd 14);
+y1=0; y3=x_height; y2=.54x_height; y4=4/5x_height; x2=1/2curve+s;
+x4=w-1/2curve-s; z5r=z2; x6=w-s-s-1/2vair; y6=9/33x_height;
+penpos5(vair,-270);
+penpos6(vair,135);
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{dir 194}z5e;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+z8r=(w,h-1/2curve); y7=y8; x7=x8-2curve;
+penpos7(curve,0); penpos8(curve,0);
+fill z7r..z7l..cycle; fill z8r..z8l..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_zhe,15u#,x_height#,0);
+penpos1(1.2vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+x1=x3-(h*sind 14/cosd 14); x3=w-s-3/4stem; y1=0; y3=h;
+y2=.54h; x2=x1-3/4stem; x5=w-s-4/5stem; y5=7/33h;
+penpos5(vair,135); z4=z3;
+penstroke z5e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e;
+fill z5l..tension1.5..z5r..tension1.5..cycle;
+z77=(.5w,.5h); z9=z77+whatever*dir 76; y9=h;
+z8=whatever[z9,z77]; y8=0;
+penpos8(stem,0); penpos9(stem,0);
+penstroke z8e--z9e;
+ur_drop(4,drop_round,3/4stem,drop_round,bar);
+fill ur_drop_edge4;
+x10=w-x5; y10=26/33h; x11=w-x1; y11=h; x12=w-x2; y12=.46h;
+x13=w-x3; y13=0; z14=z13;
+penpos10(bar,135); penpos11(bar,90);
+penpos12(curve,0); penpos13(bar,-90);
+penstroke z10e..z11e{right}..{dir -104}z12e{dir -104}..{left}z13e;
+fill z10l..tension1.5..z10r..tension1.5..cycle; z14=z13;
+dl_drop(14,drop_round,3/4stem,drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+x7=x12; x6=x2; y6=y7=bar_height;
+penpos7(bar,90); penpos6(bar,90);
+penstroke z6e--z7e;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_ze,8u#,x_height#,0);
+x1=2.5s+1/2vair; y1=26/33h; x2=.5w+1/2(h*sind 14/cosd 14); y2=h;
+x3=w-s-1/2curve; y2-y3=y3-y4; x5=x1+s;
+z4=z2+whatever*dir -104; y4=y5=bar_height;
+z7=whatever[z2,z4]; y7=0; z6=z3+whatever*dir -100;
+y4-y6=y6-y7; z8=z7;
+penpos1(bar,135); penpos2(bar,90);
+penpos3(curve,0); penpos4(bar,-90);
+penpos5(bar,-90); penpos6(curve,180);
+penpos7(bar,90);
+penstroke z1e..z2e{right}..{dir -100}z3e{dir -100}..{left}z4e--z5e;
+penstroke z4e{right}..{dir -100}z6e{dir -100}..{left}z7e;
+fill z1l..tension1.5..z1r..tension1.5..cycle;
+fill z5l..tension1.5..z5r..tension1.5..cycle;
+dl_drop(8,drop_round,x7-s,1.2drop_round,bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_i,10u#,x_height#,0);
+x1=w-s-4.8/4stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=0; y5=8/34h;
+x5=s+1/2stem; x6=x5+stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+z7l=z5r+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_short_i,10u#,asc_height#,0);
+x1=w-s-4.8/4stem; y1=x_height; y2=10/33x_height; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33x_height; y3=y6=0; y5=8/34x_height;
+x5=s+1/2stem; x6=x5+stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33x_height;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+z7l=z5r+whatever*dir 76; y7l=x_height-bar;
+serif(7,stem,-104,jut,0);
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+y9d=h; z9d=z7f+whatever*dir 76;
+dl_drop(9,drop_round,stem,drop_round,bar);
+fill dl_drop_edge9; fill z9e..z9c..cycle;
+z10=z9; y11=h-bar; z11=z8+whatever*dir 76;
+penpos10(bar,90); penpos11(bar,135);
+penstroke z10e{right}..tension1.3..z11e;
+fill z11l..tension1.3..z11r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ka,10u#,x_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-2stem; y1=bar_height-2.5bar; y2=6/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y5=y6=0;
+x8=x2-3/4stem; y8=bar_height; y9=bar_height-2bar; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.1bar,270); penpos9(1.2bar,0);
+penstroke z9e{dir 68}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x10=x3; y10=h; penpos10(1.2bar,270); z11=z10;
+penstroke z9e{dir 60}..{dir 25}z10e;
+ur_drop(11,drop_round,9/8drop_round,drop_round,1.2bar);
+fill ur_drop_edge11;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_el,10u#+c#,x_height#,0);
+x1=w-s-4.8/4stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=0;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x5=x1r; y5=h-1/2bar; x8=1/5w; y8=0; z9=z8;
+y6=27/34h; y7=7/34h; x6=.5w; z7=z6+whatever*dir -108;
+penpos5(vair,90); penpos6(bar,180);
+penpos7(bar,180); penpos8(vair,90);
+penstroke z5e{left}..z6e--z7e{dir -108}..{left}z8e;
+dl_drop(9,1.1stem,x8-s,drop_round,bar);
+fill dl_drop_edge9; fill z9e..z9c..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_em,12u#+s#,x_height#,0);
+x1=w-s-stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=9/33h; y3=0;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+z5r=z1r; z6=z5+whatever*dir -120; y6=0;
+penpos5(bar,180); penpos6(bar,180);
+penstroke z5e--z6e; fill z6l..tension1.3..z6r..tension1.3..cycle;
+z7l=z6r+whatever*dir 92; y7l=5/4stem;
+z8l=whatever[z6r,z7l]; y8l=h;
+penpos7(.9stem,0); penpos8(.9stem,0);
+penstroke z7e--z8e; fill z6r--z7l--z7r--cycle;
+y9=h-bar; x9=x8l; y10=10/33h; z10=z9+whatever*dir -104;
+y11=0; x11=s+stem; z12=z11;
+penpos10(bar,0); penpos11(bar,-90);
+serif(9,bar,-104,jut,0);
+fill z10l--z10r--reverse serif_edge9--cycle;
+penstroke z10e{dir -104}..{left}z11e;
+dl_drop(12,drop_round,x11-s,drop_round,bar);
+fill dl_drop_edge12; fill z12e..z12c..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_en,10u#+s#,x_height#,0);
+x1=w-s-4.8/4stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y5=y6=0;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+y8=y9=bar_height; z9=z2+whatever*dir 76; z8=whatever[z6,z7];
+penpos8(bar,90); penpos9(bar,90);
+penstroke z8e--z9e; fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_o,8u#+s#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=.46h; x2=1/2curve+s; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+italic_o_width := x4-x2; save italic_o_width;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_pe,10u#+s#,x_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-10.5/8stem; y1=26/33h; y2=10/33h; z2=z1+whatever*dir -108;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y5=y6=0;
+x8=x2; y8=h; y9=bar_height-bar; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.2bar,270); penpos9(bar,0);
+penstroke z9e{dir 68}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_er,9u#+c#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=x2+.5(x4-x2)-1/4(h*sind 14/cosd 14); x3=x2+.5(x4-x2)+3/4(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=.46h; x2=x4-italic_o_width+c; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+y5=h-bar; z5=z2+whatever*dir 76;
+serif(5,stem,-104,jut,0); fill z5e{dir 76}..z5d{left}..cycle;
+y6=-d+bar; z6=whatever[z2,z5];
+serif(6,stem,76,.3jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_es,8u#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+x1=4u-1/2(h*sind 14/cosd 14); x3=4u+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; x2=1/2curve+s; x6=8u-1.5s-1/2vair; y6=9/33h;
+penpos6(vair,135); z4=z3;
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e;
+fill z6l..tension1.5..z6r..tension1.5..cycle;
+ur_drop(4,drop_round,w-s-x4,5/4drop_round,bar);
+fill ur_drop_edge4;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_te,round (8u#-.5s#),x_height#,0);
+if .5w = good.x .5w: change_width; fi
+currenttransform := identity slanted sind 14;
+x2=.5w-w*sind 14/cosd 14+c; x1e=s-w*sind 14/cosd 14+c;
+x4e=w-s-w*sind 14/cosd 14+c;
+y1=y4=y2h; y2c=h; y3=y5=0; x3=.5w-1/2stem-w*sind 14/cosd 14+c;
+x5=.5w+1/2stem-w*sind 14/cosd 14+c;
+serif(2,stem,-90,jut,jut);
+T_serif(1,bar,4/5border_height,0);
+T_serif(4,bar,4/5border_height,1);
+fill z3--z5--reverse serif_edge2--cycle;
+fill T_edge1; fill T_edge4;
+currenttransform := identity;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_u,10u#-c#,x_height#,desc_depth#);
+x5=w-s-1/2stem; y5=h; y6=10/33h; z6=z5+whatever*dir -104;
+y3=0; y2=8/34h; x2=s+stem; x3=x2+stem;
+y7=0; z7=z6+whatever*dir -104;
+penpos5(stem,180); penpos6(stem,180);
+z8r=z7r+whatever*dir -104; y8r=-1/2d;
+z4l=whatever[z6r,z5r]; y4l=15/33h;
+penpos2(stem,180); penpos3(1.1bar,270);
+y9=-d; x9=x2l; z10=z9;
+penpos4(bar,360); penpos7(stem,180);
+penpos8(.8stem,180); penpos9(bar,90);
+penstroke z2e{dir -104}..z3e{right}..{dir 76}z4e;
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+penstroke z5e{dir -104}..z6e..z7e..z8e..{left}z9e;
+dl_drop(10,1.1stem,x9-s,1.2drop_round,bar);
+fill dl_drop_edge10; fill z10e..z10c..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ef,12u#+c#,asc_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(.9curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=x2+.5(x4-x2)-3/8(x_height*sind 14/cosd 14);
+x3=x2+.5(x4-x2)+5/8(x_height*sind 14/cosd 14);
+y1=y6=0; y3=y8=x_height; y5=y4; x7=1/2curve+s; y7=y2;
+y2=.54x_height; y4=.46x_height; x4=w-1/2curve-s;
+x4-x2=x2-x7; x5=x2;
+x8=x7+.5(x5-x7)+3/8(x_height*sind 14/cosd 14);
+x6=x7+.5(x5-x7)-5/8(x_height*sind 14/cosd 14);
+penpos6(vair,90); penpos7(curve,0);
+penpos8(vair,-90); penpos5(.9curve,180);
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension1..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+penstroke z6e{left}..tension1..{dir 76}z7e{dir 76}..{right}z8e..tension.9..{dir 256}z5e{dir 256}..{left}z6e..cycle;
+x5-x77=x77-x2; y2-y77=y77-y5;
+y10=h; x10=w-s-stem; y11=44/34x_height; z11=z77+whatever*dir 76;
+y12=-1/8d; z12=z77+whatever*dir -104; y13=-d; x13=s+stem; z9=z10;
+penpos10(bar,90); penpos11(stem,180);
+penpos12(stem,180); penpos13(bar,90);
+penstroke z10e{left}..{dir -104}z11e--z12e{dir -104}..{left}z13e;
+ur_drop(9,drop_round,stem,drop_round,bar);
+fill ur_drop_edge9; z14=z13;
+dl_drop(14,drop_round,stem,drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 14,77);
+endchar;
+
+beginchar(CYR_ha,10u#+c#,x_height#,0);
+penpos1(1.2vair,90);
+penpos2(curve,0);
+penpos3(vair,-90); penpos12(curve,0);
+x1=x3-(h*sind 14/cosd 14); x3=w-s-3/4stem; y1=0; y3=h;
+y2=.54h; x2=x1-if design_size=17.32: stem else: 33/40stem fi;
+x5=w-s-4/5stem; y5=7/33h;
+penpos5(vair,135); z4=z3;
+penstroke z5e..z1e{left}..{dir 76}z2e{dir 76}..{right}z3e;
+fill z5l..tension1.5..z5r..tension1.5..cycle;
+ur_drop(4,drop_round,3/4stem,drop_round,bar);
+fill ur_drop_edge4;
+x10=w-x5; y10=26/33h; x11=w-x1; y11=h; x12=w-x2; y12=.46h;
+x13=w-x3; y13=-2epsilon; z14=z13;
+penpos10(bar,135); penpos11(bar,90);
+penpos13(bar,-90);
+penstroke z10e..z11e{right}..{dir -104}z12e{dir -104}..{left}z13e;
+fill z10l..tension1.5..z10r..tension1.5..cycle; z14=z13;
+dl_drop(14,drop_round,3/4stem,drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_tse,10u#,x_height#,desc_depth#);
+x1=w-s-5/4stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=0; y5=8/34h;
+x5=s+1/2stem; x6=x5+stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+z7l=z5r+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+y9l=0; x9l=x3+bar; x10=x2+1/4stem; y10=-1/2d;
+y11=-d; x11=x10-5/4stem;
+penpos11(bar,90); penpos10(stem,180); penpos9(bar,120);
+penstroke z9e..tension1.3..{down}z10e{down}..tension.8..{left}z11e;
+fill z11l..tension1.3..z11r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_che,9u#,x_height#,0);
+x7g=s; y7g=h-1/2bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=9/33h; y3=0; y6l=bar_height; y5=y6l+2bar;
+z5=z7+whatever*dir -104; x6=x5+3/4stem;
+penpos1(stem,180); penpos2(stem,180);
+z8=whatever[z2r,z1r]; y8l=y5-.9bar;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(1.2bar,256);
+penstroke z5e{dir -104}..z6e{right}..{dir 25}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_sha,14u#,x_height#,0);
+if .5w <> good.x .5w: change_width; fi
+x1=w-s-5/4stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=y10=0; y5=y11=8/34h;
+x11=s+1/2stem; x10=x11+stem;
+z12=z11+whatever*dir 76; y12=h-bar;
+y13=h; z13=whatever[z11,z12];
+x6=x5+stem; x1-x7=x7-x13; y7l=h; z5=z7+whatever*dir -104;
+serif(12,stem,-104,jut,0);
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=y9l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360); penpos7(stem,180);
+z9l=whatever[z5r,z7r];
+penstroke z7e--z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+penpos11(stem,180); penpos10(1.1bar,270);
+penpos9(bar,360);
+fill z11r--z11l--reverse serif_edge12--cycle;
+fill z12e{dir 76}..z12d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penstroke z11e{dir -104}..z10e{right}..{dir 76}z9e;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_shcha,14u#,x_height#,desc_depth#);
+if .5w <> good.x .5w: change_width; fi
+x1=w-s-5/4stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=y10=0; y5=y11=8/34h;
+x11=s+1/2stem; x10=x11+stem;
+z12=z11+whatever*dir 76; y12=h-bar;
+y13=h; z13=whatever[z11,z12];
+x6=x5+stem; x1-x7=x7-x13; y7l=h; z5=z7+whatever*dir -104;
+serif(12,stem,-104,jut,0);
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=y9l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360); penpos7(stem,180);
+z9l=whatever[z5r,z7r];
+penstroke z7e--z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+penpos11(stem,180); penpos10(1.1bar,270);
+penpos9(bar,360);
+fill z11r--z11l--reverse serif_edge12--cycle;
+fill z12e{dir 76}..z12d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penstroke z11e{dir -104}..z10e{right}..{dir 76}z9e;
+y14l=0; x14l=x3+bar; x15=x2+1/4stem; y15=-1/2d;
+y16=-d; x16=x15-5/4stem;
+penpos16(bar,90); penpos15(stem,180); penpos14(bar,120);
+penstroke z14e..tension1.3..{down}z15e{down}..tension.8..{left}z16e;
+fill z16l..tension1.3..z16r..tension1.3..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_soft_sign,8u#,x_height#,0);
+y2=10/34h; x2=s+1/2stem; x3=x2+3/2stem; z5=z3+whatever*dir 76; y5=bar_height+bar; y4=.5y5; x4=w-s-1/2curve; y3=0;
+y6l=y2+bar; z6l=z2l+whatever*dir 76;
+penpos2(stem,180); penpos3(bar,270);
+penpos4(curve,360); penpos5(bar,90);
+penpos6(1.5bar,180);
+penstroke z2e{dir -104}..z3e{right}..{dir 76}z4e{dir 76}..tension.9..{left}z5e{left}..{dir -104}z6e;
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+sss_italic_width :=x4-x2; save sss_italic_width;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_yeru,12u#+s#,x_height#,0);
+y2=10/34h; x2=s+1/2stem; x3=x2+3/2stem; z5=z3+whatever*dir 76; y5=bar_height+bar; y4=.5y5; x4=x2+sss_italic_width; y3=-2epsilon;
+y6l=y2+bar; z6l=z2l+whatever*dir 76;
+penpos2(stem,180); penpos3(bar,270);
+penpos4(curve,360); penpos5(bar,90);
+penpos6(1.5bar,180);
+penstroke z2e{dir -104}..z3e{right}..{dir 76}z4e{dir 76}..tension.9..{left}z5e{left}..{dir -104}z6e;
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+x7=w-s-5/4stem; y7=h-bar; y8=10/33h; z8=z7+whatever*dir -104;
+x9=x8+3/4stem; x10=w-s-1/2bar; y10=10/33h; y9=2epsilon;
+penpos8(stem,180);
+penpos9(1.1bar,270); penpos10(bar,335);
+penstroke z8e{dir -104}..{right}z9e{dir 20}..{dir 65}z10e;
+fill z10l..tension1.3..z10r..tension1.3..cycle;
+serif(7,stem,-104,jut,0);
+fill z8r--z8l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_hard_sign,11u#-c#,x_height#,0);
+y2=10/34h; x2=x4-sss_italic_width; x3=x2+3/2stem; z5=z3+whatever*dir 76; y5=bar_height+bar; y4=.5y5; x4=w-s-1/2curve; y3=0;
+y6l=y2+bar; z6l=z2l+whatever*dir 76;
+z1r=z2l+whatever*dir 76; y1=h;
+penpos2(stem,180); penpos3(bar,270);
+penpos4(curve,360); penpos5(bar,90);
+penpos6(1.5bar,180); penpos1(bar,180);
+penstroke z1e..z2e{dir -104}..z3e{right}..{dir 76}z4e{dir 76}..tension.9..{left}z5e{left}..{dir -104}z6e;
+x10=s+1/3bar; y10=y5r+1/2bar; y11=h; z11=z10+whatever*dir 70;
+penpos10(bar,0); penpos11(bar,0);
+fill z10l..tension1.3..z10r..tension1.3..cycle;
+fill z11l..tension1.3..z11r..tension1.3..cycle;
+fill z1l..tension1.3..z1r..tension1.3..cycle;
+penstroke z10e--z11e;
+x7=x1r; y7=h-1/2bar; y8=h-5/8stem; x8=x11r+1/2stem;
+x9r=x11r-.1c; y9r=h; penpos9(curve,70);
+penpos7(bar,90); penpos8(.8curve,80);
+penstroke z7e{dir 200}..{left}z8e..{dir 160}z9e;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_e,7.5u#,x_height#,0);
+x10=2.5s+1/2vair; y10=26/33h; x11=.5w+1/2(h*sind 14/cosd 14); y11=h;
+x12=w-s-1/2curve; y12=.46h;
+x13=.5w-1/2(h*sind 14/cosd 14); y13=0; z14=z13;
+penpos10(bar,135); penpos11(bar,90);
+penpos12(curve,0); penpos13(bar,-90);
+penstroke z10e..z11e{right}..{dir -104}z12e{dir -104}..{left}z13e;
+fill z10l..tension1.5..z10r..tension1.5..cycle; z14=z13;
+dl_drop(14,drop_round,x13-s,1.2drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+x1=x14c; x2=x12; y1=y2=bar_height;
+penpos1(bar,90); penpos2(bar,90);
+penstroke z1e--z2e; fill z1r..z1l..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_yu,12u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=x2+.5(x4-x2)-1/2(h*sind 14/cosd 14); x3=x2+.5(x4-x2)+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=.46h; x2=x4-italic_o_width; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+x5=s; y5=y6=0; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5--z6--reverse serif_edge7--cycle;
+y8=y9=bar_height; z8=whatever[z6,z7]; x9=x2;
+penpos8(bar,90); penpos9(bar,90);
+penstroke z8e--z9e; fill z7e{dir 76}..z7d{left}..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ya,10u#+c#,x_height#,0);
+x1=w-s-stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=2epsilon;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x5=x1r+1/6stem; y5=h-1/2bar; x6=x5-4.5/3stem; y6=h-1/2vair;
+x7=12/40w; y8=y9=bar_height; z9=z5+whatever*dir -104;
+x8=x9-7/6stem; y5-y7l=y7l-y9;
+penpos5(bar,90); penpos6(vair,90);
+penpos7(curve,166); penpos8(bar,270);
+penpos9(bar,270); x11=s+stem; y11=-2epsilon;
+8(x8-x10)=9(x10-x11); y8-y10=y10-y11; z12=z11;
+penpos10(.7curve,360); penpos11(bar,270);
+penstroke z5e--z6e{left}..z7e{dir -104}..{right}z8e--z9e;
+penstroke z9e{left}..tension.8..{dir -104}z10e{dir -104}..{left}z11e;
+dl_drop(12,drop_round,stem,drop_round,bar);
+fill dl_drop_edge12; fill z12e..z12c..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+currenttransform := identity slanted sind 18;
+beginchar("A",13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar("B",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.26u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("C",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.25u#;
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+%currentpicture := currentpicture shifted(-1.7u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("D",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-2.25u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(o,30);
+penpos6(cap_curve,0);
+penpos7(o,-30);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+x3=x9=x1d;
+x8=x4=.5w; y8=y9=1/2cap_bar; y4=y3=h-1/2cap_bar;
+y6=.5h; x6=w-1/2cap_curve-s;
+y7=0.1h-c+1/2cap_bar; y5=0.9h+c-1/2cap_bar; x5=x7=x4+5/8(x6-x4);
+penstroke z3e--z4e{right}..z5e..z6e..z7e..{left}z8e--z9e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("E",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.25u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("F",10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("G",10u#+cap_jut#+c#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.85u#;
+x1=x5=23/42(w-cap_jut-c); y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s-cap_jut-c; y8=y1; x8=x1-.1(w-cap_jut-c);
+S_serif(6,slab,w-s-2c-x1-cap_jut,1.5border_height);
+S_serif(7,slab,w-s-x1-cap_jut+c,7/4border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+x9r=x7e; y9r=7/4border_height-1/2cap_bar;
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+x10=x9l; x11=x9r; y10=y11=3/4cap_bar;
+fill reverse serif_edge9--z10--z11--cycle;
+%currentpicture := currentpicture shifted(-1.4u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("H",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("I",2cap_jut#+cap_stem#+2s#,cap_height#,0);
+italcorr cap_height#*sind 18-.82u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+endchar;
+
+beginchar("J",7u#,cap_height#,0);
+italcorr cap_height#*sind 18-1.35u#;
+x1=x4=w-cap_jut-1/2cap_stem-s;
+y1c=h; y2=y3=y4=18/53h; x2=x1r; x3=x1l;
+y5=0; x5=s+cap_drop_round;
+serif(1,cap_stem,-90,1.2cap_jut,.6cap_jut);
+fill z3--z2--reverse serif_edge1--cycle;
+x7r=x4r; y7=3cap_bar;
+penpos4(cap_stem,0);
+penpos5(cap_bar,-90);
+penpos7(2/3cap_stem,0);
+penstroke z4e{down}..{down}z7e..{left}z5e;
+x6e=s; y6=0;
+dl_drop(6,cap_drop_round,x5-s,1.3drop_round,cap_bar);
+fill dl_drop_edge6;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("K",13u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-1.95u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=cap_bar_height; x3l=w-cap_jut-.5cap_jut-cap_bar-s; y3l=h-cap_bar;
+x5=x6=x1r-.1c; y5=cap_bar_height-cap_bar; y6=y5-1.2cap_bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+A_serif(3,.9cap_bar,theta1,1.5cap_jut,.6cap_jut);
+x4l=w-s-1.2cap_jut-cap_stem; y4l=cap_bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,cap_stem,theta2,.8cap_jut,cap_jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("L",10u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=y5=y2h; x3=x2d; x5e=w-s;
+T_serif(5,cap_bar,border_height,1); x4=x5;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penstroke z3e--z4e;
+fill T_edge5 reflectedabout(z3,z4);
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar("M",13u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,.51cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,-18); penpos6(bar,-18);
+z6=z5+whatever*dir -109; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 109; y7l=11/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("N",12u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_bar+s;
+x3=w-x1; y1c=y3c=h; y2c=y4=y5=0;
+x4=x3r; x5=x3l;
+serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+A_serif(2,cap_bar,90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill A_serif_edge2--reverse serif_edge1--cycle;
+numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+theta1=angle(z5-z7);
+z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+fill z6--z1h--z7--z5{down}..{up}z4--reverse A_serif_edge3--cycle;
+unfill z1b--z1l--z1a--cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("O",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.2u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+%currentpicture := currentpicture shifted(-1.8u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("P",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.57u#;
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Q",11u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-2.2u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x12-1.5c; x12=x7l-c; y11=y12=-comma_depth;
+y9=0; x9=x1-c; y9-y10=y10-y11; x11-x10=x10-x9;
+penpos9(cap_bar,90); penpos10(cap_curve,0);
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z9e{dir -20}..tension.8..z10e..tension.8..{right}z11e--z12e;
+fill z12r..z12l..cycle;
+%currentpicture := currentpicture shifted(-1.8u,0);
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("R",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2r;
+y1c=h; y2c=0; x6=x4=x7+2.5u; x3=x1d;
+y4-y5=y5-y6; x5=x8; x9=w-s-1/2cap_bar; y9=0; y6-y8=y8-y9; x10=x6; x9-x8=6/7(x8-x10);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,-90);
+penpos6(cap_bar,-90);
+penpos8(cap_curve,-180);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penstroke z9e{left}..tension.8..{up}z8e{up}..tension.8..{left}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("S",9u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.81u#;
+x6=x7=1/2w; y6=y7=0;
+S_serif(7,cap_bar,x6-s,1.5border_height);
+y5=13/53h; x5=w-s-1/2(1.9hair);
+y4=28/53h; x4=18/38w; y3=40/53h; x3=s+c+1/2(1.9cap_bar);
+x2=.5w-c; y2=h; z1=z2;
+penpos6(cap_bar,-90);
+penpos5(1.9hair,0);
+penpos4(1.1cap_curve,90);
+penpos3(1.9hair,0);
+penpos2(cap_bar,-90);
+penstroke z6e{right}..{up}z5e{up}..tension.8..z4e..tension.8..{up}z3e..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-cap_bar,1.2border_height);
+fill S_serif_edge1;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("T",round (11u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=.5w; y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+%currentpicture := currentpicture shifted(-3.2u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("U",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=cap_jut+1/2cap_stem+s;
+x3=w-s-cap_jut-1/2cap_bar;
+y1c=y3c=h; y2=y4=y5=y6=y24=y56=16/53h; x2=x1l;
+x4=x1r; x5=x3l; x6=x3r;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill z2--z4--reverse serif_edge1--cycle;
+fill z5--z6--reverse A_serif_edge3--cycle;
+x7=x1+.5(x3-x1); y7=0; x4-x24=x24-x2; x6-x56=x56-x5;
+penpos24(cap_stem,-180); penpos7(vair,-90);
+penpos56(cap_bar,0);
+penstroke z24e{down}..tension.9..{right}z7e{right}..tension.9..{up}z56e;
+%currentpicture := currentpicture shifted(-2.5u,0);
+penlabels(range 1 thru 7,24,56);
+endchar;
+
+beginchar("V",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1l=cap_jut+s; x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w-1/2cap_bar; x5=.5w+1/2cap_bar;
+y4=y5=1/2cap_bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+%currentpicture := currentpicture shifted(-3.5u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("W",17u#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x9l=.5w-.3cap_stem; x7r=w-s-cap_jut;
+y9l=y7r=y1l=h-cap_bar; x5=x9l+.5(x7r-x9l)-1/2cap_bar; x6=x9l+.5(x7r-x9l)+1/2cap_bar;
+y5=y6=y2=y3=1/2cap_bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(7,cap_bar,theta2,1.3cap_jut,cap_jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+cap_jut;
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+z2=z1l+whatever*dir theta1; x3=x2+cap_bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+%currentpicture := currentpicture shifted(-3.5u,0);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("X",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.27u#;
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("Y",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1l=cap_jut+s; x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w;
+y4=8/25h;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+y5c=0; x5=.5w+.5c;
+serif(5,cap_stem,90,cap_jut,cap_jut);
+x6=x5l; x7=x5r;
+z6=z1l+whatever*dir theta1;
+z7=z3r+whatever*dir theta2;
+fill z6--serif_edge5--z7--reverse A_serif_edge3--z2--reverse serif_edge1--z6&cycle;
+%currentpicture := currentpicture shifted(-3.4u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Z",9u#+1.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x6=s+1/2cap_bar; y6=y7=y8=1/2cap_bar;
+x8e=w-s; x7=x8;
+T_serif(8,cap_bar,border_height,1);
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-.85s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4cap_bar;
+x4r=w-s-1/4cap_bar; y4=h-cap_bar;
+penpos4(cap_stem/(cosd 18),0);
+penpos5(cap_stem/(cosd 18),0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2cap_bar;
+x3=w-s-1/2cap_bar; x1e=s+c;
+T_serif(1,cap_bar,border_height,0);
+x2=x1;
+penpos3(cap_bar,90);
+penpos2(cap_bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e-.2c; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+currenttransform := identity;
+
+beginchar("a",9u#+c#,x_height#,0);
+x1=w-s-3/4stem; y1=h; y2=7/33h; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=w-s-bar/3; y4=8/33h;
+penpos1(stem,180);
+penpos2(stem,180);
+penpos3(1.2vair,270);
+penpos4(bar,360);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 60}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x5=x1-3/2stem; y5=h; z7=z5+whatever*dir -104; y7=-3epsilon;
+x6=s+1/2curve+c; y6=.54h; y8=.46h; z8l=whatever[z1r,z2r];
+penpos8(2bar,0);
+penpos5(vair,90);
+penpos6(curve,180);
+penpos7(vair,270);
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=h-c; z10=(x1r+c,h); z11=(x1l-c,h);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar("b",8u#+s#,asc_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(x_height*sind 14/cosd 14); x3=.5w+1/2(x_height*sind 14/cosd 14);
+y1=0; y3=x_height; y2=.54x_height; y4=.46x_height; x2=1/2curve+s; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+y5=h-bar; z5=z2+whatever*dir 76;
+serif(5,stem,-104,jut,0);
+fill z2l--z2r--reverse serif_edge5--cycle;
+fill z5e{dir 76}..z5d{left}..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("c",8u#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+x1=4u-1/2(h*sind 14/cosd 14); x3=4u+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; x2=1/2curve+s; x6=8u-1.5s-1/2vair; y6=9/33h;
+penpos6(vair,135); z4=z3;
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e;
+fill z6l..tension1.5..z6r..tension1.5..cycle;
+ur_drop(4,drop_round,w-s-x4,5/4drop_round,bar);
+fill ur_drop_edge4;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("d",10u#,asc_height#,0);
+x1=w-s-1/2stem; y1=h-bar; y2=11/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem; x4=w-s-1/2bar; y4=10/33x_height; y3=2epsilon;
+serif(1,stem,-104,1.5jut,0);
+penpos2(stem,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+y6=-2epsilon; y8=x_height; x7=1/2curve+s; y7=.54x_height;
+x8=x7+.5(x5-x7)+3/8(x_height*sind 14/cosd 14);
+x6=x7+.5(x5-x7)-5/8(x_height*sind 14/cosd 14);
+y5r=.46x_height; z5r=whatever[z1l,z2r];
+penpos6(vair,90); penpos7(curve,0);
+penpos8(vair,-90); penpos5(.7curve,180);
+penstroke z6e{left}..tension.9..{dir 76}z7e{dir 76}..{right}z8e..tension.9..{dir 256}z5e{dir 256}..{left}z6e..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("e",8u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=4/5h; x2=1/2curve+s; x4=w-1/2curve-s; z5r=z2; x6=w-s-s-1/2vair; y6=9/33h;
+penpos5(vair,-270);
+penpos6(vair,135);
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{dir 194}z5e;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("f",7u#+c#,asc_height#,desc_depth#);
+x1d=w-s; y1d=x_height; y2=7/33x_height;
+serif(1,stem,-104,1.2jut,jut);
+z2=z1+whatever*dir -104; penpos2(stem,180);
+y3l=-2/3d-c; z3l=whatever[z1f,z2l]; penpos3(1.1bar,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penstroke z2e{dir -104}..{dir -104}z3e;
+z4=z3; dl_drop(4,drop_round,1/3d,drop_round,1.1bar);
+y5=h-stem; z5=z1l+whatever*dir 80;
+penpos5(bar,0); z6=z5;
+ur_drop(6,drop_round,stem,drop_round,bar);
+fill ur_drop_edge6 rotatedaround(z5,85);
+fill dl_drop_edge4 rotatedaround(z3,76);
+fill z3l..tension1.3..z3r..tension1.3..cycle;
+fill z5l..tension1.3..z5r..tension1.3..cycle;
+fill z1l..z5l--z5r..z1r--cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("g",9u#+c#,x_height#,desc_depth#);
+currenttransform := identity slanted sind 14;
+penpos1(vair,90); penpos2(o,30);
+penpos3(curve,0); penpos4(o,-30);
+penpos5(vair,-90); penpos6(o,-150);
+penpos7(curve,-180); penpos8(o,-210);
+y3=y7=2/3h; x3=1/2curve+s+c; x7=w-3/2stem-s;
+x1=x5=x3+1/2(x7-x3); y1=3/11h; y5=h;
+y2=y8=y1+0.1(8/11h); y4=y6=y1+0.9(8/11h); x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x9=x7; y9=y7+1/2(y6-y7); y10=h; x10=x7l+c;
+x11e=w-s; y11=y10;
+ur_drop(11,.8stem,x11e-x10,drop_round,bar);
+penpos9(hair,180); penpos10(vair,90);
+penstroke z9e{up}..{right}z10e;
+fill ur_drop_edge11;
+y12=y1; x12=x1; y13=y12/2; x13=s+1/4stem+.5c;
+y14=y15=0; x14=x2r; x15=x8r; y16=y18=-d/2; x16=w-s-1/2stem;
+x18=s+.7hair; y17=-d+1/2bar; x17=s+.6bar+9/20(x16-x18); x19=x14; y19l=y14r;
+penpos12(vair,90); penpos13(1/2curve,180); penpos14(curve,270);
+z144=z14; penpos144(curve,90); penpos15(curve,90);penpos16(1/2curve,0);
+penpos17(vair,-90); penpos18(1.4hair,-180); penpos19(1.4vair,-270);
+penstroke z12e{left}..{down}z13e{down}..{right}z14e;
+penstroke z144e--z15e{right}..tension1..{down}z16e{down}..{left}z17e{left}..{up}z18e{up}..{right}z19e;
+currenttransform := identity;
+penlabels(range 1 thru 19);
+endchar;
+
+beginchar("h",10u#+s#,asc_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-10.5/8stem; y1=26/33x_height; y2=10/33x_height; z2=z1+whatever*dir -108;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33x_height; y3=y5=y6=0;
+x8=x2; y8=x_height; y9=bar_height-bar; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.2bar,270); penpos9(bar,0);
+penstroke z9e{dir 68}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("i",5u#,asc_height#,0);
+x1=w-s-stem; y1=x_height-bar; y2=11/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem; x4=w-s-1/2bar; y4=10/33x_height; y3=0;
+serif(1,stem,-104,jut,0);
+penpos2(stem,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+x5=x1d-c; y5=h-3/2stem; penpos5(curve,0);
+fill z5l..z5r..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("j",7u#,asc_height#,desc_depth#);
+x5=w-s-1/2stem; x1d=x5+c; y5=h-3/2stem; penpos5(curve,0);
+y1d=x_height; y2=7/33x_height; serif(1,stem,-104,jut,0);
+z2=z1+whatever*dir -104; penpos2(stem,180);
+y3l=-2/3d-c; z3l=whatever[z1f,z2l]; penpos3(1.1bar,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penstroke z2e{dir -104}..{dir -104}z3e;
+fill z1e{dir 76}..z1d{left}..cycle;
+fill z5l..z5r..cycle; z4=z3;
+dl_drop(4,drop_round,1/3d,drop_round,1.1bar);
+fill dl_drop_edge4 rotatedaround(z3,76);
+fill z3l..tension1.3..z3r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("k",10u#,asc_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,1.2jut,0);
+x1=w-s-2stem; y1=bar_height-2.5bar; y2=6/33x_height; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-bar; y4=9/33x_height; y3=y5=y6=0;
+x8=x2-stem; y8=y9=bar_height; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.1bar,270); penpos9(1.1bar,270);
+penstroke z9e{right}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+y11=x_height; x11e=w-s;
+ur_drop(11,drop_round,7/8drop_round,drop_round,1bar);
+z12=z11; x12-x10=x10-x8; y12-y10=y10-y8;
+penpos10(bar,-18); penpos12(bar,270);
+penstroke z8e{right}..{dir 72}z10e{dir 72}..{right}z12e;
+fill ur_drop_edge11;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("l",5u#,asc_height#,0);
+x1=w-s-1/2stem; y1=h-bar; y2=11/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem; x4=w-s-1/2bar; y4=10/33x_height; y3=0;
+serif(1,stem,-104,jut,0);
+penpos2(stem,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("m",14u#+c#,x_height#,0);
+x11=s+1/2stem; z12=z11+whatever*dir 76; y12=h-bar;
+y11=0; serif(12,stem,-104,jut,0); penpos11(stem,0);
+x1=w-s-9/8stem; y1=26/33h; y2=10/33h; z2=z1+whatever*dir -108;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=0;
+x5=x2; y5=y9=h; y6r=y10l=bar_height-bar; z6r=z7r+whatever*dir 76;
+y13=0; z13=z1+whatever*dir -104; x13-x7=x7-x11; y7=0;
+y8=y1; z8=z7+whatever*dir 76; x1-x5=x8-x9; z10l=whatever[z11r,z12f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos5(1.2bar,270); penpos6(bar,0);
+penpos7(stem,0); penpos8(stem,0);
+penpos9(1.2bar,90); penpos10(bar,180);
+penstroke z6e{dir 68}..{right}z5e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z11l--z11r--reverse serif_edge12--cycle;
+fill z12e{dir 76}..z12d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penstroke z10e{dir 68}..{right}z9e..z8e{dir -104}..z7e;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar("n",10u#+s#,x_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-10.5/8stem; y1=26/33h; y2=10/33h; z2=z1+whatever*dir -108;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y5=y6=0;
+x8=x2; y8=h; y9=bar_height-bar; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.2bar,270); penpos9(bar,0);
+penstroke z9e{dir 68}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("o",8u#+s#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=.46h; x2=1/2curve+s; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("p",9u#+c#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=x2+.5(x4-x2)-1/4(h*sind 14/cosd 14); x3=x2+.5(x4-x2)+3/4(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=.46h; x2=x4-italic_o_width+c; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+y5=h-bar; z5=z2+whatever*dir 76;
+serif(5,stem,-104,jut,0); fill z5e{dir 76}..z5d{left}..cycle;
+y6=-d+bar; z6=whatever[z2,z5];
+serif(6,stem,76,.3jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("q",9u#,x_height#,desc_depth#);
+x1=w-s-1/2stem; y1=h-1/2bar; y2=-d+bar; z2=z1+whatever*dir -104;
+serif(2,stem,76,1.3jut,1.3jut);
+penpos1(stem,180);
+fill z1l--z1r--serif_edge2--cycle;
+y6=0; y8=h; x7=1/2curve+s; y7=.54h;
+x8=x7+.5(x5-x7)+3/8(x_height*sind 14/cosd 14);
+x6=x7+.5(x5-x7)-5/8(x_height*sind 14/cosd 14);
+y5r=.46x_height; z5r=whatever[z1r,z2l];
+penpos6(vair,90); penpos7(curve,0);
+penpos8(vair,-90); penpos5(.7curve,180);
+penstroke z6e{left}..tension.9..{dir 76}z7e{dir 76}..{right}z8e..tension.9..{dir 256}z5e{dir 256}..{left}z6e..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("r",9u#-c#,x_height#,0);
+y2=0; x2=s+1/2stem; penpos2(stem,180);
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+y3l=15/33h; z3l=whatever[z2l,z1f];
+y4=h; x4=w-s-3/4stem; z5=z4;
+penpos3(1.2bar,180); penpos4(1.1bar,90);
+penstroke z3e{dir 76}..{right}z4e;
+ur_drop(5,drop_round,3/4stem,drop_round,1.1bar);
+fill ur_drop_edge5;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("s",8u#-s#,x_height#,0);
+z4=(.5w,.55h); y2=h; y6=0; y5=9/34h;
+z2=z4+whatever*dir 78; z6=z4+whatever*dir -100;
+x5=w-s-.7stem; x3=s+.9stem; y3=27/34h;
+z34=z4+whatever*dir 150; z45=z4+whatever*dir -40;
+x34=x4-stem*sind 40; x45=x4+stem*sind 40;
+penpos2(bar,90); penpos3(.6stem,180);
+penpos34(stem,240); penpos5(.6stem,180);
+penpos6(bar,90); penpos45(stem,240);
+penstroke z2e{left}..z3e{down}..{dir -40}z34e{dir -40}..{dir -40}z45e{dir -40}..{down}z5e{down}..{left}z6e;
+z1=z2; z7=z6;
+ur_drop(1,.9drop_round,w-s-x2,drop_round,bar);
+fill ur_drop_edge1;
+dl_drop(7,drop_round,x6-s,1.2drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 12,34,45);
+endchar;
+
+beginchar("t",5u#+s#,asc_height#,0);
+x1=w-s-1/2stem-1.2jut; y1=x_height-bar; y2=9/33x_height;
+z2=z1+whatever*dir -104; z5=whatever[z2,z1]; y5=h-stem;
+x3=x2+1/2stem; x4=w-s-bar; y4=10/33x_height; y3=0;
+serif(1,stem,-104,1.2jut,1.2jut);
+penpos2(stem,180); penpos5(.95stem,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1l--z5l--z5r--z1r--cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("u",10u#,x_height#,0);
+x1=w-s-4.8/4stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=0; y5=8/34h;
+x5=s+1/2stem; x6=x5+stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+z7l=z5r+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("v",9u#-c#,x_height#,0);
+y2=10/33h; x2=s+1/2stem;
+x3=x2+stem; x4=w-s-1/2bar; y4=26/33h; y3=0;
+penpos2(stem,180);
+penpos3(1.1bar,270); penpos4(bar,0);
+penstroke z2e{dir -104}..{right}z3e{dir 5}..tension1.3..{dir 80}z4e;
+z7=z2+whatever*dir 76; y7=h-bar;
+serif(7,stem,-104,jut,0); z9=z4;
+fill z2r--z2l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+ul_drop(9,1.1drop_round,7/33h,.9drop_round,bar);
+fill ul_drop_edge9 rotatedaround(z4,-90);
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("w",12u#+s#,x_height#,0);
+z77=(.5w,.5h); z1=z77+whatever*dir 76; y1=h; y2=10/33h;
+z2=z1+whatever*dir -104;
+x3=x2+stem; x4=w-s-1/2bar; y4=26/33h; y3=y6=0; y5=8/34h;
+x5=s+1/2stem; x6=x5+stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,0);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 5}..tension1.3..{dir 80}z4e;
+z7l=z5r+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0); z9=z4;
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+ul_drop(9,1.1drop_round,7/33h,.9drop_round,bar);
+fill ul_drop_edge9 rotatedaround(z4,-90);
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("x",10u#+c#,x_height#,0);
+penpos1(1.2vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+x1=x3-(h*sind 14/cosd 14); x3=w-s-3/4stem; y1=0; y3=h;
+y2=.54h; x2=x1-if design_size=17.32: stem else: 33/40stem fi;
+x5=w-s-4/5stem; y5=7/33h;
+penpos5(vair,135); z4=z3;
+penstroke z5e..z1e{left}..{dir 76}z2e{dir 76}..{right}z3e;
+fill z5l..tension1.5..z5r..tension1.5..cycle;
+ur_drop(4,drop_round,3/4stem,drop_round,bar);
+fill ur_drop_edge4;
+x10=w-x5; y10=26/33h; x11=w-x1; y11=h; x12=w-x2; y12=.46h;
+x13=w-x3; y13=-2epsilon; z14=z13;
+penpos10(bar,135); penpos11(bar,90);
+penpos12(curve,0); penpos13(bar,-90);
+penstroke z10e..z11e{right}..{dir -104}z12e{dir -104}..{left}z13e;
+fill z10l..tension1.5..z10r..tension1.5..cycle; z14=z13;
+dl_drop(14,drop_round,3/4stem,drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar("y",10u#-c#,x_height#,desc_depth#);
+x5=w-s-1/2stem; y5=h; y6=10/33h; z6=z5+whatever*dir -104;
+y3=0; y2=8/34h; x2=s+stem; x3=x2+stem;
+y7=0; z7=z6+whatever*dir -104;
+penpos5(stem,180); penpos6(stem,180);
+z8r=z7r+whatever*dir -104; y8r=-1/2d;
+z4l=whatever[z6r,z5r]; y4l=15/33h;
+penpos2(stem,180); penpos3(1.1bar,270);
+y9=-d; x9=x2l; z10=z9;
+penpos4(bar,360); penpos7(stem,180);
+penpos8(.8stem,180); penpos9(bar,90);
+penstroke z2e{dir -104}..z3e{right}..{dir 76}z4e;
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+penstroke z5e{dir -104}..z6e..z7e..z8e..{left}z9e;
+dl_drop(10,1.1stem,x9-s,1.2drop_round,bar);
+fill dl_drop_edge10; fill z10e..z10c..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("z",8u#,x_height#,0);
+y2=y3=h-1/2(.8stem); y1=y2l+1/2bar;
+x3=w-s-3/4stem; x1e=s+1/2stem; x2=x1;
+T_serif(1,bar,.8border_height,0);
+penpos3(.8stem,90); penpos2(.8stem,90);
+penstroke z2e--z3e; fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+2c;
+fill z1r--z1f--z12--z2r--cycle;
+unfill z1d{up}..z13--z12--cycle;
+x4=w-s-bar*sind 45; y4=h-bar*sind 28;
+x5=w-x4; y5=h-y4; z34=(x4,h);
+penpos4(bar,152); penpos5(bar,152);
+penstroke z4e--z5e; fill z4l..tension1.2..z4r..tension1.2..cycle;
+fill z5l..tension1.2..z5r..tension1.2..cycle;
+fill z3l--z3r--z34--cycle;
+x7=.5w; y7=.4stem; penpos7(.9stem,90);
+x8l=x7+.9stem; y8l=0; penpos8(.6stem,90);
+x9=w-s-.9stem; y9=bar; penpos9(bar,90); z10=z9;
+penstroke z5e{dir 62}..{right}z7e..z8e..z9e;
+dl_drop(10,drop_round,1.2stem,drop_round,bar);
+fill dl_drop_edge10 reflectedabout(z9l,z9r) rotatedaround(z9,28);
+fill z9r..z9l..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(hex"30",10u#,cap_height#,0);
+penpos1(vair,90);
+penpos2(cap_curve,0);
+penpos3(vair,-90);
+penpos4(cap_curve,-180);
+x1=.5w-1/2(h*sind 10/cosd 10); x3=.5w+1/2(h*sind 10/cosd 10); y1=0; y3=h;
+y2=.47h; y4=.53h; x2=1/2cap_curve+s; x4=w-1/2cap_curve-s;
+penstroke z1e{left}..tension.9..{dir 80}z2e{dir 80}..tension1.2..{right}z3e..tension.9..{dir 260}z4e{dir 260}..tension1.2..{left}z1e..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"31",10u#-3/2s#,cap_height#,0);
+y1c=0; x1g=s; y2=y3=h; x3=x2-1/2cap_stem;
+serif(1,cap_stem,72,1.5cap_jut,1.5cap_jut);
+z2=z1f+whatever*dir 72;
+y6=y7=h-cap_stem; y5=y4=y6+cap_bar; y8=y6+.3c;
+z8=z1a+whatever*dir 72;
+x7=x3-1.4stem; x6=x5=x7-.8cap_stem; x4=x7-cap_bar;
+fill serif_edge1--z2{dir 150}..{dir 210}z3{dir 230}..{left}z4--z5{left}..z6--z7..z8--cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"32",10u#,cap_height#,0);
+y2=43/53h; x3=24/37w; y3=h; x2=10/37h;
+z1=z3; x4=w-s-1/2cap_curve; y4=41/53h;
+x5=s+1/2hair; y5=6/53h; x6=x5+2cap_bar; y6=y5+1/2cap_bar;
+y7=1/2curve-1/4cap_bar; x7=.47w; x8=w-s-2.5cap_bar;
+y8=15/53h; penpos6(.4cap_stem,90);
+penpos7(cap_curve,90); penpos8(bar,150);
+penpos2(bar,0); penpos3(vair,-90);
+penpos4(cap_curve,180); penpos5(bar,180);
+penstroke z3e{right}..{dir -104}z4e{dir -100}.. {dir -104}z5e; %z2e{dir 76}..{right}
+penstroke z5e..z6e{dir 10}..z7e{dir -10}..{dir 60}z8e;
+fill z8r..tension1.3..z8l..tension1.3..cycle;
+ul_drop(1,cap_drop_round,x3-x2+bar,1.8cap_curve,cap_bar);
+fill ul_drop_edge1;% rotatedaround(z2,90);
+x9=s-.1c; y9=1/2cap_bar; y10=-1/2cap_bar; x10=x9+cap_bar;
+x11=x10+cap_bar; y11=1/3cap_bar; x12=x11-2/3cap_bar; y12=3/2cap_bar;
+fill z5r..z9..z10..z11{up}..z12..{dir 10}z6l{dir 130}..{dir 190}z5r..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"33",10u#-c#,cap_height#,0);
+penpos2(vair,90); penpos5(cap_bar,-90);
+penpos4(vair,-90); penpos3(cap_curve,-180);
+x2=.5w-1/2(h*sind 14/cosd 14); y2=0; y4=cap_bar_height+c;
+z4=z2+whatever*dir 76; y5=y4-1/3cap_bar-.5c;
+y3=12/53h; x5=cap_curve+s+bar; x3=w-1.2cap_curve-s; z1=z2;
+y6=y5r; x6=x5; x7=w-s-1/2cap_curve; y7=41/53h; z8=z4+whatever*dir 82;
+y8=h; z9=z8; penpos67(cap_bar,110); penpos8(cap_bar,-90);
+penpos6(cap_bar,90); penpos7(.9cap_curve,180); z67=z4;
+penstroke z5e...{right}z4e..tension1..{dir 256}z3e{dir 256}..tension1.2..{left}z2e;
+penstroke z8e{right}..tension.9..{dir -100}z7e{dir -100}..tension.9..z67e{dir 210}..z6e;
+fill z5l..tension1.2..z6l..tension1.2..cycle;
+dl_drop(1,cap_stem,x1-s,cap_drop_round,cap_bar);
+fill dl_drop_edge1; fill z1e..z1c..cycle;
+ul_drop(9,.8cap_drop_round,x8-x5+bar,1.4cap_curve,cap_bar);
+fill ul_drop_edge9;
+penlabels(1,2,3,4,5,6,7,8,9,67);
+endchar;
+
+beginchar(hex"34",10u#,cap_height#,0);
+y1c=0; x1g=s+1/2cap_stem; y2=h-stem;
+serif(1,cap_stem,72,1.5cap_jut,1.5cap_jut);
+z2=z1+whatever*dir 72; penpos2(cap_stem,0);
+fill serif_edge1--z2r--z2l--cycle;
+z3r=whatever[z1f,z2r]; y3r=h; penpos3(.7cap_stem,0);
+penstroke z2e--z3e; y6=y7=16/53h; x7=w-2s; x6=s+1/2cap_bar;
+penpos6(1.2cap_bar,90); penpos7(1.2cap_bar,90);
+penstroke z6e--z7e; fill z6l..tension1.4..z6r..tension1.4..cycle;
+fill z7l..tension1.2..z7r..tension1.2..cycle;
+z5l=z6r; z4l=z3l; penpos4(1.2cap_bar,-20); penpos5(1.2cap_bar,-20);
+penstroke z4e--z5e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"35",10u#-c#,cap_height#,0);
+penpos2(vair,90); penpos5(cap_bar,0);
+penpos4(vair,-90); penpos3(cap_curve,-180);
+x2=.5w-1/2(h*sind 14/cosd 14); y2=0; y4=34/54h; z4=z2+whatever*dir 76;
+y5=y4-3cap_bar; y3=15/53h; x5=cap_curve+s; x3=w-1.2cap_curve-s; z1=z2;
+penstroke z5e...{right}z4e..tension1..{dir 256}z3e{dir 256}..tension1.2..{left}z2e;
+z6=z5+whatever*dir 72; y6=h-1/3cap_bar;
+penpos6(cap_bar,0); penstroke z5e--z6e;
+fill z6r..tension1.5..z6l..tension1.5..cycle;
+fill z5r..tension1.3..z5l..tension1.3..cycle;
+y7r=y6r; x7r=x6r-.05c; y8=h-4/6cap_curve;
+x8=x7+5/4cap_curve; x9=w-s-cap_bar*sind 25;
+y9=h-cap_bar*cosd 45; penpos7(cap_curve,72); penpos8(.7cap_curve,90);
+penpos9(1.2cap_bar,120); penstroke z7e{dir -18}..z8e..z9e;
+fill z9r..tension1.3..z9l..tension1.3..cycle;
+dl_drop(1,cap_stem,x1-s,cap_drop_round,cap_bar);
+fill dl_drop_edge1; fill z1e..z1c..cycle;
+penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(hex"36",10u#-s#,cap_height#,0);
+penpos1(vair,90); penpos4(.8cap_curve,0);
+penpos3(vair,-90); penpos2(cap_curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y4=38/53h; y2=.53h; x4=cap_curve+s; x2=w-1/2cap_curve-s;
+x5=.505w; y5=21/53h; penpos5(vair,90); z7=z1;
+y6r=y2+2s; z6r=z2r+whatever*dir 76; penpos6(2cap_bar,-180);
+penstroke z6e{dir 256}..{left}z5e{left}..tension.9..{dir 76}z4e{dir 76}..tension.9..{right}z3e..tension1..{dir 256}z2e{dir 256}..tension1.2..{left}z1e; z8=(.5w,.5h);
+dl_drop(7,cap_stem,x1-s,cap_drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+currentpicture := currentpicture rotatedaround(z8,180);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"37",9u#-c#,cap_height#,0);
+x1=s+1/2cap_bar; y1=36/53h; y2=.975h; z2=z1+whatever*dir 70;
+x3=16.5/34w; y4=44/53h; y3=47/53h; z4=z3+whatever*dir -45;
+x5=24/34w; y5=43/53h; x6=w-s-1/2*(3/2cap_bar); y6=y2;
+x7=8/34w; y7=1/2cap_curve;
+penpos1(cap_bar,180); penpos2(cap_bar,180);
+penpos3(.9cap_curve,45); penpos4(.9cap_curve,45);
+penpos5(2cap_bar,110); penpos6(3/2cap_bar,180);
+z67l=z6l;
+penpos7(cap_curve,180); penpos67(cap_bar,180);
+penstroke z1e--z2e;
+penstroke z1e{dir 70}..{dir -45}z3e--z4e{dir -45}..z5e..{up}z6e;
+penstroke z67e{down}..{dir -94}z7e;
+fill z7r..z7l..cycle; fill z1r..tension1.3..z1l..tension1.3..cycle;
+fill z2r..tension1.3..z2l..tension1.3..cycle;
+fill z6r..tension1.3..z6l..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"38",10u#,cap_height#,0);
+y1=0; x1=15/37w; y5=h; z5=z1+whatever*dir 78;
+y7=28/53h; z7=whatever[z1,z5]; x2=s+1/2(.6cap_stem);
+x4=w-x2; y2=13/53h; y4=43/53h; z3=z7; y6=41/53h; 2(x5-x6)=3(x4-x5);
+5(x1-x2)=4(x8-x1); y8=11/53h; penpos7(cap_stem,48);
+y67l=y7+.4cap_stem; y78=y7-cap_stem;
+z67l=z7l+whatever*dir 132; penpos67(.9cap_stem,30);
+z78=whatever[z67,z7]; penpos78(.9cap_stem,30);
+penpos1(cap_bar,-90); penpos2(.7stem,-180);
+penpos3(cap_bar,-235); penpos4(.6stem,-180);
+penpos5(cap_bar,-90); penpos6(.8stem, 0);
+penpos8(.8stem,0);
+penstroke z1e{left}..{dir 78}z2e{dir 78}..z3e..{dir 78}z4e{dir 78}..{left}z5e{left}..{down}z6e..z67e..z7e..z78e..{dir -102}z8e{dir -102}..{left}z1e;
+penlabels(1,2,3,4,5,6,7,8,67,78);
+endchar;
+
+beginchar(hex"39",10u#-s#,cap_height#,0);
+penpos1(vair,90); penpos4(.8cap_curve,0);
+penpos3(vair,-90); penpos2(cap_curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y4=38/53h; y2=.53h; x4=cap_curve+s; x2=w-1/2cap_curve-s;
+x5=.505w; y5=21/53h; penpos5(vair,90); z7=z1;
+y6r=y2+2s; z6r=z2r+whatever*dir 76; penpos6(2cap_bar,-180);
+penstroke z6e{dir 256}..{left}z5e{left}..tension.9..{dir 76}z4e{dir 76}..tension.9..{right}z3e..tension1..{dir 256}z2e{dir 256}..tension1.2..{left}z1e; z8=(.5w,.5h);
+dl_drop(7,cap_stem,x1-s,cap_drop_round,cap_bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(oct"56",cap_stem#+2s#,cap_stem#,0);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+endchar;
+
+beginchar(oct"54",cap_stem#+2s#+c#,cap_stem#,comma_depth#);
+ currenttransform := identity slanted sind 14;
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"60",cap_stem#+2s#+c#,asc_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(oct"41", cap_stem#+2s#,cap_height#,0); "Exclamation mark";
+ italcorr cap_height#*sind 18-1.63u#;
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+ x3=.5w-1/2cap_bar; x4=.5w+1/2cap_bar; y3=y4=3/2cap_stem;
+ x6=x1; x5=x2; y5=y6=h;
+ fill z6--z3..z4--z5{up}..z6&cycle;
+endchar;
+
+beginchar(hex"22",2cap_stem#+3s#+2c#,cap_height#,0);
+ z1=(s,h-1/2cap_stem); z2=(x1+cap_stem+c,h-1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-cap_stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture shifted((sind 18)*-w*1.3,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"5C",2cap_stem#+3s#+2c#,cap_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(x1+cap_stem+c,1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+currenttransform := identity;
+
+beginchar(hex"7b",10u#-1.5c#,x_height#,0); "En dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"3D",10u#+1.5c#,x_height#,0);
+ z1=(s+1/2bar,bar_height-3c); z2=(w-s-1/2bar,bar_height-3c);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+3c); z4=(w-s-1/2bar,bar_height+3c);
+ penpos3(bar,90); penpos4(bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"23",13u#,asc_height#,body_depth#);
+ z1=(s+1/2bar,bar_height-5c); z2=(w-s-1/2bar,bar_height-5c);
+ penpos1(1.5bar,90); penpos2(1.5bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+5c); z4=(w-s-1/2bar,bar_height+5c);
+ penpos3(1.5bar,90); penpos4(1.5bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ z5=(.5w-5c,bar_height); z6=(.5w+5c,bar_height);
+ z7=z5+whatever*dir 76; y7=h; z8=whatever[z5,z7]; y8=-d;
+ penpos7(1.5bar,0); penpos8(1.5bar,0);
+ fill z7l{up}..{down}z7r--z8r{down}..{up}z8l--z7l&cycle;
+ z9=z6+whatever*dir 76; y9=h; z10=whatever[z6,z9]; y10=-d;
+ penpos9(1.5bar,0); penpos10(1.5bar,0);
+ fill z9l{up}..{down}z9r--z10r{down}..{up}z10l--z9l&cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"7c",14u#,x_height#,0); "Em dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(oct"55",2cap_jut#+cap_stem#+2s#,x_height#,0); "hyphen";
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"5F",1.1stem#+2s#,x_height#+2.1stem#,0);
+ z1=(.5w,h); z2=(.5w,h-1.1stem);
+ fill z1..z2..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7E",7u#,body_height#,0);
+ pickup pencircle xscaled .6pt yscaled .2pt rotated 55;
+ z4=(w-s-c,h-s); x1=s+c; y1=y4-1/2cap_stem;
+ y2-y1=y4-y3=3(y4-y1); z2-z1=z4-z3=whatever * dir 55;
+ draw z1..controls z2 and z3..z4;
+ penlabels(1,2,3,4);
+endchar;
+
+currenttransform := identity slanted sind 14;
+beginchar(hex"3C",7u#-2c#,x_height#,0); "looks like <<";
+ italcorr x_height#*sind 18-1.55u#;
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ %currentpicture := currentpicture shifted(-1.2u,0);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3E",7u#-2c#,x_height#,0);
+ italcorr x_height#*sind 18-1.75u#;
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ z10=(.5w,.5h);
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ currentpicture := currentpicture rotatedaround(z10,180) shifted((sind 18)*w*1.3,0);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3B",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ italcorr x_height#*sind 18-1.35u#;
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+3/2c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ z8=(s,h-1/2cap_stem); z9=(w-s,h-1/2cap_stem);
+ fill z8..z9..cycle;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(hex"3A",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ italcorr x_height#*sind 18-1.35u#;
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ fill z1..z2..cycle;
+ penlabels(1,2,3,4);
+ z3=(s,1/2cap_stem); z4=(w-s,1/2cap_stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2B",2cap_jut#+cap_stem#+2s#,x_height#,0);
+ italcorr x_height#*sind 18-2.1u#;
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ x3=x4=.5w; y3=y2+1/2(x2-x1); y4=y2-1/2(x2-x1);
+ penpos3(1.8bar,0); penpos4(1.8bar,0);
+ penstroke z3e--z4e;
+ fill z3r..z3l..cycle; fill z4r..z4l..cycle;
+ %currentpicture := currentpicture shifted(-u,0);
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2F",2s#+bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.8u#;
+ z1=(.5w,h-.5bar); z2=(.5w,-d+.5bar);
+ %pickup pencircle xscaled bar yscaled bar;
+ penpos1(bar,0); penpos2(bar,0);
+ penstroke z1e--z2e; fill z1r..z1l..cycle;
+ fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"27",cap_stem#+2s#+c#,x_height#+2.1stem#,0);
+ italcorr (x_height#+2.1stem#)*sind 18-3.15u#;
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ z6=(.5w-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ currentpicture := currentpicture shifted((sind 18)*-w*1.3,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"28",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.9u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"29",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-3.65u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180) shifted((sind 18)*w*1.3,0);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"0E",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.9u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"0F",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180) shifted((sind 18)*w*1.3,0);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"5B",2s#+3cap_bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.8u#;
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x2,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z1r..z1l..cycle; fill z6r..z6l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"5D",2s#+3cap_bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.76u#;
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x1,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z2r..z2l..cycle; fill z5r..z5l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"B9",16u#,cap_height#,0);
+ italcorr cap_height#*sind 18-2.84u#;
+ x1=x2=cap_jut+1/2cap_bar+s+cap_stem;
+ x3=w-x1-1/2cap_stem; y1c=h; y4=y5=0;
+ x4=x3r; x5=x3l; y2=12/53h; y3=h-y2;
+ x8=x2-stem; y8=0; z9=z8;
+ dl_drop(9,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill dl_drop_edge9; penpos8(bar,-90);
+ serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+ penpos2(bar,0); penpos3(bar,0);
+ penstroke z2e{down}..{left}z8e;
+ fill z2l--z2r--reverse serif_edge1--cycle;
+ numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+ theta1=angle(z5-z7); x10=x3+stem; y10=h; z11=z10;
+ penpos10(bar,-90); penstroke z3e{up}..{right}z10e;
+ ur_drop(11,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill ur_drop_edge11;
+ z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+ fill z6--z1h--z7--z5{down}..{up}z4--z3r--z3l--cycle;
+ unfill z1b--z1l--z1a--cycle;
+ y12=y13=2cap_bar; x12=x4+2cap_bar+s; x13=w-2s;
+ penpos12(.4stem,90); penpos13(.4stem,90);
+ penstroke z12e--z13e; y16=y11d-4.5cap_bar;
+ x13-x14=x14-x12; x16=x14; y14=y13+4.5cap_bar;
+ x17=w-s-.2stem; x17-x16=x16-x15; y16-y15=y15-y14;
+ y17=y15; penpos17(.7stem,0); penpos16(bar,90);
+ penpos15(.7stem,180); penpos14(bar,270);
+ penstroke z17e{up}..{left}z16e{left}..{down}z15e{down}..{right}z14e{right}..{up}z17e;
+ fill z12l..tension1.2..z12r..tension1.2..cycle;
+ fill z13l..tension1.2..z13r..tension1.2..cycle;
+ penlabels(range 1 thru 17);
+endchar;
+
+beginchar(hex"24",9u#-s#,body_height#,body_height#-cap_height#);
+ italcorr body_height#*sind 18-2.48u#;
+ x6=x7=1/2w-c; y6=y7=0;
+ dl_drop(7,cap_drop_round,x6-s,1.5drop_round,cap_bar);
+ y5=12/53cap_height; x5=w-s-1/2(1.9hair);
+ y4=1/2cap_height; x4=19/38w; y3=41/53cap_height; x3=s+1/2(1.9cap_bar);
+ x2=.5w+c; y2=cap_height; z1=z2;
+ penpos6(cap_bar,-90); penpos5(1.9hair,0);
+ penpos4(1.1cap_curve,90); penpos3(1.9hair,0);
+ penpos2(cap_bar,-90);
+ penstroke z6e{right}..z5e{up}..tension.8..z4e..tension.8..{up}z3e..{right}z2e;
+ fill dl_drop_edge7;
+ ur_drop(1,cap_drop_round,w-s-x2,1.5drop_round,cap_bar);
+ fill ur_drop_edge1;
+ z8=(.5w,h); z9=(.5w,-d);
+ penpos8(cap_bar,0); penpos9(cap_bar,0);
+ penstroke z8e--z9e;
+ fill z9r..z9l..cycle; fill z8r..z8l..cycle;
+ %currentpicture := currentpicture shifted(-.7u,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"25",12u#,asc_height#,0);
+italcorr asc_height#*sind 18-3.05u#;
+penpos1(vair,90); penpos2(.6curve,0);
+penpos3(vair,-90); penpos4(.6curve,-180);
+y1=.55h; y3=h; y3-y4=y4-y1; y2=y4; x2=1/4curve+s; x4=5/2curve+s;
+x4-x1=x1-x2; x3=x1;
+penstroke z1e{left}..tension.9..{up}z2e{up}..tension1.2..{right}z3e..tension.9..{down}z4e{down}..tension1.2..{left}z1e..cycle;
+penpos5(vair,90); penpos6(.6curve,0);
+penpos7(vair,-90); penpos8(.6curve,-180);
+y5=0; y7=.45h; y7-y8=y8-y5; y6=y8; x8=w-1/4curve-s; x6=w-5/2curve-s;
+x8-x5=x5-x6; x7=x5;
+penstroke z5e{left}..tension.9..{up}z6e{up}..tension1.2..{right}z7e..tension.9..{down}z8e{down}..tension1.2..{left}z5e..cycle;
+x9l=x7; y9=h; x10r=x1; y10=0;
+penpos9(1.2bar,0); penpos10(1.2bar,0);
+penstroke z9e--z10e;
+%currentpicture := currentpicture shifted(-1.4u,0);
+penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"26",14u#,cap_height#,0);
+italcorr cap_height#*sind 18-3.15u#;
+x4=x8=x3+.5curve; y6=0; y2=h; x2=x3+1.3cap_curve;
+y7=13/53h; y5=9/53h; x5=x7+3.5cap_curve; x6=x7+1.8cap_curve;
+y4=y8=30/53h; y1=44/53h; y3=42/53h; x3=4s+curve;
+x1=x3+2.1cap_curve; x7=s+1/2cap_curve;
+x10=w-s; y10=9/53h; x10-x9=x9-x5; y9=1/5cap_curve;
+th:=angle(z4-z5)+5; th1:=th-11; x11h=w-s-c; y11h=y1-4s;
+A_serif(11,cap_bar,-110,cap_jut,cap_jut); z12l=z11a;
+penpos6(cap_bar,-90); penpos5(cap_stem,45);
+penpos4(cap_stem,45); penpos3(2.5hair,0);
+penpos2(cap_bar,-90); penpos1(2hair,-180);
+penpos7(cap_curve,-180); penpos8(cap_bar,-250);
+penpos9(.5cap_curve,70); penpos10(cap_bar,150);
+penpos12(cap_bar,0);
+penstroke z10e..z9e..z5e{dir th}..{dir th1}z4e..tension.9..{up}z3e{up}..tension1..z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e{dir 8}..{dir 70}z12e;
+fill z12l--z12r..reverse A_serif_edge11--cycle;
+%currentpicture := currentpicture shifted(-.9u,0);
+penlabels(range 1 thru 12);
+endchar;
+currenttransform := identity;
+
+beginchar(hex"40",14u#,x_height#+2curve#,2curve#);
+a_width:=9u+c-2s;
+x1=2s+a_width-s-3/4stem+1.5curve; y1=x_height; y2=7/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=3s+a_width+1.5curve; y4=15/33x_height;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.2vair,270); penpos4(bar,360);
+x5=x1-1.3stem; y5=x_height; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c+1.3curve; y6=.54x_height; y8=.46x_height; z8l=whatever[z1r,z2r];
+x13=x5; y13=h-1/2bar; x14=s+1/2bar; y14=y6; y15=-d+1/2bar; x15=x7;
+x16=x4; y16=-d+3bar; penpos7(vair,270); penpos16(bar,270);
+penpos13(bar,90); penpos14(bar,180); penpos15(bar,270);
+penpos8(2bar,0); penpos5(vair,90); penpos6(curve,180);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 80}z4e..z13e{left}..z14e..{right}z15e..z16e;
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=x_height-c; z10=(x1r+c,x_height); z11=(x1l-c,x_height);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+fill z16r..z16l..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar(hex"12",2cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=s+.45cap_stem*cosd 45;
+x2=w-s+cap_bar*cosd 45; z2=z1+whatever*dir -45;
+penpos1(.9cap_stem,45); penpos2(cap_bar,45);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"13",2cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=w-s-.45cap_stem*cosd 45;
+x2=s-cap_bar*cosd 45; z2=z1+whatever*dir -135;
+penpos1(.9cap_stem,135); penpos2(cap_bar,135);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"3F",8u#+c#,cap_height#,0);
+ x1=s+1/2cap_stem; y1=1/2cap_stem;
+ penpos1(cap_stem,0);
+ fill z1r..z1l..cycle;
+ y2=cap_stem+4/5cap_bar; z2=z1+whatever*dir 78;
+ z3l=z2l+whatever*dir 78; y3l=21/53h;
+ penpos2(cap_bar,0); penpos3(1.3cap_bar,0);
+ penstroke z2e--z3e;
+ z4r=z3l; penpos4(cap_bar,90);
+ y5=y4; x5=x4+2cap_bar; penpos7(cap_bar,-90);
+ x6=w-s-1/2cap_curve; y6=35/51h; x7=18/31w; y7=h;
+ penpos5(cap_bar,90); penpos6(cap_curve,180); z8=z7;
+ penstroke z4e--z5e{right}..tension1.2..{dir 78}z6e{dir 78}..tension1.1..{left}z7e;
+ ul_drop(8,.8cap_drop_round,x7-x3,cap_curve,cap_bar);
+ fill ul_drop_edge8;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"10",5u#,asc_height#,0);
+x1=w-s-stem; y1=x_height-bar; y2=11/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem; x4=w-s-1/2bar; y4=10/33x_height; y3=0;
+serif(1,stem,-104,jut,0);
+penpos2(stem,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"11",7u#-c#,asc_height#,desc_depth#);
+x1d=w-s; y1d=x_height; y2=7/33x_height; serif(1,stem,-104,jut,0);
+z2=z1+whatever*dir -104; penpos2(stem,180);
+y3l=-2/3d-c; z3l=whatever[z1f,z2l]; penpos3(1.1bar,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penstroke z2e{dir -104}..{dir -104}z3e;
+fill z1e{dir 76}..z1d{left}..cycle; z4=z3;
+dl_drop(4,drop_round,1/3d,drop_round,1.1bar);
+fill dl_drop_edge4 rotatedaround(z3,76);
+fill z3l..tension1.3..z3r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"2A",3cap_stem#+3s#,body_height#,0);
+ x1=x2=x3=x4=.5w; y1=h-1/2stem; y2=y1-cap_stem; y3=y2-bar; y4=y3-bar;
+ penpos1(stem,0); penpos2(cap_bar,0); penpos3(2cap_bar,0);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle;
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,60);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,120);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,180);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,240);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,300);
+ penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"5E",6u#,body_height#,0);
+ x1=s+.45cap_bar*cosd 45; x2=w/2; y2=h-bar;
+ z1=z2+whatever*dir -135; x3=w-x1; z3=z2+whatever*dir -45;
+ penpos1(bar,135); penpos2(2bar,90); penpos3(bar,45);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"16",6u#,body_height#,0);
+ x1=s; x2=w-x1; y1=y2=h-4bar;
+ penpos1(.8bar,90); penpos2(.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7F",2stem#+4s#,x_height#+2.1stem#,0);
+ z1=(s+.5stem,h); z2=(s+.5stem,h-stem);
+ fill z1..z2..cycle;
+ z3=(w-s-.5stem,h); z4=(w-s-.5stem,h-stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+ligtable "7":
+ "8" kern -kk#,
+ "A" kern -kkk#,
+ CYR_A kern -kkk#,
+ "f" kern -kk#,
+ "j" kern -kkk#,
+ "g" kern -kkk#,
+ CYR_el kern -kkk#,
+ CYR_em kern -kkk#,
+ CYR_u kern -k#,
+ CYR_er kern -k#,
+ CYR_ya kern -kk#,
+ "c" kern -k#,
+ "q" kern -k#,
+ "p" kern -k#;
+
+ligtable CYR_A: "A":
+ CYR_O kern -k#,
+ CYR_ES kern -k#,
+ CYR_TE kern -k#,
+ CYR_U kern -kk#,
+ CYR_EF kern -k#,
+ CYR_CHE kern -kk#,
+ CYR_HARD_SIGN kern -k#,
+ CYR_che kern -k#,
+ "W" kern -kkk#,
+ "V" kern -kkk#,
+ "Y" kern -kk#,
+ "T" kern -k#;
+
+ligtable CYR_GHE: CYR_TE: "T":
+ CYR_A kern -kk#,
+ CYR_DE kern -k#,
+ CYR_EL kern -kk#,
+ "l" kern kk#,
+ "t" kern k#,
+ "i" kern k#,
+ "k" kern kk#,
+ "b" kern kk#,
+ "h" kern kk#;
+
+ligtable CYR_E: CYR_YU:
+ CYR_U kern -k#,
+ CYR_be kern k#,
+ CYR_te kern kk#,
+ CYR_o kern k#,
+ CYR_pe kern k#,
+ CYR_er kern k#,
+ CYR_ka kern k#,
+ CYR_en kern k#,
+ CYR_che kern kk#,
+ CYR_sha kern kk#,
+ CYR_yu kern k#,
+ CYR_u kern k#,
+ "b" kern k#,
+ "t" kern kk#,
+ CYR_HA kern -k#;
+
+ligtable CYR_O: CYR_EF: "D": "O": "Q":
+ CYR_yeru kern k#,
+ CYR_pe kern k#,
+ CYR_en kern k#,
+ CYR_o kern k#,
+ CYR_be kern k#,
+ CYR_HA kern -k#,
+ CYR_te kern kk#,
+ CYR_ef kern k#,
+ CYR_er kern k#,
+ CYR_ka kern k#,
+ CYR_che kern kk#,
+ CYR_sha kern kk#,
+ CYR_yu kern k#,
+ CYR_u kern k#,
+ "o" kern k#,
+ "e" kern k#,
+ "q" kern k#,
+ "l" kern k#,
+ "p" kern k#,
+ "t" kern k#,
+ "u" kern kk#,
+ "b" kern k#,
+ "X" kern -k#;
+
+ligtable CYR_ER: "P":
+ CYR_A kern -kk#,
+ CYR_el kern -k#,
+ CYR_te kern k#,
+ CYR_pe kern k#,
+ "p" kern k#,
+ CYR_ka kern k#,
+ CYR_en kern k#,
+ CYR_che kern kk#,
+ CYR_sha kern kk#,
+ CYR_yu kern k#,
+ CYR_u kern k#,
+ "i" kern k#,
+ "b" kern k#,
+ "u" kern k#,
+ "l" kern k#,
+ "r" kern k#;
+
+ligtable CYR_ES: "C":
+ CYR_i kern kk#,
+ CYR_pe kern k#,
+ CYR_ve kern k#,
+ "7" kern kk#,
+ "l" kern kk#,
+ "n" kern k#,
+ "h" kern k#,
+ CYR_o kern k#;
+
+ligtable CYR_EN:
+ CYR_i kern k#;
+
+ligtable CYR_U:
+ CYR_A kern -kkk#,
+ CYR_O kern -k#,
+ CYR_ES kern -k#,
+ CYR_EF kern -k#;
+
+ligtable CYR_HA: "X":
+ CYR_ES kern -k#,
+ CYR_EF kern -k#,
+ CYR_O kern -k#,
+ "O" kern -k#,
+ "Q" kern -k#,
+ "C" kern -k#,
+ "G" kern -k#;
+
+ligtable CYR_be:
+ CYR_a kern -kk#,
+ CYR_o kern -kk#,
+ "a" kern -kk#,
+ "o" kern -kk#,
+ "e" kern -kk#,
+ "c" kern -k#,
+ "x" kern -kk#,
+ "p" kern -kk#,
+ CYR_ie kern -kk#,
+ CYR_ze kern -kk#,
+ CYR_el kern -kk#,
+ CYR_em kern -kk#,
+ CYR_es kern -k#,
+ CYR_ef kern -k#,
+ CYR_ha kern -kk#,
+ CYR_e kern -kk#,
+ CYR_ye kern -k#,
+ CYR_ya kern -kk#,
+ CYR_yeru kern -k#,
+ CYR_ve kern -k#,
+ CYR_ghe kern -kk#,
+ CYR_de kern -k#,
+ CYR_zhe kern -kk#,
+ CYR_i kern -k#,
+ CYR_ka kern -kk#,
+ CYR_en kern -kk#,
+ CYR_pe kern -kk#,
+ CYR_er kern -kk#,
+ CYR_u kern -kk#,
+ "y" kern -kk#,
+ CYR_tse kern -kk#,
+ CYR_che kern -k#,
+ CYR_sha kern -k#,
+ CYR_shcha kern -k#,
+ CYR_soft_sign kern -k#,
+ CYR_yu kern -kk#;
+
+ligtable CYR_de:
+ CYR_em kern -kk#,
+ CYR_a kern -kk#,
+ "a" kern -kk#,
+ "c" kern -kk#,
+ "p" kern -kk#,
+ "o" kern -k#,
+ "e" kern -k#,
+ "n" kern -kk#,
+ CYR_zhe kern -kk#,
+ CYR_ze kern -kk#,
+ CYR_el kern -kkk#,
+ CYR_pe kern -kk#,
+ CYR_er kern -kk#,
+ CYR_es kern -kk#,
+ CYR_u kern -kk#,
+ CYR_ha kern -kk#,
+ CYR_ya kern -kk#,
+ CYR_be kern -k#,
+ CYR_ve kern -k#,
+ CYR_ghe kern -k#,
+ CYR_ie kern -k#,
+ CYR_ye kern -k#,
+ CYR_ka kern -k#,
+ CYR_en kern -k#,
+ CYR_o kern -k#,
+ CYR_ef kern -k#,
+ CYR_tse kern -k#,
+ CYR_sha kern -k#,
+ CYR_hard_sign kern -k#,
+ CYR_e kern -k#,
+ CYR_yu kern -k#;
+
+ligtable CYR_ghe:
+ CYR_el kern -k#;
+
+ligtable CYR_pe: "n":
+ "y" kern -k#,
+ CYR_u kern -k#,
+ "f" kern -kk#,
+ "j" kern -kk#,
+ "g" kern -k#;
+
+ligtable CYR_te:
+ CYR_em kern -k#,
+ CYR_ie kern -k#,
+ CYR_el kern -kkk#;
+
+ligtable CYR_u: "y":
+ CYR_el kern -k#,
+ CYR_em kern -k#,
+ CYR_ie kern -k#,
+ CYR_ka kern -k#,
+ CYR_ya kern -k#,
+ CYR_ye kern -k#,
+ "f" kern -kk#,
+ "j" kern -kk#;
+
+ligtable "I": "H": "N": "U":
+ "l" kern kk#,
+ "t" kern k#,
+ "i" kern k#,
+ "k" kern kk#,
+ "b" kern kk#,
+ "h" kern kk#;
+
+ligtable "L":
+ "T" kern -kk#,
+ "W" kern -k#,
+ "V" kern -k#,
+ "Y" kern -kk#;
+
+ligtable "S":
+ "b" kern k#,
+ "c" kern k#,
+ "l" kern k#,
+ "t" kern k#,
+ "j" kern -k#,
+ "o" kern k#;
+
+ligtable "V": "W":
+ "A" kern -kkk#,
+ "l" kern kk#,
+ "t" kern k#,
+ "i" kern k#,
+ "k" kern kk#,
+ "b" kern kk#,
+ "h" kern kk#;
+
+ligtable "d":
+ "f" kern -kk#,
+ "g" kern -k#,
+ "j" kern -kk#;
+
+ligtable "f":
+ "g" kern -k#,
+ "f" kern -kk#,
+ "a" kern -k#,
+ "c" kern -k#,
+ "d" kern -k#,
+ "e" kern -k#,
+ "o" kern -k#,
+ "q" kern -k#,
+ "r" kern -k#,
+ "s" kern -k#,
+ "x" kern -k#,
+ "z" kern -k#,
+ "j" kern -k#;
+
+ligtable "g":
+ "i" kern k#,
+ "u" kern k#,
+ "t" kern k#,
+ "f" kern -k#,
+ "v" kern k#,
+ "w" kern k#;
+
+ligtable "o": "b": "p": "e":
+ "W" kern -kkk#,
+ "V" kern -kkk#,
+ "X" kern -kk#,
+ "e" kern k#,
+ "f" kern -kk#,
+ "j" kern -kk#,
+ "o" kern k#;
+
+ligtable "r":
+ "g" kern -k#,
+ "a" kern -k#;
+
+ligtable "s": "z":
+ "f" kern -kk#,
+ "j" kern -kk#;
+
+ligtable "t":
+ "f" kern -k#,
+ "a" kern -k#;
+
+ligtable "v": "w":
+ "f" kern -kk#,
+ "g" kern -k#,
+ "j" kern -kk#;
+
+ligtable "c": CYR_es:
+ "j" kern -kk#;
+
+ligtable "x": CYR_ha:
+ CYR_el kern -kk#,
+ CYR_em kern -kk#,
+ "j" kern -kk#;
+
+ligtable oct"55":
+ oct"55" =: hex"7b";
+ligtable hex"7b":
+ oct"55" =: hex"7c";
+end
diff --git a/fonts/obnov/obnit17.mf b/fonts/obnov/obnit17.mf
new file mode 100644
index 0000000000..12b5b5b719
--- /dev/null
+++ b/fonts/obnov/obnit17.mf
@@ -0,0 +1,3566 @@
+%written by Basil Solomykov, Russia
+%(C) Copyright 2011 LPPL (LaTeX Project Public License)
+%Font Ordinary New (Obyknovennaya novaya), Italic
+
+design_size := 17.32pt#;
+o# := .7776pt#;
+u# := 32/35pt#;
+bar# := 17.28/36pt#;
+slab# := 17.28/36pt#;
+cap_bar# := 17.28/36pt#;
+vair# := 17.28/36pt#;
+hair# := 17.28/36pt#;
+jut# := 34.56/36pt#;
+cap_jut# := 44.928/36pt#;
+stem# := 51.84/36pt#;
+curve# := 53.568/36pt#;
+cap_stem# := 62.21/36pt#;
+cap_curve# := 64.28/36pt#;
+s# := 0.65pt#;
+c# := .32pt#;
+
+input obn_lcyw_code.mf
+font_identifier "OBNIT";
+mode_setup;
+clear_pen_memory;
+
+font_size design_size*pt#;
+asc_height# := 24/36*design_size*pt#;
+cap_height# := 24/36*design_size*pt#;
+body_height# := 27/36*design_size*pt#;
+x_height# := 15.4/36*design_size*pt#;
+desc_depth# := 8/36*design_size*pt#;
+body_depth# := 9/36*design_size*pt#;
+comma_depth# := 5/36*design_size*pt#;
+x_depth# := 4/5comma_depth#;
+bar_height# := .52x_height#;
+cap_bar_height# := .52cap_height#;
+cap_bar2_height# := .45cap_height#;
+border_height# := comma_depth#;
+cap_drop_round# := 4*slab#;
+drop_round# := 6/8cap_drop_round#;
+A_bracket# := 1.6pt#;
+bracket# := pt#;
+
+font_slant sind 36;
+font_x_height x_height#;
+font_normal_space 9u#;
+font_normal_stretch 4u#;
+font_normal_shrink 2u#;
+font_quad 16u#;
+font_extra_space 6u#;
+
+k# := .8u#;
+kk# := 1.5u#;
+kkk# := 3u#;
+
+serif_darkness := 1/30;
+define_pixels(bracket,cap_o_width,sss_width,css_width);
+define_pixels(c,s,cap_bar_height,cap_bar2_height);
+define_pixels(border_height,A_bracket,cap_drop_round,x_depth,drop_round);
+define_whole_blacker_pixels(stem,cap_stem,curve,cap_curve,bar,slab,cap_bar);
+define_good_x_pixels(hair); define_good_y_pixels(vair);
+define_whole_pixels(asc_height,cap_height,x_height,u,desc_depth,comma_depth,bar_height,body_height,body_depth,u,o,cap_jut,jut);
+%define_corrected_pixels();
+lowres_fix(stem,curve) 1.2;
+lowres_fix(cap_stem,cap_curve) 1.2;
+if jut=cap_jut: jut:=jut-1; fi
+
+def serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g if left_jut=0: -1/2slab fi +1/2slab; x$d=x$e=x$h if right_jut=0: +1/2slab fi-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def serif_edge suffix $ =
+(serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse serif_bracket($f,$r,$e)) enddef;
+
+def serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...serif_darkness[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def T_serif(suffix $)(expr slab, bord_height, direction)= %Direction: 0-left, 1-right;
+penpos$(slab,if direction=1: - fi 90);
+x$=x$a=x$g; y$g-y$=y$-y$a=1/2slab;
+x$b=x$a + if direction=0: - fi .882bord_height; y$b=y$d=y$c+1/2slab;
+x$c=x$b + if direction=0: - fi 1/2slab; y$c=y$a-bord_height;
+x$d=x$e=x$b + if direction=0: - fi slab;
+y$e=y$g-1/2slab; y$f=y$g; x$f=x$c;
+labels($a,$b,$c,$d,$e,$f,$g) enddef;
+
+def T_edge suffix $ =
+(z$a..{down}z$b..z$c..z$d--z$e{up}..z$f--z$g--cycle) enddef;
+
+def A_serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(A_bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g+1/2slab; x$d=x$e=x$h-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def A_serif_edge suffix $ =
+(A_serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse A_serif_bracket($f,$r,$e)) enddef;
+
+def A_serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...0.6[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def ur_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a= 1/2slab;
+x$e=x$a + drop_length; y$e=y$f- drop_height;
+x$d=x$e - 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e - drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d - 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ur_drop_edge suffix $ =
+(z$f{right}..tension.9..{down}z$e{down}..{left}z$d{left}..{up}z$c{up}..z$b...{left}z$a--cycle) enddef;
+
+def ul_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$f- drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d + 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ul_drop_edge suffix $ =
+(z$f{left}..tension.9..{down}z$e{down}..{right}z$d{right}..{up}z$c{up}..z$b...{right}z$a--cycle) enddef;
+
+def dl_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, -90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$a + drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e + 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d - drop_round); x$b=x$d + 1/90drop_round;
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def dl_drop_edge suffix $ =
+(z$a{left}..tension.9..{up}z$e{up}..{right}z$d{right}..{down}z$c..{dir 250}z$b{dir -80}..{right}z$f--cycle) enddef;
+
+def S_serif (suffix $)(expr serif_slab, serif_length, serif_height)=
+%penpos$(serif_slab,90);
+x$a=x$i=x$; y$i=y$+1/2serif_slab; y$a=y$-1/2serif_slab;
+x$f=x$e=x$a+serif_length; y$f=y$g-1/2serif_slab; y$e=y$c=y$d+1/2serif_slab;
+x$g=x$f-1/2serif_slab; y$g=y$i-1/2serif_slab;
+y$h=y$f-1/4serif_slab; x$h=x$g-serif_slab;
+x$c=x$e-serif_slab; x$d=x$e-1/2serif_slab; y$d=y$g-serif_height;
+x$b=x$h-6/18serif_length; y$b=y$h-1/2slab;
+labels ($a,$b,$c,$d,$e,$f,$g,$h,$i) enddef;
+
+def S_serif_edge suffix $ =
+(z$a{right}...z$b..{dir -80}z$c..z$d..z$e--z$f{up}..z$g{left}..z$h{dir 150}..{left}z$i--cycle) enddef;
+
+currenttransform := identity slanted sind 18;
+beginchar(CYR_A,13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; x7=x6+1.2s;
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar(CYR_BE,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.65u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=y5=h-1/2slab;
+y1c=h; y2c=0; x5e=w-s-cap_stem;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h; x4=w-s-cap_stem-border_height;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_VE,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.25u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+css_width := x8 - x2r; save css_width;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar(CYR_GHE,9u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.77u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; x3=x4+2u;
+y5=y3; x5e=w-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_DE,12u#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-1.05u#;
+x10e=w-s; y10c=-d;
+y4c=h; x4h=w-s-1/2slab;
+x9=x4; y9c=0;
+x3=x8=x9d; y8=y7=1/2cap_bar; y3=y2=h-y8;
+x6e=s; y6=y10; x7=border_height+s;
+y5=y9; x5g=s+.5u; y1=y4; x1=x5+1.5u;
+x2=x1c;
+A_serif(1,1.2cap_bar,-96,10/7cap_jut,cap_jut);
+A_serif(5,1.2cap_bar,81,6/7cap_jut,cap_jut);
+serif(4,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+penpos2(cap_bar,90);
+penpos3(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_bar,90);
+penstroke z7e--z8e; penstroke z2e--z3e;
+fill A_serif_edge5...reverse A_serif_edge1...cycle;
+fill serif_edge9--reverse serif_edge4--cycle;
+T_serif(6,slab,border_height,0);
+T_serif(10,slab,border_height,1);
+fill T_edge6;
+fill T_edge10;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_IE,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.1u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_YE,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.1u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+x12=x13=x2r; y12=h+1/4cap_stem; y13=y12+cap_stem;
+x14=x15=x12+2cap_stem; y14=y12; y15=y13;
+fill z12..z13..cycle; fill z14..z15..cycle;
+penlabels(range 1 thru 15);
+endchar;
+
+beginchar(CYR_ZHE,round (16u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-1.14u#;
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; y7=y4=y10=y11=cap_bar_height; x4=x7-1.5u;
+x10=x8r; x11=x10+1.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+x6=s; y6=0; y4-y5=y5-y6; x4-x5=x5-x6;
+penpos7(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,90);
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z6e{right}..tension.8..{up}z5e{up}..tension.8..{right}z4e--z7e;
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+x3=x5+1/2cap_stem; y2=h; x4-x3=x3-x2; y2-y3=y3-y4;
+penpos3(hair,0);
+penpos2(cap_bar,90);
+penstroke z4e{left}..tension.8..{up}z3e{up}..tension.8..{left}z2e;
+y1=h; x1a=x2; fill z6l..z6r..cycle;
+ul_drop(1,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ul_drop_edge1; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ZE,10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.12u#;
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height;
+x4=x6-3/2cap_stem; x5=x4-3u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3c,1.4border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.5cap_drop_round,slab);
+fill dl_drop_edge8;
+%currentpicture := currentpicture shifted(-.9u,0);
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_I,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.76u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-20); penpos6(cap_bar,-20);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar(CYR_SHORT_I,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.76u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-20); penpos6(cap_bar,-20);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+y7d=h+1.5cap_drop_round; z7d=z1r+whatever*dir 78;
+dl_drop(7,.95cap_drop_round,1.3stem,.9cap_drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+z8=z7; y9=y7d-2bar; z9=z3+whatever*dir 105;
+penpos8(bar,90); penpos9(bar,135);
+penstroke z8e{right}..tension1.3..z9e;
+fill z9l..tension1.3..z9r..tension1.3..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_KA,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.12u#;
+x8g=x9g=s; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+y10=y11=cap_bar_height;
+x10=x8r; x11=x10+2.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13; fill z16l..z16r..cycle;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_EL,13u#+1/2s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.8cap_drop_round; y3=1.1cap_drop_round;
+dl_drop(1,1.1cap_drop_round,1.1cap_drop_round,1.2cap_drop_round,slab);
+fill dl_drop_edge1;
+penpos2(cap_bar,-90);
+penpos3(cap_bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-slab;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,cap_bar,theta1,1.3cap_jut,1.3cap_jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,cap_stem,-90,cap_jut,cap_jut);
+serif(8,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z5e--z6e;
+%currentpicture := currentpicture shifted(-.7u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_EM,13u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,.51cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,-20);
+z6=z5+whatever*dir -107; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 109; y7l=10/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EN,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_O,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.22u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+cap_o_width := x7-x3; save cap_o_width;
+%currentpicture := currentpicture shifted(-1.9u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_PE,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ER,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.56u#;
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_ES,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.13u#;
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+%currentpicture := currentpicture shifted(-1.7u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_TE,round (11u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=x2=.5w; y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+%currentpicture := currentpicture shifted(-3.4u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_U,13u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.83u#;
+x1l=s+cap_jut; y1l=.98h-cap_bar;
+x3r=w-s-.8cap_jut; y3r=.98h-cap_bar;
+x4=33/60w; y4=6/53h;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,1.2cap_bar,theta2,1.2cap_jut,.8cap_jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=0; x6=x4-1.2cap_stem; z7l=z2;
+penpos7(1.2cap_bar,theta2+90);
+penpos5(1.2cap_bar,theta2+90);
+penpos6(1.2cap_bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,cap_drop_round,2u, 10/53h, round 1.2cap_bar);
+fill dl_drop_edge8;
+%currentpicture := currentpicture shifted(-3.2u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EF,round (14u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-2.22u#;
+if .5w = good.x .5w: change_width; fi
+x1=x2=.5w; y2c=0; y1h=h;
+y6=y7=y8=y9=1.3cap_jut; y4=y3=y11=y12=h-1.3cap_jut+1/2slab;
+x3=x7=x2l; x8=x12=x2r; x4=x6=x3-u; x11=x9=x12+u;
+x5=s+1/2cap_curve; x10-x1=x1-x5; y4-y5=y5-y6; y10=y5;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,270);
+penpos7(cap_bar,270);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+penpos10(cap_curve,0);
+penpos11(cap_bar,90);
+penpos12(cap_bar,90);
+penstroke z3e--z4e{left}..tension.8..{down}z5e{down}..tension.8..{right}z6e--z7e;
+penstroke z8e--z9e{right}..tension.8..{up}z10e{up}..tension.8..{left}z11e--z12e;
+%currentpicture := currentpicture shifted(-1.9u,0);
+penlabels (range 1 thru 12);
+endchar;
+
+beginchar(CYR_HA,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.2u#;
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_TSE,12.5u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-1.26u#;
+x1=x2=x5=cap_jut+1/2cap_stem+s;
+x3=x4=x6=w-x1-.5u; y5=y6=y2h;
+y1c=y3c=h; y2c=y4c=0; x7e=w-s; y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e;
+T_serif(7,cap_bar,border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_CHE,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=cap_jut+1/2cap_stem+s; x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,-90,cap_jut,cap_jut);
+serif(3,cap_stem,90,cap_jut,cap_jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=cap_bar_height-1/2cap_bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-1.5cap_bar;
+penpos6(cap_stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+%currentpicture := currentpicture shifted(-3.6u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SHA,16u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+if .5w <> good.x .5w: change_width; fi
+x1=x2=good.x (cap_jut+1/2cap_stem+s);
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=good.x .5w; y5=y1; y6=y2;
+y9b=slab; x9=good.x w-x1;
+x10=x9; y10b=h-slab;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_SHCHA,16u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-.78u#;
+if .5w <> good.x .5w: change_width; fi
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=slab; x9h=w-s;
+x10=x9; y10b=h-slab;
+x11e=w-s; y11=y9h;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,slab,border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_HARD_SIGN,13.5u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-3.32u#;
+x2r=x5-css_width; x1=x2; x8e=0; y8g=h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+x7=x1d; y1c=h; y2c=0;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=round(x3+5u-cap_stem);
+y6=y7=y2h;
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(8,cap_bar,border_height,0);
+fill T_edge8;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+%currentpicture := currentpicture shifted(-1.5u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YERU,16u#+c#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+y3=y4=cap_bar_height; x3=round x2r; x4=x6=round (x3+5u-cap_stem) - 1;
+y4-y5=y5-y6; x5=x2r+css_width; y8b=slab; x8h=w-s;
+y6=y7=y2h; x9=x8; y9b=h-slab;
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(8,cap_stem,90,cap_jut,cap_jut);
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge9--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SOFT_SIGN,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-3.32u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=x3+5u-cap_stem;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y6=y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_E,10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.19u#;
+x1=16/39w; x5=.5w; y1=0; y5=h;
+y7=.5h; x7=w-1/2cap_curve-s;
+x9e=s; y9=0;
+dl_drop(9,cap_drop_round,16/39w-s,1.7cap_drop_round,slab);
+y8=0.1h-c; y6=0.9h+c; x8=x9+9/16(x7-x9); x6=x5+9/16(x7-x5);
+penpos5(cap_bar,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+penpos1(cap_bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+y2=y5; x2=x5-c;
+S_serif(2,slab,x1+c,1.5border_height);
+x3=x7-1/2cap_stem; y3=y4=cap_bar_height; x4=x2b-x1;
+penpos3(cap_bar,90); penpos4(cap_bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YU,16u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.25u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+y3=y7=.5h; x7=w-1/2cap_curve-s; x3=x7-cap_o_width; y9=0; y5=h; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3cap_stem; y11=y12=cap_bar_height;
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_YA,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=x2=w-cap_jut-1/2cap_stem-s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2l;
+y1c=h; y2c=0; x6=x4=x7-2.5u; x3=x1c;
+y4-y5=y5-y6; x5=x8-1.5c; x9=s; y9=0; y6-y8=y8-y9; x7-x10=3(x10-x6); x10-x8=x8-x9;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos7(cap_bar,270);
+penpos6(cap_bar,270);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90); fill z9l..z9r..cycle;
+penstroke z3e--z4e{left}..tension.9..z5e..tension.9..{right}z6e--z7e;
+penstroke z9e{right}..tension1..{up}z8e{up}..tension1..{right}z10e;
+penlabels(range 1 thru 10);
+endchar;
+currenttransform := identity;
+
+beginchar(CYR_a,9u#+c#,x_height#,0);
+x1=w-s-3/4stem; y1=h; y2=7/33h; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=w-s-bar/3; y4=8/33h;
+penpos1(stem,180);
+penpos2(stem,180);
+penpos3(1.2vair,270);
+penpos4(bar,360);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 60}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x5=x1-3/2stem; y5=h; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c; y6=.54h; y8=.46h; z8l=whatever[z1r,z2r];
+penpos8(2bar,0);
+penpos5(vair,90);
+penpos6(curve,180);
+penpos7(vair,270);
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=h-c; z10=(x1r+c,h); z11=(x1l-c,h);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar(CYR_be,8u#+s#+stem#,asc_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5(w-stem)-1/2(x_height*sind 14/cosd 14); x3=.5(w-stem)+1/2(x_height*sind 14/cosd 14); y1=0; y3=x_height;
+y2=.54x_height; y4=.46x_height; x2=1/2curve+s; x4=w-1/2curve-stem-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+y5=y2; x5r=x2l; x6=23/35w; y6=46/51h; y7r=h; x7=w-s;
+penpos5(bar,180);
+penpos6(.9curve,90);
+penpos7(.8curve,90);
+penstroke z5e{dir 76}..{dir 14}z6e{dir 14}..{dir 30}z7e;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_ve,8u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=4/5h; x2=1/2curve+s; x4=w-1/2curve-s; z5r=z2; x6=w-s-s-1/2curve; y6=9/33h; z7=z5;
+penpos5(vair,-270);
+penpos6(curve,180);
+penpos7(vair,270);
+penstroke z7e{dir 14}..tension.9..{dir 256}z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{dir 194}z5e;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_ghe,7u#+s#,x_height#,0);
+x4=0.5w; top y4 = good.y (0.5h+1/3bar); y3=11.5/16h; x3=w-s-1/2curve;
+x2=11/18w; y2=h; x1=s+2/3curve; y1=24/33h;
+x5=s+1/2curve; y5=h-y3; x6=w-x2; y6=0; x7=w-x1; y7=h-y1;
+penpos1(bar,160);
+penpos2(1.2bar,90);
+penpos3(curve,0);
+penpos4(1.2bar,-90);
+penpos5(curve,0);
+penpos6(1.2bar,90);
+penpos7(bar,160);
+penstroke z1e{dir 60}..{right}z2e..z3e{dir -104}...z4e...{dir -104}z5e..z6e{right}..{dir 60}z7e;
+fill z7l..tension1.3..z7r..tension1.3..cycle;
+fill z1l..tension1.3..z1r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_de,8u#+s#+stem#,asc_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5(w-stem)-1/2(x_height*sind 14/cosd 14); x3=.5(w-stem)+1/2(x_height*sind 14/cosd 14); y1=0; y3=x_height;
+y2=.54x_height; y4=.46x_height; x2=1/2curve+s; x4=w-1/2curve-stem-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..tension1..{right}z3e..tension.9..{dir 256}z4e{dir 256}..tension1..{left}z1e..cycle;
+y5=23/33x_height; z5=z4+whatever*dir 75; x6=22/35w; y6=h;
+y56=y5+stem; z56=z4+whatever*dir 75;
+x7=11/35w; y7=42/51h;
+penpos5(curve,-180);
+penpos56(.9curve,-180);
+penpos6(1.2bar,-90);
+penpos7(bar,-20);
+penstroke z4e{dir 76}..z5e{dir 76}..z56e..tension1..{dir 174}z6e{left}..z7e;
+fill z7l..tension1.3..z7r..tension1.3..cycle;
+penlabels(range 1 thru 8,56);
+endchar;
+
+beginchar(CYR_ie,8u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=4/5h; x2=1/2curve+s; x4=w-1/2curve-s; z5r=z2; x6=w-s-s-1/2vair; y6=9/33h;
+penpos5(vair,-270);
+penpos6(vair,135);
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{dir 194}z5e;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_ye,8u#+c#,asc_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(x_height*sind 14/cosd 14); x3=.5w+1/2(x_height*sind 14/cosd 14);
+y1=0; y3=x_height; y2=.54x_height; y4=4/5x_height; x2=1/2curve+s;
+x4=w-1/2curve-s; z5r=z2; x6=w-s-s-1/2vair; y6=9/33x_height;
+penpos5(vair,-270);
+penpos6(vair,135);
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{dir 194}z5e;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+z8r=(w,h-1/2curve); y7=y8; x7=x8-2curve;
+penpos7(curve,0); penpos8(curve,0);
+fill z7r..z7l..cycle; fill z8r..z8l..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_zhe,15u#,x_height#,0);
+penpos1(1.2vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+x1=x3-(h*sind 14/cosd 14); x3=w-s-3/4stem; y1=0; y3=h;
+y2=.54h; x2=x1-3/4stem; x5=w-s-4/5stem; y5=7/33h;
+penpos5(vair,155); z4=z3;
+penstroke z5e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e;
+fill z5l..tension1.5..z5r..tension1.5..cycle;
+z77=(.5w,.5h); z9=z77+whatever*dir 76; y9=h;
+z8=whatever[z9,z77]; y8=0;
+penpos8(stem,0); penpos9(stem,0);
+penstroke z8e--z9e;
+ur_drop(4,drop_round,3/4stem,drop_round,bar);
+fill ur_drop_edge4;
+x10=w-x5; y10=26/33h; x11=w-x1; y11=h; x12=w-x2; y12=.46h;
+x13=w-x3; y13=0; z14=z13;
+penpos10(bar,155); penpos11(bar,90);
+penpos12(curve,0); penpos13(bar,-90);
+penstroke z10e..z11e{right}..{dir -104}z12e{dir -104}..{left}z13e;
+fill z10l..tension1.5..z10r..tension1.5..cycle; z14=z13;
+dl_drop(14,drop_round,3/4stem,drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+x7=x12; x6=x2; y6=y7=bar_height;
+penpos7(bar,90); penpos6(bar,90);
+penstroke z6e--z7e;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_ze,8u#,x_height#,0);
+x1=2.5s+1/2vair; y1=26/33h; x2=.5w+1/2(h*sind 14/cosd 14); y2=h;
+x3=w-s-1/2curve; y2-y3=y3-y4; x5=x1+s;
+z4=z2+whatever*dir -104; y4=y5=bar_height;
+z7=whatever[z2,z4]; y7=0; z6=z3+whatever*dir -100;
+y4-y6=y6-y7; z8=z7;
+penpos1(bar,135); penpos2(bar,90);
+penpos3(curve,0); penpos4(bar,-90);
+penpos5(bar,-90); penpos6(curve,180);
+penpos7(bar,90);
+penstroke z1e..z2e{right}..{dir -100}z3e{dir -100}..{left}z4e--z5e;
+penstroke z4e{right}..{dir -100}z6e{dir -100}..{left}z7e;
+fill z1l..tension1.5..z1r..tension1.5..cycle;
+fill z5l..tension1.5..z5r..tension1.5..cycle;
+dl_drop(8,drop_round,x7-s,1.2drop_round,bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_i,10u#,x_height#,0);
+x1=w-s-4.8/4stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=0; y5=8/34h;
+x5=s+1/2stem; x6=x5+stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+z7l=z5r+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_short_i,10u#,asc_height#,0);
+x1=w-s-4.8/4stem; y1=x_height; y2=10/33x_height; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33x_height; y3=y6=0; y5=8/34x_height;
+x5=s+1/2stem; x6=x5+stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33x_height;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+z7l=z5r+whatever*dir 76; y7l=x_height-bar;
+serif(7,stem,-104,jut,0);
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+y9d=h; z9d=z7f+whatever*dir 76;
+dl_drop(9,drop_round,stem,drop_round,bar);
+fill dl_drop_edge9; fill z9e..z9c..cycle;
+z10=z9; y11=h-bar; z11=z8+whatever*dir 76;
+penpos10(bar,90); penpos11(bar,135);
+penstroke z10e{right}..tension1.3..z11e;
+fill z11l..tension1.3..z11r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ka,10u#,x_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-2stem; y1=bar_height-2.5bar; y2=6/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y5=y6=0;
+x8=x2-3/4stem; y8=bar_height; y9=bar_height-2bar; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.1bar,270); penpos9(1.2bar,0);
+penstroke z9e{dir 68}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x10=x3; y10=h; penpos10(1.2bar,270); z11=z10;
+penstroke z9e{dir 60}..{dir 25}z10e;
+ur_drop(11,drop_round,9/8drop_round,drop_round,1.2bar);
+fill ur_drop_edge11;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_el,10u#+c#,x_height#,0);
+x1=w-s-4.7/4stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=0;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x5=x1r; y5=h-1/2bar; x8=1/5w; y8=0; z9=z8;
+y6=27/34h; y7=7/34h; x6=.5w; z7=z6+whatever*dir -108;
+penpos5(vair,90); penpos6(bar,180);
+penpos7(bar,180); penpos8(vair,90);
+penstroke z5e{left}..z6e--z7e{dir -108}..{left}z8e;
+dl_drop(9,drop_round,x8-s,drop_round,bar);
+fill dl_drop_edge9; fill z9e..z9c..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_em,12u#+1.5s#,x_height#,0);
+x1=w-s-stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=9/33h; y3=0;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+z5r=z1r; z6=z5+whatever*dir -120; y6=0;
+penpos5(bar,180); penpos6(bar,160);
+penstroke z5e--z6e; fill z6l..tension1.3..z6r..tension1.3..cycle;
+z7l=z6r+whatever*dir 92; y7l=5/4stem;
+z8l=whatever[z6r,z7l]; y8l=h;
+penpos7(.9stem,0); penpos8(.9stem,0);
+penstroke z7e--z8e; fill z6r--z7l--z7r--cycle;
+y9=h-bar; x9=x8l; y10=10/33h; z10=z9+whatever*dir -104;
+y11=0; x11=s+stem; z12=z11;
+penpos10(bar,0); penpos11(bar,-90);
+serif(9,bar,-104,jut,0);
+fill z10l--z10r--reverse serif_edge9--cycle;
+penstroke z10e{dir -104}..{left}z11e;
+dl_drop(12,drop_round,x11-s,drop_round,bar);
+fill dl_drop_edge12; fill z12e..z12c..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_en,10u#+s#,x_height#,0);
+x1=w-s-4.7/4stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y5=y6=0;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+y8=y9=bar_height; z9=z2+whatever*dir 76; z8=whatever[z6,z7];
+penpos8(bar,90); penpos9(bar,90);
+penstroke z8e--z9e; fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_o,8u#+s#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=.46h; x2=1/2curve+s; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+italic_o_width := x4-x2; save italic_o_width;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_pe,10u#+s#,x_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-10/8stem; y1=26/33h; y2=10/33h; z2=z1+whatever*dir -108;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y5=y6=0;
+x8=x2; y8=h; y9=bar_height-bar; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.2bar,270); penpos9(bar,0);
+penstroke z9e{dir 68}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_er,9u#+s#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=x2+.5(x4-x2)-1/4(h*sind 14/cosd 14)-.5c; x3=x2+.5(x4-x2)+3/4(h*sind 14/cosd 14)-.5c; y1=0; y3=h;
+y2=.54h; y4=.46h; x2=x4-italic_o_width+c; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+y5=h-bar; z5=z2+whatever*dir 76;
+serif(5,stem,-104,jut,0); fill z5e{dir 76}..z5d{left}..cycle;
+y6=-d+bar; z6=whatever[z2,z5];
+serif(6,stem,76,.3jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_es,7.5u#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+x1=4u-1/2(h*sind 14/cosd 14); x3=4u+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; x2=1/2curve+s; x6=8u-2.5s-1/2vair; y6=9/33h;
+penpos6(vair,135); z4=z3;
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e;
+fill z6l..tension1.5..z6r..tension1.5..cycle;
+ur_drop(4,drop_round,9/8drop_round,5/4drop_round,bar);
+fill ur_drop_edge4;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_te,round (8u#-.5s#),x_height#,0);
+if .5w = good.x .5w: change_width; fi
+currenttransform := identity slanted sind 14;
+x2=.5w-w*sind 14/cosd 14+c; x1e=s-w*sind 14/cosd 14+c;
+x4e=w-s-w*sind 14/cosd 14+c;
+y1=y4=y2h; y2c=h; y3=y5=0; x3=.5w-1/2stem-w*sind 14/cosd 14+c;
+x5=.5w+1/2stem-w*sind 14/cosd 14+c;
+serif(2,stem,-90,jut,jut);
+T_serif(1,bar,4/5border_height,0);
+T_serif(4,bar,4/5border_height,1);
+fill z3--z5--reverse serif_edge2--cycle;
+fill T_edge1; fill T_edge4;
+currenttransform := identity;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_u,10u#-c#,x_height#,desc_depth#);
+x5=w-s-1/2stem; y5=h; y6=10/33h; z6=z5+whatever*dir -104;
+y3=0; y2=8/34h; x2=s+stem; x3=x2+stem;
+y7=0; z7=z6+whatever*dir -104;
+penpos5(stem,180); penpos6(stem,180);
+z8r=z7r+whatever*dir -104; y8r=-1/2d;
+z4l=whatever[z6r,z5r]; y4l=15/33h;
+penpos2(stem,180); penpos3(1.1bar,270);
+y9=-d; x9=x2l; z10=z9;
+penpos4(bar,360); penpos7(stem,180);
+penpos8(.8stem,180); penpos9(bar,90);
+penstroke z2e{dir -104}..z3e{right}..{dir 76}z4e;
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+penstroke z5e{dir -104}..z6e..z7e..z8e..{left}z9e;
+dl_drop(10,1.1stem,x9-s,1.2drop_round,bar);
+fill dl_drop_edge10; fill z10e..z10c..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ef,12u#+1.5s#,asc_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(.9curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=x2+.5(x4-x2)-3/8(x_height*sind 14/cosd 14);
+x3=x2+.5(x4-x2)+5/8(x_height*sind 14/cosd 14);
+y1=y6=0; y3=y8=x_height; y5=y4; x7=1/2curve+s; y7=y2;
+y2=.54x_height; y4=.46x_height; x4=w-1/2curve-s;
+x4-x2=x2-x7; x5=x2;
+x8=x7+.5(x5-x7)+3/8(x_height*sind 14/cosd 14);
+x6=x7+.5(x5-x7)-5/8(x_height*sind 14/cosd 14);
+penpos6(vair,90); penpos7(curve,0);
+penpos8(vair,-90); penpos5(.9curve,180);
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+penstroke z6e{left}..tension.9..{dir 76}z7e{dir 76}..{right}z8e..tension.9..{dir 256}z5e{dir 256}..{left}z6e..cycle;
+x5-x77=x77-x2; y2-y77=y77-y5;
+y10=h; x10=w-s-stem; y11=44/34x_height; z11=z77+whatever*dir 76;
+y12=-1/8d; z12=z77+whatever*dir -104; y13=-d; x13=s+stem; z9=z10;
+penpos10(bar,90); penpos11(stem,180);
+penpos12(stem,180); penpos13(bar,90);
+penstroke z10e{left}..{dir -104}z11e--z12e{dir -104}..{left}z13e;
+ur_drop(9,drop_round,stem,drop_round,bar);
+fill ur_drop_edge9; z14=z13;
+dl_drop(14,drop_round,stem,drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 14,77);
+endchar;
+
+beginchar(CYR_ha,10u#+c#,x_height#,0);
+penpos1(1.2vair,90);
+penpos2(curve,0);
+penpos3(vair,-90); penpos12(curve,0);
+x1=x3-(h*sind 14/cosd 14); x3=w-s-3/4stem; y1=0; y3=h;
+y2=.54h; x2=x1-if design_size=17.32: 30/40stem else: 30/40stem fi;
+x5=w-s-4/5stem; y5=7/33h;
+penpos5(vair,135); z4=z3;
+penstroke z5e..z1e{left}..{dir 76}z2e{dir 76}..{right}z3e;
+fill z5l..tension1.5..z5r..tension1.5..cycle;
+ur_drop(4,drop_round,3/4stem,drop_round,bar);
+fill ur_drop_edge4;
+x10=w-x5; y10=26/33h; x11=w-x1; y11=h; x12=w-x2; y12=.46h;
+x13=w-x3; y13=-2epsilon; z14=z13;
+penpos10(bar,135); penpos11(bar,90);
+penpos13(bar,-90);
+penstroke z10e..z11e{right}..{dir -104}z12e{dir -104}..{left}z13e;
+fill z10l..tension1.5..z10r..tension1.5..cycle; z14=z13;
+dl_drop(14,drop_round,3/4stem,drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_tse,10u#,x_height#,desc_depth#);
+x1=w-s-5/4stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=0; y5=8/34h;
+x5=s+1/2stem; x6=x5+stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+z7l=z5r+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+y9l=0; x9l=x3+bar; x10=x2+1/4stem; y10=-1/2d;
+y11=-d; x11=x10-5/4stem;
+penpos11(bar,90); penpos10(stem,180); penpos9(bar,120);
+penstroke z9e..tension1.3..{down}z10e{down}..tension.8..{left}z11e;
+fill z11l..tension1.3..z11r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_che,9u#,x_height#,0);
+x7g=s; y7g=h-1/2bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=9/33h; y3=0; y6l=bar_height; y5=y6l+2bar;
+z5=z7+whatever*dir -104; x6=x5+3/4stem;
+penpos1(stem,180); penpos2(stem,180);
+z8=whatever[z2r,z1r]; y8l=y5-.8bar;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(1.2bar,256);
+penstroke z5e{dir -104}..z6e{right}..{dir 25}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_sha,14u#,x_height#,0);
+if .5w <> good.x .5w: change_width; fi
+x1=w-s-5/4stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=y10=0; y5=y11=8/34h;
+x11=s+1/2stem; x10=x11+stem;
+z12=z11+whatever*dir 76; y12=h-bar;
+y13=h; z13=whatever[z11,z12];
+x6=x5+stem; x1-x7=x7-x13; y7l=h; z5=z7+whatever*dir -104;
+serif(12,stem,-104,jut,0);
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=y9l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360); penpos7(stem,180);
+z9l=whatever[z5r,z7r];
+penstroke z7e--z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+penpos11(stem,180); penpos10(1.1bar,270);
+penpos9(bar,360);
+fill z11r--z11l--reverse serif_edge12--cycle;
+fill z12e{dir 76}..z12d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penstroke z11e{dir -104}..z10e{right}..{dir 76}z9e;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_shcha,14u#,x_height#,desc_depth#);
+if .5w <> good.x .5w: change_width; fi
+x1=w-s-5/4stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=y10=0; y5=y11=8/34h;
+x11=s+1/2stem; x10=x11+stem;
+z12=z11+whatever*dir 76; y12=h-bar;
+y13=h; z13=whatever[z11,z12];
+x6=x5+stem; x1-x7=x7-x13; y7l=h; z5=z7+whatever*dir -104;
+serif(12,stem,-104,jut,0);
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=y9l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360); penpos7(stem,180);
+z9l=whatever[z5r,z7r];
+penstroke z7e--z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+penpos11(stem,180); penpos10(1.1bar,270);
+penpos9(bar,360);
+fill z11r--z11l--reverse serif_edge12--cycle;
+fill z12e{dir 76}..z12d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penstroke z11e{dir -104}..z10e{right}..{dir 76}z9e;
+y14l=0; x14l=x3+bar; x15=x2+1/4stem; y15=-1/2d;
+y16=-d; x16=x15-5/4stem;
+penpos16(bar,90); penpos15(stem,180); penpos14(bar,120);
+penstroke z14e..tension1.3..{down}z15e{down}..tension.8..{left}z16e;
+fill z16l..tension1.3..z16r..tension1.3..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_soft_sign,8u#,x_height#,0);
+y2=10/34h; x2=s+1/2stem; x3=x2+3/2stem; z5=z3+whatever*dir 76; y5=bar_height+bar; y4=.5y5; x4=w-s-1/2curve; y3=0;
+y6l=y2+bar; z6l=z2l+whatever*dir 76;
+penpos2(stem,180); penpos3(bar,270);
+penpos4(curve,360); penpos5(bar,90);
+penpos6(1.5bar,180);
+penstroke z2e{dir -104}..z3e{right}..{dir 76}z4e{dir 76}..tension.9..{left}z5e{left}..{dir -104}z6e;
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+sss_italic_width :=x4-x2; save sss_italic_width;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_yeru,12u#+s#,x_height#,0);
+y2=10/34h; x2=s+1/2stem; x3=x2+3/2stem; z5=z3+whatever*dir 76; y5=bar_height+bar; y4=.5y5; x4=x2+sss_italic_width; y3=-2epsilon;
+y6l=y2+bar; z6l=z2l+whatever*dir 76;
+penpos2(stem,180); penpos3(bar,270);
+penpos4(curve,360); penpos5(bar,90);
+penpos6(1.5bar,180);
+penstroke z2e{dir -104}..z3e{right}..{dir 76}z4e{dir 76}..tension.9..{left}z5e{left}..{dir -104}z6e;
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+x7=w-s-5/4stem; y7=h-bar; y8=10/33h; z8=z7+whatever*dir -104;
+x9=x8+3/4stem; x10=w-s-1/2bar; y10=10/33h; y9=2epsilon;
+penpos8(stem,180);
+penpos9(1.1bar,270); penpos10(bar,335);
+penstroke z8e{dir -104}..{right}z9e{dir 20}..{dir 65}z10e;
+fill z10l..tension1.3..z10r..tension1.3..cycle;
+serif(7,stem,-104,jut,0);
+fill z8r--z8l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_hard_sign,11u#-c#,x_height#,0);
+y2=10/34h; x2=x4-sss_italic_width; x3=x2+3/2stem; z5=z3+whatever*dir 76; y5=bar_height+bar; y4=.5y5; x4=w-s-1/2curve; y3=0;
+y6l=y2+bar; z6l=z2l+whatever*dir 76;
+z1r=z2l+whatever*dir 76; y1=h;
+penpos2(stem,180); penpos3(bar,270);
+penpos4(curve,360); penpos5(bar,90);
+penpos6(1.5bar,180); penpos1(bar,180);
+penstroke z1e..z2e{dir -104}..z3e{right}..{dir 76}z4e{dir 76}..tension.9..{left}z5e{left}..{dir -104}z6e;
+x10=s+1/3bar; y10=y5r+1/2bar; y11=h; z11=z10+whatever*dir 70;
+penpos10(bar,0); penpos11(bar,0);
+fill z10l..tension1.3..z10r..tension1.3..cycle;
+fill z11l..tension1.3..z11r..tension1.3..cycle;
+fill z1l..tension1.3..z1r..tension1.3..cycle;
+penstroke z10e--z11e;
+x7=x1r; y7=h-1/2bar; y8=h-5/8stem; x8=x11r+1/2stem;
+x9r=x11r-.1c; y9r=h; penpos9(curve,70);
+penpos7(bar,90); penpos8(.8curve,80);
+penstroke z7e{dir 200}..{left}z8e..{dir 160}z9e;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_e,7.5u#,x_height#,0);
+x10=2.5s+1/2vair; y10=26/33h; x11=.5w+1/2(h*sind 14/cosd 14); y11=h;
+x12=w-s-1/2curve; y12=.46h;
+x13=.5w-1/2(h*sind 14/cosd 14); y13=0; z14=z13;
+penpos10(bar,135); penpos11(bar,90);
+penpos12(curve,0); penpos13(bar,-90);
+penstroke z10e..z11e{right}..{dir -104}z12e{dir -104}..{left}z13e;
+fill z10l..tension1.5..z10r..tension1.5..cycle; z14=z13;
+dl_drop(14,drop_round,x13-s,1.2drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+x1=x14c; x2=x12; y1=y2=bar_height;
+penpos1(bar,90); penpos2(bar,90);
+penstroke z1e--z2e; fill z1r..z1l..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_yu,12u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=x2+.5(x4-x2)-1/2(h*sind 14/cosd 14); x3=x2+.5(x4-x2)+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=.46h; x2=x4-italic_o_width; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+x5=s; y5=y6=0; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5--z6--reverse serif_edge7--cycle;
+y8=y9=bar_height; z8=whatever[z6,z7]; x9=x2;
+penpos8(bar,90); penpos9(bar,90);
+penstroke z8e--z9e; fill z7e{dir 76}..z7d{left}..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ya,10u#+s#,x_height#,0);
+x1=w-s-stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=2epsilon;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x5=x1r; y5=h-1/2bar; x6=x5-4/3stem; y6=h-1/2vair;
+x7=12/40w; y8=y9=bar_height; z9=z5+whatever*dir -104;
+x8=x9-stem; y5-y7l=y7l-y9;
+penpos5(bar,90); penpos6(vair,90);
+penpos7(curve,166); penpos8(bar,270);
+penpos9(bar,270); x11=s+stem; y11=-2epsilon;
+8(x8-x10)=9(x10-x11); y8-y10=y10-y11; z12=z11;
+penpos10(.7curve,360); penpos11(bar,270);
+penstroke z5e--z6e{left}..z7e{dir -104}..{right}z8e--z9e;
+penstroke z9e{left}..tension.8..{dir -104}z10e{dir -104}..{left}z11e;
+dl_drop(12,drop_round,stem,drop_round,bar);
+fill dl_drop_edge12; fill z12e..z12c..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+currenttransform := identity slanted sind 18;
+beginchar("A",13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; x7=x6+1.2s;
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar("B",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.27u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("C",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.13u#;
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+%currentpicture := currentpicture shifted(-1.7u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("D",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-2.23u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(o,30);
+penpos6(cap_curve,0);
+penpos7(o,-30);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+x3=x9=x1d;
+x8=x4=.5w; y8=y9=1/2cap_bar; y4=y3=h-1/2cap_bar;
+y6=.5h; x6=w-1/2cap_curve-s;
+y7=0.1h-c+1/2cap_bar; y5=0.9h+c-1/2cap_bar; x5=x7=x4+5/8(x6-x4);
+penstroke z3e--z4e{right}..z5e..z6e..z7e..{left}z8e--z9e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("E",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.1u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("F",10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("G",10u#+cap_jut#+c#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.85u#;
+x1=x5=23/42(w-cap_jut-c); y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s-cap_jut-c; y8=y1; x8=x1-.1(w-cap_jut-c);
+S_serif(6,slab,w-s-2c-x1-cap_jut,1.5border_height);
+S_serif(7,slab,w-s-x1-cap_jut+c,7/4border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+x9r=x7e; y9r=7/4border_height-1/2cap_bar;
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+x10=x9l; x11=x9r; y10=y11=3/4cap_bar;
+fill reverse serif_edge9--z10--z11--cycle;
+%currentpicture := currentpicture shifted(-1.6u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("H",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("I",2cap_jut#+cap_stem#+2s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+endchar;
+
+beginchar("J",7u#,cap_height#,0);
+italcorr cap_height#*sind 18-1.25u#;
+x1=x4=w-cap_jut-1/2cap_stem-s;
+y1c=h; y2=y3=y4=18/53h; x2=x1r; x3=x1l;
+y5=0; x5=s+cap_drop_round;
+serif(1,cap_stem,-90,1.2cap_jut,.6cap_jut);
+fill z3--z2--reverse serif_edge1--cycle;
+x7r=x4r; y7=3cap_bar;
+penpos4(cap_stem,0);
+penpos5(cap_bar,-90);
+penpos7(2/3cap_stem,0);
+penstroke z4e{down}..{down}z7e..{left}z5e;
+x6e=s; y6=0;
+dl_drop(6,cap_drop_round,x5-s,1.3drop_round,cap_bar);
+fill dl_drop_edge6;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("K",13u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-1.87u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=cap_bar_height; x3l=w-cap_jut-.5cap_jut-cap_bar-s; y3l=h-cap_bar;
+x5=x6=x1r-.1c; y5=cap_bar_height-cap_bar; y6=y5-1.2cap_bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+A_serif(3,.9cap_bar,theta1,1.5cap_jut,.6cap_jut);
+x4l=w-s-1.3cap_jut-cap_stem; y4l=cap_bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,cap_stem,theta2,.8cap_jut,cap_jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("L",10u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=y5=y2h; x3=x2d; x5e=w-s;
+T_serif(5,cap_bar,border_height,1); x4=x5;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penstroke z3e--z4e;
+fill T_edge5 reflectedabout(z3,z4);
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar("M",13u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,.51cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,-20);
+z6=z5+whatever*dir -107; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 109; y7l=10/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("N",12u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=x2=cap_jut+1/2cap_bar+s;
+x3=w-x1; y1c=y3c=h; y2c=y4=y5=0;
+x4=x3r; x5=x3l;
+serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+A_serif(2,cap_bar,90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill A_serif_edge2--reverse serif_edge1--cycle;
+numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+theta1=angle(z5-z7);
+z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+fill z6--z1h--z7--z5{down}..{up}z4--reverse A_serif_edge3--cycle;
+unfill z1b--z1l--z1a--cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("O",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.22u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+%currentpicture := currentpicture shifted(-1.9u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("P",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.56u#;
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Q",11u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-2.22u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x12-1.5c; x12=x7l-c; y11=y12=-comma_depth;
+y9=0; x9=x1-c; y9-y10=y10-y11; x11-x10=x10-x9;
+penpos9(cap_bar,90); penpos10(cap_curve,0);
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z9e{dir -20}..tension.8..z10e..tension.8..{right}z11e--z12e;
+fill z12r..z12l..cycle;
+%currentpicture := currentpicture shifted(-1.9u,0);
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("R",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.75u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2r;
+y1c=h; y2c=0; x6=x4=x7+2.5u; x3=x1d;
+y4-y5=y5-y6; x5=x8; x9=w-s-1/2cap_bar; y9=0; y6-y8=y8-y9; x10=x6; x9-x8=6/7(x8-x10);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,-90);
+penpos6(cap_bar,-90);
+penpos8(cap_curve,-180);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penstroke z9e{left}..tension.8..{up}z8e{up}..tension.8..{left}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("S",9u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.78u#;
+x6=x7=1/2w; y6=y7=0;
+S_serif(7,cap_bar,x6-s,1.5border_height);
+y5=13/53h; x5=w-s-1/2(1.9hair);
+y4=28/53h; x4=18/38w; y3=40/53h; x3=s+c+1/2(1.9cap_bar);
+x2=.5w-c; y2=h; z1=z2;
+penpos6(cap_bar,-90);
+penpos5(1.9hair,0);
+penpos4(1.1cap_curve,90);
+penpos3(1.9hair,0);
+penpos2(cap_bar,-90);
+penstroke z6e{right}..{up}z5e{up}..tension.8..z4e..tension.8..{up}z3e..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-cap_bar,1.2border_height);
+fill S_serif_edge1;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("T",round (11u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=x2=.5w; y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+%currentpicture := currentpicture shifted(-3.4u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("U",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=cap_jut+1/2cap_stem+s;
+x3=w-s-cap_jut-1/2cap_bar;
+y1c=y3c=h; y2=y4=y5=y6=y24=y56=16/53h; x2=x1l;
+x4=x1r; x5=x3l; x6=x3r;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill z2--z4--reverse serif_edge1--cycle;
+fill z5--z6--reverse A_serif_edge3--cycle;
+x7=x1+.5(x3-x1); y7=0; x4-x24=x24-x2; x6-x56=x56-x5;
+penpos24(cap_stem,-180); penpos7(vair,-90);
+penpos56(cap_bar,0);
+penstroke z24e{down}..tension.9..{right}z7e{right}..tension.9..{up}z56e;
+penlabels(range 1 thru 7,24,56);
+%currentpicture := currentpicture shifted(-2.5u,0);
+endchar;
+
+beginchar("V",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1l=cap_jut+s; x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w-1/2cap_bar; x5=.5w+1/2cap_bar;
+y4=y5=1/2cap_bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+%currentpicture := currentpicture shifted(-3.75u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("W",17u#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x9l=.5w-.3cap_stem; x7r=w-s-cap_jut;
+y9l=y7r=y1l=h-cap_bar; x5=x9l+.5(x7r-x9l)-1/2cap_bar; x6=x9l+.5(x7r-x9l)+1/2cap_bar;
+y5=y6=y2=y3=1/2cap_bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(7,cap_bar,theta2,1.3cap_jut,cap_jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+cap_jut;
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+z2=z1l+whatever*dir theta1; x3=x2+cap_bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+%currentpicture := currentpicture shifted(-3.75u,0);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("X",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.2u#;
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("Y",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1l=cap_jut+s; x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w; y4=8/25h;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+y5c=0; x5=.5w+.5c;
+serif(5,cap_stem,90,cap_jut,cap_jut);
+x6=x5l; x7=x5r;
+z6=z1l+whatever*dir theta1;
+z7=z3r+whatever*dir theta2;
+fill z6--serif_edge5--z7--reverse A_serif_edge3--z2--reverse serif_edge1--z6&cycle;
+%currentpicture := currentpicture shifted(-3.4u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Z",9u#+1.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x6=s+1/2cap_bar; y6=y7=y8=1/2cap_bar;
+x8e=w-s; x7=x8;
+T_serif(8,cap_bar,border_height,1);
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4cap_bar;
+x4r=w-s-1/4cap_bar; y4=h-cap_bar;
+penpos4(cap_stem,0);
+penpos5(cap_stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2cap_bar;
+x3=w-s-1/2cap_bar; x1e=s+c;
+T_serif(1,cap_bar,border_height,0);
+x2=x1;
+penpos3(cap_bar,90);
+penpos2(cap_bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+currenttransform := identity;
+
+beginchar("a",9u#+c#,x_height#,0);
+x1=w-s-3/4stem; y1=h; y2=7/33h; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=w-s-bar/3; y4=8/33h;
+penpos1(stem,180);
+penpos2(stem,180);
+penpos3(1.2vair,270);
+penpos4(bar,360);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 60}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x5=x1-3/2stem; y5=h; z7=z5+whatever*dir -104; y7=-3epsilon;
+x6=s+1/2curve+c; y6=.54h; y8=.46h; z8l=whatever[z1r,z2r];
+penpos8(2bar,0);
+penpos5(vair,90);
+penpos6(curve,180);
+penpos7(vair,270);
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=h-c; z10=(x1r+c,h); z11=(x1l-c,h);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar("b",8u#+s#,asc_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(x_height*sind 14/cosd 14); x3=.5w+1/2(x_height*sind 14/cosd 14);
+y1=0; y3=x_height; y2=.54x_height; y4=.46x_height; x2=1/2curve+s; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+y5=h-bar; z5=z2+whatever*dir 76;
+serif(5,stem,-104,jut,0);
+fill z2l--z2r--reverse serif_edge5--cycle;
+fill z5e{dir 76}..z5d{left}..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("c",7.5u#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+x1=4u-1/2(h*sind 14/cosd 14); x3=4u+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; x2=1/2curve+s; x6=8u-2.5s-1/2vair; y6=9/33h;
+penpos6(vair,135); z4=z3;
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e;
+fill z6l..tension1.5..z6r..tension1.5..cycle;
+ur_drop(4,drop_round,9/8drop_round,5/4drop_round,bar);
+fill ur_drop_edge4;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("d",10u#+c#,asc_height#,0);
+x1=w-s-1/2stem; y1=h-bar; y2=11/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem; x4=w-s-1/2bar; y4=10/33x_height; y3=2epsilon;
+serif(1,stem,-104,1.5jut,0);
+penpos2(stem,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+y6=-2epsilon; y8=x_height; x7=1/2curve+s; y7=.54x_height;
+x8=x7+.5(x5-x7)+3/8(x_height*sind 14/cosd 14)+.5c;
+x6=x7+.5(x5-x7)-5/8(x_height*sind 14/cosd 14)+.5c;
+y5r=.46x_height; z5r=whatever[z1l,z2r];
+penpos6(vair,90); penpos7(curve,0);
+penpos8(vair,-90); penpos5(.7curve,180);
+penstroke z6e{left}..tension.9..{dir 76}z7e{dir 76}..{right}z8e..tension.9..{dir 256}z5e{dir 256}..{left}z6e..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("e",8u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=4/5h; x2=1/2curve+s; x4=w-1/2curve-s; z5r=z2; x6=w-s-s-1/2vair; y6=9/33h;
+penpos5(vair,-270);
+penpos6(vair,135);
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{dir 194}z5e;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("f",7u#+c#,asc_height#,desc_depth#);
+x1d=w-s; y1d=x_height; y2=7/33x_height;
+serif(1,stem,-104,1.2jut,jut);
+z2=z1+whatever*dir -104; penpos2(stem,180);
+y3l=-2/3d-c; z3l=whatever[z1f,z2l]; penpos3(1.1bar,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penstroke z2e{dir -104}..{dir -104}z3e;
+z4=z3; dl_drop(4,drop_round,1/3d,drop_round,1.1bar);
+y5=h-stem; z5=z1l+whatever*dir 80;
+penpos5(bar,0); z6=z5;
+ur_drop(6,drop_round,stem,drop_round,bar);
+fill ur_drop_edge6 rotatedaround(z5,85);
+fill dl_drop_edge4 rotatedaround(z3,76);
+fill z3l..tension1.3..z3r..tension1.3..cycle;
+fill z5l..tension1.3..z5r..tension1.3..cycle;
+fill z1l..z5l--z5r..z1r--cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("g",9u#+c#,x_height#,desc_depth#);
+currenttransform := identity slanted sind 14;
+penpos1(vair,90); penpos2(o,30);
+penpos3(curve,0); penpos4(o,-30);
+penpos5(vair,-90); penpos6(o,-150);
+penpos7(curve,-180); penpos8(o,-210);
+y3=y7=2/3h; x3=1/2curve+s+c; x7=w-3/2stem-s;
+x1=x5=x3+1/2(x7-x3); y1=3/11h; y5=h;
+y2=y8=y1+0.1(8/11h); y4=y6=y1+0.9(8/11h); x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x9=x7; y9=y7+1/2(y6-y7); y10=h; x10=x7l+c;
+x11e=w-s; y11=y10;
+ur_drop(11,.8stem,x11e-x10,drop_round,bar);
+penpos9(hair,180); penpos10(vair,90);
+penstroke z9e{up}..{right}z10e;
+fill ur_drop_edge11;
+y12=y1; x12=x1; y13=y12/2; x13=s+1/4stem+.5c;
+y14=y15=0; x14=x2r; x15=x8r; y16=y18=-d/2; x16=w-s-1/2stem;
+x18=s+.7hair; y17=-d+1/2bar; x17=s+.6bar+9/20(x16-x18); x19=x14; y19l=y14r;
+penpos12(vair,90); penpos13(1/2curve,180); penpos14(curve,270);
+z144=z14; penpos144(curve,90); penpos15(curve,90);penpos16(1/2curve,0);
+penpos17(vair,-90); penpos18(1.4hair,-180); penpos19(1.4vair,-270);
+penstroke z12e{left}..{down}z13e{down}..{right}z14e;
+penstroke z144e--z15e{right}..tension1..{down}z16e{down}..{left}z17e{left}..{up}z18e{up}..{right}z19e;
+currenttransform := identity;
+penlabels(range 1 thru 19);
+endchar;
+
+beginchar("h",10u#+s#,asc_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-11/8stem; y1=26/33x_height; y2=10/33x_height; z2=z1+whatever*dir -108;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33x_height; y3=y5=y6=0;
+x8=x2; y8=x_height; y9=bar_height-bar; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.2bar,270); penpos9(bar,0);
+penstroke z9e{dir 68}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("i",5u#,asc_height#,0);
+x1=w-s-stem; y1=x_height-bar; y2=11/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem; x4=w-s-1/2bar; y4=10/33x_height; y3=0;
+serif(1,stem,-104,jut,0);
+penpos2(stem,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+x5=x1d-c; y5=h-3/2stem; penpos5(curve,0);
+fill z5l..z5r..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("j",7u#,asc_height#,desc_depth#);
+x5=w-s-1/2stem; x1d=x5+c; y5=h-3/2stem; penpos5(curve,0);
+y1d=x_height; y2=7/33x_height; serif(1,stem,-104,jut,0);
+z2=z1+whatever*dir -104; penpos2(stem,180);
+y3l=-2/3d-c; z3l=whatever[z1f,z2l]; penpos3(1.1bar,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penstroke z2e{dir -104}..{dir -104}z3e;
+fill z1e{dir 76}..z1d{left}..cycle;
+fill z5l..z5r..cycle; z4=z3;
+dl_drop(4,drop_round,1/3d,drop_round,1.1bar);
+fill dl_drop_edge4 rotatedaround(z3,76);
+fill z3l..tension1.3..z3r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("k",10u#,asc_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,1.2jut,0);
+x1=w-s-2stem; y1=bar_height-2.5bar; y2=6/33x_height; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-bar; y4=9/33x_height; y3=y5=y6=0;
+x8=x2-stem; y8=y9=bar_height; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.1bar,270); penpos9(1.1bar,270);
+penstroke z9e{right}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+y11=x_height; x11e=w-s;
+ur_drop(11,drop_round,7/8drop_round,drop_round,1bar);
+z12=z11; x12-x10=x10-x8; y12-y10=y10-y8;
+penpos10(bar,-18); penpos12(bar,270);
+penstroke z8e{right}..{dir 72}z10e{dir 72}..{right}z12e;
+fill ur_drop_edge11;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("l",5u#,asc_height#,0);
+x1=w-s-1/2stem; y1=h-bar; y2=11/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem; x4=w-s-1/2bar; y4=10/33x_height; y3=0;
+serif(1,stem,-104,jut,0);
+penpos2(stem,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("m",14u#+c#,x_height#,0);
+x11=s+1/2stem; z12=z11+whatever*dir 76; y12=h-bar;
+y11=0; serif(12,stem,-104,jut,0); penpos11(stem,0);
+x1=w-s-9/8stem; y1=26/33h; y2=10/33h; z2=z1+whatever*dir -108;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=0;
+x5=x2; y5=y9=h; y6r=y10l=bar_height-bar; z6r=z7r+whatever*dir 76;
+y13=0; z13=z1+whatever*dir -104; x13-x7=x7-x11; y7=0;
+y8=y1; z8=z7+whatever*dir 76; x1-x5=x8-x9; z10l=whatever[z11r,z12f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos5(1.2bar,270); penpos6(bar,0);
+penpos7(stem,0); penpos8(stem,0);
+penpos9(1.2bar,90); penpos10(bar,180);
+penstroke z6e{dir 68}..{right}z5e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z11l--z11r--reverse serif_edge12--cycle;
+fill z12e{dir 76}..z12d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penstroke z10e{dir 68}..{right}z9e..z8e{dir -104}..z7e;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar("n",10u#+s#,x_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-11/8stem; y1=26/33h; y2=10/33h; z2=z1+whatever*dir -108;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y5=y6=0;
+x8=x2; y8=h; y9=bar_height-bar; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.2bar,270); penpos9(bar,0);
+penstroke z9e{dir 68}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("o",8u#+s#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=.46h; x2=1/2curve+s; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("p",9u#+s#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=x2+.5(x4-x2)-1/4(h*sind 14/cosd 14)-.5c; x3=x2+.5(x4-x2)+3/4(h*sind 14/cosd 14)-.5c; y1=0; y3=h;
+y2=.54h; y4=.46h; x2=x4-italic_o_width+c; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+y5=h-bar; z5=z2+whatever*dir 76;
+serif(5,stem,-104,jut,0); fill z5e{dir 76}..z5d{left}..cycle;
+y6=-d+bar; z6=whatever[z2,z5];
+serif(6,stem,76,.3jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("q",9u#+c#,x_height#,desc_depth#);
+x1=w-s-1/2stem; y1=h-1/2bar; y2=-d+bar; z2=z1+whatever*dir -104;
+serif(2,stem,76,1.3jut,1.3jut);
+penpos1(stem,180);
+fill z1l--z1r--serif_edge2--cycle;
+y6=0; y8=h; x7=1/2curve+s; y7=.54h;
+x8=x7+.5(x5-x7)+3/8(x_height*sind 14/cosd 14)+.5c;
+x6=x7+.5(x5-x7)-5/8(x_height*sind 14/cosd 14)+.5c;
+y5r=.46x_height; z5r=whatever[z1r,z2l];
+penpos6(vair,90); penpos7(curve,0);
+penpos8(vair,-90); penpos5(.7curve,180);
+penstroke z6e{left}..tension.9..{dir 76}z7e{dir 76}..{right}z8e..tension.9..{dir 256}z5e{dir 256}..{left}z6e..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("r",9u#,x_height#,0);
+y2=0; x2=s+1/2stem; penpos2(stem,180);
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+y3l=15/33h; z3l=whatever[z2l,z1f];
+y4=h; x4=w-s-3/4stem; z5=z4;
+penpos3(1.2bar,180); penpos4(1.1bar,90);
+penstroke z3e{dir 76}..{right}z4e;
+ur_drop(5,drop_round,3/4stem,drop_round,1.1bar);
+fill ur_drop_edge5;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("s",8u#-s#,x_height#,0);
+z4=(.5w,.55h); y2=h; y6=0; y5=9/34h;
+z2=z4+whatever*dir 78; z6=z4+whatever*dir -100;
+x5=w-s-.7stem; x3=s+.85stem; y3=27/34h;
+z34=z4+whatever*dir 150; z45=z4+whatever*dir -40;
+x34=x4-stem*sind 40; x45=x4+stem*sind 40;
+penpos2(bar,90); penpos3(.6stem,180);
+penpos34(stem,240); penpos5(.6stem,180);
+penpos6(bar,90); penpos45(stem,240);
+penstroke z2e{left}..z3e{down}..{dir -40}z34e{dir -40}..{dir -40}z45e{dir -40}..{down}z5e{down}..{left}z6e;
+z1=z2; z7=z6;
+ur_drop(1,.9drop_round,w-s-x2,drop_round,bar);
+fill ur_drop_edge1;
+dl_drop(7,drop_round,x6-s,1.2drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 12,34,45);
+endchar;
+
+beginchar("t",5u#+s#,asc_height#,0);
+x1=w-s-1/2stem-1.2jut; y1=x_height-bar; y2=9/33x_height;
+z2=z1+whatever*dir -104; z5=whatever[z2,z1]; y5=h-stem;
+x3=x2+1/2stem; x4=w-s-bar; y4=10/33x_height; y3=0;
+serif(1,stem,-104,1.2jut,1.2jut);
+penpos2(stem,180); penpos5(.95stem,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1l--z5l--z5r--z1r--cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("u",10u#,x_height#,0);
+x1=w-s-5/4stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=0; y5=8/34h;
+x5=s+1/2stem; x6=x5+stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+z7l=z5r+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("v",9u#-c#,x_height#,0);
+y2=10/33h; x2=s+1/2stem;
+x3=x2+stem; x4=w-s-1/2bar; y4=26/33h; y3=0;
+penpos2(stem,180);
+penpos3(1.1bar,270); penpos4(bar,0);
+penstroke z2e{dir -104}..{right}z3e{dir 5}..tension1.3..{dir 80}z4e;
+z7=z2+whatever*dir 76; y7=h-bar;
+serif(7,stem,-104,jut,0); z9=z4;
+fill z2r--z2l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+ul_drop(9,1.1drop_round,7/33h,.9drop_round,bar);
+fill ul_drop_edge9 rotatedaround(z4,-90);
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("w",12u#+s#,x_height#,0);
+z77=(.5w,.5h); z1=z77+whatever*dir 76; y1=h; y2=10/33h;
+z2=z1+whatever*dir -104;
+x3=x2+stem; x4=w-s-1/2bar; y4=26/33h; y3=y6=0; y5=8/34h;
+x5=s+1/2stem; x6=x5+stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,0);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 5}..tension1.3..{dir 80}z4e;
+z7l=z5r+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0); z9=z4;
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+ul_drop(9,1.1drop_round,7/33h,.9drop_round,bar);
+fill ul_drop_edge9 rotatedaround(z4,-90);
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("x",10u#+c#,x_height#,0);
+penpos1(1.2vair,90);
+penpos2(curve,0);
+penpos3(vair,-90); penpos12(curve,0);
+x1=x3-(h*sind 14/cosd 14); x3=w-s-3/4stem; y1=0; y3=h;
+y2=.54h; x2=x1-if design_size=17.32: 30/40stem else: 30/40stem fi;
+x5=w-s-4/5stem; y5=7/33h;
+penpos5(vair,135); z4=z3;
+penstroke z5e..z1e{left}..{dir 76}z2e{dir 76}..{right}z3e;
+fill z5l..tension1.5..z5r..tension1.5..cycle;
+ur_drop(4,drop_round,3/4stem,drop_round,bar);
+fill ur_drop_edge4;
+x10=w-x5; y10=26/33h; x11=w-x1; y11=h; x12=w-x2; y12=.46h;
+x13=w-x3; y13=-2epsilon; z14=z13;
+penpos10(bar,135); penpos11(bar,90);
+penpos13(bar,-90);
+penstroke z10e..z11e{right}..{dir -104}z12e{dir -104}..{left}z13e;
+fill z10l..tension1.5..z10r..tension1.5..cycle; z14=z13;
+dl_drop(14,drop_round,3/4stem,drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar("y",10u#-c#,x_height#,desc_depth#);
+x5=w-s-1/2stem; y5=h; y6=10/33h; z6=z5+whatever*dir -104;
+y3=0; y2=8/34h; x2=s+stem; x3=x2+stem;
+y7=0; z7=z6+whatever*dir -104;
+penpos5(stem,180); penpos6(stem,180);
+z8r=z7r+whatever*dir -104; y8r=-1/2d;
+z4l=whatever[z6r,z5r]; y4l=15/33h;
+penpos2(stem,180); penpos3(1.1bar,270);
+y9=-d; x9=x2l; z10=z9;
+penpos4(bar,360); penpos7(stem,180);
+penpos8(.8stem,180); penpos9(bar,90);
+penstroke z2e{dir -104}..z3e{right}..{dir 76}z4e;
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+penstroke z5e{dir -104}..z6e..z7e..z8e..{left}z9e;
+dl_drop(10,1.1stem,x9-s,1.2drop_round,bar);
+fill dl_drop_edge10; fill z10e..z10c..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("z",8u#,x_height#,0);
+y2=y3=h-1/2(.8stem); y1=y2l+1/2bar;
+x3=w-s-3/4stem; x1e=s+1/2stem; x2=x1;
+T_serif(1,bar,.8border_height,0);
+penpos3(.8stem,90); penpos2(.8stem,90);
+penstroke z2e--z3e; fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+2c;
+fill z1r--z1f--z12--z2r--cycle;
+unfill z1d{up}..z13--z12--cycle;
+x4=w-s-bar*sind 45; y4=h-bar*sind 28;
+x5=w-x4; y5=h-y4; z34=(x4,h);
+penpos4(bar,152); penpos5(bar,152);
+penstroke z4e--z5e; fill z4l..tension1.2..z4r..tension1.2..cycle;
+fill z5l..tension1.2..z5r..tension1.2..cycle;
+fill z3l--z3r--z34--cycle;
+x7=.5w; y7=.4stem; penpos7(.9stem,90);
+x8l=x7+.9stem; y8l=0; penpos8(.6stem,90);
+x9=w-s-.9stem; y9=bar; penpos9(bar,90); z10=z9;
+penstroke z5e{dir 62}..{right}z7e..z8e..z9e;
+dl_drop(10,drop_round,1.2stem,drop_round,bar);
+fill dl_drop_edge10 reflectedabout(z9l,z9r) rotatedaround(z9,28);
+fill z9r..z9l..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(hex"30",10u#,cap_height#,0);
+penpos1(vair,90);
+penpos2(cap_curve,0);
+penpos3(vair,-90);
+penpos4(cap_curve,-180);
+x1=.5w-1/2(h*sind 10/cosd 10); x3=.5w+1/2(h*sind 10/cosd 10); y1=0; y3=h;
+y2=.47h; y4=.53h; x2=1/2cap_curve+s; x4=w-1/2cap_curve-s;
+penstroke z1e{left}..tension.9..{dir 80}z2e{dir 80}..tension1.2..{right}z3e..tension.9..{dir 260}z4e{dir 260}..tension1.2..{left}z1e..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"31",10u#-3/2s#,cap_height#,0);
+y1c=0; x1g=s; y2=y3=h; x3=x2-1/2cap_stem;
+serif(1,cap_stem,72,1.5cap_jut,1.5cap_jut);
+z2=z1f+whatever*dir 72;
+y6=y7=h-cap_stem; y5=y4=y6+cap_bar; y8=y6+.3c;
+z8=z1a+whatever*dir 72;
+x7=x3-1.4stem; x6=x5=x7-.8cap_stem; x4=x7-cap_bar;
+fill serif_edge1--z2{dir 150}..{dir 210}z3{dir 230}..{left}z4--z5{left}..z6--z7..z8--cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"32",10u#,cap_height#,0);
+y2=43/53h; x3=22/37w; y3=h; x2=10/37h;
+z1=z3; x4=w-s-1/2cap_curve; y4=41/53h;
+x5=s+1/2hair; y5=6/53h; x6=x5+2cap_bar; y6=y5+1/2cap_bar;
+y7=1/2curve-1/4cap_bar; x7=.49w; x8=w-s-2cap_bar;
+y8=15/53h; penpos6(.4cap_stem,90);
+penpos7(cap_curve,90); penpos8(bar,150);
+penpos2(bar,0); penpos3(vair,-90);
+penpos4(cap_curve,180); penpos5(bar,180);
+penstroke z3e{right}..{dir -104}z4e{dir -100}.. {dir -104}z5e; %z2e{dir 76}..{right}
+penstroke z5e..z6e{dir 10}..z7e{dir -10}..{dir 60}z8e;
+fill z8r..tension1.3..z8l..tension1.3..cycle;
+ul_drop(1,cap_drop_round,x3-x2+2bar,1.8cap_curve,cap_bar);
+fill ul_drop_edge1;% rotatedaround(z2,90);
+x9=s-.1c; y9=1/2cap_bar; y10=-1/2cap_bar; x10=x9+cap_bar;
+x11=x10+cap_bar; y11=1/3cap_bar; x12=x11-2/3cap_bar; y12=3/2cap_bar;
+fill z5r..z9..z10..z11{up}..z12..{dir 10}z6l{dir 130}..{dir 190}z5r..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"33",10u#-c#,cap_height#,0);
+penpos2(vair,90); penpos5(cap_bar,-90);
+penpos4(vair,-90); penpos3(cap_curve,-180);
+x2=.5w-1/2(h*sind 14/cosd 14); y2=0; y4=cap_bar_height+c;
+z4=z2+whatever*dir 76; y5=y4-1/3cap_bar-.5c;
+y3=12/53h; x5=cap_curve+s+bar; x3=w-1.2cap_curve-s; z1=z2;
+y6=y5r; x6=x5; x7=w-s-1/2cap_curve; y7=41/53h; z8=z4+whatever*dir 82;
+y8=h; z9=z8; penpos67(cap_bar,110); penpos8(cap_bar,-90);
+penpos6(cap_bar,90); penpos7(.9cap_curve,180); z67=z4;
+penstroke z5e...{right}z4e..tension1..{dir 256}z3e{dir 256}..tension1.2..{left}z2e;
+penstroke z8e{right}..tension.9..{dir -100}z7e{dir -100}..tension.9..z67e{dir 210}..z6e;
+fill z5l..tension1.2..z6l..tension1.2..cycle;
+dl_drop(1,cap_stem,x1-s,cap_drop_round,cap_bar);
+fill dl_drop_edge1; fill z1e..z1c..cycle;
+ul_drop(9,.8cap_drop_round,x8-x5+bar,1.4cap_curve,cap_bar);
+fill ul_drop_edge9;
+penlabels(1,2,3,4,5,6,7,8,9,67);
+endchar;
+
+beginchar(hex"34",10u#,cap_height#,0);
+y1c=0; x1g=s+1/2cap_stem; y2=h-stem;
+serif(1,cap_stem,72,1.5cap_jut,1.5cap_jut);
+z2=z1+whatever*dir 72; penpos2(cap_stem,0);
+fill serif_edge1--z2r--z2l--cycle;
+z3r=whatever[z1f,z2r]; y3r=h; penpos3(.7cap_stem,0);
+penstroke z2e--z3e; y6=y7=16/53h; x7=w-2s; x6=s+1/2cap_bar;
+penpos6(1.2cap_bar,90); penpos7(1.2cap_bar,90);
+penstroke z6e--z7e; fill z6l..tension1.4..z6r..tension1.4..cycle;
+fill z7l..tension1.2..z7r..tension1.2..cycle;
+z5l=z6r; z4l=z3l; penpos4(1.2cap_bar,-20); penpos5(1.2cap_bar,-20);
+penstroke z4e--z5e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"35",10u#-c#,cap_height#,0);
+penpos2(vair,90); penpos5(cap_bar,0);
+penpos4(vair,-90); penpos3(cap_curve,-180);
+x2=.5w-1/2(h*sind 14/cosd 14); y2=0; y4=34/54h; z4=z2+whatever*dir 76;
+y5=y4-3cap_bar; y3=15/53h; x5=cap_curve+s; x3=w-1.2cap_curve-s; z1=z2;
+penstroke z5e...{right}z4e..tension1..{dir 256}z3e{dir 256}..tension1.2..{left}z2e;
+z6=z5+whatever*dir 72; y6=h-1/3cap_bar;
+penpos6(cap_bar,0); penstroke z5e--z6e;
+fill z6r..tension1.5..z6l..tension1.5..cycle;
+fill z5r..tension1.3..z5l..tension1.3..cycle;
+y7r=y6r; x7r=x6r-.05c; y8=h-4/6cap_curve;
+x8=x7+5/4cap_curve; x9=w-s-cap_bar*sind 25;
+y9=h-cap_bar*cosd 45; penpos7(cap_curve,72); penpos8(.7cap_curve,90);
+penpos9(1.2cap_bar,120); penstroke z7e{dir -18}..z8e..z9e;
+fill z9r..tension1.3..z9l..tension1.3..cycle;
+dl_drop(1,cap_stem,x1-s,cap_drop_round,cap_bar);
+fill dl_drop_edge1; fill z1e..z1c..cycle;
+penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(hex"36",10u#-s#,cap_height#,0);
+penpos1(vair,90); penpos4(.8cap_curve,0);
+penpos3(vair,-90); penpos2(cap_curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y4=38/53h; y2=.53h; x4=cap_curve+s; x2=w-1/2cap_curve-s;
+x5=.505w; y5=21/53h; penpos5(vair,90); z7=z1;
+y6r=y2+2s; z6r=z2r+whatever*dir 76; penpos6(2cap_bar,-180);
+penstroke z6e{dir 256}..{left}z5e{left}..tension.9..{dir 76}z4e{dir 76}..tension.9..{right}z3e..tension1..{dir 256}z2e{dir 256}..tension1.2..{left}z1e; z8=(.5w,.5h);
+dl_drop(7,cap_stem,x1-s,cap_drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+currentpicture := currentpicture rotatedaround(z8,180);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"37",9u#-c#,cap_height#,0);
+x1=s+1/2cap_bar; y1=36/53h; y2=.98h; z2=z1+whatever*dir 70;
+x3=16.5/34w; y4=44/53h; y3=47/53h; z4=z3+whatever*dir -45;
+x5=24/34w; y5=43/53h; x6=w-s-1/2*(3/2cap_bar); y6=y2;
+x7=8/34w; y7=1/2cap_curve;
+penpos1(cap_bar,180); penpos2(cap_bar,180);
+penpos3(.9cap_curve,45); penpos4(.9cap_curve,45);
+penpos5(2cap_bar,110); penpos6(3/2cap_bar,180);
+z67l=z6l;
+penpos7(cap_curve,180); penpos67(cap_bar,180);
+penstroke z1e--z2e;
+penstroke z1e{dir 70}..{dir -45}z3e--z4e{dir -45}..z5e..{up}z6e;
+penstroke z67e{down}..{dir -94}z7e;
+fill z7r..z7l..cycle; fill z1r..tension1.3..z1l..tension1.3..cycle;
+fill z2r..tension1.3..z2l..tension1.3..cycle;
+fill z6r..tension1.3..z6l..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"38",10u#,cap_height#,0);
+y1=0; x1=15/37w; y5=h; z5=z1+whatever*dir 78;
+y7=28/53h; z7=whatever[z1,z5]; x2=s+1/2(.6cap_stem);
+x4=w-x2; y2=13/53h; y4=43/53h; z3=z7; y6=41/53h; 2(x5-x6)=3(x4-x5);
+5(x1-x2)=4(x8-x1); y8=11/53h; penpos7(cap_stem,48);
+y67l=y7+.4cap_stem; y78=y7-cap_stem;
+z67l=z7l+whatever*dir 132; penpos67(.9cap_stem,30);
+z78=whatever[z67,z7]; penpos78(.9cap_stem,30);
+penpos1(cap_bar,-90); penpos2(.7stem,-180);
+penpos3(cap_bar,-235); penpos4(.6stem,-180);
+penpos5(cap_bar,-90); penpos6(.8stem, 0);
+penpos8(.8stem,0);
+penstroke z1e{left}..{dir 78}z2e{dir 78}..z3e..{dir 78}z4e{dir 78}..{left}z5e{left}..{down}z6e..z67e..z7e..z78e..{dir -102}z8e{dir -102}..{left}z1e;
+penlabels(1,2,3,4,5,6,7,8,67,78);
+endchar;
+
+beginchar(hex"39",10u#-s#,cap_height#,0);
+penpos1(vair,90); penpos4(.8cap_curve,0);
+penpos3(vair,-90); penpos2(cap_curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y4=38/53h; y2=.53h; x4=cap_curve+s; x2=w-1/2cap_curve-s;
+x5=.505w; y5=21/53h; penpos5(vair,90); z7=z1;
+y6r=y2+2s; z6r=z2r+whatever*dir 76; penpos6(2cap_bar,-180);
+penstroke z6e{dir 256}..{left}z5e{left}..tension.9..{dir 76}z4e{dir 76}..tension.9..{right}z3e..tension1..{dir 256}z2e{dir 256}..tension1.2..{left}z1e; z8=(.5w,.5h);
+dl_drop(7,cap_stem,x1-s,cap_drop_round,cap_bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(oct"56",cap_stem#+2s#,cap_stem#,0);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+endchar;
+
+beginchar(oct"54",cap_stem#+2s#+c#,cap_stem#,comma_depth#);
+ currenttransform := identity slanted sind 14;
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"60",cap_stem#+2s#+c#,asc_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(oct"41", cap_stem#+2s#,cap_height#,0); "Exclamation mark";
+ italcorr cap_height#*sind 18-1.53u#;
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+ x3=.5w-1/2cap_bar; x4=.5w+1/2cap_bar; y3=y4=3/2cap_stem;
+ x6=x1; x5=x2; y5=y6=h;
+ fill z6--z3..z4--z5{up}..z6&cycle;
+endchar;
+
+beginchar(hex"22",2cap_stem#+3s#+2c#,cap_height#,0);
+ z1=(s,h-1/2cap_stem); z2=(x1+cap_stem+c,h-1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-cap_stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture shifted((sind 18)*-w*1.3,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"5C",2cap_stem#+3s#+2c#,cap_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(x1+cap_stem+c,1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+currenttransform := identity;
+
+beginchar(hex"7b",10u#-1.5c#,x_height#,0); "En dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"3D",10u#+1.5c#,x_height#,0);
+ z1=(s+1/2bar,bar_height-3c); z2=(w-s-1/2bar,bar_height-3c);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+3c); z4=(w-s-1/2bar,bar_height+3c);
+ penpos3(bar,90); penpos4(bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"23",13u#,asc_height#,body_depth#);
+ z1=(s+1/2bar,bar_height-5c); z2=(w-s-1/2bar,bar_height-5c);
+ penpos1(1.5bar,90); penpos2(1.5bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+5c); z4=(w-s-1/2bar,bar_height+5c);
+ penpos3(1.5bar,90); penpos4(1.5bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ z5=(.5w-5c,bar_height); z6=(.5w+5c,bar_height);
+ z7=z5+whatever*dir 76; y7=h; z8=whatever[z5,z7]; y8=-d;
+ penpos7(1.5bar,0); penpos8(1.5bar,0);
+ fill z7l{up}..{down}z7r--z8r{down}..{up}z8l--z7l&cycle;
+ z9=z6+whatever*dir 76; y9=h; z10=whatever[z6,z9]; y10=-d;
+ penpos9(1.5bar,0); penpos10(1.5bar,0);
+ fill z9l{up}..{down}z9r--z10r{down}..{up}z10l--z9l&cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"7c",14u#,x_height#,0); "Em dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(oct"55",2cap_jut#+cap_stem#+2s#,x_height#,0); "hyphen";
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"5F",1.1stem#+2s#,x_height#+2.1stem#,0);
+ z1=(.5w,h); z2=(.5w,h-1.1stem);
+ fill z1..z2..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7E",7u#,body_height#,0);
+ pickup pencircle xscaled .9pt yscaled .2pt rotated 55;
+ z4=(w-s-c,h-s); x1=s+c; y1=y4-1/2cap_stem;
+ y2-y1=y4-y3=3(y4-y1); z2-z1=z4-z3=whatever * dir 55;
+ draw z1..controls z2 and z3..z4;
+ penlabels(1,2,3,4);
+endchar;
+
+currenttransform := identity slanted sind 14;
+beginchar(hex"3C",7u#-2c#,x_height#,0); "looks like <<";
+ italcorr x_height#*sind 18-1.55u#;
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ %currentpicture := currentpicture shifted(-1.3u,0);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3E",7u#-2c#,x_height#,0);
+ italcorr x_height#*sind 18-1.8u#;
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ z10=(.5w,.5h);
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ currentpicture := currentpicture rotatedaround(z10,180) shifted((sind 18)*w*1.3,0);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3B",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ italcorr x_height#*sind 18-1.35u#;
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+3/2c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ z8=(s,h-1/2cap_stem); z9=(w-s,h-1/2cap_stem);
+ fill z8..z9..cycle;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(hex"3A",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ italcorr x_height#*sind 18-1.35u#;
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ fill z1..z2..cycle;
+ penlabels(1,2,3,4);
+ z3=(s,1/2cap_stem); z4=(w-s,1/2cap_stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2B",2cap_jut#+cap_stem#+2s#,x_height#,0);
+ italcorr x_height#*sind 18-2.07u#;
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ x3=x4=.5w; y3=y2+1/2(x2-x1); y4=y2-1/2(x2-x1);
+ penpos3(1.8bar,0); penpos4(1.8bar,0);
+ penstroke z3e--z4e;
+ fill z3r..z3l..cycle; fill z4r..z4l..cycle;
+ %currentpicture := currentpicture shifted(-u,0);
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2F",2s#+bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.72u#;
+ z1=(.5w,h-.5bar); z2=(.5w,-d+.5bar);
+ %pickup pencircle xscaled bar yscaled bar;
+ penpos1(bar,0); penpos2(bar,0);
+ penstroke z1e--z2e; fill z1r..z1l..cycle;
+ fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"27",cap_stem#+2s#+c#,x_height#+2.1stem#,0);
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ z6=(.5w-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ currentpicture := currentpicture shifted((sind 18)*-w*1.3,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"28",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.78u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"29",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-3.75u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180) shifted((sind 18)*w*1.3,0);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"0E",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.8u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"0F",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180) shifted((sind 18)*w*1.3,0);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"5B",2s#+3cap_bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.72u#;
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x2,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z1r..z1l..cycle; fill z6r..z6l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"5D",2s#+3cap_bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.68u#;
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x1,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z2r..z2l..cycle; fill z5r..z5l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"B9",16u#,cap_height#,0);
+ italcorr cap_height#*sind 18-2.65u#;
+ x1=x2=cap_jut+1/2cap_bar+s+cap_stem;
+ x3=w-x1-1/2cap_stem; y1c=h; y4=y5=0;
+ x4=x3r; x5=x3l; y2=12/53h; y3=h-y2;
+ x8=x2-stem; y8=0; z9=z8;
+ dl_drop(9,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill dl_drop_edge9; penpos8(bar,-90);
+ serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+ penpos2(bar,0); penpos3(bar,0);
+ penstroke z2e{down}..{left}z8e;
+ fill z2l--z2r--reverse serif_edge1--cycle;
+ numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+ theta1=angle(z5-z7); x10=x3+stem; y10=h; z11=z10;
+ penpos10(bar,-90); penstroke z3e{up}..{right}z10e;
+ ur_drop(11,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill ur_drop_edge11;
+ z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+ fill z6--z1h--z7--z5{down}..{up}z4--z3r--z3l--cycle;
+ unfill z1b--z1l--z1a--cycle;
+ y12=y13=2cap_bar; x12=x4+2cap_bar+s; x13=w-2s;
+ penpos12(.4stem,90); penpos13(.4stem,90);
+ penstroke z12e--z13e; y16=y11d-4.5cap_bar;
+ x13-x14=x14-x12; x16=x14; y14=y13+4.5cap_bar;
+ x17=w-s-.2stem; x17-x16=x16-x15; y16-y15=y15-y14;
+ y17=y15; penpos17(.7stem,0); penpos16(bar,90);
+ penpos15(.7stem,180); penpos14(bar,270);
+ penstroke z17e{up}..{left}z16e{left}..{down}z15e{down}..{right}z14e{right}..{up}z17e;
+ fill z12l..tension1.2..z12r..tension1.2..cycle;
+ fill z13l..tension1.2..z13r..tension1.2..cycle;
+ penlabels(range 1 thru 17);
+endchar;
+
+beginchar(hex"24",9u#-s#,body_height#,body_height#-cap_height#);
+ italcorr body_height#*sind 18-2.45u#;
+ x6=x7=1/2w-c; y6=y7=0;
+ dl_drop(7,cap_drop_round,x6-s,1.5drop_round,cap_bar);
+ y5=12/53cap_height; x5=w-s-1/2(1.9hair);
+ y4=1/2cap_height; x4=19/38w; y3=41/53cap_height; x3=s+1/2(1.9cap_bar);
+ x2=.5w+c; y2=cap_height; z1=z2;
+ penpos6(cap_bar,-90); penpos5(1.9hair,0);
+ penpos4(1.1cap_curve,90); penpos3(1.9hair,0);
+ penpos2(cap_bar,-90);
+ penstroke z6e{right}..z5e{up}..tension.8..z4e..tension.8..{up}z3e..{right}z2e;
+ fill dl_drop_edge7;
+ ur_drop(1,cap_drop_round,w-s-x2,1.5drop_round,cap_bar);
+ fill ur_drop_edge1;
+ z8=(.5w,h); z9=(.5w,-d);
+ penpos8(cap_bar,0); penpos9(cap_bar,0);
+ penstroke z8e--z9e;
+ fill z9r..z9l..cycle; fill z8r..z8l..cycle;
+ %currentpicture := currentpicture shifted(-.6u,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"25",12u#,asc_height#,0);
+italcorr asc_height#*sind 18-3.2u#;
+penpos1(vair,90); penpos2(.6curve,0);
+penpos3(vair,-90); penpos4(.6curve,-180);
+y1=.55h; y3=h; y3-y4=y4-y1; y2=y4; x2=1/4curve+s; x4=5/2curve+s;
+x4-x1=x1-x2; x3=x1;
+penstroke z1e{left}..tension.9..{up}z2e{up}..tension1.2..{right}z3e..tension.9..{down}z4e{down}..tension1.2..{left}z1e..cycle;
+penpos5(vair,90); penpos6(.6curve,0);
+penpos7(vair,-90); penpos8(.6curve,-180);
+y5=0; y7=.45h; y7-y8=y8-y5; y6=y8; x8=w-1/4curve-s; x6=w-5/2curve-s;
+x8-x5=x5-x6; x7=x5;
+penstroke z5e{left}..tension.9..{up}z6e{up}..tension1.2..{right}z7e..tension.9..{down}z8e{down}..tension1.2..{left}z5e..cycle;
+x9l=x7; y9=h; x10r=x1; y10=0;
+penpos9(1.2bar,0); penpos10(1.2bar,0);
+penstroke z9e--z10e;
+%currentpicture := currentpicture shifted(-1.5u,0);
+penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"26",14u#,cap_height#,0);
+italcorr cap_height#*sind 18-3.1u#;
+x4=x8=x3+.5curve; y6=0; y2=h; x2=x3+1.3cap_curve;
+y7=13/53h; y5=9/53h; x5=x7+3.5cap_curve; x6=x7+1.8cap_curve;
+y4=y8=30/53h; y1=44/53h; y3=42/53h; x3=4s+curve;
+x1=x3+2.1cap_curve; x7=s+1/2cap_curve;
+x10=w-s; y10=9/53h; x10-x9=x9-x5; y9=1/5cap_curve;
+th:=angle(z4-z5)+5; th1:=th-11; x11h=w-s-c; y11h=y1-4s;
+A_serif(11,cap_bar,-110,cap_jut,cap_jut); z12l=z11a;
+penpos6(cap_bar,-90); penpos5(cap_stem,45);
+penpos4(cap_stem,45); penpos3(2.5hair,0);
+penpos2(cap_bar,-90); penpos1(2hair,-180);
+penpos7(cap_curve,-180); penpos8(cap_bar,-250);
+penpos9(.5cap_curve,70); penpos10(cap_bar,150);
+penpos12(cap_bar,0);
+penstroke z10e..z9e..z5e{dir th}..{dir th1}z4e..tension.9..{up}z3e{up}..tension1..z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e{dir 8}..{dir 70}z12e;
+fill z12l--z12r..reverse A_serif_edge11--cycle;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 12);
+endchar;
+currenttransform := identity;
+
+beginchar(hex"40",14u#,x_height#+2curve#,2curve#);
+a_width:=9u+c-2s;
+x1=2s+a_width-s-3/4stem+1.5curve; y1=x_height; y2=7/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=3s+a_width+1.5curve; y4=15/33x_height;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.2vair,270); penpos4(bar,360);
+x5=x1-3/2stem; y5=x_height; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c+1.5curve; y6=.54x_height; y8=.46x_height; z8l=whatever[z1r,z2r];
+x13=x5; y13=h-1/2bar; x14=s+1/2bar; y14=y6; y15=-d+1/2bar; x15=x7;
+x16=x4; y16=-d+3bar; penpos7(vair,270); penpos16(bar,270);
+penpos13(bar,90); penpos14(bar,180); penpos15(bar,270);
+penpos8(2bar,0); penpos5(vair,90); penpos6(curve,180);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 80}z4e..z13e{left}..z14e..{right}z15e..z16e;
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=x_height-c; z10=(x1r+c,x_height); z11=(x1l-c,x_height);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+fill z16r..z16l..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar(hex"12",2cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=s+.45cap_stem*cosd 45;
+x2=w-s+cap_bar*cosd 45; z2=z1+whatever*dir -45;
+penpos1(.9cap_stem,45); penpos2(cap_bar,45);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"13",2cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=w-s-.45cap_stem*cosd 45;
+x2=s-cap_bar*cosd 45; z2=z1+whatever*dir -135;
+penpos1(.9cap_stem,135); penpos2(cap_bar,135);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"3F",8u#+c#,cap_height#,0);
+ x1=s+1/2cap_stem; y1=1/2cap_stem;
+ penpos1(cap_stem,0);
+ fill z1r..z1l..cycle;
+ y2=cap_stem+4/5cap_bar; z2=z1+whatever*dir 78;
+ z3l=z2l+whatever*dir 78; y3l=21/53h;
+ penpos2(cap_bar,0); penpos3(1.3cap_bar,0);
+ penstroke z2e--z3e;
+ z4r=z3l; penpos4(cap_bar,90);
+ y5=y4; x5=x4+2cap_bar; penpos7(cap_bar,-90);
+ x6=w-s-1/2cap_curve; y6=35/51h; x7=18/31w; y7=h;
+ penpos5(cap_bar,90); penpos6(cap_curve,180); z8=z7;
+ penstroke z4e--z5e{right}..tension1.2..{dir 78}z6e{dir 78}..tension1.1..{left}z7e;
+ ul_drop(8,.8cap_drop_round,x7-x3,cap_curve,cap_bar);
+ fill ul_drop_edge8;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"10",5u#,asc_height#,0);
+x1=w-s-stem; y1=x_height-bar; y2=11/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem; x4=w-s-1/2bar; y4=10/33x_height; y3=0;
+serif(1,stem,-104,jut,0);
+penpos2(stem,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"11",7u#-c#,asc_height#,desc_depth#);
+x1d=w-s; y1d=x_height; y2=7/33x_height; serif(1,stem,-104,jut,0);
+z2=z1+whatever*dir -104; penpos2(stem,180);
+y3l=-2/3d-c; z3l=whatever[z1f,z2l]; penpos3(1.1bar,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penstroke z2e{dir -104}..{dir -104}z3e;
+fill z1e{dir 76}..z1d{left}..cycle; z4=z3;
+dl_drop(4,drop_round,1/3d,drop_round,1.1bar);
+fill dl_drop_edge4 rotatedaround(z3,76);
+fill z3l..tension1.3..z3r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"2A",3cap_stem#+3s#,body_height#,0);
+ x1=x2=x3=x4=.5w; y1=h-1/2stem; y2=y1-cap_stem; y3=y2-bar; y4=y3-bar;
+ penpos1(stem,0); penpos2(cap_bar,0); penpos3(2cap_bar,0);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle;
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,60);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,120);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,180);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,240);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,300);
+ penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"5E",6u#,body_height#,0);
+ x1=s+.45cap_bar*cosd 45; x2=w/2; y2=h-bar;
+ z1=z2+whatever*dir -135; x3=w-x1; z3=z2+whatever*dir -45;
+ penpos1(bar,135); penpos2(2bar,90); penpos3(bar,45);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"16",6u#,body_height#,0);
+ x1=s; x2=w-x1; y1=y2=h-4bar;
+ penpos1(.8bar,90); penpos2(.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7F",2stem#+4s#,x_height#+2.1stem#,0);
+ z1=(s+.5stem,h); z2=(s+.5stem,h-stem);
+ fill z1..z2..cycle;
+ z3=(w-s-.5stem,h); z4=(w-s-.5stem,h-stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+ligtable "7":
+ "8" kern -kk#,
+ "A" kern -kkk#,
+ CYR_A kern -kkk#,
+ "f" kern -kk#,
+ "j" kern -kkk#,
+ "g" kern -kkk#,
+ CYR_el kern -kkk#,
+ CYR_em kern -kkk#,
+ CYR_u kern -k#,
+ CYR_er kern -k#,
+ CYR_ya kern -kk#,
+ "c" kern -k#,
+ "q" kern -k#,
+ "p" kern -k#;
+
+ligtable CYR_A: "A":
+ CYR_O kern -k#,
+ CYR_ES kern -k#,
+ CYR_TE kern -k#,
+ CYR_U kern -kk#,
+ CYR_EF kern -k#,
+ CYR_CHE kern -kk#,
+ CYR_HARD_SIGN kern -k#,
+ CYR_che kern -k#,
+ "W" kern -kkk#,
+ "V" kern -kkk#,
+ "Y" kern -kk#,
+ "T" kern -k#;
+
+ligtable CYR_GHE: CYR_TE: "T":
+ CYR_A kern -kk#,
+ CYR_DE kern -k#,
+ CYR_EL kern -kk#,
+ "l" kern kk#,
+ "t" kern k#,
+ "i" kern k#,
+ "k" kern kk#,
+ "b" kern kk#,
+ "h" kern kk#;
+
+ligtable CYR_E: CYR_YU:
+ CYR_U kern -k#,
+ CYR_be kern k#,
+ CYR_te kern kk#,
+ CYR_o kern k#,
+ CYR_pe kern k#,
+ CYR_er kern k#,
+ CYR_ka kern k#,
+ CYR_en kern k#,
+ CYR_che kern kk#,
+ CYR_sha kern kk#,
+ CYR_yu kern k#,
+ CYR_u kern k#,
+ "b" kern k#,
+ "t" kern kk#,
+ CYR_HA kern -k#;
+
+ligtable CYR_O: CYR_EF: "D": "O": "Q":
+ CYR_yeru kern k#,
+ CYR_pe kern k#,
+ CYR_en kern k#,
+ CYR_o kern k#,
+ CYR_be kern k#,
+ CYR_HA kern -k#,
+ CYR_te kern kk#,
+ CYR_ef kern k#,
+ CYR_er kern k#,
+ CYR_ka kern k#,
+ CYR_che kern kk#,
+ CYR_sha kern kk#,
+ CYR_yu kern k#,
+ CYR_u kern k#,
+ "o" kern k#,
+ "e" kern k#,
+ "q" kern k#,
+ "l" kern k#,
+ "p" kern k#,
+ "t" kern k#,
+ "u" kern kk#,
+ "b" kern k#,
+ "X" kern -k#;
+
+ligtable CYR_ER: "P":
+ CYR_A kern -kk#,
+ CYR_el kern -k#,
+ CYR_te kern k#,
+ CYR_pe kern k#,
+ "p" kern k#,
+ CYR_ka kern k#,
+ CYR_en kern k#,
+ CYR_che kern kk#,
+ CYR_sha kern kk#,
+ CYR_yu kern k#,
+ CYR_u kern k#,
+ "i" kern k#,
+ "b" kern k#,
+ "u" kern k#,
+ "l" kern k#,
+ "r" kern k#;
+
+ligtable CYR_ES: "C":
+ CYR_i kern kk#,
+ CYR_pe kern k#,
+ CYR_ve kern k#,
+ "7" kern kk#,
+ "l" kern kk#,
+ "n" kern k#,
+ "h" kern k#,
+ CYR_o kern k#;
+
+ligtable CYR_EN:
+ CYR_i kern k#;
+
+ligtable CYR_U:
+ CYR_A kern -kkk#,
+ CYR_O kern -k#,
+ CYR_ES kern -k#,
+ CYR_EF kern -k#;
+
+ligtable CYR_HA: "X":
+ CYR_ES kern -k#,
+ CYR_EF kern -k#,
+ CYR_O kern -k#,
+ "O" kern -k#,
+ "Q" kern -k#,
+ "C" kern -k#,
+ "G" kern -k#;
+
+ligtable CYR_be:
+ CYR_a kern -kk#,
+ CYR_o kern -kk#,
+ "a" kern -kk#,
+ "o" kern -kk#,
+ "e" kern -kk#,
+ "c" kern -k#,
+ "x" kern -kk#,
+ "p" kern -kk#,
+ CYR_ie kern -kk#,
+ CYR_ze kern -kk#,
+ CYR_el kern -kk#,
+ CYR_em kern -kk#,
+ CYR_es kern -k#,
+ CYR_ef kern -k#,
+ CYR_ha kern -kk#,
+ CYR_e kern -kk#,
+ CYR_ye kern -k#,
+ CYR_ya kern -kk#,
+ CYR_yeru kern -k#,
+ CYR_ve kern -k#,
+ CYR_ghe kern -kk#,
+ CYR_de kern -k#,
+ CYR_zhe kern -kk#,
+ CYR_i kern -k#,
+ CYR_ka kern -kk#,
+ CYR_en kern -kk#,
+ CYR_pe kern -kk#,
+ CYR_er kern -kk#,
+ CYR_u kern -kk#,
+ "y" kern -kk#,
+ CYR_tse kern -kk#,
+ CYR_che kern -k#,
+ CYR_sha kern -k#,
+ CYR_shcha kern -k#,
+ CYR_soft_sign kern -k#,
+ CYR_yu kern -kk#;
+
+ligtable CYR_de:
+ CYR_em kern -kk#,
+ CYR_a kern -kk#,
+ "a" kern -kk#,
+ "c" kern -kk#,
+ "p" kern -kk#,
+ "o" kern -k#,
+ "e" kern -k#,
+ "n" kern -kk#,
+ CYR_zhe kern -kk#,
+ CYR_ze kern -kk#,
+ CYR_el kern -kkk#,
+ CYR_pe kern -kk#,
+ CYR_er kern -kk#,
+ CYR_es kern -kk#,
+ CYR_u kern -kk#,
+ CYR_ha kern -kk#,
+ CYR_ya kern -kk#,
+ CYR_be kern -k#,
+ CYR_ve kern -k#,
+ CYR_ghe kern -k#,
+ CYR_ie kern -k#,
+ CYR_ye kern -k#,
+ CYR_ka kern -k#,
+ CYR_en kern -k#,
+ CYR_o kern -k#,
+ CYR_ef kern -k#,
+ CYR_tse kern -k#,
+ CYR_sha kern -k#,
+ CYR_hard_sign kern -k#,
+ CYR_e kern -k#,
+ CYR_yu kern -k#;
+
+ligtable CYR_ghe:
+ CYR_el kern -k#;
+
+ligtable CYR_pe: "n":
+ "y" kern -k#,
+ CYR_u kern -k#,
+ "f" kern -kk#,
+ "j" kern -kk#,
+ "g" kern -k#;
+
+ligtable CYR_te:
+ CYR_em kern -k#,
+ CYR_ie kern -k#,
+ CYR_el kern -kkk#;
+
+ligtable CYR_u: "y":
+ CYR_el kern -k#,
+ CYR_em kern -k#,
+ CYR_ie kern -k#,
+ CYR_ka kern -k#,
+ CYR_ya kern -k#,
+ CYR_ye kern -k#,
+ "f" kern -kk#,
+ "j" kern -kk#;
+
+ligtable "I": "H": "N": "U":
+ "l" kern kk#,
+ "t" kern k#,
+ "i" kern k#,
+ "k" kern kk#,
+ "b" kern kk#,
+ "h" kern kk#;
+
+ligtable "L":
+ "T" kern -kk#,
+ "W" kern -k#,
+ "V" kern -k#,
+ "Y" kern -kk#;
+
+ligtable "S":
+ "b" kern k#,
+ "c" kern k#,
+ "l" kern k#,
+ "t" kern k#,
+ "j" kern -k#,
+ "o" kern k#;
+
+ligtable "V": "W":
+ "A" kern -kkk#,
+ "l" kern kk#,
+ "t" kern k#,
+ "i" kern k#,
+ "k" kern kk#,
+ "b" kern kk#,
+ "h" kern kk#;
+
+ligtable "d":
+ "f" kern -kk#,
+ "g" kern -k#,
+ "j" kern -kk#;
+
+ligtable "f":
+ "g" kern -k#,
+ "f" kern -kk#,
+ "a" kern -k#,
+ "c" kern -k#,
+ "d" kern -k#,
+ "e" kern -k#,
+ "o" kern -k#,
+ "q" kern -k#,
+ "r" kern -k#,
+ "s" kern -k#,
+ "x" kern -k#,
+ "z" kern -k#,
+ "j" kern -k#;
+
+ligtable "g":
+ "i" kern k#,
+ "u" kern k#,
+ "t" kern k#,
+ "f" kern -k#,
+ "v" kern k#,
+ "w" kern k#;
+
+ligtable "o": "b": "p": "e":
+ "W" kern -kkk#,
+ "V" kern -kkk#,
+ "X" kern -kk#,
+ "e" kern k#,
+ "f" kern -kk#,
+ "j" kern -kk#,
+ "o" kern k#;
+
+ligtable "r":
+ "g" kern -k#,
+ "a" kern -k#;
+
+ligtable "s": "z":
+ "f" kern -kk#,
+ "j" kern -kk#;
+
+ligtable "t":
+ "f" kern -k#,
+ "a" kern -k#;
+
+ligtable "v": "w":
+ "f" kern -kk#,
+ "g" kern -k#,
+ "j" kern -kk#;
+
+ligtable "c": CYR_es:
+ "j" kern -kk#;
+
+ligtable "x": CYR_ha:
+ CYR_el kern -kk#,
+ CYR_em kern -kk#,
+ "j" kern -kk#;
+
+ligtable oct"55":
+ oct"55" =: hex"7b";
+ligtable hex"7b":
+ oct"55" =: hex"7c";
+end
diff --git a/fonts/obnov/obnit7.mf b/fonts/obnov/obnit7.mf
new file mode 100644
index 0000000000..cdfe287034
--- /dev/null
+++ b/fonts/obnov/obnit7.mf
@@ -0,0 +1,3564 @@
+%written by Basil Solomykov, Russia
+%(C) Copyright 2011 LPPL (LaTeX Project Public License)
+%Font Ordinary New (Obyknovennaya novaya), Italic
+
+design_size := 7pt#;
+o# := .32pt#;
+u# := 15/35pt#;
+bar# := 7.5/36pt#;
+slab# := 7.5/36pt#;
+cap_bar# := 7.5/36pt#;
+vair# := 7.5/36pt#;
+hair# := 7.5/36pt#;
+jut# := 15/36pt#;
+cap_jut# := 20/36pt#;
+stem# := 23/36pt#;
+curve# := 23.7/36pt#;
+cap_stem# := 27/36pt#;
+cap_curve# := 27.5/36pt#;
+s# := .32pt#;
+c# := .16pt#;
+
+input obn_lcyw_code.mf
+font_identifier "OBNIT";
+mode_setup;
+clear_pen_memory;
+
+font_size design_size*pt#;
+asc_height# := 24/36*design_size*pt#;
+cap_height# := 24/36*design_size*pt#;
+body_height# := 27/36*design_size*pt#;
+x_height# := 15.4/36*design_size*pt#;
+desc_depth# := 8/36*design_size*pt#;
+body_depth# := 9/36*design_size*pt#;
+comma_depth# := 5/36*design_size*pt#;
+x_depth# := 4/5comma_depth#;
+bar_height# := .52x_height#;
+cap_bar_height# := .52cap_height#;
+cap_bar2_height# := .45cap_height#;
+border_height# := comma_depth#;
+cap_drop_round# := 4*slab#;
+drop_round# := 6/8cap_drop_round#;
+
+bracket# := pt#;
+
+font_slant sind 36;
+font_x_height x_height#;
+font_normal_space 9u#;
+font_normal_stretch 4u#;
+font_normal_shrink 2u#;
+font_quad 16u#;
+font_extra_space 6u#;
+
+k# := .8u#;
+kk# := 1.5u#;
+kkk# := 3u#;
+
+serif_darkness := 1/30;
+define_pixels(bracket,cap_o_width,sss_width,css_width);
+define_pixels(c,s,cap_bar_height,cap_bar2_height);
+define_pixels(border_height,A_bracket,cap_drop_round,x_depth,drop_round);
+define_whole_blacker_pixels(stem,cap_stem,curve,cap_curve,bar,slab,cap_bar);
+define_good_x_pixels(hair); define_good_y_pixels(vair);
+define_whole_pixels(asc_height,cap_height,x_height,u,desc_depth,comma_depth,bar_height,body_height,body_depth,u,o,cap_jut,jut);
+%define_corrected_pixels();
+lowres_fix(stem,curve) 1.2;
+lowres_fix(cap_stem,cap_curve) 1.2;
+if jut=cap_jut: jut:=jut-1; fi
+
+def serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g if left_jut=0: -1/2slab fi +1/2slab; x$d=x$e=x$h if right_jut=0: +1/2slab fi-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut; %п я─п╟п╧п╫п╦п╣ я┌п╬я┤п╨п╦ п╥п╟п╨я─я┐пЁп╩п╣п╫п╦п╧
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def serif_edge suffix $ =
+(serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse serif_bracket($f,$r,$e)) enddef;
+
+def serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...serif_darkness[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def T_serif(suffix $)(expr slab, bord_height, direction)= %Direction: 0-left, 1-right;
+penpos$(slab,if direction=1: - fi 90);
+x$=x$a=x$g; y$g-y$=y$-y$a=1/2slab;
+x$b=x$a + if direction=0: - fi .882bord_height; y$b=y$d=y$c+1/2slab;
+x$c=x$b + if direction=0: - fi 1/2slab; y$c=y$a-bord_height;
+x$d=x$e=x$b + if direction=0: - fi slab;
+y$e=y$g-1/2slab; y$f=y$g; x$f=x$c;
+labels($a,$b,$c,$d,$e,$f,$g) enddef;
+
+def T_edge suffix $ =
+(z$a..{down}z$b..z$c..z$d--z$e{up}..z$f--z$g--cycle) enddef;
+
+def A_serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g+1/2slab; x$d=x$e=x$h-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut; %п я─п╟п╧п╫п╦п╣ я┌п╬я┤п╨п╦ п╥п╟п╨я─я┐пЁп╩п╣п╫п╦п╧
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def A_serif_edge suffix $ =
+(A_serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse A_serif_bracket($f,$r,$e)) enddef;
+
+def A_serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...0.6[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def ur_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a= 1/2slab;
+x$e=x$a + drop_length; y$e=y$f- drop_height;
+x$d=x$e - 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e - drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d - 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ur_drop_edge suffix $ =
+(z$f{right}..tension.9..{down}z$e{down}..{left}z$d{left}..{up}z$c{up}..z$b...{left}z$a--cycle) enddef;
+
+def ul_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$f- drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d + 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ul_drop_edge suffix $ =
+(z$f{left}..tension.9..{down}z$e{down}..{right}z$d{right}..{up}z$c{up}..z$b...{right}z$a--cycle) enddef;
+
+def dl_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, -90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$a + drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e + 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d - drop_round); x$b=x$d + 1/90drop_round;
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def dl_drop_edge suffix $ =
+(z$a{left}..tension.9..{up}z$e{up}..{right}z$d{right}..{down}z$c..{dir 250}z$b{dir -80}..{right}z$f--cycle) enddef;
+
+def S_serif (suffix $)(expr serif_slab, serif_length, serif_height)=
+%penpos$(serif_slab,90);
+x$a=x$i=x$; y$i=y$+1/2serif_slab; y$a=y$-1/2serif_slab;
+x$f=x$e=x$a+serif_length; y$f=y$g-1/2serif_slab; y$e=y$c=y$d+1/2serif_slab;
+x$g=x$f-1/2serif_slab; y$g=y$i-1/2serif_slab;
+y$h=y$f-1/4serif_slab; x$h=x$g-serif_slab;
+x$c=x$e-serif_slab; x$d=x$e-1/2serif_slab; y$d=y$g-serif_height;
+x$b=x$h-6/18serif_length; y$b=y$h-1/2slab;
+labels ($a,$b,$c,$d,$e,$f,$g,$h,$i) enddef;
+
+def S_serif_edge suffix $ =
+(z$a{right}...z$b..{dir -80}z$c..z$d..z$e--z$f{up}..z$g{left}..z$h{dir 150}..{left}z$i--cycle) enddef;
+
+currenttransform := identity slanted sind 18;
+beginchar(CYR_A,13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar(CYR_BE,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.6u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=y5=h-1/2slab;
+y1c=h; y2c=0; x5e=w-s-cap_stem;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h; x4=w-s-cap_stem-border_height;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_VE,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.15u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+css_width := x8 - x2r; save css_width;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar(CYR_GHE,9u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.85u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; x3=x4+2u;
+y5=y3; x5e=w-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_DE,12u#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-1.05u#;
+x10e=w-s; y10c=-d;
+y4c=h; x4h=w-s-1/2slab;
+x9=x4; y9c=0;
+x3=x8=x9d; y8=y7=1/2cap_bar; y3=y2=h-y8;
+x6e=s; y6=y10; x7=border_height+s;
+y5=y9; x5g=s+.5u; y1=y4; x1=x5+1.5u;
+x2=x1c;
+A_serif(1,1.2cap_bar,-96,10/7cap_jut,cap_jut);
+A_serif(5,1.2cap_bar,81,6/7cap_jut,cap_jut);
+serif(4,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+penpos2(cap_bar,90);
+penpos3(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_bar,90);
+penstroke z7e--z8e; penstroke z2e--z3e;
+fill A_serif_edge5...reverse A_serif_edge1...cycle;
+fill serif_edge9--reverse serif_edge4--cycle;
+T_serif(6,slab,border_height,0);
+T_serif(10,slab,border_height,1);
+fill T_edge6;
+fill T_edge10;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_IE,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.19u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_YE,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.19u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+x12=x13=x2r; y12=h+1/4cap_stem; y13=y12+cap_stem;
+x14=x15=x12+2cap_stem; y14=y12; y15=y13;
+fill z12..z13..cycle; fill z14..z15..cycle;
+penlabels(range 1 thru 15);
+endchar;
+
+beginchar(CYR_ZHE,round (16u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-1.16u#;
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; y7=y4=y10=y11=cap_bar_height; x4=x7-1.5u;
+x10=x8r; x11=x10+1.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+x6=s; y6=0; y4-y5=y5-y6; x4-x5=x5-x6;
+penpos7(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,90);
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z6e{right}..tension.8..{up}z5e{up}..tension.8..{right}z4e--z7e;
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+x3=x5+1/2cap_stem; y2=h; x4-x3=x3-x2; y2-y3=y3-y4;
+penpos3(hair,0);
+penpos2(cap_bar,90);
+penstroke z4e{left}..tension.8..{up}z3e{up}..tension.8..{left}z2e;
+y1=h; x1a=x2; fill z6l..z6r..cycle;
+ul_drop(1,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ul_drop_edge1; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ZE,10u#,cap_height#,0);
+italcorr cap_height#*sind 18-1.95u#;
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height;
+x4=x6-3/2cap_stem; x5=x4-3u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3c,1.4border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.5cap_drop_round,slab);
+fill dl_drop_edge8;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_I,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-30); penpos6(cap_bar,-30);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar(CYR_SHORT_I,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-30); penpos6(cap_bar,-30);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+y7d=h+1.5cap_drop_round; z7d=z1r+whatever*dir 78;
+dl_drop(7,.95cap_drop_round,1.3stem,.9cap_drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+z8=z7; y9=y7d-2bar; z9=z3+whatever*dir 105;
+penpos8(bar,90); penpos9(bar,135);
+penstroke z8e{right}..tension1.3..z9e;
+fill z9l..tension1.3..z9r..tension1.3..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_KA,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.16u#;
+x8g=x9g=s; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+y10=y11=cap_bar_height;
+x10=x8r; x11=x10+2.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_EL,13u#+1/2s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.8cap_drop_round; y3=1.1cap_drop_round;
+dl_drop(1,1.1cap_drop_round,1.1cap_drop_round,1.2cap_drop_round,slab);
+fill dl_drop_edge1;
+penpos2(cap_bar,-90);
+penpos3(cap_bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-slab;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,cap_bar,theta1,1.2cap_jut,1.2cap_jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,cap_stem,-90,cap_jut,cap_jut);
+serif(8,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z5e--z6e;
+%currentpicture := currentpicture shifted(-.8u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_EM,13u#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,1/2cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,-20); penpos6(bar,-20);
+z6=z5+whatever*dir -109; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 111; y7l=11/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_EN,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_O,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.05u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+cap_o_width := x7-x3; save cap_o_width;
+%currentpicture := currentpicture shifted(-1.6u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_PE,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ER,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.5u#;
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_ES,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.1u#;
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+%currentpicture := currentpicture shifted(-1.6u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_TE,round (11u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=.5w; y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+%currentpicture := currentpicture shifted(-3u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_U,13u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1l=s+cap_jut; y1l=.98h-cap_bar;
+x3r=w-s-.8cap_jut; y3r=.98h-cap_bar;
+x4=33/60w; y4=6/53h;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,1.2cap_bar,theta2,1.2cap_jut,.8cap_jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=0; x6=x4-1.2cap_stem; z7l=z2;
+penpos7(1.2cap_bar,theta2+90);
+penpos5(1.2cap_bar,theta2+90);
+penpos6(1.2cap_bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,cap_drop_round,2u, 10/53h, round 1.2cap_bar);
+fill dl_drop_edge8;
+%currentpicture := currentpicture shifted(-3.3u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EF,round (14u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-2u#;
+if .5w = good.x .5w: change_width; fi
+x1=x2=.5w; y2c=0; y1h=h;
+y6=y7=y8=y9=1.3cap_jut; y4=y3=y11=y12=h-1.3cap_jut+1/2slab;
+x3=x7=x2l; x8=x12=x2r; x4=x6=x3-u; x11=x9=x12+u;
+x5=s+1/2cap_curve; x10-x1=x1-x5; y4-y5=y5-y6; y10=y5;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,270);
+penpos7(cap_bar,270);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+penpos10(cap_curve,0);
+penpos11(cap_bar,90);
+penpos12(cap_bar,90);
+penstroke z3e--z4e{left}..tension.8..{down}z5e{down}..tension.8..{right}z6e--z7e;
+penstroke z8e--z9e{right}..tension.8..{up}z10e{up}..tension.8..{left}z11e--z12e;
+%currentpicture := currentpicture shifted(-1.7u,0);
+penlabels (range 1 thru 12);
+endchar;
+
+beginchar(CYR_HA,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.25u#;
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_TSE,12.5u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-1.3u#;
+x1=x2=x5=cap_jut+1/2cap_stem+s;
+x3=x4=x6=w-x1-.5u; y5=y6=y2h;
+y1c=y3c=h; y2c=y4c=0; x7e=w-s; y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e;
+T_serif(7,cap_bar,border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_CHE,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=cap_jut+1/2cap_stem+s; x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,-90,cap_jut,cap_jut);
+serif(3,cap_stem,90,cap_jut,cap_jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=cap_bar_height-1/2cap_bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-2cap_bar;
+penpos6(cap_stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+%currentpicture := currentpicture shifted(-3.2u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SHA,16u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+if .5w <> good.x .5w: change_width; fi
+x1=x2=good.x (cap_jut+1/2cap_stem+s);
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=good.x .5w; y5=y1; y6=y2;
+y9b=slab; x9=good.x w-x1;
+x10=x9; y10b=h-slab;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_SHCHA,16u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-.84u#;
+if .5w <> good.x .5w: change_width; fi
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=slab; x9h=w-s;
+x10=x9; y10b=h-slab;
+x11e=w-s; y11=y9h;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,slab,border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_HARD_SIGN,13.5u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-3u#;
+x2r=x5-css_width; x1=x2; x8e=0; y8g=h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+x7=x1d; y1c=h; y2c=0;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=round(x3+5u-cap_stem);
+y6=y7=y2h;
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(8,cap_bar,border_height,0);
+fill T_edge8;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+%currentpicture := currentpicture shifted(-1.6u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YERU,16u#+c#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+y3=y4=cap_bar_height; x3=round x2r; x4=x6=round (x3+5u-cap_stem) - 1;
+y4-y5=y5-y6; x5=x2r+css_width; y8b=slab; x8h=w-s;
+y6=y7=y2h; x9=x8; y9b=h-slab;
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(8,cap_stem,90,cap_jut,cap_jut);
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge9--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SOFT_SIGN,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-3u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=x3+5u-cap_stem;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y6=y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_E,10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-2u#;
+x1=16/39w; x5=.5w; y1=0; y5=h;
+y7=.5h; x7=w-1/2cap_curve-s; x9e=s; y9=0;
+dl_drop(9,cap_drop_round,16/39w-s,1.7cap_drop_round,slab);
+y8=0.1h-c; y6=0.9h+c; x8=x9+9/16(x7-x9); x6=x5+9/16(x7-x5);
+penpos5(cap_bar,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+penpos1(cap_bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+y2=y5; x2=x5-c;
+S_serif(2,slab,x1+c,1.5border_height);
+x3=x7-1/2cap_stem; y3=y4=cap_bar_height; x4=x2b-x1;
+penpos3(cap_bar,90); penpos4(cap_bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+%currentpicture := currentpicture shifted(-.9u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YU,16u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.08u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+y3=y7=.5h; x7=w-1/2cap_curve-s; x3=x7-cap_o_width; y9=0; y5=h; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3cap_stem; y11=y12=cap_bar_height;
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_YA,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=w-cap_jut-1/2cap_stem-s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2l;
+y1c=h; y2c=0; x6=x4=x7-2.5u; x3=x1c;
+y4-y5=y5-y6; x5=x8-1.5c; x9=s; y9=0; y6-y8=y8-y9; x7-x10=3(x10-x6); x10-x8=x8-x9;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos7(cap_bar,270);
+penpos6(cap_bar,270);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90); fill z9l..z9r..cycle;
+penstroke z3e--z4e{left}..tension.9..z5e..tension.9..{right}z6e--z7e;
+penstroke z9e{right}..tension1..{up}z8e{up}..tension1..{right}z10e;
+penlabels(range 1 thru 10);
+endchar;
+currenttransform := identity;
+
+beginchar(CYR_a,9u#+c#,x_height#,0);
+x1=w-s-3/4stem; y1=h; y2=7/33h; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=w-s-bar/3; y4=8/33h;
+penpos1(stem,180);
+penpos2(stem,180);
+penpos3(1.2vair,270);
+penpos4(bar,360);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 60}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x5=x1-3/2stem; y5=h; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c; y6=.54h; y8=.46h; z8l=whatever[z1r,z2r];
+penpos8(2bar,0);
+penpos5(vair,90);
+penpos6(curve,180);
+penpos7(vair,270);
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=h-c; z10=(x1r+c,h); z11=(x1l-c,h);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar(CYR_be,8u#+s#+stem#,asc_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5(w-stem)-1/2(x_height*sind 14/cosd 14); x3=.5(w-stem)+1/2(x_height*sind 14/cosd 14); y1=0; y3=x_height;
+y2=.54x_height; y4=.46x_height; x2=1/2curve+s; x4=w-1/2curve-stem-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+y5=y2; x5r=x2l; x6=23/35w; y6=46/51h; y7r=h; x7=w-s;
+penpos5(bar,180);
+penpos6(.9curve,90);
+penpos7(.8curve,90);
+penstroke z5e{dir 76}..{dir 14}z6e{dir 14}..{dir 30}z7e;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_ve,8u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=4/5h; x2=1/2curve+s; x4=w-1/2curve-s; z5r=z2; x6=w-s-s-1/2curve; y6=9/33h; z7=z5;
+penpos5(vair,-270);
+penpos6(curve,180);
+penpos7(vair,270);
+penstroke z7e{dir 14}..tension.9..{dir 256}z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{dir 194}z5e;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_ghe,7u#+s#,x_height#,0);
+x4=0.5w; top y4 = good.y (0.5h+1/3bar); y3=11.5/16h; x3=w-s-1/2curve;
+x2=11/18w; y2=h; x1=s+2/3curve; y1=24/33h;
+x5=s+1/2curve; y5=h-y3; x6=w-x2; y6=0; x7=w-x1; y7=h-y1;
+penpos1(bar,180);
+penpos2(1.2bar,90);
+penpos3(curve,0);
+penpos4(1.2bar,-90);
+penpos5(curve,0);
+penpos6(1.2bar,90);
+penpos7(bar,180);
+penstroke z1e{dir 60}..{right}z2e..z3e{dir -104}...z4e...{dir -104}z5e..z6e{right}..{dir 60}z7e;
+fill z7l..tension1.3..z7r..tension1.3..cycle;
+fill z1l..tension1.3..z1r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_de,8u#+s#+stem#,asc_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5(w-stem)-1/2(x_height*sind 14/cosd 14); x3=.5(w-stem)+1/2(x_height*sind 14/cosd 14); y1=0; y3=x_height;
+y2=.54x_height; y4=.46x_height; x2=1/2curve+s; x4=w-1/2curve-stem-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..tension1..{right}z3e..tension.9..{dir 256}z4e{dir 256}..tension1..{left}z1e..cycle;
+y5=23/33x_height; z5=z4+whatever*dir 78; x6=22/35w; y6=h;
+y56=y5+stem; z56=z4+whatever*dir 78;
+x7=11/35w; y7=42/51h;
+penpos5(1.1curve,-180);
+penpos56(.9curve,-180);
+penpos6(1.2bar,-90);
+penpos7(bar,0);
+penstroke z4e{dir 76}..z5e{dir 76}..z56e..tension1..{dir 174}z6e{left}..z7e;
+fill z7l..tension1.3..z7r..tension1.3..cycle;
+penlabels(range 1 thru 8,56);
+endchar;
+
+beginchar(CYR_ie,8u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=4/5h; x2=1/2curve+s; x4=w-1/2curve-s; z5r=z2; x6=w-s-s-1/2vair; y6=9/33h;
+penpos5(vair,-270);
+penpos6(vair,135);
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{dir 194}z5e;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_ye,8u#+c#,asc_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(x_height*sind 14/cosd 14); x3=.5w+1/2(x_height*sind 14/cosd 14);
+y1=0; y3=x_height; y2=.54x_height; y4=4/5x_height; x2=1/2curve+s;
+x4=w-1/2curve-s; z5r=z2; x6=w-s-s-1/2vair; y6=9/33x_height;
+penpos5(vair,-270);
+penpos6(vair,135);
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{dir 194}z5e;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+z8r=(w,h-1/2curve); y7=y8; x7=x8-2curve;
+penpos7(curve,0); penpos8(curve,0);
+fill z7r..z7l..cycle; fill z8r..z8l..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_zhe,15u#,x_height#,0);
+penpos1(1.2vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+x1=x3-(h*sind 14/cosd 14); x3=w-s-3/4stem; y1=0; y3=h;
+y2=.54h; x2=x1-3/4stem; x5=w-s-4/5stem; y5=7/33h;
+penpos5(vair,135); z4=z3;
+penstroke z5e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e;
+fill z5l..tension1.5..z5r..tension1.5..cycle;
+z77=(.5w,.5h); z9=z77+whatever*dir 76; y9=h;
+z8=whatever[z9,z77]; y8=0;
+penpos8(stem,0); penpos9(stem,0);
+penstroke z8e--z9e;
+ur_drop(4,drop_round,3/4stem,drop_round,bar);
+fill ur_drop_edge4;
+x10=w-x5; y10=26/33h; x11=w-x1; y11=h; x12=w-x2; y12=.46h;
+x13=w-x3; y13=0; z14=z13;
+penpos10(bar,135); penpos11(bar,90);
+penpos12(curve,0); penpos13(bar,-90);
+penstroke z10e..z11e{right}..{dir -104}z12e{dir -104}..{left}z13e;
+fill z10l..tension1.5..z10r..tension1.5..cycle; z14=z13;
+dl_drop(14,drop_round,3/4stem,drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+x7=x12; x6=x2; y6=y7=bar_height;
+penpos7(bar,90); penpos6(bar,90);
+penstroke z6e--z7e;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_ze,8u#,x_height#,0);
+x1=2.5s+1/2vair; y1=26/33h; x2=.5w+1/2(h*sind 14/cosd 14); y2=h;
+x3=w-s-1/2curve; y2-y3=y3-y4; x5=x1+s;
+z4=z2+whatever*dir -104; y4=y5=bar_height;
+z7=whatever[z2,z4]; y7=0; z6=z3+whatever*dir -100;
+y4-y6=y6-y7; z8=z7;
+penpos1(bar,135); penpos2(bar,90);
+penpos3(curve,0); penpos4(bar,-90);
+penpos5(bar,-90); penpos6(curve,180);
+penpos7(bar,90);
+penstroke z1e..z2e{right}..{dir -100}z3e{dir -100}..{left}z4e--z5e;
+penstroke z4e{right}..{dir -100}z6e{dir -100}..{left}z7e;
+fill z1l..tension1.5..z1r..tension1.5..cycle;
+fill z5l..tension1.5..z5r..tension1.5..cycle;
+dl_drop(8,drop_round,x7-s,1.2drop_round,bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_i,10u#,x_height#,0);
+x1=w-s-5/4stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=0; y5=8/34h;
+x5=s+1/2stem; x6=x5+stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+z7l=z5r+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_short_i,10u#,asc_height#,0);
+x1=w-s-5/4stem; y1=x_height; y2=10/33x_height; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33x_height; y3=y6=0; y5=8/34x_height;
+x5=s+1/2stem; x6=x5+stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33x_height;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+z7l=z5r+whatever*dir 76; y7l=x_height-bar;
+serif(7,stem,-104,jut,0);
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+y9d=h; z9d=z7f+whatever*dir 76;
+dl_drop(9,drop_round,stem,drop_round,bar);
+fill dl_drop_edge9; fill z9e..z9c..cycle;
+z10=z9; y11=h-bar; z11=z8+whatever*dir 76;
+penpos10(bar,90); penpos11(bar,135);
+penstroke z10e{right}..tension1.3..z11e;
+fill z11l..tension1.3..z11r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ka,10u#,x_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-2stem; y1=bar_height-2.5bar; y2=6/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y5=y6=0;
+x8=x2-3/4stem; y8=bar_height; y9=bar_height-2bar; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.1bar,270); penpos9(1.2bar,0);
+penstroke z9e{dir 68}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x10=x3; y10=h; penpos10(1.2bar,270); z11=z10;
+penstroke z9e{dir 60}..{dir 25}z10e;
+ur_drop(11,drop_round,9/8drop_round,drop_round,1.2bar);
+fill ur_drop_edge11;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_el,10u#+c#,x_height#,0);
+x1=w-s-5/4stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=0;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x5=x1r; y5=h-1/2bar; x8=1/5w; y8=0; z9=z8;
+y6=27/34h; y7=7/34h; x6=.5w; z7=z6+whatever*dir -108;
+penpos5(vair,90); penpos6(bar,180);
+penpos7(bar,180); penpos8(vair,90);
+penstroke z5e{left}..z6e--z7e{dir -108}..{left}z8e;
+dl_drop(9,1.1stem,x8-s,drop_round,bar);
+fill dl_drop_edge9; fill z9e..z9c..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_em,12u#,x_height#,0);
+x1=w-s-stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=9/33h; y3=0;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+z5r=z1r; z6=z5+whatever*dir -120; y6=0;
+penpos5(bar,180); penpos6(bar,180);
+penstroke z5e--z6e; fill z6l..tension1.3..z6r..tension1.3..cycle;
+z7l=z6r+whatever*dir 92; y7l=5/4stem;
+z8l=whatever[z6r,z7l]; y8l=h;
+penpos7(.9stem,0); penpos8(.9stem,0);
+penstroke z7e--z8e; fill z6r--z7l--z7r--cycle;
+y9=h-bar; x9=x8l; y10=10/33h; z10=z9+whatever*dir -104;
+y11=0; x11=s+stem; z12=z11;
+penpos10(bar,0); penpos11(bar,-90);
+serif(9,bar,-104,jut,0);
+fill z10l--z10r--reverse serif_edge9--cycle;
+penstroke z10e{dir -104}..{left}z11e;
+dl_drop(12,drop_round,x11-s,drop_round,bar);
+fill dl_drop_edge12; fill z12e..z12c..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_en,10u#,x_height#,0);
+x1=w-s-1.15stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y5=y6=0;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+y8=y9=bar_height; z9=z2+whatever*dir 76; z8=whatever[z6,z7];
+penpos8(bar,90); penpos9(bar,90);
+penstroke z8e--z9e; fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_o,8u#+s#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=.46h; x2=1/2curve+s; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+italic_o_width := x4-x2; save italic_o_width;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_pe,10u#+s#,x_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-10.3/8stem; y1=26/33h; y2=10/33h; z2=z1+whatever*dir -108;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y5=y6=0;
+x8=x2; y8=h; y9=bar_height-bar; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.2bar,270); penpos9(bar,0);
+penstroke z9e{dir 68}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_er,9u#+c#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=x2+.5(x4-x2)-1/4(h*sind 14/cosd 14); x3=x2+.5(x4-x2)+3/4(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=.46h; x2=x4-italic_o_width+c; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+y5=h-bar; z5=z2+whatever*dir 76;
+serif(5,stem,-104,jut,0); fill z5e{dir 76}..z5d{left}..cycle;
+y6=-d+bar; z6=whatever[z2,z5];
+serif(6,stem,76,.3jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_es,7.5u#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+x1=4u-1/2(h*sind 14/cosd 14); x3=4u+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; x2=1/2curve+s; x6=8u-2.5s-1/2vair; y6=9/33h;
+penpos6(vair,135); z4=z3;
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e;
+fill z6l..tension1.5..z6r..tension1.5..cycle;
+ur_drop(4,drop_round,9/8drop_round,5/4drop_round,bar);
+fill ur_drop_edge4;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_te,round 8u#+.5c#,x_height#,0);
+if .5w = good.x .5w: change_width; fi
+currenttransform := identity slanted sind 14;
+x2=.5w-w*sind 14/cosd 14+c; x1e=s-w*sind 14/cosd 14+c;
+x4e=w-s-w*sind 14/cosd 14+c;
+y1=y4=y2h; y2c=h; y3=y5=0; x3=.5w-1/2stem-w*sind 14/cosd 14+c;
+x5=.5w+1/2stem-w*sind 14/cosd 14+c;
+serif(2,stem,-90,jut,jut);
+T_serif(1,bar,4/5border_height,0);
+T_serif(4,bar,4/5border_height,1);
+fill z3--z5--reverse serif_edge2--cycle;
+fill T_edge1; fill T_edge4;
+currenttransform := identity;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_u,10u#-c#,x_height#,desc_depth#);
+x5=w-s-1/2stem; y5=h; y6=10/33h; z6=z5+whatever*dir -104;
+y3=0; y2=8/34h; x2=s+stem; x3=x2+stem;
+y7=0; z7=z6+whatever*dir -104;
+penpos5(stem,180); penpos6(stem,180);
+z8r=z7r+whatever*dir -104; y8r=-1/2d;
+z4l=whatever[z6r,z5r]; y4l=15/33h;
+penpos2(stem,180); penpos3(1.1bar,270);
+y9=-d; x9=x2l; z10=z9;
+penpos4(bar,360); penpos7(stem,180);
+penpos8(.8stem,180); penpos9(bar,90);
+penstroke z2e{dir -104}..z3e{right}..{dir 76}z4e;
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+penstroke z5e{dir -104}..z6e..z7e..z8e..{left}z9e;
+dl_drop(10,1.1stem,x9-s,1.2drop_round,bar);
+fill dl_drop_edge10; fill z10e..z10c..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ef,12u#,asc_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(.9curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=x2+.5(x4-x2)-3/8(x_height*sind 14/cosd 14);
+x3=x2+.5(x4-x2)+5/8(x_height*sind 14/cosd 14);
+y1=y6=0; y3=y8=x_height; y5=y4; x7=1/2curve+s; y7=y2;
+y2=.54x_height; y4=.46x_height; x4=w-1/2curve-s;
+x4-x2=x2-x7; x5=x2;
+x8=x7+.5(x5-x7)+3/8(x_height*sind 14/cosd 14);
+x6=x7+.5(x5-x7)-5/8(x_height*sind 14/cosd 14);
+penpos6(vair,90); penpos7(curve,0);
+penpos8(vair,-90); penpos5(.9curve,180);
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+penstroke z6e{left}..tension.9..{dir 76}z7e{dir 76}..{right}z8e..tension.9..{dir 256}z5e{dir 256}..{left}z6e..cycle;
+x5-x77=x77-x2; y2-y77=y77-y5;
+y10=h; x10=w-s-stem; y11=44/34x_height; z11=z77+whatever*dir 76;
+y12=-1/8d; z12=z77+whatever*dir -104; y13=-d; x13=s+stem; z9=z10;
+penpos10(bar,90); penpos11(stem,180);
+penpos12(stem,180); penpos13(bar,90);
+penstroke z10e{left}..{dir -104}z11e--z12e{dir -104}..{left}z13e;
+ur_drop(9,drop_round,stem,drop_round,bar);
+fill ur_drop_edge9; z14=z13;
+dl_drop(14,drop_round,stem,drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 14,77);
+endchar;
+
+beginchar(CYR_ha,10u#+c#,x_height#,0);
+penpos1(1.2vair,90);
+penpos2(curve,0);
+penpos3(vair,-90); penpos12(curve,0);
+x1=x3-(h*sind 14/cosd 14); x3=w-s-3/4stem; y1=0; y3=h;
+y2=.54h; x2=x1-if design_size=17.32: stem else: 39/40stem fi;
+x5=w-s-4/5stem; y5=7/33h;
+penpos5(vair,135); z4=z3;
+penstroke z5e..z1e{left}..{dir 76}z2e{dir 76}..{right}z3e;
+fill z5l..tension1.5..z5r..tension1.5..cycle;
+ur_drop(4,drop_round,3/4stem,drop_round,bar);
+fill ur_drop_edge4;
+x10=w-x5; y10=26/33h; x11=w-x1; y11=h; x12=w-x2; y12=.46h;
+x13=w-x3; y13=-2epsilon; z14=z13;
+penpos10(bar,135); penpos11(bar,90);
+penpos13(bar,-90);
+penstroke z10e..z11e{right}..{dir -104}z12e{dir -104}..{left}z13e;
+fill z10l..tension1.5..z10r..tension1.5..cycle; z14=z13;
+dl_drop(14,drop_round,3/4stem,drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_tse,10u#,x_height#,desc_depth#);
+x1=w-s-5/4stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=0; y5=8/34h;
+x5=s+1/2stem; x6=x5+stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+z7l=z5r+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+y9l=0; x9l=x3+bar; x10=x2+1/4stem; y10=-1/2d;
+y11=-d; x11=x10-5/4stem;
+penpos11(bar,90); penpos10(stem,180); penpos9(bar,120);
+penstroke z9e..tension1.3..{down}z10e{down}..tension.8..{left}z11e;
+fill z11l..tension1.3..z11r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_che,9u#,x_height#,0);
+x7g=s; y7g=h-1/2bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=9/33h; y3=0; y6l=bar_height; y5=y6l+2bar;
+z5=z7+whatever*dir -104; x6=x5+3/4stem;
+penpos1(stem,180); penpos2(stem,180);
+z8=whatever[z2r,z1r]; y8l=y5-1/2bar;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(1.2bar,256);
+penstroke z5e{dir -104}..z6e{right}..{dir 25}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_sha,14u#,x_height#,0);
+if .5w <> good.x .5w: change_width; fi
+x1=w-s-5/4stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=y10=0; y5=y11=8/34h;
+x11=s+1/2stem; x10=x11+stem;
+z12=z11+whatever*dir 76; y12=h-bar;
+y13=h; z13=whatever[z11,z12];
+x6=x5+stem; x1-x7=x7-x13; y7l=h; z5=z7+whatever*dir -104;
+serif(12,stem,-104,jut,0);
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=y9l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360); penpos7(stem,180);
+z9l=whatever[z5r,z7r];
+penstroke z7e--z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+penpos11(stem,180); penpos10(1.1bar,270);
+penpos9(bar,360);
+fill z11r--z11l--reverse serif_edge12--cycle;
+fill z12e{dir 76}..z12d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penstroke z11e{dir -104}..z10e{right}..{dir 76}z9e;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_shcha,14u#,x_height#,desc_depth#);
+if .5w <> good.x .5w: change_width; fi
+x1=w-s-5/4stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=y10=0; y5=y11=8/34h;
+x11=s+1/2stem; x10=x11+stem;
+z12=z11+whatever*dir 76; y12=h-bar;
+y13=h; z13=whatever[z11,z12];
+x6=x5+stem; x1-x7=x7-x13; y7l=h; z5=z7+whatever*dir -104;
+serif(12,stem,-104,jut,0);
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=y9l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360); penpos7(stem,180);
+z9l=whatever[z5r,z7r];
+penstroke z7e--z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+penpos11(stem,180); penpos10(1.1bar,270);
+penpos9(bar,360);
+fill z11r--z11l--reverse serif_edge12--cycle;
+fill z12e{dir 76}..z12d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penstroke z11e{dir -104}..z10e{right}..{dir 76}z9e;
+y14l=0; x14l=x3+bar; x15=x2+1/4stem; y15=-1/2d;
+y16=-d; x16=x15-5/4stem;
+penpos16(bar,90); penpos15(stem,180); penpos14(bar,120);
+penstroke z14e..tension1.3..{down}z15e{down}..tension.8..{left}z16e;
+fill z16l..tension1.3..z16r..tension1.3..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_soft_sign,8u#,x_height#,0);
+y2=10/34h; x2=s+1/2stem; x3=x2+3/2stem; z5=z3+whatever*dir 76; y5=bar_height+bar; y4=.5y5; x4=w-s-1/2curve; y3=0;
+y6l=y2+bar; z6l=z2l+whatever*dir 76;
+penpos2(stem,180); penpos3(bar,270);
+penpos4(curve,360); penpos5(bar,90);
+penpos6(1.5bar,180);
+penstroke z2e{dir -104}..z3e{right}..{dir 76}z4e{dir 76}..tension.9..{left}z5e{left}..{dir -104}z6e;
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+sss_italic_width :=x4-x2; save sss_italic_width;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_yeru,12u#+.8s#,x_height#,0);
+y2=10/34h; x2=s+1/2stem; x3=x2+3/2stem; z5=z3+whatever*dir 76; y5=bar_height+bar; y4=.5y5; x4=x2+sss_italic_width; y3=-2epsilon;
+y6l=y2+bar; z6l=z2l+whatever*dir 76;
+penpos2(stem,180); penpos3(bar,270);
+penpos4(curve,360); penpos5(bar,90);
+penpos6(1.5bar,180);
+penstroke z2e{dir -104}..z3e{right}..{dir 76}z4e{dir 76}..tension.9..{left}z5e{left}..{dir -104}z6e;
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+x7=w-s-5/4stem; y7=h-bar; y8=10/33h; z8=z7+whatever*dir -104;
+x9=x8+3/4stem; x10=w-s-1/2bar; y10=10/33h; y9=2epsilon;
+penpos8(stem,180);
+penpos9(1.1bar,270); penpos10(bar,335);
+penstroke z8e{dir -104}..{right}z9e{dir 20}..{dir 65}z10e;
+fill z10l..tension1.3..z10r..tension1.3..cycle;
+serif(7,stem,-104,jut,0);
+fill z8r--z8l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_hard_sign,11u#-s#,x_height#,0);
+y2=10/34h; x2=x4-sss_italic_width; x3=x2+3/2stem; z5=z3+whatever*dir 76; y5=bar_height+bar; y4=.5y5; x4=w-s-1/2curve; y3=0;
+y6l=y2+bar; z6l=z2l+whatever*dir 76;
+z1r=z2l+whatever*dir 76; y1=h;
+penpos2(stem,180); penpos3(bar,270);
+penpos4(curve,360); penpos5(bar,90);
+penpos6(1.5bar,180); penpos1(bar,180);
+penstroke z1e..z2e{dir -104}..z3e{right}..{dir 76}z4e{dir 76}..tension.9..{left}z5e{left}..{dir -104}z6e;
+x10=s+1/3bar; y10=y5r+1/2bar; y11=h; z11=z10+whatever*dir 70;
+penpos10(bar,0); penpos11(bar,0);
+fill z10l..tension1.3..z10r..tension1.3..cycle;
+fill z11l..tension1.3..z11r..tension1.3..cycle;
+fill z1l..tension1.3..z1r..tension1.3..cycle;
+penstroke z10e--z11e;
+x7=x1r; y7=h-1/2bar; y8=h-5/8stem; x8=x11r+1/2stem;
+x9r=x11r-.1c; y9r=h; penpos9(curve,70);
+penpos7(bar,90); penpos8(.8curve,80);
+penstroke z7e{dir 200}..{left}z8e..{dir 160}z9e;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_e,7.5u#,x_height#,0);
+x10=2.5s+1/2vair; y10=26/33h; x11=.5w+1/2(h*sind 14/cosd 14); y11=h;
+x12=w-s-1/2curve; y12=.46h;
+x13=.5w-1/2(h*sind 14/cosd 14); y13=0; z14=z13;
+penpos10(bar,135); penpos11(bar,90);
+penpos12(curve,0); penpos13(bar,-90);
+penstroke z10e..z11e{right}..{dir -104}z12e{dir -104}..{left}z13e;
+fill z10l..tension1.5..z10r..tension1.5..cycle; z14=z13;
+dl_drop(14,drop_round,x13-s,1.2drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+x1=x14c; x2=x12; y1=y2=bar_height;
+penpos1(bar,90); penpos2(bar,90);
+penstroke z1e--z2e; fill z1r..z1l..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_yu,12u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=x2+.5(x4-x2)-1/2(h*sind 14/cosd 14); x3=x2+.5(x4-x2)+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=.46h; x2=x4-italic_o_width; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+x5=s; y5=y6=0; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5--z6--reverse serif_edge7--cycle;
+y8=y9=bar_height; z8=whatever[z6,z7]; x9=x2;
+penpos8(bar,90); penpos9(bar,90);
+penstroke z8e--z9e; fill z7e{dir 76}..z7d{left}..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ya,10u#+c#,x_height#,0);
+x1=w-s-stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=2epsilon;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x5=x1r; y5=h-1/2bar; x6=x5-4/3stem; y6=h-1/2vair;
+x7=12/40w; y8=y9=bar_height; z9=z5+whatever*dir -104;
+x8=x9-stem; y5-y7l=y7l-y9;
+penpos5(bar,90); penpos6(vair,90);
+penpos7(curve,166); penpos8(bar,270);
+penpos9(bar,270); x11=s+stem; y11=-2epsilon;
+8(x8-x10)=9(x10-x11); y8-y10=y10-y11; z12=z11;
+penpos10(.7curve,360); penpos11(bar,270);
+penstroke z5e--z6e{left}..z7e{dir -104}..{right}z8e--z9e;
+penstroke z9e{left}..tension.8..{dir -104}z10e{dir -104}..{left}z11e;
+dl_drop(12,drop_round,stem,drop_round,bar);
+fill dl_drop_edge12; fill z12e..z12c..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+currenttransform := identity slanted sind 18;
+beginchar("A",13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar("B",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.15u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("C",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.1u#;
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+%currentpicture := currentpicture shifted(-1.6u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("D",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-2.08u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(o,30);
+penpos6(cap_curve,0);
+penpos7(o,-30);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+x3=x9=x1d;
+x8=x4=.5w; y8=y9=1/2cap_bar; y4=y3=h-1/2cap_bar;
+y6=.5h; x6=w-1/2cap_curve-s;
+y7=0.1h-c+1/2cap_bar; y5=0.9h+c-1/2cap_bar; x5=x7=x4+5/8(x6-x4);
+penstroke z3e--z4e{right}..z5e..z6e..z7e..{left}z8e--z9e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("E",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.19u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("F",10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("G",10u#+cap_jut#+c#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.8u#;
+x1=x5=23/42(w-cap_jut-c); y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s-cap_jut-c; y8=y1; x8=x1-.1(w-cap_jut-c);
+S_serif(6,slab,w-s-2c-x1-cap_jut,1.5border_height);
+S_serif(7,slab,w-s-x1-cap_jut+c,7/4border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+x9r=x7e; y9r=7/4border_height-1/2cap_bar;
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+x10=x9l; x11=x9r; y10=y11=3/4cap_bar;
+fill reverse serif_edge9--z10--z11--cycle;
+%currentpicture := currentpicture shifted(-1.5u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("H",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("I",2cap_jut#+cap_stem#+2s#,cap_height#,0);
+italcorr cap_height#*sind 18-.82u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+endchar;
+
+beginchar("J",7u#,cap_height#,0);
+italcorr cap_height#*sind 18-1.35u#;
+x1=x4=w-cap_jut-1/2cap_stem-s;
+y1c=h; y2=y3=y4=18/53h; x2=x1r; x3=x1l;
+y5=0; x5=s+cap_drop_round;
+serif(1,cap_stem,-90,1.2cap_jut,.6cap_jut);
+fill z3--z2--reverse serif_edge1--cycle;
+x7r=x4r; y7=3cap_bar;
+penpos4(cap_stem,0);
+penpos5(cap_bar,-90);
+penpos7(2/3cap_stem,0);
+penstroke z4e{down}..{down}z7e..{left}z5e;
+x6e=s; y6=0;
+dl_drop(6,cap_drop_round,x5-s,1.3drop_round,cap_bar);
+fill dl_drop_edge6;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("K",13u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-1.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=cap_bar_height; x3l=w-cap_jut-.5cap_jut-cap_bar-s; y3l=h-cap_bar;
+x5=x6=x1r; y5=cap_bar_height-cap_bar; y6=y5-1.5cap_bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+A_serif(3,.9cap_bar,theta1,1.5cap_jut,.6cap_jut);
+x4l=w-s-1.2cap_jut-cap_stem; y4l=cap_bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,.9cap_stem,theta2,.8cap_jut,cap_jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("L",10u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=y5=y2h; x3=x2d; x5e=w-s;
+T_serif(5,cap_bar,border_height,1); x4=x5;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penstroke z3e--z4e;
+fill T_edge5 reflectedabout(z3,z4);
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar("M",13u#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,1/2cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,-20); penpos6(bar,-20);
+z6=z5+whatever*dir -109; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 111; y7l=11/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("N",12u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_bar+s;
+x3=w-x1; y1c=y3c=h; y2c=y4=y5=0;
+x4=x3r; x5=x3l;
+serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+A_serif(2,cap_bar,90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill A_serif_edge2--reverse serif_edge1--cycle;
+numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+theta1=angle(z5-z7);
+z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+fill z6--z1h--z7--z5{down}..{up}z4--reverse A_serif_edge3--cycle;
+unfill z1b--z1l--z1a--cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("O",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.05u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+%currentpicture := currentpicture shifted(-1.6u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("P",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.5u#;
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Q",11u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-2.05u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x12-1.5c; x12=x7l-c; y11=y12=-comma_depth;
+y9=0; x9=x1-c; y9-y10=y10-y11; x11-x10=x10-x9;
+penpos9(cap_bar,90); penpos10(cap_curve,0);
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z9e{dir -20}..tension.8..z10e..tension.8..{right}z11e--z12e;
+fill z12r..z12l..cycle;
+%currentpicture := currentpicture shifted(-1.6u,0);
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("R",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.92u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2r;
+y1c=h; y2c=0; x6=x4=x7+2.5u; x3=x1d;
+y4-y5=y5-y6; x5=x8; x9=w-s-1/2cap_bar; y9=0; y6-y8=y8-y9; x10=x6; x9-x8=6/7(x8-x10);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,-90);
+penpos6(cap_bar,-90);
+penpos8(cap_curve,-180);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penstroke z9e{left}..tension.8..{up}z8e{up}..tension.8..{left}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("S",9u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.7u#;
+x6=x7=1/2w; y6=y7=0;
+S_serif(7,cap_bar,x6-s,1.5border_height);
+y5=13/53h; x5=w-s-1/2(1.9hair);
+y4=28/53h; x4=18/38w; y3=40/53h; x3=s+c+1/2(1.9cap_bar);
+x2=.5w-c; y2=h; z1=z2;
+penpos6(cap_bar,-90);
+penpos5(1.9hair,0);
+penpos4(1.1cap_curve,90);
+penpos3(1.9hair,0);
+penpos2(cap_bar,-90);
+penstroke z6e{right}..{up}z5e{up}..tension.8..z4e..tension.8..{up}z3e..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-cap_bar,1.2border_height);
+fill S_serif_edge1;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("T",round (11u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=.5w; y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+%currentpicture := currentpicture shifted(-3u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("U",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=cap_jut+1/2cap_stem+s;
+x3=w-s-cap_jut-1/2cap_bar;
+y1c=y3c=h; y2=y4=y5=y6=y24=y56=16/53h; x2=x1l;
+x4=x1r; x5=x3l; x6=x3r;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill z2--z4--reverse serif_edge1--cycle;
+fill z5--z6--reverse A_serif_edge3--cycle;
+x7=x1+.5(x3-x1); y7=0; x4-x24=x24-x2; x6-x56=x56-x5;
+penpos24(cap_stem,-180); penpos7(vair,-90);
+penpos56(cap_bar,0);
+penstroke z24e{down}..tension.9..{right}z7e{right}..tension.9..{up}z56e;
+%currentpicture := currentpicture shifted(-2.5u,0);
+penlabels(range 1 thru 7,24,56);
+endchar;
+
+beginchar("V",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1l=cap_jut+s; x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w-1/2cap_bar; x5=.5w+1/2cap_bar;
+y4=y5=1/2cap_bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+%currentpicture := currentpicture shifted(-3.3u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("W",17u#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x9l=.5w-.3cap_stem; x7r=w-s-cap_jut;
+y9l=y7r=y1l=h-cap_bar; x5=x9l+.5(x7r-x9l)-1/2cap_bar; x6=x9l+.5(x7r-x9l)+1/2cap_bar;
+y5=y6=y2=y3=1/2cap_bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(7,cap_bar,theta2,1.3cap_jut,cap_jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+cap_jut;
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+z2=z1l+whatever*dir theta1; x3=x2+cap_bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+%currentpicture := currentpicture shifted(-3.3u,0);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("X",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.25u#;
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("Y",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1l=cap_jut+s; x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w;
+y4=8/25h;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+y5c=0; x5=.5w+.5c;
+serif(5,cap_stem,90,cap_jut,cap_jut);
+x6=x5l; x7=x5r;
+z6=z1l+whatever*dir theta1;
+z7=z3r+whatever*dir theta2;
+fill z6--serif_edge5--z7--reverse A_serif_edge3--z2--reverse serif_edge1--z6&cycle;
+%currentpicture := currentpicture shifted(-3.2u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Z",9u#+1.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x6=s+1/2cap_bar; y6=y7=y8=1/2cap_bar;
+x8e=w-s; x7=x8;
+T_serif(8,cap_bar,border_height,1);
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-.82s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4cap_bar;
+x4r=w-s-1/4cap_bar; y4=h-cap_bar;
+penpos4(cap_stem/(cosd 18),0);
+penpos5(cap_stem/(cosd 18),0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2cap_bar;
+x3=w-s-1/2cap_bar; x1e=s+c;
+T_serif(1,cap_bar,border_height,0);
+x2=x1;
+penpos3(cap_bar,90);
+penpos2(cap_bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e-.2c; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+currenttransform := identity;
+
+beginchar("a",9u#+c#,x_height#,0);
+x1=w-s-3/4stem; y1=h; y2=7/33h; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=w-s-bar/3; y4=8/33h;
+penpos1(stem,180);
+penpos2(stem,180);
+penpos3(1.2vair,270);
+penpos4(bar,360);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 60}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x5=x1-3/2stem; y5=h; z7=z5+whatever*dir -104; y7=-3epsilon;
+x6=s+1/2curve+c; y6=.54h; y8=.46h; z8l=whatever[z1r,z2r];
+penpos8(2bar,0);
+penpos5(vair,90);
+penpos6(curve,180);
+penpos7(vair,270);
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=h-c; z10=(x1r+c,h); z11=(x1l-c,h);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar("b",8u#+s#,asc_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(x_height*sind 14/cosd 14); x3=.5w+1/2(x_height*sind 14/cosd 14);
+y1=0; y3=x_height; y2=.54x_height; y4=.46x_height; x2=1/2curve+s; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+y5=h-bar; z5=z2+whatever*dir 76;
+serif(5,stem,-104,jut,0);
+fill z2l--z2r--reverse serif_edge5--cycle;
+fill z5e{dir 76}..z5d{left}..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("c",7.5u#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+x1=4u-1/2(h*sind 14/cosd 14); x3=4u+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; x2=1/2curve+s; x6=8u-2.5s-1/2vair; y6=9/33h;
+penpos6(vair,135); z4=z3;
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e;
+fill z6l..tension1.5..z6r..tension1.5..cycle;
+ur_drop(4,drop_round,9/8drop_round,5/4drop_round,bar);
+fill ur_drop_edge4;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("d",10u#,asc_height#,0);
+x1=w-s-1/2stem; y1=h-bar; y2=11/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem; x4=w-s-1/2bar; y4=10/33x_height; y3=2epsilon;
+serif(1,stem,-104,1.5jut,0);
+penpos2(stem,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+y6=-2epsilon; y8=x_height; x7=1/2curve+s; y7=.54x_height;
+x8=x7+.5(x5-x7)+3/8(x_height*sind 14/cosd 14);
+x6=x7+.5(x5-x7)-5/8(x_height*sind 14/cosd 14);
+y5r=.46x_height; z5r=whatever[z1l,z2r];
+penpos6(vair,90); penpos7(curve,0);
+penpos8(vair,-90); penpos5(.7curve,180);
+penstroke z6e{left}..tension.9..{dir 76}z7e{dir 76}..{right}z8e..tension.9..{dir 256}z5e{dir 256}..{left}z6e..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("e",8u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=4/5h; x2=1/2curve+s; x4=w-1/2curve-s; z5r=z2; x6=w-s-s-1/2vair; y6=9/33h;
+penpos5(vair,-270);
+penpos6(vair,135);
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{dir 194}z5e;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("f",7u#+c#,asc_height#,desc_depth#);
+x1d=w-s; y1d=x_height; y2=7/33x_height;
+serif(1,stem,-104,1.2jut,jut);
+z2=z1+whatever*dir -104; penpos2(stem,180);
+y3l=-2/3d-c; z3l=whatever[z1f,z2l]; penpos3(1.1bar,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penstroke z2e{dir -104}..{dir -104}z3e;
+z4=z3; dl_drop(4,drop_round,1/3d,drop_round,1.1bar);
+y5=h-stem; z5=z1l+whatever*dir 80;
+penpos5(bar,0); z6=z5;
+ur_drop(6,drop_round,stem,drop_round,bar);
+fill ur_drop_edge6 rotatedaround(z5,85);
+fill dl_drop_edge4 rotatedaround(z3,76);
+fill z3l..tension1.3..z3r..tension1.3..cycle;
+fill z5l..tension1.3..z5r..tension1.3..cycle;
+fill z1l..z5l--z5r..z1r--cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("g",9u#+c#,x_height#,desc_depth#);
+currenttransform := identity slanted sind 14;
+penpos1(vair,90); penpos2(o,30);
+penpos3(curve,0); penpos4(o,-30);
+penpos5(vair,-90); penpos6(o,-150);
+penpos7(curve,-180); penpos8(o,-210);
+y3=y7=2/3h; x3=1/2curve+s+c; x7=w-3/2stem-s;
+x1=x5=x3+1/2(x7-x3); y1=3/11h; y5=h;
+y2=y8=y1+0.1(8/11h); y4=y6=y1+0.9(8/11h); x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x9=x7; y9=y7+1/2(y6-y7); y10=h; x10=x7l+c;
+x11e=w-s; y11=y10;
+ur_drop(11,.8stem,x11e-x10,drop_round,bar);
+penpos9(hair,180); penpos10(vair,90);
+penstroke z9e{up}..{right}z10e;
+fill ur_drop_edge11;
+y12=y1; x12=x1; y13=y12/2; x13=s+1/4stem+.5c;
+y14=y15=0; x14=x2r; x15=x8r; y16=y18=-d/2; x16=w-s-1/2stem;
+x18=s+.7hair; y17=-d+1/2bar; x17=s+.6bar+9/20(x16-x18); x19=x14; y19l=y14r;
+penpos12(vair,90); penpos13(1/2curve,180); penpos14(curve,270);
+z144=z14; penpos144(curve,90); penpos15(curve,90);penpos16(1/2curve,0);
+penpos17(vair,-90); penpos18(1.4hair,-180); penpos19(1.4vair,-270);
+penstroke z12e{left}..{down}z13e{down}..{right}z14e;
+penstroke z144e--z15e{right}..tension1..{down}z16e{down}..{left}z17e{left}..{up}z18e{up}..{right}z19e;
+currenttransform := identity;
+penlabels(range 1 thru 19);
+endchar;
+
+beginchar("h",10u#+s#,asc_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-10.5/8stem; y1=26/33x_height; y2=10/33x_height; z2=z1+whatever*dir -108;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33x_height; y3=y5=y6=0;
+x8=x2; y8=x_height; y9=bar_height-bar; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.2bar,270); penpos9(bar,0);
+penstroke z9e{dir 68}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("i",5u#,asc_height#,0);
+x1=w-s-stem; y1=x_height-bar; y2=11/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem; x4=w-s-1/2bar; y4=10/33x_height; y3=0;
+serif(1,stem,-104,jut,0);
+penpos2(stem,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+x5=x1d-c; y5=h-3/2stem; penpos5(curve,0);
+fill z5l..z5r..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("j",7u#,asc_height#,desc_depth#);
+x5=w-s-1/2stem; x1d=x5+c; y5=h-3/2stem; penpos5(curve,0);
+y1d=x_height; y2=7/33x_height; serif(1,stem,-104,jut,0);
+z2=z1+whatever*dir -104; penpos2(stem,180);
+y3l=-2/3d-c; z3l=whatever[z1f,z2l]; penpos3(1.1bar,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penstroke z2e{dir -104}..{dir -104}z3e;
+fill z1e{dir 76}..z1d{left}..cycle;
+fill z5l..z5r..cycle; z4=z3;
+dl_drop(4,drop_round,1/3d,drop_round,1.1bar);
+fill dl_drop_edge4 rotatedaround(z3,76);
+fill z3l..tension1.3..z3r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("k",10u#,asc_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,1.2jut,0);
+x1=w-s-2stem; y1=bar_height-2.5bar; y2=6/33x_height; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-bar; y4=9/33x_height; y3=y5=y6=0;
+x8=x2-stem; y8=y9=bar_height; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.1bar,270); penpos9(1.1bar,270);
+penstroke z9e{right}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+y11=x_height; x11e=w-s;
+ur_drop(11,drop_round,7/8drop_round,drop_round,1bar);
+z12=z11; x12-x10=x10-x8; y12-y10=y10-y8;
+penpos10(bar,-18); penpos12(bar,270);
+penstroke z8e{right}..{dir 72}z10e{dir 72}..{right}z12e;
+fill ur_drop_edge11;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("l",5u#,asc_height#,0);
+x1=w-s-1/2stem; y1=h-bar; y2=11/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem; x4=w-s-1/2bar; y4=10/33x_height; y3=0;
+serif(1,stem,-104,jut,0);
+penpos2(stem,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("m",14u#+c#,x_height#,0);
+x11=s+1/2stem; z12=z11+whatever*dir 76; y12=h-bar;
+y11=0; serif(12,stem,-104,jut,0); penpos11(stem,0);
+x1=w-s-9/8stem; y1=26/33h; y2=10/33h; z2=z1+whatever*dir -108;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=0;
+x5=x2; y5=y9=h; y6r=y10l=bar_height-bar; z6r=z7r+whatever*dir 76;
+y13=0; z13=z1+whatever*dir -104; x13-x7=x7-x11; y7=0;
+y8=y1; z8=z7+whatever*dir 76; x1-x5=x8-x9; z10l=whatever[z11r,z12f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos5(1.2bar,270); penpos6(bar,0);
+penpos7(stem,0); penpos8(stem,0);
+penpos9(1.2bar,90); penpos10(bar,180);
+penstroke z6e{dir 68}..{right}z5e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z11l--z11r--reverse serif_edge12--cycle;
+fill z12e{dir 76}..z12d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penstroke z10e{dir 68}..{right}z9e..z8e{dir -104}..z7e;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar("n",10u#+s#,x_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-10.5/8stem; y1=26/33h; y2=10/33h; z2=z1+whatever*dir -108;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y5=y6=0;
+x8=x2; y8=h; y9=bar_height-bar; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.2bar,270); penpos9(bar,0);
+penstroke z9e{dir 68}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("o",8u#+s#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=.46h; x2=1/2curve+s; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("p",9u#+c#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=x2+.5(x4-x2)-1/4(h*sind 14/cosd 14); x3=x2+.5(x4-x2)+3/4(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=.46h; x2=x4-italic_o_width+c; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+y5=h-bar; z5=z2+whatever*dir 76;
+serif(5,stem,-104,jut,0); fill z5e{dir 76}..z5d{left}..cycle;
+y6=-d+bar; z6=whatever[z2,z5];
+serif(6,stem,76,.3jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("q",9u#,x_height#,desc_depth#);
+x1=w-s-1/2stem; y1=h-1/2bar; y2=-d+bar; z2=z1+whatever*dir -104;
+serif(2,stem,76,1.3jut,1.3jut);
+penpos1(stem,180);
+fill z1l--z1r--serif_edge2--cycle;
+y6=0; y8=h; x7=1/2curve+s; y7=.54h;
+x8=x7+.5(x5-x7)+3/8(x_height*sind 14/cosd 14);
+x6=x7+.5(x5-x7)-5/8(x_height*sind 14/cosd 14);
+y5r=.46x_height; z5r=whatever[z1r,z2l];
+penpos6(vair,90); penpos7(curve,0);
+penpos8(vair,-90); penpos5(.7curve,180);
+penstroke z6e{left}..tension.9..{dir 76}z7e{dir 76}..{right}z8e..tension.9..{dir 256}z5e{dir 256}..{left}z6e..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("r",9u#-c#,x_height#,0);
+y2=0; x2=s+1/2stem; penpos2(stem,180);
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+y3l=15/33h; z3l=whatever[z2l,z1f];
+y4=h; x4=w-s-3/4stem; z5=z4;
+penpos3(1.2bar,180); penpos4(1.1bar,90);
+penstroke z3e{dir 76}..{right}z4e;
+ur_drop(5,drop_round,3/4stem,drop_round,1.1bar);
+fill ur_drop_edge5;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("s",8u#-s#,x_height#,0);
+z4=(.5w,.55h); y2=h; y6=0; y5=9/34h;
+z2=z4+whatever*dir 78; z6=z4+whatever*dir -100;
+x5=w-s-.7stem; x3=s+stem; y3=27/34h;
+z34=z4+whatever*dir 150; z45=z4+whatever*dir -40;
+x34=x4-stem*sind 40; x45=x4+stem*sind 40;
+penpos2(bar,90); penpos3(.6stem,180);
+penpos34(stem,240); penpos5(.6stem,180);
+penpos6(bar,90); penpos45(stem,240);
+penstroke z2e{left}..z3e{down}..{dir -40}z34e{dir -40}..{dir -40}z45e{dir -40}..{down}z5e{down}..{left}z6e;
+z1=z2; z7=z6;
+ur_drop(1,.9drop_round,w-s-x2,drop_round,bar);
+fill ur_drop_edge1;
+dl_drop(7,drop_round,x6-s,1.2drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 12,34,45);
+endchar;
+
+beginchar("t",5u#+s#,asc_height#,0);
+x1=w-s-1/2stem-1.2jut; y1=x_height-bar; y2=9/33x_height;
+z2=z1+whatever*dir -104; z5=whatever[z2,z1]; y5=h-stem;
+x3=x2+1/2stem; x4=w-s-bar; y4=10/33x_height; y3=0;
+serif(1,stem,-104,1.2jut,1.2jut);
+penpos2(stem,180); penpos5(.95stem,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1l--z5l--z5r--z1r--cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("u",10u#,x_height#,0);
+x1=w-s-5/4stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=0; y5=8/34h;
+x5=s+1/2stem; x6=x5+stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+z7l=z5r+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("v",9u#-c#,x_height#,0);
+y2=10/33h; x2=s+1/2stem;
+x3=x2+stem; x4=w-s-1/2bar; y4=26/33h; y3=0;
+penpos2(stem,180);
+penpos3(1.1bar,270); penpos4(bar,0);
+penstroke z2e{dir -104}..{right}z3e{dir 5}..tension1.3..{dir 80}z4e;
+z7=z2+whatever*dir 76; y7=h-bar;
+serif(7,stem,-104,jut,0); z9=z4;
+fill z2r--z2l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+ul_drop(9,1.1drop_round,7/33h,.9drop_round,bar);
+fill ul_drop_edge9 rotatedaround(z4,-90);
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("w",12u#+s#,x_height#,0);
+z77=(.5w,.5h); z1=z77+whatever*dir 76; y1=h; y2=10/33h;
+z2=z1+whatever*dir -104;
+x3=x2+stem; x4=w-s-1/2bar; y4=26/33h; y3=y6=0; y5=8/34h;
+x5=s+1/2stem; x6=x5+stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,0);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 5}..tension1.3..{dir 80}z4e;
+z7l=z5r+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0); z9=z4;
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+ul_drop(9,1.1drop_round,7/33h,.9drop_round,bar);
+fill ul_drop_edge9 rotatedaround(z4,-90);
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("x",10u#+c#,x_height#,0);
+penpos1(1.2vair,90);
+penpos2(curve,0);
+penpos3(vair,-90); penpos12(curve,0);
+x1=x3-(h*sind 14/cosd 14); x3=w-s-3/4stem; y1=0; y3=h;
+y2=.54h; x2=x1-if design_size=17.32: stem else: 39/40stem fi;
+x5=w-s-4/5stem; y5=7/33h;
+penpos5(vair,135); z4=z3;
+penstroke z5e..z1e{left}..{dir 76}z2e{dir 76}..{right}z3e;
+fill z5l..tension1.5..z5r..tension1.5..cycle;
+ur_drop(4,drop_round,3/4stem,drop_round,bar);
+fill ur_drop_edge4;
+x10=w-x5; y10=26/33h; x11=w-x1; y11=h; x12=w-x2; y12=.46h;
+x13=w-x3; y13=-2epsilon; z14=z13;
+penpos10(bar,135); penpos11(bar,90);
+penpos13(bar,-90);
+penstroke z10e..z11e{right}..{dir -104}z12e{dir -104}..{left}z13e;
+fill z10l..tension1.5..z10r..tension1.5..cycle; z14=z13;
+dl_drop(14,drop_round,3/4stem,drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar("y",10u#-c#,x_height#,desc_depth#);
+x5=w-s-1/2stem; y5=h; y6=10/33h; z6=z5+whatever*dir -104;
+y3=0; y2=8/34h; x2=s+stem; x3=x2+stem;
+y7=0; z7=z6+whatever*dir -104;
+penpos5(stem,180); penpos6(stem,180);
+z8r=z7r+whatever*dir -104; y8r=-1/2d;
+z4l=whatever[z6r,z5r]; y4l=15/33h;
+penpos2(stem,180); penpos3(1.1bar,270);
+y9=-d; x9=x2l; z10=z9;
+penpos4(bar,360); penpos7(stem,180);
+penpos8(.8stem,180); penpos9(bar,90);
+penstroke z2e{dir -104}..z3e{right}..{dir 76}z4e;
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+penstroke z5e{dir -104}..z6e..z7e..z8e..{left}z9e;
+dl_drop(10,1.1stem,x9-s,1.2drop_round,bar);
+fill dl_drop_edge10; fill z10e..z10c..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("z",8u#,x_height#,0);
+y2=y3=h-1/2(.8stem); y1=y2l+1/2bar;
+x3=w-s-3/4stem; x1e=s+1/2stem; x2=x1;
+T_serif(1,bar,.8border_height,0);
+penpos3(.8stem,90); penpos2(.8stem,90);
+penstroke z2e--z3e; fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+2c;
+fill z1r--z1f--z12--z2r--cycle;
+unfill z1d{up}..z13--z12--cycle;
+x4=w-s-bar*sind 45; y4=h-bar*sind 28;
+x5=w-x4; y5=h-y4; z34=(x4,h);
+penpos4(bar,152); penpos5(bar,152);
+penstroke z4e--z5e; fill z4l..tension1.2..z4r..tension1.2..cycle;
+fill z5l..tension1.2..z5r..tension1.2..cycle;
+fill z3l--z3r--z34--cycle;
+x7=.5w; y7=.4stem; penpos7(.9stem,90);
+x8l=x7+.9stem; y8l=0; penpos8(.6stem,90);
+x9=w-s-.9stem; y9=bar; penpos9(bar,90); z10=z9;
+penstroke z5e{dir 62}..{right}z7e..z8e..z9e;
+dl_drop(10,drop_round,1.2stem,drop_round,bar);
+fill dl_drop_edge10 reflectedabout(z9l,z9r) rotatedaround(z9,28);
+fill z9r..z9l..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(hex"30",10u#,cap_height#,0);
+penpos1(vair,90);
+penpos2(cap_curve,0);
+penpos3(vair,-90);
+penpos4(cap_curve,-180);
+x1=.5w-1/2(h*sind 10/cosd 10); x3=.5w+1/2(h*sind 10/cosd 10); y1=0; y3=h;
+y2=.47h; y4=.53h; x2=1/2cap_curve+s; x4=w-1/2cap_curve-s;
+penstroke z1e{left}..tension.9..{dir 80}z2e{dir 80}..tension1.2..{right}z3e..tension.9..{dir 260}z4e{dir 260}..tension1.2..{left}z1e..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"31",10u#-3/2s#,cap_height#,0);
+y1c=0; x1g=s; y2=y3=h; x3=x2-1/2cap_stem;
+serif(1,cap_stem,72,1.5cap_jut,1.5cap_jut);
+z2=z1f+whatever*dir 72;
+y6=y7=h-cap_stem; y5=y4=y6+cap_bar; y8=y6+.3c;
+z8=z1a+whatever*dir 72;
+x7=x3-1.4stem; x6=x5=x7-.8cap_stem; x4=x7-cap_bar;
+fill serif_edge1--z2{dir 150}..{dir 210}z3{dir 230}..{left}z4--z5{left}..z6--z7..z8--cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"32",10u#,cap_height#,0);
+y2=43/53h; x3=24/37w; y3=h; x2=10/37h;
+z1=z3; x4=w-s-1/2cap_curve; y4=41/53h;
+x5=s+1/2hair; y5=6/53h; x6=x5+2cap_bar; y6=y5+1/2cap_bar;
+y7=1/2curve-1/4cap_bar; x7=.47w; x8=w-s-2.5cap_bar;
+y8=15/53h; penpos6(.4cap_stem,90);
+penpos7(cap_curve,90); penpos8(bar,150);
+penpos2(bar,0); penpos3(vair,-90);
+penpos4(cap_curve,180); penpos5(bar,180);
+penstroke z3e{right}..{dir -104}z4e{dir -100}.. {dir -104}z5e; %z2e{dir 76}..{right}
+penstroke z5e..z6e{dir 10}..z7e{dir -10}..{dir 60}z8e;
+fill z8r..tension1.3..z8l..tension1.3..cycle;
+ul_drop(1,cap_drop_round,x3-x2+bar,1.8cap_curve,cap_bar);
+fill ul_drop_edge1;% rotatedaround(z2,90);
+x9=s-.1c; y9=1/2cap_bar; y10=-1/2cap_bar; x10=x9+cap_bar;
+x11=x10+cap_bar; y11=1/3cap_bar; x12=x11-2/3cap_bar; y12=3/2cap_bar;
+fill z5r..z9..z10..z11{up}..z12..{dir 10}z6l{dir 130}..{dir 190}z5r..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"33",10u#-c#,cap_height#,0);
+penpos2(vair,90); penpos5(cap_bar,-90);
+penpos4(vair,-90); penpos3(cap_curve,-180);
+x2=.5w-1/2(h*sind 14/cosd 14); y2=0; y4=cap_bar_height+c;
+z4=z2+whatever*dir 76; y5=y4-1/3cap_bar-.5c;
+y3=12/53h; x5=cap_curve+s+bar; x3=w-1.2cap_curve-s; z1=z2;
+y6=y5r; x6=x5; x7=w-s-1/2cap_curve; y7=41/53h; z8=z4+whatever*dir 82;
+y8=h; z9=z8; penpos67(cap_bar,110); penpos8(cap_bar,-90);
+penpos6(cap_bar,90); penpos7(.9cap_curve,180); z67=z4;
+penstroke z5e...{right}z4e..tension1..{dir 256}z3e{dir 256}..tension1.2..{left}z2e;
+penstroke z8e{right}..tension.9..{dir -100}z7e{dir -100}..tension.9..z67e{dir 210}..z6e;
+fill z5l..tension1.2..z6l..tension1.2..cycle;
+dl_drop(1,cap_stem,x1-s,cap_drop_round,cap_bar);
+fill dl_drop_edge1; fill z1e..z1c..cycle;
+ul_drop(9,.8cap_drop_round,x8-x5+bar,1.4cap_curve,cap_bar);
+fill ul_drop_edge9;
+penlabels(1,2,3,4,5,6,7,8,9,67);
+endchar;
+
+beginchar(hex"34",10u#,cap_height#,0);
+y1c=0; x1g=s+1/2cap_stem; y2=h-stem;
+serif(1,cap_stem,72,1.5cap_jut,1.5cap_jut);
+z2=z1+whatever*dir 72; penpos2(cap_stem,0);
+fill serif_edge1--z2r--z2l--cycle;
+z3r=whatever[z1f,z2r]; y3r=h; penpos3(.7cap_stem,0);
+penstroke z2e--z3e; y6=y7=16/53h; x7=w-2s; x6=s+1/2cap_bar;
+penpos6(1.2cap_bar,90); penpos7(1.2cap_bar,90);
+penstroke z6e--z7e; fill z6l..tension1.4..z6r..tension1.4..cycle;
+fill z7l..tension1.2..z7r..tension1.2..cycle;
+z5l=z6r; z4l=z3l; penpos4(1.2cap_bar,-20); penpos5(1.2cap_bar,-20);
+penstroke z4e--z5e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"35",10u#-c#,cap_height#,0);
+penpos2(vair,90); penpos5(cap_bar,0);
+penpos4(vair,-90); penpos3(cap_curve,-180);
+x2=.5w-1/2(h*sind 14/cosd 14); y2=0; y4=34/54h; z4=z2+whatever*dir 76;
+y5=y4-3cap_bar; y3=15/53h; x5=cap_curve+s; x3=w-1.2cap_curve-s; z1=z2;
+penstroke z5e...{right}z4e..tension1..{dir 256}z3e{dir 256}..tension1.2..{left}z2e;
+z6=z5+whatever*dir 72; y6=h-1/3cap_bar;
+penpos6(cap_bar,0); penstroke z5e--z6e;
+fill z6r..tension1.5..z6l..tension1.5..cycle;
+fill z5r..tension1.3..z5l..tension1.3..cycle;
+y7r=y6r; x7r=x6r-.05c; y8=h-4/6cap_curve;
+x8=x7+5/4cap_curve; x9=w-s-cap_bar*sind 25;
+y9=h-cap_bar*cosd 45; penpos7(cap_curve,72); penpos8(.7cap_curve,90);
+penpos9(1.2cap_bar,120); penstroke z7e{dir -18}..z8e..z9e;
+fill z9r..tension1.3..z9l..tension1.3..cycle;
+dl_drop(1,cap_stem,x1-s,cap_drop_round,cap_bar);
+fill dl_drop_edge1; fill z1e..z1c..cycle;
+penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(hex"36",10u#-s#,cap_height#,0);
+penpos1(vair,90); penpos4(.8cap_curve,0);
+penpos3(vair,-90); penpos2(cap_curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y4=38/53h; y2=.53h; x4=cap_curve+s; x2=w-1/2cap_curve-s;
+x5=.505w; y5=21/53h; penpos5(vair,90); z7=z1;
+y6r=y2+2s; z6r=z2r+whatever*dir 76; penpos6(2cap_bar,-180);
+penstroke z6e{dir 256}..{left}z5e{left}..tension.9..{dir 76}z4e{dir 76}..tension.9..{right}z3e..tension1..{dir 256}z2e{dir 256}..tension1.2..{left}z1e; z8=(.5w,.5h);
+dl_drop(7,cap_stem,x1-s,cap_drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+currentpicture := currentpicture rotatedaround(z8,180);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"37",9u#-c#,cap_height#,0);
+x1=s+1/2cap_bar; y1=36/53h; y2=.975h; z2=z1+whatever*dir 70;
+x3=16.5/34w; y4=44/53h; y3=47/53h; z4=z3+whatever*dir -45;
+x5=24/34w; y5=43/53h; x6=w-s-1/2*(3/2cap_bar); y6=y2;
+x7=8/34w; y7=1/2cap_curve;
+penpos1(cap_bar,162); penpos2(cap_bar,162);
+penpos3(.9cap_curve,45); penpos4(.9cap_curve,45);
+penpos5(2cap_bar,110); penpos6(3/2cap_bar,180);
+z67l=z6l;
+penpos7(cap_curve,180); penpos67(cap_bar,180);
+penstroke z1e--z2e;
+penstroke z1e{dir 70}..{dir -45}z3e--z4e{dir -45}..z5e..{up}z6e;
+penstroke z67e{down}..{dir -94}z7e;
+fill z7r..z7l..cycle; fill z1r..tension1.3..z1l..tension1.3..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+fill z6r..tension1.3..z6l..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"38",10u#,cap_height#,0);
+y1=0; x1=15/37w; y5=h; z5=z1+whatever*dir 78;
+y7=28/53h; z7=whatever[z1,z5]; x2=s+1/2(.6cap_stem);
+x4=w-x2; y2=13/53h; y4=42/53h; z3=z7; y6=43/53h; 2(x5-x6)=2.5(x4-x5);
+5(x1-x2)=4(x8-x1); y8=11/53h; penpos7(cap_stem,48);
+y67l=y7+.4cap_stem; y78=y7-cap_stem;
+z67l=z7l+whatever*dir 132; penpos67(.9cap_stem,30);
+z78=whatever[z67,z7]; penpos78(.9cap_stem,30);
+penpos1(cap_bar,-90); penpos2(.7stem,-180);
+penpos3(cap_bar,-235); penpos4(.6stem,-180);
+penpos5(cap_bar,-90); penpos6(.8stem, 0);
+penpos8(.8stem,0);
+penstroke z1e{left}..{dir 78}z2e{dir 78}..z3e..{dir 78}z4e{dir 78}..{left}z5e{left}..{down}z6e..z67e..z7e..z78e..{dir -102}z8e{dir -102}..{left}z1e;
+penlabels(1,2,3,4,5,6,7,8,67,78);
+endchar;
+
+beginchar(hex"39",10u#-s#,cap_height#,0);
+penpos1(vair,90); penpos4(.8cap_curve,0);
+penpos3(vair,-90); penpos2(cap_curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y4=38/53h; y2=.53h; x4=cap_curve+s; x2=w-1/2cap_curve-s;
+x5=.505w; y5=21/53h; penpos5(vair,90); z7=z1;
+y6r=y2+2s; z6r=z2r+whatever*dir 76; penpos6(2cap_bar,-180);
+penstroke z6e{dir 256}..{left}z5e{left}..tension.9..{dir 76}z4e{dir 76}..tension.9..{right}z3e..tension1..{dir 256}z2e{dir 256}..tension1.2..{left}z1e; z8=(.5w,.5h);
+dl_drop(7,cap_stem,x1-s,cap_drop_round,cap_bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(oct"56",cap_stem#+2s#,cap_stem#,0);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+endchar;
+
+beginchar(oct"54",cap_stem#+2s#+c#,cap_stem#,comma_depth#);
+ currenttransform := identity slanted sind 14;
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"60",cap_stem#+2s#+c#,asc_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(oct"41", cap_stem#+2s#,cap_height#,0); "Exclamation mark";
+ italcorr cap_height#*sind 18-1.44u#;
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+ x3=.5w-1/2cap_bar; x4=.5w+1/2cap_bar; y3=y4=3/2cap_stem;
+ x6=x1; x5=x2; y5=y6=h;
+ fill z6--z3..z4--z5{up}..z6&cycle;
+endchar;
+
+beginchar(hex"22",2cap_stem#+3s#+2c#,cap_height#,0);
+ z1=(s,h-1/2cap_stem); z2=(x1+cap_stem+c,h-1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-cap_stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture shifted((sind 18)*-w*1.3,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"5C",2cap_stem#+3s#+2c#,cap_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(x1+cap_stem+c,1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+currenttransform := identity;
+
+beginchar(hex"7b",10u#-1.5c#,x_height#,0); "En dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"3D",10u#+1.5c#,x_height#,0);
+ z1=(s+1/2bar,bar_height-3c); z2=(w-s-1/2bar,bar_height-3c);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+3c); z4=(w-s-1/2bar,bar_height+3c);
+ penpos3(bar,90); penpos4(bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"23",13u#,asc_height#,body_depth#);
+ z1=(s+1/2bar,bar_height-5c); z2=(w-s-1/2bar,bar_height-5c);
+ penpos1(1.5bar,90); penpos2(1.5bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+5c); z4=(w-s-1/2bar,bar_height+5c);
+ penpos3(1.5bar,90); penpos4(1.5bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ z5=(.5w-5c,bar_height); z6=(.5w+5c,bar_height);
+ z7=z5+whatever*dir 76; y7=h; z8=whatever[z5,z7]; y8=-d;
+ penpos7(1.5bar,0); penpos8(1.5bar,0);
+ fill z7l{up}..{down}z7r--z8r{down}..{up}z8l--z7l&cycle;
+ z9=z6+whatever*dir 76; y9=h; z10=whatever[z6,z9]; y10=-d;
+ penpos9(1.5bar,0); penpos10(1.5bar,0);
+ fill z9l{up}..{down}z9r--z10r{down}..{up}z10l--z9l&cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"7c",14u#,x_height#,0); "Em dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(oct"55",2cap_jut#+cap_stem#+2s#,x_height#,0); "hyphen";
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"5F",1.1stem#+2s#,x_height#+2.1stem#,0);
+ z1=(.5w,h); z2=(.5w,h-1.1stem);
+ fill z1..z2..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7E",7u#,body_height#,0);
+ pickup pencircle xscaled .6pt yscaled .2pt rotated 55;
+ z4=(w-s-c,h-s); x1=s+c; y1=y4-1/2cap_stem;
+ y2-y1=y4-y3=3(y4-y1); z2-z1=z4-z3=whatever * dir 55;
+ draw z1..controls z2 and z3..z4;
+ penlabels(1,2,3,4);
+endchar;
+
+currenttransform := identity slanted sind 14;
+beginchar(hex"3C",7u#-2c#,x_height#,0); "looks like <<";
+ italcorr x_height#*sind 18-1.35u#;
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ %currentpicture := currentpicture shifted(-1.3u,0);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3E",7u#-2c#,x_height#,0);
+ italcorr x_height#*sind 18-1.35u#;
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ z10=(.5w,.5h);
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ currentpicture := currentpicture rotatedaround(z10,180) shifted((sind 18)*w*1.3,0);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3B",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ italcorr x_height#*sind 18-1.25u#;
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+3/2c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ z8=(s,h-1/2cap_stem); z9=(w-s,h-1/2cap_stem);
+ fill z8..z9..cycle;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(hex"3A",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ italcorr x_height#*sind 18-1.25u#;
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ fill z1..z2..cycle;
+ penlabels(1,2,3,4);
+ z3=(s,1/2cap_stem); z4=(w-s,1/2cap_stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2B",2cap_jut#+cap_stem#+2s#,x_height#,0);
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ x3=x4=.5w; y3=y2+1/2(x2-x1); y4=y2-1/2(x2-x1);
+ penpos3(1.8bar,0); penpos4(1.8bar,0);
+ penstroke z3e--z4e;
+ fill z3r..z3l..cycle; fill z4r..z4l..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2F",2s#+bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.65u#;
+ z1=(.5w,h-.5bar); z2=(.5w,-d+.5bar);
+ %pickup pencircle xscaled bar yscaled bar;
+ penpos1(bar,0); penpos2(bar,0);
+ penstroke z1e--z2e; fill z1r..z1l..cycle;
+ fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"27",cap_stem#+2s#+c#,x_height#+2.1stem#,0);
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ z6=(.5w-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ currentpicture := currentpicture shifted((sind 18)*-w*1.3,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"28",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.7u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"29",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-3.15u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180) shifted((sind 18)*w*1.3,0);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"0E",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.7u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"0F",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180) shifted((sind 18)*w*1.3,0);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"5B",2s#+3cap_bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.65u#;
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x2,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z1r..z1l..cycle; fill z6r..z6l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"5D",2s#+3cap_bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.56u#;
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x1,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z2r..z2l..cycle; fill z5r..z5l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"B9",16u#,cap_height#,0);
+ italcorr cap_height#*sind 18-2.6u#;
+ x1=x2=cap_jut+1/2cap_bar+s+cap_stem;
+ x3=w-x1-1/2cap_stem; y1c=h; y4=y5=0;
+ x4=x3r; x5=x3l; y2=12/53h; y3=h-y2;
+ x8=x2-stem; y8=0; z9=z8;
+ dl_drop(9,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill dl_drop_edge9; penpos8(bar,-90);
+ serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+ penpos2(bar,0); penpos3(bar,0);
+ penstroke z2e{down}..{left}z8e;
+ fill z2l--z2r--reverse serif_edge1--cycle;
+ numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+ theta1=angle(z5-z7); x10=x3+stem; y10=h; z11=z10;
+ penpos10(bar,-90); penstroke z3e{up}..{right}z10e;
+ ur_drop(11,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill ur_drop_edge11;
+ z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+ fill z6--z1h--z7--z5{down}..{up}z4--z3r--z3l--cycle;
+ unfill z1b--z1l--z1a--cycle;
+ y12=y13=2cap_bar; x12=x4+2cap_bar+s; x13=w-2s;
+ penpos12(.4stem,90); penpos13(.4stem,90);
+ penstroke z12e--z13e; y16=y11d-4.5cap_bar;
+ x13-x14=x14-x12; x16=x14; y14=y13+4.5cap_bar;
+ x17=w-s-.2stem; x17-x16=x16-x15; y16-y15=y15-y14;
+ y17=y15; penpos17(.7stem,0); penpos16(bar,90);
+ penpos15(.7stem,180); penpos14(bar,270);
+ penstroke z17e{up}..{left}z16e{left}..{down}z15e{down}..{right}z14e{right}..{up}z17e;
+ fill z12l..tension1.2..z12r..tension1.2..cycle;
+ fill z13l..tension1.2..z13r..tension1.2..cycle;
+ penlabels(range 1 thru 17);
+endchar;
+
+beginchar(hex"24",9u#-s#,body_height#,body_height#-cap_height#);
+ italcorr body_height#*sind 18-2.3u#;
+ x6=x7=1/2w-c; y6=y7=0;
+ dl_drop(7,cap_drop_round,x6-s,1.5drop_round,cap_bar);
+ y5=12/53cap_height; x5=w-s-1/2(1.9hair);
+ y4=1/2cap_height; x4=19/38w; y3=41/53cap_height; x3=s+1/2(1.9cap_bar);
+ x2=.5w+c; y2=cap_height; z1=z2;
+ penpos6(cap_bar,-90); penpos5(1.9hair,0);
+ penpos4(1.1cap_curve,90); penpos3(1.9hair,0);
+ penpos2(cap_bar,-90);
+ penstroke z6e{right}..z5e{up}..tension.8..z4e..tension.8..{up}z3e..{right}z2e;
+ fill dl_drop_edge7;
+ ur_drop(1,cap_drop_round,w-s-x2,1.5drop_round,cap_bar);
+ fill ur_drop_edge1;
+ z8=(.5w,h); z9=(.5w,-d);
+ penpos8(cap_bar,0); penpos9(cap_bar,0);
+ penstroke z8e--z9e;
+ fill z9r..z9l..cycle; fill z8r..z8l..cycle;
+ %currentpicture := currentpicture shifted(-.8u,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"25",12u#,asc_height#,0);
+italcorr asc_height#*sind 18-2.98u#;
+penpos1(vair,90); penpos2(.6curve,0);
+penpos3(vair,-90); penpos4(.6curve,-180);
+y1=.55h; y3=h; y3-y4=y4-y1; y2=y4; x2=1/4curve+s; x4=5/2curve+s;
+x4-x1=x1-x2; x3=x1;
+penstroke z1e{left}..tension.9..{up}z2e{up}..tension1.2..{right}z3e..tension.9..{down}z4e{down}..tension1.2..{left}z1e..cycle;
+penpos5(vair,90); penpos6(.6curve,0);
+penpos7(vair,-90); penpos8(.6curve,-180);
+y5=0; y7=.45h; y7-y8=y8-y5; y6=y8; x8=w-1/4curve-s; x6=w-5/2curve-s;
+x8-x5=x5-x6; x7=x5;
+penstroke z5e{left}..tension.9..{up}z6e{up}..tension1.2..{right}z7e..tension.9..{down}z8e{down}..tension1.2..{left}z5e..cycle;
+x9l=x7; y9=h; x10r=x1; y10=0;
+penpos9(1.2bar,0); penpos10(1.2bar,0);
+penstroke z9e--z10e;
+%currentpicture := currentpicture shifted(-1.2u,0);
+penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"26",14u#,cap_height#,0);
+italcorr cap_height#*sind 18-2.94u#;
+x4=x8=x3+.5curve; y6=0; y2=h; x2=x3+1.3cap_curve;
+y7=13/53h; y5=9/53h; x5=x7+3.5cap_curve; x6=x7+1.8cap_curve;
+y4=y8=30/53h; y1=44/53h; y3=42/53h; x3=4s+curve;
+x1=x3+2.1cap_curve; x7=s+1/2cap_curve;
+x10=w-s; y10=9/53h; x10-x9=x9-x5; y9=1/5cap_curve;
+th:=angle(z4-z5)+5; th1:=th-11; x11h=w-s-c; y11h=y1-4s;
+A_serif(11,cap_bar,-110,cap_jut,cap_jut); z12l=z11a;
+penpos6(cap_bar,-90); penpos5(cap_stem,45);
+penpos4(cap_stem,45); penpos3(2.5hair,0);
+penpos2(cap_bar,-90); penpos1(2hair,-180);
+penpos7(cap_curve,-180); penpos8(cap_bar,-250);
+penpos9(.5cap_curve,70); penpos10(cap_bar,150);
+penpos12(cap_bar,0);
+penstroke z10e..z9e..z5e{dir th}..{dir th1}z4e..tension.9..{up}z3e{up}..tension1..z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e{dir 8}..{dir 70}z12e;
+fill z12l--z12r..reverse A_serif_edge11--cycle;
+%currentpicture := currentpicture shifted(-.7u,0);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+currenttransform := identity;
+
+beginchar(hex"40",14u#,x_height#+2curve#,2curve#);
+a_width:=9u+c-2s;
+x1=2s+a_width-s-3/4stem+1.5curve; y1=x_height; y2=7/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=3s+a_width+1.5curve; y4=15/33x_height;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.2vair,270); penpos4(bar,360);
+x5=x1-3/2stem; y5=x_height; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c+1.5curve; y6=.54x_height; y8=.46x_height; z8l=whatever[z1r,z2r];
+x13=x5; y13=h-1/2bar; x14=s+1/2bar; y14=y6; y15=-d+1/2bar; x15=x7;
+x16=x4; y16=-d+3bar; penpos7(vair,270); penpos16(bar,270);
+penpos13(bar,90); penpos14(bar,180); penpos15(bar,270);
+penpos8(2bar,0); penpos5(vair,90); penpos6(curve,180);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 80}z4e..z13e{left}..z14e..{right}z15e..z16e;
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=x_height-c; z10=(x1r+c,x_height); z11=(x1l-c,x_height);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+fill z16r..z16l..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar(hex"12",2cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=s+.45cap_stem*cosd 45;
+x2=w-s+cap_bar*cosd 45; z2=z1+whatever*dir -45;
+penpos1(.9cap_stem,45); penpos2(cap_bar,45);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"13",2cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=w-s-.45cap_stem*cosd 45;
+x2=s-cap_bar*cosd 45; z2=z1+whatever*dir -135;
+penpos1(.9cap_stem,135); penpos2(cap_bar,135);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"3F",8u#+c#,cap_height#,0);
+ x1=s+1/2cap_stem; y1=1/2cap_stem;
+ penpos1(cap_stem,0);
+ fill z1r..z1l..cycle;
+ y2=cap_stem+4/5cap_bar; z2=z1+whatever*dir 78;
+ z3l=z2l+whatever*dir 78; y3l=21/53h;
+ penpos2(cap_bar,0); penpos3(1.3cap_bar,0);
+ penstroke z2e--z3e;
+ z4r=z3l; penpos4(cap_bar,90);
+ y5=y4; x5=x4+2cap_bar; penpos7(cap_bar,-90);
+ x6=w-s-1/2cap_curve; y6=35/51h; x7=18/31w; y7=h;
+ penpos5(cap_bar,90); penpos6(cap_curve,180); z8=z7;
+ penstroke z4e--z5e{right}..tension1.2..{dir 78}z6e{dir 78}..tension1.1..{left}z7e;
+ ul_drop(8,.8cap_drop_round,x7-x3,cap_curve,cap_bar);
+ fill ul_drop_edge8;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"10",5u#,asc_height#,0);
+x1=w-s-stem; y1=x_height-bar; y2=11/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem; x4=w-s-1/2bar; y4=10/33x_height; y3=0;
+serif(1,stem,-104,jut,0);
+penpos2(stem,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"11",7u#-c#,asc_height#,desc_depth#);
+x1d=w-s; y1d=x_height; y2=7/33x_height; serif(1,stem,-104,jut,0);
+z2=z1+whatever*dir -104; penpos2(stem,180);
+y3l=-2/3d-c; z3l=whatever[z1f,z2l]; penpos3(1.1bar,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penstroke z2e{dir -104}..{dir -104}z3e;
+fill z1e{dir 76}..z1d{left}..cycle; z4=z3;
+dl_drop(4,drop_round,1/3d,drop_round,1.1bar);
+fill dl_drop_edge4 rotatedaround(z3,76);
+fill z3l..tension1.3..z3r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"2A",3cap_stem#+3s#,body_height#,0);
+ x1=x2=x3=x4=.5w; y1=h-1/2stem; y2=y1-cap_stem; y3=y2-bar; y4=y3-bar;
+ penpos1(stem,0); penpos2(cap_bar,0); penpos3(2cap_bar,0);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle;
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,60);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,120);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,180);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,240);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,300);
+ penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"5E",6u#,body_height#,0);
+ x1=s+.45cap_bar*cosd 45; x2=w/2; y2=h-bar;
+ z1=z2+whatever*dir -135; x3=w-x1; z3=z2+whatever*dir -45;
+ penpos1(bar,135); penpos2(2bar,90); penpos3(bar,45);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"16",6u#,body_height#,0);
+ x1=s; x2=w-x1; y1=y2=h-4bar;
+ penpos1(.8bar,90); penpos2(.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7F",2stem#+4s#,x_height#+2.1stem#,0);
+ z1=(s+.5stem,h); z2=(s+.5stem,h-stem);
+ fill z1..z2..cycle;
+ z3=(w-s-.5stem,h); z4=(w-s-.5stem,h-stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+ligtable "7":
+ "8" kern -kk#,
+ "A" kern -kkk#,
+ CYR_A kern -kkk#,
+ "f" kern -kk#,
+ "j" kern -kkk#,
+ "g" kern -kkk#,
+ CYR_el kern -kkk#,
+ CYR_em kern -kkk#,
+ CYR_u kern -k#,
+ CYR_er kern -k#,
+ CYR_ya kern -kk#,
+ "c" kern -k#,
+ "q" kern -k#,
+ "p" kern -k#;
+
+ligtable CYR_A: "A":
+ CYR_O kern -k#,
+ CYR_ES kern -k#,
+ CYR_TE kern -k#,
+ CYR_U kern -kk#,
+ CYR_EF kern -k#,
+ CYR_CHE kern -kk#,
+ CYR_HARD_SIGN kern -k#,
+ CYR_che kern -k#,
+ "W" kern -kkk#,
+ "V" kern -kkk#,
+ "Y" kern -kk#,
+ "T" kern -k#;
+
+ligtable CYR_GHE: CYR_TE: "T":
+ CYR_A kern -kk#,
+ CYR_DE kern -k#,
+ CYR_EL kern -kk#,
+ "l" kern kk#,
+ "t" kern k#,
+ "i" kern k#,
+ "k" kern kk#,
+ "b" kern kk#,
+ "h" kern kk#;
+
+ligtable CYR_E: CYR_YU:
+ CYR_U kern -k#,
+ CYR_be kern k#,
+ CYR_te kern kk#,
+ CYR_o kern k#,
+ CYR_pe kern k#,
+ CYR_er kern k#,
+ CYR_ka kern k#,
+ CYR_en kern k#,
+ CYR_che kern kk#,
+ CYR_sha kern kk#,
+ CYR_yu kern k#,
+ CYR_u kern k#,
+ "b" kern k#,
+ "t" kern kk#,
+ CYR_HA kern -k#;
+
+ligtable CYR_O: CYR_EF: "D": "O": "Q":
+ CYR_yeru kern k#,
+ CYR_pe kern k#,
+ CYR_en kern k#,
+ CYR_o kern k#,
+ CYR_be kern k#,
+ CYR_HA kern -k#,
+ CYR_te kern kk#,
+ CYR_ef kern k#,
+ CYR_er kern k#,
+ CYR_ka kern k#,
+ CYR_che kern kk#,
+ CYR_sha kern kk#,
+ CYR_yu kern k#,
+ CYR_u kern k#,
+ "o" kern k#,
+ "e" kern k#,
+ "q" kern k#,
+ "l" kern k#,
+ "p" kern k#,
+ "t" kern k#,
+ "u" kern kk#,
+ "b" kern k#,
+ "X" kern -k#;
+
+ligtable CYR_ER: "P":
+ CYR_A kern -kk#,
+ CYR_el kern -k#,
+ CYR_te kern k#,
+ CYR_pe kern k#,
+ "p" kern k#,
+ CYR_ka kern k#,
+ CYR_en kern k#,
+ CYR_che kern kk#,
+ CYR_sha kern kk#,
+ CYR_yu kern k#,
+ CYR_u kern k#,
+ "i" kern k#,
+ "b" kern k#,
+ "u" kern k#,
+ "l" kern k#,
+ "r" kern k#;
+
+ligtable CYR_ES: "C":
+ CYR_i kern kk#,
+ CYR_pe kern k#,
+ CYR_ve kern k#,
+ "7" kern kk#,
+ "l" kern kk#,
+ "n" kern k#,
+ "h" kern k#,
+ CYR_o kern k#;
+
+ligtable CYR_EN:
+ CYR_i kern k#;
+
+ligtable CYR_U:
+ CYR_A kern -kkk#,
+ CYR_O kern -k#,
+ CYR_ES kern -k#,
+ CYR_EF kern -k#;
+
+ligtable CYR_HA: "X":
+ CYR_ES kern -k#,
+ CYR_EF kern -k#,
+ CYR_O kern -k#,
+ "O" kern -k#,
+ "Q" kern -k#,
+ "C" kern -k#,
+ "G" kern -k#;
+
+ligtable CYR_be:
+ CYR_a kern -kk#,
+ CYR_o kern -kk#,
+ "a" kern -kk#,
+ "o" kern -kk#,
+ "e" kern -kk#,
+ "c" kern -k#,
+ "x" kern -kk#,
+ "p" kern -kk#,
+ CYR_ie kern -kk#,
+ CYR_ze kern -kk#,
+ CYR_el kern -kk#,
+ CYR_em kern -kk#,
+ CYR_es kern -k#,
+ CYR_ef kern -k#,
+ CYR_ha kern -kk#,
+ CYR_e kern -kk#,
+ CYR_ye kern -k#,
+ CYR_ya kern -kk#,
+ CYR_yeru kern -k#,
+ CYR_ve kern -k#,
+ CYR_ghe kern -kk#,
+ CYR_de kern -k#,
+ CYR_zhe kern -kk#,
+ CYR_i kern -k#,
+ CYR_ka kern -kk#,
+ CYR_en kern -kk#,
+ CYR_pe kern -kk#,
+ CYR_er kern -kk#,
+ CYR_u kern -kk#,
+ "y" kern -kk#,
+ CYR_tse kern -kk#,
+ CYR_che kern -k#,
+ CYR_sha kern -k#,
+ CYR_shcha kern -k#,
+ CYR_soft_sign kern -k#,
+ CYR_yu kern -kk#;
+
+ligtable CYR_de:
+ CYR_em kern -kk#,
+ CYR_a kern -kk#,
+ "a" kern -kk#,
+ "c" kern -kk#,
+ "p" kern -kk#,
+ "o" kern -k#,
+ "e" kern -k#,
+ "n" kern -kk#,
+ CYR_zhe kern -kk#,
+ CYR_ze kern -kk#,
+ CYR_el kern -kkk#,
+ CYR_pe kern -kk#,
+ CYR_er kern -kk#,
+ CYR_es kern -kk#,
+ CYR_u kern -kk#,
+ CYR_ha kern -kk#,
+ CYR_ya kern -kk#,
+ CYR_be kern -k#,
+ CYR_ve kern -k#,
+ CYR_ghe kern -k#,
+ CYR_ie kern -k#,
+ CYR_ye kern -k#,
+ CYR_ka kern -k#,
+ CYR_en kern -k#,
+ CYR_o kern -k#,
+ CYR_ef kern -k#,
+ CYR_tse kern -k#,
+ CYR_sha kern -k#,
+ CYR_hard_sign kern -k#,
+ CYR_e kern -k#,
+ CYR_yu kern -k#;
+
+ligtable CYR_ghe:
+ CYR_el kern -k#;
+
+ligtable CYR_pe: "n":
+ "y" kern -k#,
+ CYR_u kern -k#,
+ "f" kern -kk#,
+ "j" kern -kk#,
+ "g" kern -k#;
+
+ligtable CYR_te:
+ CYR_em kern -k#,
+ CYR_ie kern -k#,
+ CYR_el kern -kkk#;
+
+ligtable CYR_u: "y":
+ CYR_el kern -k#,
+ CYR_em kern -k#,
+ CYR_ie kern -k#,
+ CYR_ka kern -k#,
+ CYR_ya kern -k#,
+ CYR_ye kern -k#,
+ "f" kern -kk#,
+ "j" kern -kk#;
+
+ligtable "I": "H": "N": "U":
+ "l" kern kk#,
+ "t" kern k#,
+ "i" kern k#,
+ "k" kern kk#,
+ "b" kern kk#,
+ "h" kern kk#;
+
+ligtable "L":
+ "T" kern -kk#,
+ "W" kern -k#,
+ "V" kern -k#,
+ "Y" kern -kk#;
+
+ligtable "S":
+ "b" kern k#,
+ "c" kern k#,
+ "l" kern k#,
+ "t" kern k#,
+ "j" kern -k#,
+ "o" kern k#;
+
+ligtable "V": "W":
+ "A" kern -kkk#,
+ "l" kern kk#,
+ "t" kern k#,
+ "i" kern k#,
+ "k" kern kk#,
+ "b" kern kk#,
+ "h" kern kk#;
+
+ligtable "d":
+ "f" kern -kk#,
+ "g" kern -k#,
+ "j" kern -kk#;
+
+ligtable "f":
+ "g" kern -k#,
+ "f" kern -kk#,
+ "a" kern -k#,
+ "c" kern -k#,
+ "d" kern -k#,
+ "e" kern -k#,
+ "o" kern -k#,
+ "q" kern -k#,
+ "r" kern -k#,
+ "s" kern -k#,
+ "x" kern -k#,
+ "z" kern -k#,
+ "j" kern -k#;
+
+ligtable "g":
+ "i" kern k#,
+ "u" kern k#,
+ "t" kern k#,
+ "f" kern -k#,
+ "v" kern k#,
+ "w" kern k#;
+
+ligtable "o": "b": "p": "e":
+ "W" kern -kkk#,
+ "V" kern -kkk#,
+ "X" kern -kk#,
+ "e" kern k#,
+ "f" kern -kk#,
+ "j" kern -kk#,
+ "o" kern k#;
+
+ligtable "r":
+ "g" kern -k#,
+ "a" kern -k#;
+
+ligtable "s": "z":
+ "f" kern -kk#,
+ "j" kern -kk#;
+
+ligtable "t":
+ "f" kern -k#,
+ "a" kern -k#;
+
+ligtable "v": "w":
+ "f" kern -kk#,
+ "g" kern -k#,
+ "j" kern -kk#;
+
+ligtable "c": CYR_es:
+ "j" kern -kk#;
+
+ligtable "x": CYR_ha:
+ CYR_el kern -kk#,
+ CYR_em kern -kk#,
+ "j" kern -kk#;
+
+ligtable oct"55":
+ oct"55" =: hex"7b";
+ligtable hex"7b":
+ oct"55" =: hex"7c";
+end
diff --git a/fonts/obnov/obnitb10.mf b/fonts/obnov/obnitb10.mf
new file mode 100644
index 0000000000..ee262dc90b
--- /dev/null
+++ b/fonts/obnov/obnitb10.mf
@@ -0,0 +1,3575 @@
+%written by Basil Solomykov, Russia
+%(C) Copyright 2011 LPPL (LaTeX Project Public License)
+%Font Ordinary New (Obyknovennaya novaya), Italic Bold
+
+design_size := 10pt#;
+o# := .45*1.3pt#;
+u# := 1.1*19/35pt#;
+bar# := 10/36pt#;
+slab# := 10/36pt#;
+cap_bar# := 10/36pt#;
+vair# := 10/36pt#;
+hair# := 10/36pt#;
+jut# := 20/36pt#;
+cap_jut# := 26/36pt#;
+stem# := 1.3*30/36pt#;
+curve# := 1.3*31/36pt#;
+cap_stem# := 1.3*36/36pt#;
+cap_curve# := 1.3*37.2/36pt#;
+s# := 0.4pt#;
+c# := .2pt#;
+
+input obn_lcyw_code.mf
+font_identifier "OBNITB";
+mode_setup;
+clear_pen_memory;
+
+font_size design_size*pt#;
+asc_height# := 24/36*design_size*pt#;
+cap_height# := 24/36*design_size*pt#;
+body_height# := 27/36*design_size*pt#;
+x_height# := 15.4/36*design_size*pt#;
+desc_depth# := 8/36*design_size*pt#;
+body_depth# := 9/36*design_size*pt#;
+comma_depth# := 5/36*design_size*pt#;
+x_depth# := 4/5comma_depth#;
+bar_height# := .52x_height#;
+cap_bar_height# := .52cap_height#;
+cap_bar2_height# := .45cap_height#;
+border_height# := comma_depth#;
+cap_drop_round# := 4.5*slab#;
+drop_round# := 6.6/8cap_drop_round#;
+
+bracket# := pt#;
+
+font_slant sind 32;
+font_x_height x_height#;
+font_normal_space 9u#;
+font_normal_stretch 4u#;
+font_normal_shrink 2u#;
+font_quad 12u#;
+font_extra_space 6u#;
+
+k# := .8u#;
+kk# := 1.5u#;
+kkk# := 3u#;
+
+serif_darkness := 1/30;
+define_pixels(bracket,cap_o_width,sss_width,css_width);
+define_pixels(c,s,cap_bar_height,cap_bar2_height);
+define_pixels(border_height,A_bracket,cap_drop_round,x_depth,drop_round);
+define_whole_blacker_pixels(stem,cap_stem,curve,cap_curve,bar,slab,cap_bar);
+define_good_x_pixels(hair); define_good_y_pixels(vair);
+define_whole_pixels(asc_height,cap_height,x_height,u,desc_depth,comma_depth,bar_height,body_height,body_depth,u,o,cap_jut,jut);
+%define_corrected_pixels();
+lowres_fix(stem,curve) 1.2;
+lowres_fix(cap_stem,cap_curve) 1.2;
+if jut=cap_jut: jut:=jut-1; fi
+
+def serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g if left_jut=0: -1/2slab fi +1/2slab; x$d=x$e=x$h if right_jut=0: +1/2slab fi-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def serif_edge suffix $ =
+(serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse serif_bracket($f,$r,$e)) enddef;
+
+def serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...serif_darkness[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def T_serif(suffix $)(expr slab, bord_height, direction)= %Direction: 0-left, 1-right;
+penpos$(slab,if direction=1: - fi 90);
+x$=x$a=x$g; y$g-y$=y$-y$a=1/2slab;
+x$b=x$a + if direction=0: - fi .882bord_height; y$b=y$d=y$c+1/2slab;
+x$c=x$b + if direction=0: - fi 1/2slab; y$c=y$a-bord_height;
+x$d=x$e=x$b + if direction=0: - fi slab;
+y$e=y$g-1/2slab; y$f=y$g; x$f=x$c;
+labels($a,$b,$c,$d,$e,$f,$g) enddef;
+
+def T_edge suffix $ =
+(z$a..{down}z$b..z$c..z$d--z$e{up}..z$f--z$g--cycle) enddef;
+
+def A_serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g+1/2slab; x$d=x$e=x$h-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def A_serif_edge suffix $ =
+(A_serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse A_serif_bracket($f,$r,$e)) enddef;
+
+def A_serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...0.6[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def ur_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a= 1/2slab;
+x$e=x$a + drop_length; y$e=y$f- drop_height;
+x$d=x$e - 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e - drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d - 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ur_drop_edge suffix $ =
+(z$f{right}..tension.9..{down}z$e{down}..{left}z$d{left}..{up}z$c{up}..z$b...{left}z$a--cycle) enddef;
+
+def ul_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$f- drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d + 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ul_drop_edge suffix $ =
+(z$f{left}..tension.9..{down}z$e{down}..{right}z$d{right}..{up}z$c{up}..z$b...{right}z$a--cycle) enddef;
+
+def dl_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, -90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$a + drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e + 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d - drop_round); x$b=x$d + 1/90drop_round;
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def dl_drop_edge suffix $ =
+(z$a{left}..tension.9..{up}z$e{up}..{right}z$d{right}..{down}z$c..{dir 250}z$b{dir -80}..{right}z$f--cycle) enddef;
+
+def S_serif (suffix $)(expr serif_slab, serif_length, serif_height)=
+%penpos$(serif_slab,90);
+x$a=x$i=x$; y$i=y$+1/2serif_slab; y$a=y$-1/2serif_slab;
+x$f=x$e=x$a+serif_length; y$f=y$g-1/2serif_slab; y$e=y$c=y$d+1/2serif_slab;
+x$g=x$f-1/2serif_slab; y$g=y$i-1/2serif_slab;
+y$h=y$f-1/4serif_slab; x$h=x$g-serif_slab;
+x$c=x$e-serif_slab; x$d=x$e-1/2serif_slab; y$d=y$g-serif_height;
+x$b=x$h-6/18serif_length; y$b=y$h-1/2slab;
+labels ($a,$b,$c,$d,$e,$f,$g,$h,$i) enddef;
+
+def S_serif_edge suffix $ =
+(z$a{right}...z$b..{dir -80}z$c..z$d..z$e--z$f{up}..z$g{left}..z$h{dir 150}..{left}z$i--cycle) enddef;
+
+currenttransform := identity slanted sind 18;
+beginchar(CYR_A,13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4b]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar(CYR_BE,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.87u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=y5=h-1/2slab;
+y1c=h; y2c=0; x5e=w-s-cap_stem;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h; x4=w-s-cap_stem-border_height;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_VE,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.25u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+css_width := x8 - x2r; save css_width;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar(CYR_GHE,9u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.72u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; x3=x4+2u;
+y5=y3; x5e=w-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_DE,12u#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-.92u#;
+x10e=w-s; y10c=-d;
+y4c=h; x4h=w-s-1/2slab;
+x9=x4; y9c=0;
+x3=x8=x9d; y8=y7=1/2cap_bar; y3=y2=h-y8;
+x6e=s; y6=y10; x7=border_height+s;
+y5=y9; x5g=s+.5u; y1=y4; x1=x5+1.5u;
+x2=x1c;
+A_serif(1,1.2cap_bar,-96,10/7cap_jut,cap_jut);
+A_serif(5,1.2cap_bar,81,6/7cap_jut,cap_jut);
+serif(4,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+penpos2(cap_bar,90);
+penpos3(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_bar,90);
+penstroke z7e--z8e; penstroke z2e--z3e;
+fill A_serif_edge5...reverse A_serif_edge1...cycle;
+fill serif_edge9--reverse serif_edge4--cycle;
+T_serif(6,slab,border_height,0);
+T_serif(10,slab,border_height,1);
+fill T_edge6;
+fill T_edge10;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_IE,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.05u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_YE,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.05u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+x12=x13=x2r-.3c; y12=h+1/4cap_stem; y13=y12+cap_stem;
+x14=x15=x12+1.7cap_stem; y14=y12; y15=y13;
+fill z12..z13..cycle; fill z14..z15..cycle;
+penlabels(range 1 thru 15);
+endchar;
+
+beginchar(CYR_ZHE,round (16u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-1.42u#;
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; y7=y4=y10=y11=cap_bar_height; x4=x7-1.5u;
+x10=x8r; x11=x10+1.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+x6=s; y6=0; y4-y5=y5-y6; x4-x5=x5-x6;
+penpos7(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,90);
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z6e{right}..tension.8..{up}z5e{up}..tension.8..{right}z4e--z7e;
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+x3=x5+1/2cap_stem; y2=h; x4-x3=x3-x2; y2-y3=y3-y4;
+penpos3(hair,0);
+penpos2(cap_bar,90);
+penstroke z4e{left}..tension.8..{up}z3e{up}..tension.8..{left}z2e;
+y1=h; x1a=x2; fill z6l..z6r..cycle;
+ul_drop(1,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ul_drop_edge1; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ZE,10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.08u#;
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height;
+x4=x6-3/2cap_stem; x5=x4-3u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3c,1.4border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.5cap_drop_round,slab);
+fill dl_drop_edge8;
+%currentpicture:=currentpicture shifted(-u,0);
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_I,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.72u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-30); penpos6(cap_bar,-30);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar(CYR_SHORT_I,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.72u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-30); penpos6(cap_bar,-30);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+y7d=h+1.4cap_drop_round; z7d=z1r+whatever*dir 83;
+dl_drop(7,.95cap_drop_round,stem,.8cap_drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+z8=z7; y9=y7d-2bar; z9=z3+whatever*dir 107;
+penpos8(bar,90); penpos9(bar,135);
+penstroke z8e{right}..tension1.3..z9e;
+fill z9l..tension1.3..z9r..tension1.3..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_KA,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.42u#;
+x8g=x9g=s; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+y10=y11=cap_bar_height;
+x10=x8r; x11=x10+2.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13; fill z16l..z16r..cycle;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_EL,13u#+1/2s#,cap_height#,0);
+italcorr cap_height#*sind 18-.72u#;
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+cap_drop_round; y3=1.1cap_drop_round;
+dl_drop(1,1.1cap_drop_round,1.1cap_drop_round,1.2cap_drop_round,slab);
+fill dl_drop_edge1;
+penpos2(cap_bar,-90);
+penpos3(cap_bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-slab;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,cap_bar,theta1,1.2cap_jut,1.2cap_jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,cap_stem,-90,cap_jut,cap_jut);
+serif(8,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z5e--z6e;
+%currentpicture:=currentpicture shifted(-.7u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_EM,13u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.72u#;
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,.51cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,-30); penpos6(bar,-30);
+z6=z5+whatever*dir -109; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 112; y7l=12/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EN,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.72u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_O,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+cap_o_width := x7-x3; save cap_o_width;
+%currentpicture:=currentpicture shifted(-1.6u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_PE,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.72u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ER,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.45u#;
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_ES,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.05u#;
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+%currentpicture:=currentpicture shifted(-1.6u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_TE,round (11u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-.72u#;
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+%currentpicture:=currentpicture shifted(-2.9u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_U,13u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.72u#;
+x1l=s+cap_jut; y1l=.98h-cap_bar;
+x3r=w-s-.8cap_jut; y3r=.98h-cap_bar;
+x4=33/60w; y4=6/53h;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,1.2cap_bar,theta2,1.2cap_jut,.8cap_jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=0; x6=x4-1.2cap_stem; z7l=z2;
+penpos7(1.2cap_bar,theta2+90);
+penpos5(1.2cap_bar,theta2+90);
+penpos6(1.2cap_bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,cap_drop_round,2u, 10/53h, round 1.2cap_bar);
+fill dl_drop_edge8;
+%currentpicture:=currentpicture shifted(-2.9u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EF,round (14u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-2u#;
+if .5w = good.x .5w: change_width; fi
+x1=x2=.5w; y2c=0; y1h=h;
+y6=y7=y8=y9=1.3cap_jut; y4=y3=y11=y12=h-1.3cap_jut+1/2slab;
+x3=x7=x2l; x8=x12=x2r; x4=x6=x3-u; x11=x9=x12+u;
+x5=s+1/2cap_curve; x10-x1=x1-x5; y4-y5=y5-y6; y10=y5;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,270);
+penpos7(cap_bar,270);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+penpos10(cap_curve,0);
+penpos11(cap_bar,90);
+penpos12(cap_bar,90);
+penstroke z3e--z4e{left}..tension.8..{down}z5e{down}..tension.8..{right}z6e--z7e;
+penstroke z8e--z9e{right}..tension.8..{up}z10e{up}..tension.8..{left}z11e--z12e;
+%currentpicture:=currentpicture shifted(-1.7u,0);
+penlabels (range 1 thru 12);
+endchar;
+
+beginchar(CYR_HA,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.1u#;
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_TSE,12.5u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-1.2u#;
+x1=x2=x5=cap_jut+1/2cap_stem+s;
+x3=x4=x6=w-x1-.5u; y5=y6=y2h;
+y1c=y3c=h; y2c=y4c=0; x7e=w-s; y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e;
+T_serif(7,cap_bar,border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_CHE,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.72u#;
+x1=cap_jut+1/2cap_stem+s;
+x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,-90,cap_jut,cap_jut);
+serif(3,cap_stem,90,cap_jut,cap_jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=cap_bar_height-1/2cap_bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-2cap_bar;
+penpos6(cap_stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+%currentpicture:=currentpicture shifted(-3.1u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SHA,16u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.72u#;
+if .5w <> good.x .5w: change_width; fi
+x1=x2=good.x (cap_jut+1/2cap_stem+s);
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=good.x .5w; y5=y1; y6=y2;
+y9b=slab; x9=good.x w-x1;
+x10=x9; y10b=h-slab;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_SHCHA,16u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-.72u#;
+if .5w <> good.x .5w: change_width; fi
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=slab; x9h=w-s;
+x10=x9; y10b=h-slab;
+x11e=w-s; y11=y9h;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,slab,border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_HARD_SIGN,13.5u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-2.99u#;
+x2r=x5-css_width; x1=x2; x8e=0; y8g=h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+x7=x1d; y1c=h; y2c=0;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=round(x3+5u-cap_stem);
+y6=y7=y2h;
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(8,cap_bar,border_height,0);
+fill T_edge8;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+%currentpicture:=currentpicture shifted(-1.8u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YERU,16u#+c#,cap_height#,0);
+italcorr cap_height#*sind 18-.72u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+y3=y4=cap_bar_height; x3=round x2r; x4=x6=round (x3+5u-cap_stem) - 1;
+y4-y5=y5-y6; x5=x2r+css_width; y8b=slab; x8h=w-s;
+y6=y7=y2h; x9=x8; y9b=h-slab;
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(8,cap_stem,90,cap_jut,cap_jut);
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge9--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SOFT_SIGN,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-3u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=x3+5u-cap_stem;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y6=y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_E,10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-2u#;
+x1=16/39w; x5=.5w; y1=0; y5=h;
+y7=.5h; x7=w-1/2cap_curve-s;
+x9e=s; y9=0;
+dl_drop(9,cap_drop_round,16/39w-s,1.7cap_drop_round,slab);
+y8=0.1h-c; y6=0.9h+c; x8=x9+9/16(x7-x9); x6=x5+9/16(x7-x5);
+penpos5(cap_bar,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+penpos1(cap_bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+y2=y5; x2=x5-c;
+S_serif(2,slab,x1+c,1.5border_height);
+x3=x7-1/2cap_stem; y3=y4=cap_bar_height; x4=x2b-x1;
+penpos3(cap_bar,90); penpos4(cap_bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+%currentpicture:=currentpicture shifted(-u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YU,16u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.1u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+y3=y7=.5h; x7=w-1/2cap_curve-s; x3=x7-cap_o_width; y9=0; y5=h; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3cap_stem; y11=y12=cap_bar_height;
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_YA,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.72u#;
+x1=x2=w-cap_jut-1/2cap_stem-s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2l;
+y1c=h; y2c=0; x6=x4=x7-2.5u; x3=x1c;
+y4-y5=y5-y6; x5=x8-1.5c; x9=s; y9=0; y6-y8=y8-y9; x7-x10=3(x10-x6); x10-x8=x8-x9;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos7(cap_bar,270);
+penpos6(cap_bar,270);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90); fill z9l..z9r..cycle;
+penstroke z3e--z4e{left}..tension.9..z5e..tension.9..{right}z6e--z7e;
+penstroke z9e{right}..tension1..{up}z8e{up}..tension1..{right}z10e;
+penlabels(range 1 thru 10);
+endchar;
+currenttransform := identity;
+
+beginchar(CYR_a,9u#+2c#,x_height#,0);
+x1=w-s-3/4stem; y1=h; y2=7/33h; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=w-s-bar/3; y4=8/33h;
+penpos1(stem,180);
+penpos2(stem,180);
+penpos3(1.2vair,270);
+penpos4(bar,360);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 75}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x5=x1-1.4stem; y5=h; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c; y6=.54h; y8=.46h; z8l=whatever[z1r,z2r];
+penpos8(2bar,0);
+penpos5(vair,90);
+penpos6(curve,180);
+penpos7(vair,270);
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=h-c; z10=(x1r+c,h); z11=(x1l-c,h);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar(CYR_be,8u#+s#+stem#,asc_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5(w-stem)-1/2(x_height*sind 14/cosd 14); x3=.5(w-stem)+1/2(x_height*sind 14/cosd 14); y1=0; y3=x_height;
+y2=.54x_height; y4=.46x_height; x2=1/2curve+s; x4=w-1/2curve-stem-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+y5=y2; x5r=x2l; x6=22/35w; y6=45/51h; y7r=h; x7=w-1.3s;
+penpos5(bar,180);
+penpos6(.9curve,90);
+penpos7(.8curve,90);
+penstroke z5e{dir 76}..tension.8..{dir 7}z6e{dir 7}..{dir 30}z7e;
+fill z7l..tension2..z7r..tension2..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_ve,8u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=4/5h; x2=1/2curve+s; x4=w-1/2curve-s; z5r=z2; x6=w-s-s-1/2curve; y6=9/33h; z7=z5;
+penpos5(vair,-270);
+penpos6(curve,180);
+penpos7(vair,270);
+penstroke z7e{dir 14}..tension.9..{dir 256}z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{dir 194}z5e;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_ghe,7u#+s#,x_height#,0);
+x4=0.5w; top y4 = good.y (0.5h+1/3bar); y3=12.5/16h; x3=w-s-1/2curve;
+x2=10/18w; y2=h; x1=s+1/2curve; y1=24/33h;
+x5=s+1/2curve; y5=h-y3; x6=w-x2; y6=0; x7=w-x1; y7=h-y1;
+penpos1(bar,180);
+penpos2(1.2bar,90);
+penpos3(curve,0);
+penpos4(1.2bar,-90);
+penpos5(curve,0);
+penpos6(1.2bar,90);
+penpos7(bar,180);
+penstroke z1e{dir 60}..{right}z2e..z3e{dir -90}...{dir 200}z4e{dir 200}...{dir -90}z5e..z6e{right}..{dir 60}z7e;
+fill z7l..tension1.3..z7r..tension1.3..cycle;
+fill z1l..tension1.3..z1r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_de,8u#+s#+.3stem#,asc_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5(w-.3stem)-1/2(x_height*sind 14/cosd 14); x3=.5(w-.3stem)+1/2(x_height*sind 14/cosd 14); y1=0; y3=x_height;
+y2=.54x_height; y4=.46x_height; x2=1/2curve+s; x4=w-1/2curve-.3stem-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..tension1..{right}z3e..tension.9..{dir 256}z4e{dir 256}..tension1..{left}z1e..cycle;
+y5=24/33x_height; z5=z4+whatever*dir 77; x6=22/35w; y6=h;
+y56=y5+s+stem; z56=z4+whatever*dir 78;
+x7=10/35w; y7=42/51h;
+penpos5(1.1curve,-180);
+penpos56(.9curve,-180);
+penpos6(1.2bar,-90);
+penpos7(bar,0);
+penstroke z4e{dir 76}..z5e{dir 76}..z56e..tension1..{dir 174}z6e{left}..z7e;
+fill z7l..tension1.3..z7r..tension1.3..cycle;
+penlabels(range 1 thru 8,56);
+endchar;
+
+beginchar(CYR_ie,8u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=4/5h; x2=1/2curve+s; x4=w-1/2curve-s; z5r=z2; x6=w-s-s-1/2vair; y6=9/33h;
+penpos5(vair,-270);
+penpos6(vair,135);
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{dir 194}z5e;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_ye,8u#+c#,asc_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(x_height*sind 14/cosd 14); x3=.5w+1/2(x_height*sind 14/cosd 14);
+y1=0; y3=x_height; y2=.54x_height; y4=4/5x_height; x2=1/2curve+s;
+x4=w-1/2curve-s; z5r=z2; x6=w-s-s-1/2vair; y6=9/33x_height;
+penpos5(vair,-270);
+penpos6(vair,135);
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{dir 194}z5e;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+z8r=(w-s,h-1/2curve); y7=y8; x7=x8-1.9curve;
+penpos7(curve,0); penpos8(curve,0);
+fill z7r..z7l..cycle; fill z8r..z8l..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_zhe,15u#,x_height#,0);
+penpos1(1.2vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+x1=x3-(h*sind 14/cosd 14); x3=w-s-3/4stem; y1=0; y3=h;
+y2=.54h; x2=x1-3/4stem; x5=w-s-.73stem; y5=7/33h;
+penpos5(vair,160); z4=z3;
+penstroke z5e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e;
+fill z5l..tension1.5..z5r..tension1.5..cycle;
+z77=(.5w,.5h); z9=z77+whatever*dir 76; y9=h;
+z8=whatever[z9,z77]; y8=0;
+penpos8(stem,0); penpos9(stem,0);
+penstroke z8e--z9e;
+ur_drop(4,drop_round,3/4stem,drop_round,bar);
+fill ur_drop_edge4;
+x10=w-x5; y10=26/33h; x11=w-x1; y11=h; x12=w-x2; y12=.46h;
+x13=w-x3; y13=0; z14=z13;
+penpos10(bar,160); penpos11(bar,90);
+penpos12(curve,0); penpos13(bar,-90);
+penstroke z10e..z11e{right}..{dir -104}z12e{dir -104}..{left}z13e;
+fill z10l..tension1.5..z10r..tension1.5..cycle; z14=z13;
+dl_drop(14,drop_round,3/4stem,drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+x7=x12; x6=x2; y6=y7=bar_height;
+penpos7(bar,90); penpos6(bar,90);
+penstroke z6e--z7e;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_ze,8u#,x_height#,0);
+x1=2.5s+1/2vair; y1=26/33h; x2=.5w+1/2(h*sind 14/cosd 14); y2=h;
+x3=w-s-1/2curve; y2-y3=y3-y4; x5=x1+s;
+z4=z2+whatever*dir -104; y4=y5=bar_height;
+z7=whatever[z2,z4]; y7=0; z6=z3+whatever*dir -100;
+y4-y6=y6-y7; z8=z7;
+penpos1(bar,135); penpos2(bar,90);
+penpos3(curve,0); penpos4(bar,-90);
+penpos5(bar,-90); penpos6(curve,180);
+penpos7(bar,90);
+penstroke z1e..z2e{right}..{dir -100}z3e{dir -100}..{left}z4e--z5e;
+penstroke z4e{right}..{dir -100}z6e{dir -100}..{left}z7e;
+fill z1l..tension1.5..z1r..tension1.5..cycle;
+fill z5l..tension1.5..z5r..tension1.5..cycle;
+dl_drop(8,drop_round,x7-s,1.2drop_round,bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_i,10u#,x_height#,0);
+x1=w-s-1.1stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+.75stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=0; y5=8/34h;
+x5=s+1/2stem; x6=x5+.9stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=y2;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+z7l=z5r+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_short_i,10u#,asc_height#,0);
+x1=w-s-1.1stem; y1=x_height; y2=10/33x_height; z2=z1+whatever*dir -104;
+x3=x2+.75stem; x4=w-s-1/2bar; y4=10/33x_height; y3=y6=0; y5=8/34x_height;
+x5=s+1/2stem; x6=x5+.9stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=y2;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+z7l=z5r+whatever*dir 76; y7l=x_height-bar;
+serif(7,stem,-104,jut,0);
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+y9d=h; z9d=z7+whatever*dir 76;
+dl_drop(9,drop_round,.9stem,drop_round,bar);
+fill dl_drop_edge9; fill z9e..z9c..cycle;
+z10=z9; y11=h-bar; z11=z1+whatever*dir 80;
+penpos10(bar,90); penpos11(bar,135);
+penstroke z10e{right}..tension1.3..z11e;
+fill z11l..tension1.3..z11r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ka,10u#,x_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-2*.8stem; y1=bar_height-2.5bar; y2=6/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y5=y6=0;
+x8=x2-3/4stem; y8=bar_height; y9=bar_height-2bar; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.1bar,270); penpos9(1.2bar,0);
+penstroke z9e{dir 68}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x10=x3; y10=h; penpos10(1.2bar,270); z11=z10;
+penstroke z9e{dir 60}..{dir 25}z10e;
+ur_drop(11,drop_round,drop_round,drop_round,1.2bar);
+fill ur_drop_edge11;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_el,10u#+c#,x_height#,0);
+x1=w-s-.9stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+.7stem; x4=w-s-1/2bar; y4=10/33h; y3=0;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x5=x1r; y5=h-1/2bar; x8=1/5w; y8=0; z9=z8;
+y6=27/34h; y7=7/34h; x6=.5w; z7=z6+whatever*dir -108;
+penpos5(vair,90); penpos6(bar,180);
+penpos7(bar,180); penpos8(vair,90);
+penstroke z5e{left}..z6e--z7e{dir -108}..{left}z8e;
+dl_drop(9,drop_round,x8-s,drop_round,bar);
+fill dl_drop_edge9; fill z9e..z9c..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_em,12u#+s#,x_height#,0);
+x1=w-s-.9stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+.65stem; x4=w-s-1/2bar; y4=9/33h; y3=0;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+z5r=z1r; z6=z5+whatever*dir -120; y6=0;
+penpos5(bar,180); penpos6(bar,180);
+penstroke z5e--z6e; fill z6l..tension1.3..z6r..tension1.3..cycle;
+z7l=z6r+whatever*dir 92; y7l=7/28h;
+z8l=whatever[z6r,z7l]; y8l=h;
+penpos7(.9stem,0); penpos8(.9stem,0);
+penstroke z7e--z8e; fill z6r--z7l--z7r--cycle;
+y9=h-bar; x9=x8l; y10=10/33h; z10=z9+whatever*dir -104;
+y11=0; x11=s+.7stem; z12=z11;
+penpos10(bar,0); penpos11(bar,-90);
+serif(9,bar,-104,jut,0);
+fill z10l--z10r--reverse serif_edge9--cycle;
+penstroke z10e{dir -104}..{left}z11e;
+dl_drop(12,drop_round,x11-s,drop_round,bar);
+fill dl_drop_edge12; fill z12e..z12c..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_en,10u#+s#,x_height#,0);
+x1=w-s-1.1stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+.7stem; x4=w-s-1/2bar; y4=10/33h; y3=y5=y6=0;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+y8=y9=bar_height; z9=z2+whatever*dir 76; z8=whatever[z6,z7];
+penpos8(bar,90); penpos9(bar,90);
+penstroke z8e--z9e; fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_o,8u#+s#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=.46h; x2=1/2curve+s; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+italic_o_width := x4-x2; save italic_o_width;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_pe,10u#+s#,x_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-10/8stem; y1=26/33h; y2=10/33h; z2=z1+whatever*dir -108;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y5=y6=0;
+x8=x2; y8=h; y9=bar_height-bar; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.2bar,270); penpos9(bar,0);
+penstroke z9e{dir 68}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_er,9u#+c#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=x2+.5(x4-x2)-1/4(h*sind 14/cosd 14)-.5c; x3=x2+.5(x4-x2)+3/4(h*sind 14/cosd 14)-.5c; y1=0; y3=h;
+y2=.54h; y4=.46h; x2=x4-italic_o_width+c; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+y5=h-bar; z5=z2+whatever*dir 76;
+serif(5,stem,-104,jut,0); fill z5e{dir 76}..z5d{left}..cycle;
+y6=-d+bar; z6=whatever[z2,z5];
+serif(6,stem,76,.3jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_es,7.5u#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+x1=4u-1/2(h*sind 18/cosd 18)+c; x3=4u+1/2(h*sind 18/cosd 18); y1=0; y3=h;
+y2=.54h; x2=1/2curve+s; x6=8u-2.5s-1/2vair; y6=9/33h;
+penpos6(vair,150); z4=z3;
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e;
+fill z6l..tension1.5..z6r..tension1.5..cycle;
+ur_drop(4,drop_round,w-s-x3,5/4drop_round,bar);
+fill ur_drop_edge4;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_te,round (8u#-.5s#),x_height#,0);
+if .5w = good.x .5w: change_width; fi
+currenttransform := identity slanted sind 14;
+x2=.5w-w*sind 14/cosd 14+c; x1e=s-w*sind 14/cosd 14+c;
+x4e=w-s-w*sind 14/cosd 14+c;
+y1=y4=y2h; y2c=h; y3=y5=0; x3=.5w-1/2stem-w*sind 14/cosd 14+c;
+x5=.5w+1/2stem-w*sind 14/cosd 14+c;
+serif(2,stem,-90,jut,jut);
+T_serif(1,bar,4/5border_height,0);
+T_serif(4,bar,4/5border_height,1);
+fill z3--z5--reverse serif_edge2--cycle;
+fill T_edge1; fill T_edge4;
+currenttransform := identity;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_u,10u#-c#,x_height#,desc_depth#);
+x5=w-s-1/2stem; y5=h; y6=10/33h; z6=z5+whatever*dir -104;
+y3=0; y2=8/34h; x2=s+stem; x3=x2+stem;
+y7=0; z7=z6+whatever*dir -104;
+penpos5(stem,180); penpos6(stem,180);
+z8r=z7r+whatever*dir -108; y8r=-1/2d;
+z4l=whatever[z6r,z5r]; y4l=15/33h;
+penpos2(stem,180); penpos3(1.1bar,270);
+y9=-d; x9=x2l-s; z10=z9;
+penpos4(bar,360); penpos7(stem,180);
+penpos8(.8stem,180); penpos9(bar,90);
+penstroke z2e{dir -104}..z3e{right}..{dir 76}z4e;
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+penstroke z5e{dir -104}..z6e..z7e..z8e..{left}z9e;
+dl_drop(10,.9stem,x9-s,1.2drop_round,bar);
+fill dl_drop_edge10; fill z10e..z10c..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ef,12u#,asc_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(.9curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=x2+.5(x4-x2)-3/8(x_height*sind 14/cosd 14)-.4c;
+x3=x2+.5(x4-x2)+5/8(x_height*sind 14/cosd 14)-.4c;
+y1=y6=0; y3=y8=x_height; y5=y4; x7=1/2curve+s; y7=y2;
+y2=.54x_height; y4=.46x_height; x4=w-1/2curve-s;
+x4-x2=x2-x7; x5=x2;
+x8=x7+.5(x5-x7)+3/8(x_height*sind 14/cosd 14)+.4c;
+x6=x7+.5(x5-x7)-5/8(x_height*sind 14/cosd 14)+.4c;
+penpos6(vair,90); penpos7(curve,0);
+penpos8(vair,-90); penpos5(.9curve,180);
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+penstroke z6e{left}..tension.9..{dir 76}z7e{dir 76}..{right}z8e..tension.9..{dir 256}z5e{dir 256}..{left}z6e..cycle;
+x5-x77=x77-x2; y2-y77=y77-y5;
+y10=h; x10=w-s-stem; y11=44/34x_height; z11=z77+whatever*dir 76;
+y12=-1/8d; z12=z77+whatever*dir -104; y13=-d; x13=s+stem; z9=z10;
+penpos10(bar,90); penpos11(stem,180);
+penpos12(stem,180); penpos13(bar,90);
+penstroke z10e{left}..{dir -104}z11e--z12e{dir -104}..{left}z13e;
+ur_drop(9,drop_round,stem,drop_round,bar);
+fill ur_drop_edge9; z14=z13;
+dl_drop(14,drop_round,stem,drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 14,77);
+endchar;
+
+beginchar(CYR_ha,10u#+c#,x_height#,0);
+penpos1(1.2vair,90);
+penpos2(curve,0);
+penpos3(vair,-90); penpos12(curve,0);
+x1=x3-(h*sind 14/cosd 14); x3=w-s-3/4stem; y1=0; y3=h;
+y2=.54h; x2=x1-if design_size=17.32: stem else: 28/40stem fi;
+x5=w-s-4/5stem; y5=7/33h;
+penpos5(vair,150); z4=z3;
+penstroke z5e..z1e{left}..{dir 76}z2e{dir 76}..{right}z3e;
+fill z5l..tension1.5..z5r..tension1.5..cycle;
+ur_drop(4,drop_round,3/4stem,drop_round,bar);
+fill ur_drop_edge4;
+x10=w-x5; y10=26/33h; x11=w-x1; y11=h; x12=w-x2; y12=.46h;
+x13=w-x3; y13=-2epsilon; z14=z13;
+penpos10(bar,150); penpos11(bar,90);
+penpos13(bar,-90);
+penstroke z10e..z11e{right}..{dir -104}z12e{dir -104}..{left}z13e;
+fill z10l..tension1.5..z10r..tension1.5..cycle; z14=z13;
+dl_drop(14,drop_round,3/4stem,drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_tse,10u#,x_height#,desc_depth#);
+x1=w-s-1.1stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+.75stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=0; y5=8/34h;
+x5=s+1/2stem; x6=x5+.9stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+z7l=z5r+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+y9l=0; x9l=x3+bar; x10=x2+1/4stem; y10=-1/2d;
+y11=-d; x11=x10-1.1stem;
+penpos11(bar,90); penpos10(stem,180); penpos9(bar,120);
+penstroke z9e..tension1.3..{down}z10e{down}..tension.8..{left}z11e;
+fill z11l..tension1.3..z11r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_che,9u#,x_height#,0);
+x7g=s; y7g=h-1/2bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=9/33h; y3=0; y6l=bar_height; y5=y6l+2bar;
+z5=z7+whatever*dir -104; x6=x5+3/4stem;
+penpos1(stem,180); penpos2(stem,180);
+z8=whatever[z2r,z1r]; y8l=y5-bar;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(1.2bar,256);
+penstroke z5e{dir -104}..z6e{right}..{dir 25}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_sha,14u#,x_height#,0);
+if .5w <> good.x .5w: change_width; fi
+x1=w-s-1.1stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=y10=0; y5=y11=8/34h;
+x11=s+1/2stem; x10=x11+.9stem;
+z12=z11+whatever*dir 76; y12=h-bar;
+y13=h; z13=whatever[z11,z12];
+x6=x5+.9stem; x1-x7=x7-x13; y7l=h; z5=z7+whatever*dir -104;
+serif(12,stem,-104,jut,0);
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=y9l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360); penpos7(stem,180);
+z9l=whatever[z5r,z7r];
+penstroke z7e--z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+penpos11(stem,180); penpos10(1.1bar,270);
+penpos9(bar,360);
+fill z11r--z11l--reverse serif_edge12--cycle;
+fill z12e{dir 76}..z12d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penstroke z11e{dir -104}..z10e{right}..{dir 76}z9e;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_shcha,14u#,x_height#,desc_depth#);
+if .5w <> good.x .5w: change_width; fi
+x1=w-s-1.1stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=y10=0; y5=y11=8/34h;
+x11=s+1/2stem; x10=x11+.9stem;
+z12=z11+whatever*dir 76; y12=h-bar;
+y13=h; z13=whatever[z11,z12];
+x6=x5+.9stem; x1-x7=x7-x13; y7l=h; z5=z7+whatever*dir -104;
+serif(12,stem,-104,jut,0);
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=y9l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360); penpos7(stem,180);
+z9l=whatever[z5r,z7r];
+penstroke z7e--z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+penpos11(stem,180); penpos10(1.1bar,270);
+penpos9(bar,360);
+fill z11r--z11l--reverse serif_edge12--cycle;
+fill z12e{dir 76}..z12d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penstroke z11e{dir -104}..z10e{right}..{dir 76}z9e;
+y14l=0; x14l=x3+bar; x15=x2+1/4stem; y15=-1/2d;
+y16=-d; x16=x15-1.1stem;
+penpos16(bar,90); penpos15(stem,180); penpos14(bar,120);
+penstroke z14e..tension1.3..{down}z15e{down}..tension.8..{left}z16e;
+fill z16l..tension1.3..z16r..tension1.3..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_soft_sign,8u#,x_height#,0);
+y2=10/34h; x2=s+1/2stem; x3=x2+5/4stem; z5=z3+whatever*dir 76; y5=bar_height+bar; y4=.5y5; x4=w-s-1/2curve; y3=0;
+y6l=y2+bar; z6l=z2l+whatever*dir 76;
+penpos2(stem,180); penpos3(bar,270);
+penpos4(curve,360); penpos5(bar,90);
+penpos6(1.5bar,180);
+penstroke z2e{dir -104}..z3e{right}..{dir 76}z4e{dir 76}..tension.9..{left}z5e{left}..{dir -104}z6e;
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+sss_italic_width :=x4-x2; save sss_italic_width;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_yeru,12u#+s#,x_height#,0);
+y2=10/34h; x2=s+1/2stem; x3=x2+5/4stem; z5=z3+whatever*dir 76; y5=bar_height+bar; y4=.5y5; x4=x2+sss_italic_width; y3=-2epsilon;
+y6l=y2+bar; z6l=z2l+whatever*dir 76;
+penpos2(stem,180); penpos3(bar,270);
+penpos4(curve,360); penpos5(bar,90);
+penpos6(1.5bar,180);
+penstroke z2e{dir -104}..z3e{right}..{dir 76}z4e{dir 76}..tension.9..{left}z5e{left}..{dir -104}z6e;
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+x7=w-s-5/4stem; y7=h-bar; y8=10/33h; z8=z7+whatever*dir -104;
+x9=x8+3/4stem; x10=w-s-1/2bar; y10=10/33h; y9=2epsilon;
+penpos8(stem,180);
+penpos9(1.1bar,270); penpos10(bar,335);
+penstroke z8e{dir -104}..{right}z9e{dir 20}..{dir 65}z10e;
+fill z10l..tension1.3..z10r..tension1.3..cycle;
+serif(7,stem,-104,jut,0);
+fill z8r--z8l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_hard_sign,11u#-c#,x_height#,0);
+y2=10/34h; x2=x4-sss_italic_width; x3=x2+5/4stem; z5=z3+whatever*dir 76; y5=bar_height+bar; y4=.5y5; x4=w-s-1/2curve; y3=0;
+y6l=y2+bar; z6l=z2l+whatever*dir 76;
+z1r=z2l+whatever*dir 76; y1=h;
+penpos2(stem,180); penpos3(bar,270);
+penpos4(curve,360); penpos5(bar,90);
+penpos6(1.5bar,180); penpos1(bar,180);
+penstroke z1e..z2e{dir -104}..z3e{right}..{dir 76}z4e{dir 76}..tension.9..{left}z5e{left}..{dir -104}z6e;
+x10=s+1/3bar; y10=y5r+1/2bar; y11=h; z11=z10+whatever*dir 70;
+penpos10(bar,0); penpos11(bar,0);
+fill z10l..tension1.3..z10r..tension1.3..cycle;
+fill z11l..tension1.3..z11r..tension1.3..cycle;
+fill z1l..tension1.3..z1r..tension1.3..cycle;
+penstroke z10e--z11e;
+x7=x1r; y7=h-1/2bar; y8=h-5/8stem; x8=x11r+1/2stem;
+x9r=x11r-.1c; y9r=h; penpos9(curve,70);
+penpos7(bar,90); penpos8(.8curve,80);
+penstroke z7e{dir 200}..{left}z8e..{dir 160}z9e;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_e,7.5u#,x_height#,0);
+x10=2.5s+1/2vair; y10=26/33h; x11=.5w+1/2(h*sind 14/cosd 14); y11=h;
+x12=w-s-1/2curve; y12=.46h;
+x13=.5w-1/2(h*sind 14/cosd 14); y13=0; z14=z13;
+penpos10(bar,135); penpos11(bar,90);
+penpos12(curve,0); penpos13(bar,-90);
+penstroke z10e..z11e{right}..{dir -104}z12e{dir -104}..{left}z13e;
+fill z10l..tension1.5..z10r..tension1.5..cycle; z14=z13;
+dl_drop(14,drop_round,x13-s,1.2drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+x1=x14c; x2=x12; y1=y2=bar_height;
+penpos1(bar,90); penpos2(bar,90);
+penstroke z1e--z2e; fill z1r..z1l..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_yu,12u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=x2+.5(x4-x2)-1/2(h*sind 14/cosd 14); x3=x2+.5(x4-x2)+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=.46h; x2=x4-italic_o_width; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+x5=s; y5=y6=0; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5--z6--reverse serif_edge7--cycle;
+y8=y9=bar_height; z8=whatever[z6,z7]; x9=x2;
+penpos8(bar,90); penpos9(bar,90);
+penstroke z8e--z9e; fill z7e{dir 76}..z7d{left}..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ya,10u#+1.5s#,x_height#,0);
+x1=w-s-stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+.7stem; x4=w-s-1/2bar; y4=10/33h; y3=2epsilon;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x5=x1r; y5=h-1/2bar; x6=x5-stem; y6=h-1/2vair;
+x7=12/40w; y8=y9=bar_height; z9=z5+whatever*dir -104;
+x8=x9-.7stem; y5-y7l=y7l-y9;
+penpos5(bar,90); penpos6(vair,90);
+penpos7(curve,166); penpos8(bar,270);
+penpos9(bar,270); x11=s+.75stem; y11=-2epsilon;
+8(x8-x10)=9(x10-x11); y8-y10=y10-y11; z12=z11;
+penpos10(.7curve,360); penpos11(bar,270);
+penstroke z5e--z6e{left}..z7e{dir -104}..{right}z8e--z9e;
+penstroke z9e{left}..tension.8..{dir -104}z10e{dir -104}..{left}z11e;
+dl_drop(12,drop_round,x11-s,drop_round,bar);
+fill dl_drop_edge12; fill z12e..z12c..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+currenttransform := identity slanted sind 18;
+beginchar("A",13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4b]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar("B",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.25u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("C",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.05u#;
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+%currentpicture:=currentpicture shifted(-1.6u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("D",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-2.1u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(o,30);
+penpos6(cap_curve,0);
+penpos7(o,-30);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+x3=x9=x1d;
+x8=x4=.5w; y8=y9=1/2cap_bar; y4=y3=h-1/2cap_bar;
+y6=.5h; x6=w-1/2cap_curve-s;
+y7=0.1h-c+1/2cap_bar; y5=0.9h+c-1/2cap_bar; x5=x7=x4+5/8(x6-x4);
+penstroke z3e--z4e{right}..z5e..z6e..z7e..{left}z8e--z9e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("E",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.05u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("F",10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-.72u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("G",10u#+cap_jut#+c#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.6u#;
+x1=x5=23/42(w-cap_jut-c); y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s-cap_jut-c; y8=y1; x8=x1-.1(w-cap_jut-c);
+S_serif(6,slab,w-s-2c-x1-cap_jut,1.5border_height);
+S_serif(7,slab,w-s-x1-cap_jut+c,7/4border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+x9r=x7e; y9r=7/4border_height-1/2cap_bar;
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+x10=x9l; x11=x9r; y10=y11=3/4cap_bar;
+fill reverse serif_edge9--z10--z11--cycle;
+%currentpicture:=currentpicture shifted(-1.6u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("H",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.72u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("I",2cap_jut#+cap_stem#+2s#,cap_height#,0);
+italcorr cap_height#*sind 18-.72u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+endchar;
+currenttransform := identity;
+
+beginchar("J",7u#,cap_height#,0);
+italcorr cap_height#*sind 18-1.4u#;
+x7=w-.5cap_jut-1/2cap_stem-s; y7=4cap_bar; penpos7(.75cap_stem,0);
+y1c=h; z1r=z7r+whatever*dir 72; serif(1,cap_stem,-108,1.2cap_jut,.6cap_jut);
+z2=z1r+whatever*dir -108; z3=z1l+whatever*dir-108;
+z4=z1+whatever*dir-108; y2=y3=y4=18/53h;
+y5=0; x5=s+.9cap_drop_round; z6=z5;
+fill z3--z2--reverse serif_edge1--cycle;
+penpos4(cap_stem,0);
+penpos5(cap_bar,-90);
+penstroke z4e{dir -108}..z7e..{left}z5e;
+dl_drop(6,cap_drop_round,x5-s,1.3drop_round,cap_bar);
+fill dl_drop_edge6;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+currenttransform := identity slanted sind 18;
+
+beginchar("K",13u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-1.65u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=cap_bar_height; x3l=w-cap_jut-.5cap_jut-cap_bar-s; y3l=h-cap_bar;
+x5=x6=x1r; y5=cap_bar_height-cap_bar; y6=y5-1.3cap_bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+A_serif(3,1.1cap_bar,theta1,1.5cap_jut,.6cap_jut);
+x4l=w-s-1.2cap_jut-cap_stem; y4l=cap_bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,cap_stem,theta2,.8cap_jut,cap_jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("L",10u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=y5=y2h; x3=x2d; x5e=w-s;
+T_serif(5,cap_bar,border_height,1); x4=x5;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penstroke z3e--z4e;
+fill T_edge5 reflectedabout(z3,z4);
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar("M",13u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.72u#;
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,.51cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,-30); penpos6(bar,-30);
+z6=z5+whatever*dir -109; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 112; y7l=12/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("N",12u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-.72u#;
+x1=x2=cap_jut+1/2cap_bar+s;
+x3=w-x1; y1c=y3c=h; y2c=y4=y5=0;
+x4=x3r; x5=x3l;
+serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+A_serif(2,cap_bar,90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill A_serif_edge2--reverse serif_edge1--cycle;
+numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+theta1=angle(z5-z7);
+z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+fill z6--z1h--z7--z5{down}..{up}z4--reverse A_serif_edge3--cycle;
+unfill z1b--z1l--z1a--cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("O",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+%currentpicture:=currentpicture shifted(-1.6u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("P",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.45u#;
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Q",11u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-2u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x12-1.5c; x12=x7l-c; y11=y12=-comma_depth;
+y9=0; x9=x1-c; y9-y10=y10-y11; x11-x10=x10-x9;
+penpos9(cap_bar,90); penpos10(cap_curve,0);
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z9e{dir -20}..tension.8..z10e..tension.8..{right}z11e--z12e;
+fill z12r..z12l..cycle;
+%currentpicture:=currentpicture shifted(-1.6u,0);
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("R",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.65u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2r;
+y1c=h; y2c=0; x6=x4=x7+2.1u; x3=x1d;
+y4-y5=y5-y6; x5=x8; x9=w-s-1/2cap_bar; y9=0; y6-y8=y8-y9; x10=x6; x9-x8=6/7(x8-x10);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,-90);
+penpos6(cap_bar,-90);
+penpos8(cap_curve,-180);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penstroke z9e{left}..tension.8..{up}z8e{up}..tension.8..{left}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("S",9u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.62u#;
+x6=x7=1/2w; y6=y7=0;
+S_serif(7,cap_bar,x6-s,1.5border_height);
+y5=11/53h; x5=w-s-1/2(1.9hair);
+y4=28/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2(1.9cap_bar);
+x2=.5w-c; y2=h; z1=z2;
+penpos6(cap_bar,-90);
+penpos5(1.9hair,0);
+penpos4(1.1cap_curve,90);
+penpos3(1.9hair,0);
+penpos2(cap_bar,-90);
+penstroke z6e{right}..z5e..tension.9..z4e..tension.9..z3e..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-cap_bar,1.2border_height);
+fill S_serif_edge1;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("T",round (11u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-.72u#;
+x1=x2=.5w; y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+%currentpicture:=currentpicture shifted(-2.9u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("U",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.72u#;
+x1=cap_jut+1/2cap_stem+s;
+x3=w-s-cap_jut-1/2cap_bar;
+y1c=y3c=h; y2=y4=y5=y6=y24=y56=16/53h; x2=x1l;
+x4=x1r; x5=x3l; x6=x3r;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill z2--z4--reverse serif_edge1--cycle;
+fill z5--z6--reverse A_serif_edge3--cycle;
+x7=x1+.5(x3-x1); y7=0; x4-x24=x24-x2; x6-x56=x56-x5;
+penpos24(cap_stem,-180); penpos7(vair,-90);
+penpos56(cap_bar,0);
+penstroke z24e{down}..tension.9..{right}z7e{right}..tension.9..{up}z56e;
+%currentpicture:=currentpicture shifted(-2.2u,0);
+penlabels(range 1 thru 7,24,56);
+endchar;
+
+beginchar("V",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-.72u#;
+x1l=cap_jut+s; x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w-1/2cap_bar; x5=.5w+1/2cap_bar;
+y4=y5=1/2cap_bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+%currentpicture:=currentpicture shifted(-3.3u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("W",17u#,cap_height#,0);
+italcorr cap_height#*sind 18-.72u#;
+x9l=.5w-.3cap_stem; x7r=w-s-cap_jut;
+y9l=y7r=y1l=h-cap_bar; x5=x9l+.5(x7r-x9l)-1/2cap_bar; x6=x9l+.5(x7r-x9l)+1/2cap_bar;
+y5=y6=y2=y3=1/2cap_bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(7,cap_bar,theta2,1.3cap_jut,cap_jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+cap_jut;
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+z2=z1l+whatever*dir theta1; x3=x2+cap_bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+%currentpicture:=currentpicture shifted(-3.3u,0);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("X",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.1u#;
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("Y",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-.72u#;
+x1l=cap_jut+s; x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w;
+y4=8/25h;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+y5c=0; x5=.5w+.5c;
+serif(5,cap_stem,90,cap_jut,cap_jut);
+x6=x5l; x7=x5r;
+z6=z1l+whatever*dir theta1;
+z7=z3r+whatever*dir theta2;
+fill z6--serif_edge5--z7--reverse A_serif_edge3--z2--reverse serif_edge1--z6&cycle;
+%currentpicture:=currentpicture shifted(-3.3u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Z",9u#+1.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-.72u#;
+x6=s+1/2cap_bar; y6=y7=y8=1/2cap_bar;
+x8e=w-s; x7=x8;
+T_serif(8,cap_bar,border_height,1);
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4cap_bar;
+x4r=w-s-1/4cap_bar; y4=h-cap_bar;
+penpos4(cap_stem,0);
+penpos5(cap_stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2cap_bar;
+x3=w-s-1/2cap_bar; x1e=s+c;
+T_serif(1,cap_bar,border_height,0);
+x2=x1;
+penpos3(cap_bar,90);
+penpos2(cap_bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+currenttransform := identity;
+
+beginchar("a",9u#+2c#,x_height#,0);
+x1=w-s-3/4stem; y1=h; y2=7/33h; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=w-s-bar/3; y4=8/33h;
+penpos1(stem,180);
+penpos2(stem,180);
+penpos3(1.2vair,270);
+penpos4(bar,360);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 75}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x5=x1-1.4stem; y5=h; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c; y6=.54h; y8=.46h; z8l=whatever[z1r,z2r];
+penpos8(2bar,0);
+penpos5(vair,90);
+penpos6(curve,180);
+penpos7(vair,270);
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=h-c; z10=(x1r+c,h); z11=(x1l-c,h);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar("b",8u#+s#,asc_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(x_height*sind 14/cosd 14); x3=.5w+1/2(x_height*sind 14/cosd 14);
+y1=0; y3=x_height; y2=.54x_height; y4=.46x_height; x2=1/2curve+s; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+y5=h-bar; z5=z2+whatever*dir 76;
+serif(5,stem,-104,jut,0);
+fill z2l--z2r--reverse serif_edge5--cycle;
+fill z5e{dir 76}..z5d{left}..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("c",7.5u#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+x1=4u-1/2(h*sind 18/cosd 18)+c; x3=4u+1/2(h*sind 18/cosd 18); y1=0; y3=h;
+y2=.54h; x2=1/2curve+s; x6=8u-2.5s-1/2vair; y6=9/33h;
+penpos6(vair,150); z4=z3;
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e;
+fill z6l..tension1.5..z6r..tension1.5..cycle;
+ur_drop(4,drop_round,w-s-x3,5/4drop_round,bar);
+fill ur_drop_edge4;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("d",10u#,asc_height#,0);
+x1=w-s-1/2stem; y1=h-bar; y2=11/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem; x4=w-s-1/2bar; y4=10/33x_height; y3=2epsilon;
+serif(1,stem,-104,1.5jut,0);
+penpos2(stem,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+y6=-2epsilon; y8=x_height; x7=1/2curve+s; y7=.54x_height;
+x8=x7+.5(x5-x7)+3/8(x_height*sind 14/cosd 14);
+x6=x7+.5(x5-x7)-5/8(x_height*sind 14/cosd 14);
+y5r=.46x_height; z5r=whatever[z1l,z2r];
+penpos6(vair,90); penpos7(curve,0);
+penpos8(vair,-90); penpos5(.7curve,180);
+penstroke z6e{left}..tension.9..{dir 76}z7e{dir 76}..{right}z8e..tension.9..{dir 256}z5e{dir 256}..{left}z6e..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("e",8u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=4/5h; x2=1/2curve+s; x4=w-1/2curve-s; z5r=z2; x6=w-s-s-1/2vair; y6=9/33h;
+penpos5(vair,-270);
+penpos6(vair,135);
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{dir 194}z5e;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("f",7u#+c#,asc_height#,desc_depth#);
+x1d=w-s; y1d=x_height; y2=7/33x_height;
+serif(1,stem,-104,1.2jut,jut);
+z2=z1+whatever*dir -104; penpos2(stem,180);
+y3l=-2/3d-c; z3l=whatever[z1f,z2l]; penpos3(1.1bar,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penstroke z2e{dir -104}..{dir -104}z3e;
+z4=z3; dl_drop(4,1.1drop_round,1/3d,drop_round,1.1bar);
+y5=h-.9stem; z5=z1l+whatever*dir 80;
+penpos5(bar,0); z6=z5;
+ur_drop(6,1.1drop_round,stem,drop_round,bar);
+fill ur_drop_edge6 rotatedaround(z5,85);
+fill dl_drop_edge4 rotatedaround(z3,76);
+fill z3l..tension1.3..z3r..tension1.3..cycle;
+fill z5l..tension1.3..z5r..tension1.3..cycle;
+fill z1l..z5l--z5r..z1r--cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("g",9u#+c#,x_height#,desc_depth#);
+currenttransform := identity slanted sind 14;
+italcorr x_height#*sind 18-1.38u#;
+penpos1(vair,90); penpos2(o,30);
+penpos3(curve,0); penpos4(o,-30);
+penpos5(vair,-90); penpos6(o,-150);
+penpos7(curve,-180); penpos8(o,-210);
+y3=y7=2/3h; x3=1/2curve+s+c; x7=w-3/2stem-s;
+x1=x5=x3+1/2(x7-x3); y1=3/11h; y5=h;
+y2=y8=y1+0.1(8/11h); y4=y6=y1+0.9(8/11h); x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x9=x7; y9=y7+1/2(y6-y7); y10=h; x10=x7l+c;
+x11e=w-s; y11=y10;
+ur_drop(11,.8stem,x11e-x10,drop_round,bar);
+penpos9(hair,180); penpos10(vair,90);
+penstroke z9e{up}..{right}z10e;
+fill ur_drop_edge11;
+y12=y1; x12=x1; y13=.65y12; x13=s+1/4stem+.5c;
+y14=y15=0; x14=x2r; x15=x8r; y16=y18=-d/2; x16=w-s-1/2stem;
+x18=s+.7hair; y17=-d+1/2bar; x17=s+.6bar+9/20(x16-x18); x19=x14; y19l=y14r;
+penpos12(vair,90); penpos13(1/2curve,180); penpos14(curve,270);
+z144=z14; penpos144(curve,90); penpos15(curve,90);penpos16(1/2curve,0);
+penpos17(vair,-90); penpos18(1.4hair,-180); penpos19(1.4vair,-270);
+penstroke z12e{left}..{down}z13e{down}..{right}z14e;
+penstroke z144e--z15e{right}..tension1..{down}z16e{down}..{left}z17e{left}..{up}z18e{up}..{right}z19e;
+currenttransform := identity;
+penlabels(range 1 thru 19);
+endchar;
+
+beginchar("h",10u#+s#,asc_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-10/8stem; y1=26/33x_height; y2=10/33x_height; z2=z1+whatever*dir -108;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33x_height; y3=y5=y6=0;
+x8=x2; y8=x_height; y9=bar_height-bar; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.2bar,270); penpos9(bar,0);
+penstroke z9e{dir 68}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("i",5u#,asc_height#,0);
+x1=w-s-stem; y1=x_height-bar; y2=11/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem; x4=w-s-1/2bar; y4=10/33x_height; y3=0;
+serif(1,stem,-104,jut,0);
+penpos2(stem,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+x5=x1d-c; y5=h-7/6stem; penpos5(curve,0);
+fill z5l..z5r..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("j",7u#,asc_height#,desc_depth#);
+x5=w-s-1/2stem; x1d=x5+c; y5=h-7/6stem; penpos5(curve,0);
+y1d=x_height; y2=7/33x_height; serif(1,stem,-104,jut,0);
+z2=z1+whatever*dir -104; penpos2(stem,180);
+y3l=-2/3d-c; z3l=whatever[z1f,z2l]; penpos3(1.1bar,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penstroke z2e{dir -104}..{dir -104}z3e;
+fill z1e{dir 76}..z1d{left}..cycle;
+fill z5l..z5r..cycle; z4=z3;
+dl_drop(4,1.1drop_round,1/3d,drop_round,1.1bar);
+fill dl_drop_edge4 rotatedaround(z3,76);
+fill z3l..tension1.3..z3r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("k",10u#+c#,asc_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,1.2jut,0);
+x1=w-s-2*.8stem-c; y1=bar_height-2.5bar; y2=6/33x_height; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-bar; y4=9/33x_height; y3=y5=y6=0;
+x8=x2-stem; y8=y9=bar_height; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.1bar,270); penpos9(1.1bar,270);
+penstroke z9e{right}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+y11=x_height; x11e=w-s;
+ur_drop(11,drop_round,7/8drop_round,drop_round,1bar);
+z12=z11; x12-x10=x10-x8; y12-y10=y10-y8;
+penpos10(bar,-18); penpos12(bar,270);
+penstroke z8e{right}..{dir 72}z10e{dir 72}..{right}z12e;
+fill ur_drop_edge11;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("l",5u#,asc_height#,0);
+x1=w-s-1/2stem; y1=h-bar; y2=11/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem; x4=w-s-1/2bar; y4=10/33x_height; y3=0;
+serif(1,stem,-104,jut,0);
+penpos2(stem,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("m",14u#+c#,x_height#,0);
+x11=s+1/2stem; z12=z11+whatever*dir 76; y12=h-bar;
+y11=0; serif(12,stem,-104,jut,0); penpos11(stem,0);
+x1=w-s-stem; y1=26/33h; y2=10/33h; z2=z1+whatever*dir -108;
+x3=x2+.7stem; x4=w-s-1/2bar; y4=10/33h; y3=0;
+x5=x2; y5=y9=h; y6r=y10l=bar_height-bar; z6r=z7r+whatever*dir 76;
+y13=0; z13=z1+whatever*dir -104; x13-x7=x7-x11; y7=0;
+y8=y1; z8=z7+whatever*dir 76; x1-x5=x8-x9; z10l=whatever[z11r,z12f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos5(1.2bar,270); penpos6(bar,0);
+penpos7(stem,0); penpos8(stem,0);
+penpos9(1.2bar,90); penpos10(bar,180);
+penstroke z6e{dir 68}..{right}z5e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z11l--z11r--reverse serif_edge12--cycle;
+fill z12e{dir 76}..z12d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penstroke z10e{dir 68}..{right}z9e..z8e{dir -104}..z7e;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar("n",10u#+s#,x_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-10/8stem; y1=26/33h; y2=10/33h; z2=z1+whatever*dir -108;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y5=y6=0;
+x8=x2; y8=h; y9=bar_height-bar; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.2bar,270); penpos9(bar,0);
+penstroke z9e{dir 68}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("o",8u#+s#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=.46h; x2=1/2curve+s; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("p",9u#+c#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=x2+.5(x4-x2)-1/4(h*sind 14/cosd 14)-.5c; x3=x2+.5(x4-x2)+3/4(h*sind 14/cosd 14)-.5c; y1=0; y3=h;
+y2=.54h; y4=.46h; x2=x4-italic_o_width+c; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+y5=h-bar; z5=z2+whatever*dir 76;
+serif(5,stem,-104,jut,0); fill z5e{dir 76}..z5d{left}..cycle;
+y6=-d+bar; z6=whatever[z2,z5];
+serif(6,stem,76,.3jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("q",9u#,x_height#,desc_depth#);
+x1=w-s-1/2stem; y1=h-1/2bar; y2=-d+bar; z2=z1+whatever*dir -104;
+serif(2,stem,76,1.3jut,1.3jut);
+penpos1(stem,180);
+fill z1l--z1r--serif_edge2--cycle;
+y6=0; y8=h; x7=1/2curve+s; y7=.54h;
+x8=x7+.5(x5-x7)+3/8(x_height*sind 14/cosd 14)+.5c;
+x6=x7+.5(x5-x7)-5/8(x_height*sind 14/cosd 14)+.5c;
+y5r=.46x_height; z5r=whatever[z1r,z2l];
+penpos6(vair,90); penpos7(curve,0);
+penpos8(vair,-90); penpos5(.7curve,180);
+penstroke z6e{left}..tension.9..{dir 76}z7e{dir 76}..{right}z8e..tension.9..{dir 256}z5e{dir 256}..{left}z6e..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("r",9u#-c#,x_height#,0);
+y2=0; x2=s+1/2stem; penpos2(stem,180);
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+y3l=15/33h; z3l=whatever[z2l,z1f];
+y4=h; x4=w-s-3/4stem; z5=z4;
+penpos3(1.2bar,180); penpos4(1.1bar,90);
+penstroke z3e{dir 76}..{right}z4e;
+ur_drop(5,drop_round,3/4stem,drop_round,1.1bar);
+fill ur_drop_edge5;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("s",8u#-s#,x_height#,0);
+z4=(.5w,.5h); y2=h; y6=0; y5=7/34h;
+z2=z4+whatever*dir 76; z6=z4+whatever*dir -100;
+x5=w-s-.6stem; x3=s+4/5stem; y3=27/34h;
+%z34=z4+whatever*dir 160; z45=z4+whatever*dir -30;
+%x34=x4-1/2stem*sind 40; x45=x4+1/2stem*sind 40;
+penpos2(bar,90); penpos3(.5stem,180);
+penpos5(.5stem,180); penpos6(bar,90);
+penpos4(curve,250);
+%penpos34(stem,250); penpos45(stem,250);
+penstroke z2e{left}..z3e..z4e..z5e..tension1..{left}z6e;
+z1=z2; z7=z6;
+ur_drop(1,drop_round,w-s-x2,drop_round,bar);
+fill ur_drop_edge1;
+dl_drop(7,drop_round,x6-s,1.2drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 12,34,45);
+endchar;
+
+beginchar("t",5u#+s#,asc_height#,0);
+x1=w-s-1/2stem-1.2jut; y1=x_height-bar; y2=9/33x_height;
+z2=z1+whatever*dir -104; z5=whatever[z2,z1]; y5=h-stem;
+x3=x2+1/2stem; x4=w-s-bar; y4=10/33x_height; y3=0;
+serif(1,stem,-104,1.2jut,1.2jut);
+penpos2(stem,180); penpos5(.95stem,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1l--z5l--z5r--z1r--cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("u",10u#,x_height#,0);
+x1=w-s-1.1stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+.75stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=0; y5=8/34h;
+x5=s+1/2stem; x6=x5+.9stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=y2;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+z7l=z5r+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("v",9u#-c#,x_height#,0);
+y2=10/33h; x2=s+1/2stem;
+x3=x2+stem; x4=w-s-1/2bar; y4=26/33h; y3=0;
+penpos2(stem,180);
+penpos3(1.1bar,270); penpos4(bar,0);
+penstroke z2e{dir -104}..{right}z3e{dir 5}..tension1.3..{dir 80}z4e;
+z7=z2+whatever*dir 76; y7=h-bar;
+serif(7,stem,-104,jut,0); z9=z4;
+fill z2r--z2l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+ul_drop(9,1.1drop_round,7/33h,.9drop_round,bar);
+fill ul_drop_edge9 rotatedaround(z4,-90);
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("w",12u#+s#,x_height#,0);
+z77=(.51w,.5h); z1=z77+whatever*dir 76; y1=h; y2=10/33h;
+z2=z1+whatever*dir -104;
+x3=x2+.9stem; x4=w-s-1/2bar; y4=26/33h; y3=y6=0; y5=8/34h;
+x5=s+1/2stem; x6=x5+.9stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,0);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 5}..tension1.3..{dir 80}z4e;
+z7l=z5r+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0); z9=z4;
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+ul_drop(9,1.1drop_round,7/33h,.9drop_round,bar);
+fill ul_drop_edge9 rotatedaround(z4,-90);
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("x",10u#+c#,x_height#,0);
+penpos1(1.2vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+x1=x3-(h*sind 14/cosd 14); x3=w-s-3/4stem; y1=0; y3=h;
+y2=.54h; x2=x1-if design_size=17.32: stem else: 28/40stem fi;
+x5=w-s-4/5stem; y5=7/33h;
+penpos5(vair,150); z4=z3;
+penstroke z5e..z1e{left}..{dir 76}z2e{dir 76}..{right}z3e;
+fill z5l..tension1.5..z5r..tension1.5..cycle;
+ur_drop(4,drop_round,3/4stem,drop_round,bar);
+fill ur_drop_edge4;
+x10=w-x5; y10=26/33h; x11=w-x1; y11=h; x12=w-x2; y12=.46h;
+x13=w-x3; y13=-2epsilon; z14=z13;
+penpos10(bar,150); penpos11(bar,90);
+penpos12(curve,0); penpos13(bar,-90);
+penstroke z10e..z11e{right}..{dir -104}z12e{dir -104}..{left}z13e;
+fill z10l..tension1.5..z10r..tension1.5..cycle; z14=z13;
+dl_drop(14,drop_round,3/4stem,drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar("y",10u#-c#,x_height#,desc_depth#);
+x5=w-s-1/2stem; y5=h; y6=10/33h; z6=z5+whatever*dir -104;
+y3=0; y2=8/34h; x2=s+stem; x3=x2+stem;
+y7=0; z7=z6+whatever*dir -104;
+penpos5(stem,180); penpos6(stem,180);
+z8r=z7r+whatever*dir -108; y8r=-1/2d;
+z4l=whatever[z6r,z5r]; y4l=15/33h;
+penpos2(stem,180); penpos3(1.1bar,270);
+y9=-d; x9=x2l-s; z10=z9;
+penpos4(bar,360); penpos7(stem,180);
+penpos8(.8stem,180); penpos9(bar,90);
+penstroke z2e{dir -104}..z3e{right}..{dir 76}z4e;
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+penstroke z5e{dir -104}..z6e..z7e..z8e..{left}z9e;
+dl_drop(10,.9stem,x9-s,1.2drop_round,bar);
+fill dl_drop_edge10; fill z10e..z10c..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("z",8u#,x_height#,0);
+y2=y3=h-1/2(.8stem); y1=y2l+1/2bar;
+x3=w-s-3/4stem; x1e=s+1/2stem; x2=x1;
+T_serif(1,bar,.8border_height,0);
+penpos3(.8stem,90); penpos2(.8stem,90);
+penstroke z2e--z3e; fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+2c;
+fill z1r--z1f--z12--z2r--cycle;
+unfill z1d{up}..z13--z12--cycle;
+x4=w-s-bar*sind 45; y4=h-bar*sind 28;
+x5=w-x4; y5=h-y4; z34=(x4,h);
+penpos4(bar,152); penpos5(bar,152);
+penstroke z4e--z5e; fill z4l..tension1.2..z4r..tension1.2..cycle;
+fill z5l..tension1.2..z5r..tension1.2..cycle;
+fill z3l--z3r--z34--cycle;
+x7=.5w-c; y7=.4stem; penpos7(.9stem,90);
+x8l=x7+.6stem; y8l=0; penpos8(.6stem,90);
+x9=w-s-.9stem; y9=bar; penpos9(bar,90); z10=z9;
+penstroke z5e{dir 62}..{right}z7e..z8e..z9e;
+dl_drop(10,drop_round,1.2stem,drop_round,bar);
+fill dl_drop_edge10 reflectedabout(z9l,z9r) rotatedaround(z9,28);
+fill z9r..z9l..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(hex"30",10u#,cap_height#,0);
+penpos1(vair,90);
+penpos2(cap_curve,0);
+penpos3(vair,-90);
+penpos4(cap_curve,-180);
+x1=.5w-1/2(h*sind 10/cosd 10); x3=.5w+1/2(h*sind 10/cosd 10); y1=0; y3=h;
+y2=.47h; y4=.53h; x2=1/2cap_curve+s; x4=w-1/2cap_curve-s;
+penstroke z1e{left}..tension.9..{dir 80}z2e{dir 80}..tension1.2..{right}z3e..tension.9..{dir 260}z4e{dir 260}..tension1.2..{left}z1e..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"31",10u#-3/2s#,cap_height#,0);
+y1c=0; x1g=s; y2=y3=h; x3=x2-1/2cap_stem;
+serif(1,cap_stem,72,1.5cap_jut,1.5cap_jut);
+z2=z1f+whatever*dir 72;
+y6=y7=h-cap_stem; y5=y4=y6+cap_bar; y8=y6+.3c;
+z8=z1a+whatever*dir 72;
+x7=x3-1.3stem; x6=x5=x7-.65cap_stem; x4=x7-cap_bar;
+fill serif_edge1--z2{dir 150}..{dir 210}z3{dir 230}..{left}z4--z5{left}..z6--z7..z8--cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"32",10u#,cap_height#,0);
+y2=43/53h; x3=24/37w; y3=h; x2=10/37h;
+z1=z3; x4=w-s-1/2cap_curve; y4=41/53h;
+x5=s+1/2hair; y5=6/53h; x6=x5+2cap_bar; y6=y5+1/2cap_bar;
+y7=1/2curve-1/4cap_bar; x7=.47w; x8=w-s-2.5cap_bar;
+y8=15/53h; penpos6(.4cap_stem,90);
+penpos7(cap_curve,90); penpos8(bar,150);
+penpos2(bar,0); penpos3(vair,-90);
+penpos4(cap_curve,180); penpos5(bar,180);
+penstroke z3e{right}..{dir -104}z4e{dir -100}.. {dir -104}z5e; %z2e{dir 76}..{right}
+penstroke z5e..z6e{dir 10}..z7e{dir -10}..{dir 60}z8e;
+fill z8r..tension1.3..z8l..tension1.3..cycle;
+ul_drop(1,cap_drop_round,x3-x2+bar,1.3cap_curve,cap_bar);
+fill ul_drop_edge1;% rotatedaround(z2,90);
+x9=s-.1c; y9=1/2cap_bar; y10=-1/2cap_bar; x10=x9+cap_bar;
+x11=x10+cap_bar; y11=1/3cap_bar; x12=x11-2/3cap_bar; y12=3/2cap_bar;
+fill z5r..z9..z10..z11{up}..z12..{dir 10}z6l{dir 130}..{dir 190}z5r..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"33",10u#-c#,cap_height#,0);
+penpos2(vair,90); penpos5(cap_bar,-90);
+penpos4(vair,-90); penpos3(cap_curve,-180);
+x2=.5w-1/2(h*sind 14/cosd 14); y2=0; y4=cap_bar_height+c;
+z4=z2+whatever*dir 76; y5=y4-1/3cap_bar-.5c;
+y3=13/53h; x5=cap_curve+s+bar; x3=w-cap_curve-s; z1=z2;
+y6=y5r; x6=x5; x7=w-s-1/2cap_curve; y7=41/53h; z8=z4+whatever*dir 82;
+y8=h; z9=z8; penpos67(cap_bar,110); penpos8(cap_bar,-90);
+penpos6(cap_bar,90); penpos7(.9cap_curve,180); z67=z4;
+penstroke z5e...{right}z4e..tension1..{dir 256}z3e{dir 256}..tension1.2..{left}z2e;
+penstroke z8e{right}..tension.9..{dir -100}z7e{dir -100}..tension.9..z67e{dir 210}..z6e;
+fill z5l..tension1.2..z6l..tension1.2..cycle;
+dl_drop(1,cap_drop_round,x1-s,cap_drop_round,cap_bar);
+fill dl_drop_edge1; fill z1e..z1c..cycle;
+ul_drop(9,cap_drop_round,x8-x5+1.5bar,cap_curve,cap_bar);
+fill ul_drop_edge9;
+penlabels(1,2,3,4,5,6,7,8,9,67);
+endchar;
+
+beginchar(hex"34",10u#,cap_height#,0);
+y1c=0; x1g=s+1/2cap_stem; y2=h-stem;
+serif(1,cap_stem,72,1.5cap_jut,1.5cap_jut);
+z2=z1+whatever*dir 72; penpos2(cap_stem,0);
+fill serif_edge1--z2r--z2l--cycle;
+z3r=whatever[z1f,z2r]; y3r=h; penpos3(.7cap_stem,0);
+penstroke z2e--z3e; y6=y7=16/53h; x7=w-2s; x6=s+1/2cap_bar;
+penpos6(1.2cap_bar,90); penpos7(1.2cap_bar,90);
+penstroke z6e--z7e; fill z6l..tension1.4..z6r..tension1.4..cycle;
+fill z7l..tension1.2..z7r..tension1.2..cycle;
+z5l=z6r; z4l=z3l; penpos4(1.2cap_bar,-20); penpos5(1.2cap_bar,-20);
+penstroke z4e--z5e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"35",10u#-c#,cap_height#,0);
+penpos2(vair,90); penpos5(cap_bar,-20);
+penpos4(vair,-90); penpos3(cap_curve,-180);
+x2=.5w-1/2(h*sind 14/cosd 14); y2=0; y4=34/54h; z4=z2+whatever*dir 76;
+y5=y4-3cap_bar; y3=15/53h; x5=cap_curve+s; x3=w-cap_curve-s; z1=z2;
+penstroke z5e...{right}z4e..tension1..{dir 256}z3e{dir 256}..tension1.2..{left}z2e;
+z6=z5+whatever*dir 72; y6=h-1/3cap_bar;
+penpos6(cap_bar,-20); penstroke z5e--z6e;
+fill z6r..tension1.5..z6l..tension1.5..cycle;
+fill z5r..tension1.3..z5l..tension1.3..cycle;
+y7r=y6r; x7r=x6r-.05c; y8=h-4/6cap_curve;
+x8=x7+5/4cap_curve; x9=w-s-cap_bar*sind 25;
+y9=h-cap_bar*cosd 45; penpos7(.9cap_curve,72); penpos8(.7cap_curve,90);
+penpos9(1.2cap_bar,120); penstroke z7e{dir -18}..z8e..z9e;
+fill z9r..tension1.3..z9l..tension1.3..cycle;
+dl_drop(1,cap_drop_round,x1-s,cap_drop_round,cap_bar);
+fill dl_drop_edge1; fill z1e..z1c..cycle;
+penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(hex"36",10u#-s#,cap_height#,0);
+penpos1(vair,90); penpos4(.8cap_curve,0);
+penpos3(vair,-90); penpos2(cap_curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y4=38/53h; y2=.53h; x4=cap_curve+s; x2=w-1/2cap_curve-s;
+x5=.505w; y5=21/53h; penpos5(vair,90); z7=z1;
+y6r=y2+2s; z6r=z2r+whatever*dir 76; penpos6(2cap_bar,-180);
+penstroke z6e{dir 256}..{left}z5e{left}..tension.9..{dir 76}z4e{dir 76}..tension.9..{right}z3e..tension1..{dir 256}z2e{dir 256}..tension1.2..{left}z1e; z8=(.5w,.5h);
+dl_drop(7,cap_drop_round,x1-s,cap_drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+currentpicture := currentpicture rotatedaround(z8,180);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"37",9u#-c#,cap_height#,0);
+x1=s+1/2cap_bar; y1=36/53h; y2=.98h; z2=z1+whatever*dir 70;
+x3=16.5/34w; y4=44/53h; y3=47/53h; z4=z3+whatever*dir -45;
+x5=24/34w; y5=43/53h; x6=w-s-1/2*(3/2cap_bar); y6=y2;
+x7=8/34w; y7=1/2cap_curve;
+penpos1(cap_bar,180); penpos2(cap_bar,180);
+penpos3(.9cap_curve,45); penpos4(.9cap_curve,45);
+penpos5(2cap_bar,110); penpos6(3/2cap_bar,180);
+z67l=z6l;
+penpos7(cap_curve,180); penpos67(cap_bar,180);
+penstroke z1e--z2e;
+penstroke z1e{dir 70}..{dir -45}z3e--z4e{dir -45}..z5e..{up}z6e;
+penstroke z67e{down}..{dir -94}z7e;
+fill z7r..z7l..cycle; fill z1r..tension1.3..z1l..tension1.3..cycle;
+fill z2r..tension1.3..z2l..tension1.3..cycle;
+fill z6r..tension1.3..z6l..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"38",10u#,cap_height#,0);
+y1=0; x1=15/37w; y5=h; z5=z1+whatever*dir 78;
+y7=29/53h; z7=whatever[z1,z5]; x2=s+1/2(.6cap_stem);
+x4=w-x2; y2=13/53h; y4=43/53h; z3=z7; y6=44/53h; 3(x5-x6)=4(x4-x5);
+5(x1-x2)=4(x8-x1); y8=11/53h; penpos7(cap_curve,48);
+y67l=y7+.05cap_stem; y78=y7-.6cap_stem;
+z67l=z7l+whatever*dir 138; penpos67(cap_curve,48);
+z78=whatever[z67,z7]; penpos78(cap_curve,48);
+penpos1(cap_bar,-90); penpos2(.7stem,-180);
+penpos3(cap_bar,-235); penpos4(.6stem,-180);
+penpos5(cap_bar,-90); penpos6(.7stem, 0);
+penpos8(.7stem,0);
+penstroke z1e{left}..{dir 82}z2e{dir 78}..z3e..{dir 78}z4e{dir 78}..{left}z5e{left}..z6e..z67e..z7e..z78e..tension.9..z8e..{left}z1e;
+penlabels(1,2,3,4,5,6,7,8,67,78);
+endchar;
+
+beginchar(hex"39",10u#-s#,cap_height#,0);
+penpos1(vair,90); penpos4(.8cap_curve,0);
+penpos3(vair,-90); penpos2(cap_curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y4=38/53h; y2=.53h; x4=cap_curve+s; x2=w-1/2cap_curve-s;
+x5=.505w; y5=21/53h; penpos5(vair,90); z7=z1;
+y6r=y2+2s; z6r=z2r+whatever*dir 76; penpos6(2cap_bar,-180);
+penstroke z6e{dir 256}..{left}z5e{left}..tension.9..{dir 76}z4e{dir 76}..tension.9..{right}z3e..tension1..{dir 256}z2e{dir 256}..tension1.2..{left}z1e; z8=(.5w,.5h);
+dl_drop(7,cap_drop_round,x1-s,cap_drop_round,cap_bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(oct"56",cap_stem#+2s#,cap_stem#,0);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+endchar;
+
+beginchar(oct"54",cap_stem#+2s#+c#,cap_stem#,comma_depth#);
+ currenttransform := identity slanted sind 14;
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"60",cap_stem#+2s#+c#,asc_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(oct"41", cap_stem#+2s#,cap_height#,0); "Exclamation mark";
+ italcorr cap_height#*sind 18-1.4u#;
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+ x3=.5w-1/2cap_bar; x4=.5w+1/2cap_bar; y3=y4=3/2cap_stem;
+ x6=x1; x5=x2; y5=y6=h;
+ fill z6--z3..z4--z5{up}..z6&cycle;
+endchar;
+
+beginchar(hex"22",2cap_stem#+3s#+2c#,cap_height#,0);
+ z1=(s,h-1/2cap_stem); z2=(x1+cap_stem+c,h-1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-cap_stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture shifted((sind 18)*-w*1.3,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"5C",2cap_stem#+3s#+2c#,cap_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(x1+cap_stem+c,1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+currenttransform := identity;
+
+beginchar(hex"7b",10u#-1.5c#,x_height#,0); "En dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"3D",10u#+1.5c#,x_height#,0);
+ z1=(s+1/2bar,bar_height-3c); z2=(w-s-1/2bar,bar_height-3c);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+3c); z4=(w-s-1/2bar,bar_height+3c);
+ penpos3(bar,90); penpos4(bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"23",13u#,asc_height#,body_depth#);
+ z1=(s+1/2bar,bar_height-5c); z2=(w-s-1/2bar,bar_height-5c);
+ penpos1(1.5bar,90); penpos2(1.5bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+5c); z4=(w-s-1/2bar,bar_height+5c);
+ penpos3(1.5bar,90); penpos4(1.5bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ z5=(.5w-5c,bar_height); z6=(.5w+5c,bar_height);
+ z7=z5+whatever*dir 76; y7=h; z8=whatever[z5,z7]; y8=-d;
+ penpos7(1.5bar,0); penpos8(1.5bar,0);
+ fill z7l{up}..{down}z7r--z8r{down}..{up}z8l--z7l&cycle;
+ z9=z6+whatever*dir 76; y9=h; z10=whatever[z6,z9]; y10=-d;
+ penpos9(1.5bar,0); penpos10(1.5bar,0);
+ fill z9l{up}..{down}z9r--z10r{down}..{up}z10l--z9l&cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"7c",14u#,x_height#,0); "Em dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(oct"55",2cap_jut#+cap_stem#+2s#,x_height#,0); "hyphen";
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"5F",1.1stem#+2s#,x_height#+2.1stem#,0);
+ z1=(.5w,h); z2=(.5w,h-1.1stem);
+ fill z1..z2..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7E",7u#,body_height#,0);
+ pickup pencircle xscaled .6pt yscaled .2pt rotated 55;
+ z4=(w-s-c,h-s); x1=s+c; y1=y4-1/2cap_stem;
+ y2-y1=y4-y3=3(y4-y1); z2-z1=z4-z3=whatever * dir 55;
+ draw z1..controls z2 and z3..z4;
+ penlabels(1,2,3,4);
+endchar;
+
+currenttransform := identity slanted sind 14;
+beginchar(hex"3C",7u#-2c#,x_height#,0); "looks like <<";
+ italcorr x_height#*sind 18-1.35u#;
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.5stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ %currentpicture:=currentpicture shifted(-1.3u,0);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3E",7u#-2c#,x_height#,0);
+ italcorr x_height#*sind 18-1.35u#;
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.5stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ z10=(.5w,.5h);
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ currentpicture := currentpicture rotatedaround(z10,180) shifted((sind 18)*w*1.3,0);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3B",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ italcorr cap_height#*sind 18-2.5u#;
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+3/2c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ z8=(s,h-1/2cap_stem); z9=(w-s,h-1/2cap_stem);
+ fill z8..z9..cycle;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(hex"3A",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ italcorr cap_height#*sind 18-2.5u#;
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ fill z1..z2..cycle;
+ penlabels(1,2,3,4);
+ z3=(s,1/2cap_stem); z4=(w-s,1/2cap_stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2B",2cap_jut#+cap_stem#+2s#,x_height#,0);
+ italcorr x_height#*sind 18-1.82u#;
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ x3=x4=.5w; y3=y2+1/2(x2-x1); y4=y2-1/2(x2-x1);
+ penpos3(1.8bar,0); penpos4(1.8bar,0);
+ penstroke z3e--z4e;
+ fill z3r..z3l..cycle; fill z4r..z4l..cycle;
+ %currentpicture:=currentpicture shifted(-u,0);
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2F",2s#+bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.55u#;
+ z1=(.5w,h-.5bar); z2=(.5w,-d+.5bar);
+ %pickup pencircle xscaled bar yscaled bar;
+ penpos1(bar,0); penpos2(bar,0);
+ penstroke z1e--z2e; fill z1r..z1l..cycle;
+ fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"27",cap_stem#+2s#+c#,x_height#+2.1stem#,0);
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ z6=(.5w-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ currentpicture := currentpicture shifted((sind 18)*-w*1.3,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"28",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.65u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"29",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-3.2u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180) shifted((sind 18)*w*1.3,0);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"0E",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.65u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"0F",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180) shifted((sind 18)*w*1.3,0);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"5B",2s#+3cap_bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.55u#;
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x2,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z1r..z1l..cycle; fill z6r..z6l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"5D",2s#+3cap_bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.55u#;
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x1,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z2r..z2l..cycle; fill z5r..z5l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"B9",16u#,cap_height#,0);
+ italcorr cap_height#*sind 18-2.75u#;
+ x1=x2=cap_jut+1/2cap_bar+s+cap_stem;
+ x3=w-x1-1/2cap_stem; y1c=h; y4=y5=0;
+ x4=x3r; x5=x3l; y2=12/53h; y3=h-y2;
+ x8=x2-stem; y8=0; z9=z8;
+ dl_drop(9,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill dl_drop_edge9; penpos8(bar,-90);
+ serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+ penpos2(bar,0); penpos3(bar,0);
+ penstroke z2e{down}..{left}z8e;
+ fill z2l--z2r--reverse serif_edge1--cycle;
+ numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+ theta1=angle(z5-z7); x10=x3+stem; y10=h; z11=z10;
+ penpos10(bar,-90); penstroke z3e{up}..{right}z10e;
+ ur_drop(11,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill ur_drop_edge11;
+ z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+ fill z6--z1h--z7--z5{down}..{up}z4--z3r--z3l--cycle;
+ unfill z1b--z1l--z1a--cycle;
+ y12=y13=2cap_bar; x12=x4+2cap_bar+s; x13=w-2s;
+ penpos12(.4stem,90); penpos13(.4stem,90);
+ penstroke z12e--z13e; y16=y11d-4cap_bar;
+ x13-x14=x14-x12; x16=x14; y14=y13+4cap_bar;
+ x17=w-s-1/4stem; x17-x16=x16-x15; y16-y15=y15-y14;
+ y17=y15; penpos17(.6stem,0); penpos16(bar,90);
+ penpos15(.6stem,180); penpos14(bar,270);
+ penstroke z17e{up}..{left}z16e{left}..{down}z15e{down}..{right}z14e{right}..{up}z17e;
+ fill z12l..tension1.2..z12r..tension1.2..cycle;
+ fill z13l..tension1.2..z13r..tension1.2..cycle;
+ penlabels(range 1 thru 17);
+endchar;
+
+beginchar(hex"24",9u#-s#,body_height#,body_height#-cap_height#);
+ italcorr body_height#*sind 18-2.32u#;
+ x6=x7=1/2w-c; y6=y7=0;
+ dl_drop(7,cap_drop_round,x6-s,1.5drop_round,cap_bar);
+ y5=11/53cap_height; x5=w-s-1/2(1.9hair);
+ y4=28/53cap_height; x4=18/38w; y3=42/53cap_height; x3=s+1/2(1.9cap_bar);
+ x2=.5w+c; y2=cap_height; z1=z2;
+ penpos6(cap_bar,-90); penpos5(1.9hair,0);
+ penpos4(cap_curve,90); penpos3(1.9hair,0);
+ penpos2(cap_bar,-90);
+ penstroke z6e{right}..z5e..tension.9..z4e..tension.9..z3e..{right}z2e;
+ fill dl_drop_edge7;
+ ur_drop(1,cap_drop_round,w-s-x2,1.5drop_round,cap_bar);
+ fill ur_drop_edge1;
+ z8=(.5w,h); z9=(.5w,-d);
+ penpos8(cap_bar,0); penpos9(cap_bar,0);
+ penstroke z8e--z9e;
+ fill z9r..z9l..cycle; fill z8r..z8l..cycle;
+ %currentpicture:=currentpicture shifted(-.7u,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"25",12u#,asc_height#,0);
+italcorr asc_height#*sind 18-2.82u#;
+penpos1(vair,90); penpos2(.6curve,0);
+penpos3(vair,-90); penpos4(.6curve,-180);
+y1=.55h; y3=h; y3-y4=y4-y1; y2=y4; x2=1/4curve+s; x4=2.1curve+s;
+x4-x1=x1-x2; x3=x1;
+penstroke z1e{left}..tension.9..{up}z2e{up}..tension1.2..{right}z3e..tension.9..{down}z4e{down}..tension1.2..{left}z1e..cycle;
+penpos5(vair,90); penpos6(.6curve,0);
+penpos7(vair,-90); penpos8(.6curve,-180);
+y5=0; y7=.45h; y7-y8=y8-y5; y6=y8; x8=w-1/4curve-s; x6=w-x4;
+x8-x5=x5-x6; x7=x5;
+penstroke z5e{left}..tension.9..{up}z6e{up}..tension1.2..{right}z7e..tension.9..{down}z8e{down}..tension1.2..{left}z5e..cycle;
+x9l=x7; y9=h; x10r=x1; y10=0;
+penpos9(1.2bar,0); penpos10(1.2bar,0);
+penstroke z9e--z10e;
+%currentpicture:=currentpicture shifted(-1.6u,0);
+penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"26",14u#,cap_height#,0);
+italcorr cap_height#*sind 18-2.72u#;
+x4=x8=x3+.8curve; y6=0; y2=h; x2=x3+.7cap_curve;
+y7=13/53h; y5=9/53h; x5=x7+3.1cap_curve; x6=x7+1.8cap_curve;
+y4=y8=30/53h; y1=44/53h; y3=42/53h; x3=2s+curve;
+x1=x3+1.8cap_curve; x7=s+1/2cap_curve;
+x10=w-s; y10=9/53h; x10-x9=x9-x5; y9=1/5cap_curve;
+th:=angle(z4-z5)+5; th1:=th-11; x11h=w-s-c; y11h=y1-4s;
+A_serif(11,cap_bar,-110,cap_jut,cap_jut); z12l=z11a;
+penpos6(cap_bar,-90); penpos5(.9cap_stem,45);
+penpos4(.9cap_stem,45); penpos3(2.5hair,0);
+penpos2(cap_bar,-90); penpos1(2hair,-180);
+penpos7(cap_curve,-180); penpos8(cap_bar,-250);
+penpos9(.5cap_curve,70); penpos10(cap_bar,150);
+penpos12(cap_bar,0);
+penstroke z10e..z9e..z5e{dir th}..{dir th1}z4e..tension.9..z3e..tension1..z2e{right}..tension.9..z1e..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e{dir 8}..{dir 70}z12e;
+fill z12l--z12r..reverse A_serif_edge11--cycle;
+fill z10l..tension1.3..z10r..tension1.3..cycle;
+%currentpicture:=currentpicture shifted(-.7u,0);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+currenttransform := identity;
+
+beginchar(hex"40",14u#+c#,x_height#+2curve#,2curve#);
+a_width:=9u+2c-2s;
+x1=2s+a_width-s-3/4stem+1.5curve; y1=x_height; y2=7/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=3s+a_width+1.5curve; y4=15/33x_height;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.2vair,270); penpos4(bar,360);
+x5=x1-1.25stem; y5=x_height; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c+1.5curve; y6=.54x_height; y8=.46x_height; z8l=whatever[z1r,z2r];
+x13=x5; y13=h-1/2bar; x14=s+1/2bar; y14=y6; y15=-d+1/2bar; x15=x7;
+x16=x4; y16=-d+3bar; penpos7(vair,270); penpos16(bar,270);
+penpos13(bar,90); penpos14(bar,180); penpos15(bar,270);
+penpos8(2bar,0); penpos5(vair,90); penpos6(curve,180);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 80}z4e..z13e{left}..z14e..{right}z15e..z16e;
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=x_height-c; z10=(x1r+c,x_height); z11=(x1l-c,x_height);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+fill z16r..z16l..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar(hex"12",1.5cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=s+.45cap_stem*cosd 45;
+x2=w-s+cap_bar*cosd 45; z2=z1+whatever*dir -45;
+penpos1(.8cap_stem,45); penpos2(cap_bar,45);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"13",1.5cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=w-s-.45cap_stem*cosd 45;
+x2=s-cap_bar*cosd 45; z2=z1+whatever*dir -135;
+penpos1(.8cap_stem,135); penpos2(cap_bar,135);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"3F",8u#+s#,cap_height#,0);
+ x1=s+1/2cap_stem; y1=1/2cap_stem;
+ penpos1(cap_stem,0);
+ fill z1r..z1l..cycle;
+ y2=cap_stem+4/5cap_bar; z2=z1+whatever*dir 78;
+ z3l=z2l+whatever*dir 78; y3l=21/53h;
+ penpos2(cap_bar,0); penpos3(1.3cap_bar,0);
+ penstroke z2e--z3e;
+ z4r=z3l; penpos4(cap_bar,90);
+ y5=y4; x5=x4+2cap_bar; penpos7(cap_bar,-90);
+ x6=w-s-1/2cap_curve; y6=35/51h; x7=18/31w; y7=h;
+ penpos5(cap_bar,90); penpos6(cap_curve,180); z8=z7;
+ penstroke z4e--z5e{right}..tension1.2..{dir 78}z6e{dir 78}..tension1.1..{left}z7e;
+ ul_drop(8,cap_drop_round,x7-x3+.7s,cap_curve,cap_bar);
+ fill ul_drop_edge8;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"10",5u#,asc_height#,0);
+x1=w-s-stem; y1=x_height-bar; y2=11/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem; x4=w-s-1/2bar; y4=10/33x_height; y3=0;
+serif(1,stem,-104,jut,0);
+penpos2(stem,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"11",7u#-c#,asc_height#,desc_depth#);
+x1d=w-s; y1d=x_height; y2=7/33x_height; serif(1,stem,-104,jut,0);
+z2=z1+whatever*dir -104; penpos2(stem,180);
+y3l=-2/3d-c; z3l=whatever[z1f,z2l]; penpos3(1.1bar,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penstroke z2e{dir -104}..{dir -104}z3e;
+fill z1e{dir 76}..z1d{left}..cycle; z4=z3;
+dl_drop(4,drop_round,1/3d,drop_round,1.1bar);
+fill dl_drop_edge4 rotatedaround(z3,76);
+fill z3l..tension1.3..z3r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"2A",3cap_stem#+3s#,body_height#,0);
+ x1=x2=x3=x4=.5w; y1=h-1/2stem; y2=y1-cap_stem; y3=y2-bar; y4=y3-bar;
+ penpos1(stem,0); penpos2(cap_bar,0); penpos3(2cap_bar,0);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle;
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,60);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,120);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,180);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,240);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,300);
+ penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"5E",6u#,body_height#,0);
+ x1=s+.45cap_bar*cosd 45; x2=w/2; y2=h-bar;
+ z1=z2+whatever*dir -135; x3=w-x1; z3=z2+whatever*dir -45;
+ penpos1(bar,135); penpos2(2bar,90); penpos3(bar,45);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"16",6u#,body_height#,0);
+ x1=s; x2=w-x1; y1=y2=h-4bar;
+ penpos1(bar,90); penpos2(bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7F",2stem#+4s#,x_height#+2.1stem#,0);
+ z1=(s+.5stem,h); z2=(s+.5stem,h-stem);
+ fill z1..z2..cycle;
+ z3=(w-s-.5stem,h); z4=(w-s-.5stem,h-stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+ligtable "7":
+ "8" kern -kk#,
+ "A" kern -kkk#,
+ CYR_A kern -kkk#,
+ "f" kern -kk#,
+ "j" kern -kkk#,
+ "g" kern -kkk#,
+ CYR_el kern -kkk#,
+ CYR_em kern -kkk#,
+ CYR_u kern -k#,
+ CYR_er kern -k#,
+ CYR_ya kern -kk#,
+ "c" kern -k#,
+ "q" kern -k#,
+ "p" kern -k#;
+
+ligtable CYR_A: "A":
+ CYR_O kern -k#,
+ CYR_ES kern -k#,
+ CYR_TE kern -k#,
+ CYR_U kern -kk#,
+ CYR_EF kern -k#,
+ CYR_CHE kern -kk#,
+ CYR_HARD_SIGN kern -k#,
+ CYR_che kern -k#,
+ "W" kern -kkk#,
+ "V" kern -kkk#,
+ "Y" kern -kk#,
+ "T" kern -k#;
+
+ligtable CYR_GHE: CYR_TE: "T":
+ CYR_A kern -kk#,
+ CYR_DE kern -k#,
+ CYR_EL kern -kk#,
+ "l" kern kk#,
+ "t" kern k#,
+ "i" kern k#,
+ "k" kern kk#,
+ "b" kern kk#,
+ "h" kern kk#;
+
+ligtable CYR_E: CYR_YU:
+ CYR_U kern -k#,
+ CYR_be kern k#,
+ CYR_te kern kk#,
+ CYR_o kern k#,
+ CYR_pe kern k#,
+ CYR_er kern k#,
+ CYR_ka kern k#,
+ CYR_en kern k#,
+ CYR_che kern kk#,
+ CYR_sha kern kk#,
+ CYR_yu kern k#,
+ CYR_u kern k#,
+ "b" kern k#,
+ "t" kern kk#,
+ CYR_HA kern -k#;
+
+ligtable CYR_O: CYR_EF: "D": "O": "Q":
+ CYR_yeru kern k#,
+ CYR_pe kern k#,
+ CYR_en kern k#,
+ CYR_o kern k#,
+ CYR_be kern k#,
+ CYR_HA kern -k#,
+ CYR_te kern kk#,
+ CYR_ef kern k#,
+ CYR_er kern k#,
+ CYR_ka kern k#,
+ CYR_che kern kk#,
+ CYR_sha kern kk#,
+ CYR_yu kern k#,
+ CYR_u kern k#,
+ "o" kern k#,
+ "e" kern k#,
+ "q" kern k#,
+ "l" kern k#,
+ "p" kern k#,
+ "t" kern k#,
+ "u" kern kk#,
+ "b" kern k#,
+ "X" kern -k#;
+
+ligtable CYR_ER: "P":
+ CYR_A kern -kk#,
+ CYR_el kern -k#,
+ CYR_te kern k#,
+ CYR_pe kern k#,
+ "p" kern k#,
+ CYR_ka kern k#,
+ CYR_en kern k#,
+ CYR_che kern kk#,
+ CYR_sha kern kk#,
+ CYR_yu kern k#,
+ CYR_u kern k#,
+ "i" kern k#,
+ "b" kern k#,
+ "u" kern k#,
+ "l" kern k#,
+ "r" kern k#;
+
+ligtable CYR_ES: "C":
+ CYR_i kern kk#,
+ CYR_pe kern k#,
+ CYR_ve kern k#,
+ "7" kern kk#,
+ "l" kern kk#,
+ "n" kern k#,
+ "h" kern k#,
+ CYR_o kern k#;
+
+ligtable CYR_EN:
+ CYR_i kern k#;
+
+ligtable CYR_U:
+ CYR_A kern -kkk#,
+ CYR_O kern -k#,
+ CYR_ES kern -k#,
+ CYR_EF kern -k#;
+
+ligtable CYR_HA: "X":
+ CYR_ES kern -k#,
+ CYR_EF kern -k#,
+ CYR_O kern -k#,
+ "O" kern -k#,
+ "Q" kern -k#,
+ "C" kern -k#,
+ "G" kern -k#;
+
+ligtable CYR_be:
+ CYR_a kern -kk#,
+ CYR_o kern -kk#,
+ "a" kern -kk#,
+ "o" kern -kk#,
+ "e" kern -kk#,
+ "c" kern -k#,
+ "x" kern -kk#,
+ "p" kern -kk#,
+ CYR_ie kern -kk#,
+ CYR_ze kern -kk#,
+ CYR_el kern -kk#,
+ CYR_em kern -kk#,
+ CYR_es kern -k#,
+ CYR_ef kern -k#,
+ CYR_ha kern -kk#,
+ CYR_e kern -kk#,
+ CYR_ye kern -k#,
+ CYR_ya kern -kk#,
+ CYR_yeru kern -k#,
+ CYR_ve kern -k#,
+ CYR_ghe kern -kk#,
+ CYR_de kern -k#,
+ CYR_zhe kern -kk#,
+ CYR_i kern -k#,
+ CYR_ka kern -kk#,
+ CYR_en kern -kk#,
+ CYR_pe kern -kk#,
+ CYR_er kern -kk#,
+ CYR_u kern -kkk#,
+ "y" kern -kkk#,
+ CYR_tse kern -kk#,
+ CYR_che kern -k#,
+ CYR_sha kern -k#,
+ CYR_shcha kern -k#,
+ CYR_soft_sign kern -k#,
+ CYR_yu kern -kk#;
+
+ligtable CYR_de:
+ CYR_em kern -kk#,
+ CYR_a kern -kk#,
+ "a" kern -kk#,
+ "c" kern -kk#,
+ "p" kern -kk#,
+ "o" kern -k#,
+ "e" kern -k#,
+ "n" kern -kk#,
+ CYR_zhe kern -kk#,
+ CYR_ze kern -kk#,
+ CYR_el kern -kkk#,
+ CYR_pe kern -kk#,
+ CYR_er kern -kk#,
+ CYR_es kern -kk#,
+ CYR_u kern -kk#,
+ CYR_ha kern -kk#,
+ CYR_ya kern -kk#,
+ CYR_be kern -k#,
+ CYR_ve kern -k#,
+ CYR_ghe kern -k#,
+ CYR_ie kern -k#,
+ CYR_ye kern -k#,
+ CYR_ka kern -k#,
+ CYR_en kern -k#,
+ CYR_o kern -k#,
+ CYR_ef kern -k#,
+ CYR_tse kern -k#,
+ CYR_sha kern -k#,
+ CYR_hard_sign kern -k#,
+ CYR_e kern -k#,
+ CYR_yu kern -k#;
+
+ligtable CYR_ghe:
+ CYR_el kern -k#;
+
+ligtable CYR_pe: "n":
+ "y" kern -k#,
+ CYR_u kern -k#,
+ "f" kern -kk#,
+ "j" kern -kk#,
+ "g" kern -k#;
+
+ligtable CYR_te:
+ CYR_em kern -k#,
+ CYR_ie kern -k#,
+ CYR_el kern -kkk#;
+
+ligtable CYR_u: "y":
+ CYR_el kern -k#,
+ CYR_em kern -k#,
+ CYR_ie kern -k#,
+ CYR_ka kern -k#,
+ CYR_ya kern -k#,
+ CYR_ye kern -k#,
+ "f" kern -kk#,
+ "j" kern -kk#;
+
+ligtable "I": "H": "N": "U":
+ "l" kern kk#,
+ "t" kern k#,
+ "i" kern k#,
+ "k" kern kk#,
+ "b" kern kk#,
+ "h" kern kk#;
+
+ligtable "L":
+ "T" kern -kk#,
+ "W" kern -k#,
+ "V" kern -k#,
+ "Y" kern -kk#;
+
+ligtable "S":
+ "b" kern k#,
+ "c" kern k#,
+ "l" kern k#,
+ "t" kern k#,
+ "j" kern -k#,
+ "o" kern k#;
+
+ligtable "V": "W":
+ "A" kern -kkk#,
+ "l" kern kk#,
+ "t" kern k#,
+ "i" kern k#,
+ "k" kern kk#,
+ "b" kern kk#,
+ "h" kern kk#;
+
+ligtable "d":
+ "f" kern -kk#,
+ "g" kern -k#,
+ "j" kern -kk#;
+
+ligtable "f":
+ "g" kern -k#,
+ "f" kern -kk#,
+ "a" kern -k#,
+ "c" kern -k#,
+ "d" kern -k#,
+ "e" kern -k#,
+ "o" kern -k#,
+ "q" kern -k#,
+ "r" kern -k#,
+ "s" kern -k#,
+ "x" kern -k#,
+ "z" kern -k#,
+ "j" kern -k#;
+
+ligtable "g":
+ "i" kern k#,
+ "u" kern k#,
+ "t" kern k#,
+ "f" kern -k#,
+ "v" kern k#,
+ "w" kern k#;
+
+ligtable "o": "b": "p": "e":
+ "W" kern -kkk#,
+ "V" kern -kkk#,
+ "X" kern -kk#,
+ "e" kern k#,
+ "f" kern -kk#,
+ "j" kern -kk#,
+ "o" kern k#;
+
+ligtable "r":
+ "g" kern -k#,
+ "a" kern -k#;
+
+ligtable "s": "z":
+ "f" kern -kk#,
+ "j" kern -kk#;
+
+ligtable "t":
+ "f" kern -k#,
+ "a" kern -k#;
+
+ligtable "v": "w":
+ "f" kern -kk#,
+ "g" kern -k#,
+ "j" kern -kk#;
+
+ligtable "c": CYR_es:
+ CYR_el kern -k#,
+ CYR_em kern -k#,
+ "j" kern -kk#;
+
+ligtable "x": CYR_ha:
+ CYR_el kern -kk#,
+ CYR_em kern -kk#,
+ "j" kern -kk#;
+
+ligtable oct"55":
+ oct"55" =: hex"7b";
+ligtable hex"7b":
+ oct"55" =: hex"7c";
+end
diff --git a/fonts/obnov/obnitb12.mf b/fonts/obnov/obnitb12.mf
new file mode 100644
index 0000000000..5b216137b8
--- /dev/null
+++ b/fonts/obnov/obnitb12.mf
@@ -0,0 +1,3568 @@
+%written by Basil Solomykov, Russia
+%(C) Copyright 2011 LPPL (LaTeX Project Public License)
+%Font Ordinary New (Obyknovennaya novaya), Italic Bold
+
+design_size := 12pt#;
+o# := .54*1.3pt#;
+u# := 1.1*22/35pt#;
+bar# := 12/36pt#;
+slab# := 12/36pt#;
+cap_bar# := 12/36pt#;
+vair# := 12/36pt#;
+hair# := 12/36pt#;
+jut# := 24/36pt#;
+cap_jut# := 31.2/36pt#;
+stem# := 1.3*36/36pt#;
+curve# := 1.3*37.2/36pt#;
+cap_stem# := 1.3*43.2/36pt#;
+cap_curve# := 1.3*44.64/36pt#;
+s# := 0.5pt#;
+c# := .25pt#;
+
+input obn_lcyw_code.mf
+font_identifier "OBNITB";
+mode_setup;
+clear_pen_memory;
+
+font_size design_size*pt#;
+asc_height# := 24/36*design_size*pt#;
+cap_height# := 24/36*design_size*pt#;
+body_height# := 27/36*design_size*pt#;
+x_height# := 15.4/36*design_size*pt#;
+desc_depth# := 8/36*design_size*pt#;
+body_depth# := 9/36*design_size*pt#;
+comma_depth# := 5/36*design_size*pt#;
+x_depth# := 4/5comma_depth#;
+bar_height# := .52x_height#;
+cap_bar_height# := .52cap_height#;
+cap_bar2_height# := .45cap_height#;
+border_height# := comma_depth#;
+cap_drop_round# := 4.5*slab#;
+drop_round# := 6.6/8cap_drop_round#;
+A_bracket# := 1.4pt#;
+bracket# := pt#;
+
+font_slant sind 32;
+font_x_height x_height#;
+font_normal_space 9u#;
+font_normal_stretch 4u#;
+font_normal_shrink 2u#;
+font_quad 12u#;
+font_extra_space 6u#;
+
+k# := .8u#;
+kk# := 1.5u#;
+kkk# := 3u#;
+
+serif_darkness := 1/30;
+define_pixels(bracket,cap_o_width,sss_width,css_width);
+define_pixels(c,s,cap_bar_height,cap_bar2_height);
+define_pixels(border_height,A_bracket,cap_drop_round,x_depth,drop_round);
+define_whole_blacker_pixels(stem,cap_stem,curve,cap_curve,bar,slab,cap_bar);
+define_good_x_pixels(hair); define_good_y_pixels(vair);
+define_whole_pixels(asc_height,cap_height,x_height,u,desc_depth,comma_depth,bar_height,body_height,body_depth,u,o,cap_jut,jut);
+%define_corrected_pixels();
+lowres_fix(stem,curve) 1.2;
+lowres_fix(cap_stem,cap_curve) 1.2;
+if jut=cap_jut: jut:=jut-1; fi
+
+def serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g if left_jut=0: -1/2slab fi +1/2slab; x$d=x$e=x$h if right_jut=0: +1/2slab fi-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def serif_edge suffix $ =
+(serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse serif_bracket($f,$r,$e)) enddef;
+
+def serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...serif_darkness[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def T_serif(suffix $)(expr slab, bord_height, direction)= %Direction: 0-left, 1-right;
+penpos$(slab,if direction=1: - fi 90);
+x$=x$a=x$g; y$g-y$=y$-y$a=1/2slab;
+x$b=x$a + if direction=0: - fi .882bord_height; y$b=y$d=y$c+1/2slab;
+x$c=x$b + if direction=0: - fi 1/2slab; y$c=y$a-bord_height;
+x$d=x$e=x$b + if direction=0: - fi slab;
+y$e=y$g-1/2slab; y$f=y$g; x$f=x$c;
+labels($a,$b,$c,$d,$e,$f,$g) enddef;
+
+def T_edge suffix $ =
+(z$a..{down}z$b..z$c..z$d--z$e{up}..z$f--z$g--cycle) enddef;
+
+def A_serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(A_bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g+1/2slab; x$d=x$e=x$h-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def A_serif_edge suffix $ =
+(A_serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse A_serif_bracket($f,$r,$e)) enddef;
+
+def A_serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...0.6[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def ur_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a= 1/2slab;
+x$e=x$a + drop_length; y$e=y$f- drop_height;
+x$d=x$e - 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e - drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d - 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ur_drop_edge suffix $ =
+(z$f{right}..tension.9..{down}z$e{down}..{left}z$d{left}..{up}z$c{up}..z$b...{left}z$a--cycle) enddef;
+
+def ul_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$f- drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d + 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ul_drop_edge suffix $ =
+(z$f{left}..tension.9..{down}z$e{down}..{right}z$d{right}..{up}z$c{up}..z$b...{right}z$a--cycle) enddef;
+
+def dl_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, -90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$a + drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e + 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d - drop_round); x$b=x$d + 1/90drop_round;
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def dl_drop_edge suffix $ =
+(z$a{left}..tension.9..{up}z$e{up}..{right}z$d{right}..{down}z$c..{dir 250}z$b{dir -80}..{right}z$f--cycle) enddef;
+
+def S_serif (suffix $)(expr serif_slab, serif_length, serif_height)=
+%penpos$(serif_slab,90);
+x$a=x$i=x$; y$i=y$+1/2serif_slab; y$a=y$-1/2serif_slab;
+x$f=x$e=x$a+serif_length; y$f=y$g-1/2serif_slab; y$e=y$c=y$d+1/2serif_slab;
+x$g=x$f-1/2serif_slab; y$g=y$i-1/2serif_slab;
+y$h=y$f-1/4serif_slab; x$h=x$g-serif_slab;
+x$c=x$e-serif_slab; x$d=x$e-1/2serif_slab; y$d=y$g-serif_height;
+x$b=x$h-6/18serif_length; y$b=y$h-1/2slab;
+labels ($a,$b,$c,$d,$e,$f,$g,$h,$i) enddef;
+
+def S_serif_edge suffix $ =
+(z$a{right}...z$b..{dir -80}z$c..z$d..z$e--z$f{up}..z$g{left}..z$h{dir 150}..{left}z$i--cycle) enddef;
+
+currenttransform := identity slanted sind 18;
+beginchar(CYR_A,13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4b]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar(CYR_BE,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-3.05u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=y5=h-1/2slab;
+y1c=h; y2c=0; x5e=w-s-cap_stem;
+y6=y7=cap_bar_height; x6=x2r-.1c; x7=x9=x6+5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h; x4=w-s-cap_stem-border_height;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_VE,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.34u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r-.1c; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+css_width := x8 - x2r; save css_width;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar(CYR_GHE,9u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.79u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; x3=x4+2u;
+y5=y3; x5e=w-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_DE,12u#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-u#;
+x10e=w-s; y10c=-d;
+y4c=h; x4h=w-s-1/2slab;
+x9=x4; y9c=0;
+x3=x8=x9d; y8=y7=1/2cap_bar; y3=y2=h-y8;
+x6e=s; y6=y10; x7=border_height+s;
+y5=y9; x5g=s+.5u; y1=y4; x1=x5+1.5u;
+x2=x1c;
+A_serif(1,1.2cap_bar,-96,10/7cap_jut,cap_jut);
+A_serif(5,1.2cap_bar,81,6/7cap_jut,cap_jut);
+serif(4,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+penpos2(cap_bar,90);
+penpos3(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_bar,90);
+penstroke z7e--z8e; penstroke z2e--z3e;
+fill A_serif_edge5...reverse A_serif_edge1...cycle;
+fill serif_edge9--reverse serif_edge4--cycle;
+T_serif(6,slab,border_height,0);
+T_serif(10,slab,border_height,1);
+fill T_edge6;
+fill T_edge10;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_IE,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.13u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r-.1c; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_YE,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.13u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r-.1c; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+x12=x13=x2r-s; y12=h+1/4cap_stem; y13=y12+cap_stem;
+x14=x15=x12+1.8cap_stem; y14=y12; y15=y13;
+fill z12..z13..cycle; fill z14..z15..cycle;
+penlabels(range 1 thru 15);
+endchar;
+
+beginchar(CYR_ZHE,round (16u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-1.5u#;
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; y7=y4=y10=y11=cap_bar_height; x4=x7-1.5u;
+x10=x8r; x11=x10+1.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+x6=s; y6=0; y4-y5=y5-y6; x4-x5=x5-x6;
+penpos7(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,90);
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z6e{right}..tension.8..{up}z5e{up}..tension.8..{right}z4e--z7e;
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+x3=x5+1/2cap_stem; y2=h; x4-x3=x3-x2; y2-y3=y3-y4;
+penpos3(hair,0);
+penpos2(cap_bar,90);
+penstroke z4e{left}..tension.8..{up}z3e{up}..tension.8..{left}z2e;
+y1=h; x1a=x2; fill z6l..z6r..cycle;
+ul_drop(1,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ul_drop_edge1; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ZE,10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.14u#;
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height;
+x4=x6-3/2cap_stem; x5=x4-3u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-.28cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..tension1..{down}z3e{down}..tension1..{left}z44e;
+penstroke z5e--z4e{right}..tension.9..{down}z6e{down}..tension.9..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3c,1.4border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.4cap_drop_round,slab);
+fill dl_drop_edge8;
+%currentpicture:=currentpicture shifted(-u,0);
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_I,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.79u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-30); penpos6(cap_bar,-30);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar(CYR_SHORT_I,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.79u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-30); penpos6(cap_bar,-30);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+y7d=h+1.4cap_drop_round; z7d=z1r+whatever*dir 83;
+dl_drop(7,.9cap_drop_round,stem,.8cap_drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+z8=z7; y9=y7d-2bar; z9=z3+whatever*dir 100;
+penpos8(bar,90); penpos9(bar,135);
+penstroke z8e{right}..tension1.3..z9e;
+fill z9l..tension1.3..z9r..tension1.3..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_KA,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.5u#;
+x8g=x9g=s; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+y10=y11=cap_bar_height;
+x10=x8r-.1c; x11=x10+2.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_EL,13u#+1/2s#,cap_height#,0);
+italcorr cap_height#*sind 18-.79u#;
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.8cap_drop_round; y3=1.1cap_drop_round;
+dl_drop(1,cap_drop_round,cap_drop_round,1.1cap_drop_round,slab);
+fill dl_drop_edge1;
+penpos2(cap_bar,-90);
+penpos3(cap_bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-slab;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,cap_bar,theta1,1.3cap_jut,1.3cap_jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,cap_stem,-90,cap_jut,cap_jut);
+serif(8,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z5e--z6e;
+%currentpicture:=currentpicture shifted(-.7u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_EM,13u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.79u#;
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,.51cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,-30); penpos6(bar,-30);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 111; y7l=12/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_EN,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.79u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r-.1c; x6=x3l+.1c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_O,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.1u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+cap_o_width := x7-x3; save cap_o_width;
+%currentpicture:=currentpicture shifted(-1.6u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_PE,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.79u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ER,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.55u#;
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_ES,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.15u#;
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+%currentpicture:=currentpicture shifted(-1.6u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_TE,round (11u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-.79u#;
+x1=x2=.5w; y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+%currentpicture:=currentpicture shifted(-2.9u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_U,13u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.86u#;
+x1l=s+cap_jut; y1l=.98h-cap_bar;
+x3r=w-s-.8cap_jut; y3r=.98h-cap_bar;
+x4=33/60w; y4=6/53h;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,1.2cap_bar,theta2,1.2cap_jut,.8cap_jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=0; x6=x4-cap_stem; z7l=z2;
+penpos7(1.2cap_bar,theta2+90);
+penpos5(1.2cap_bar,theta2+90);
+penpos6(1.2cap_bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,cap_drop_round,2.5u,10/53h,1.2cap_bar);
+fill dl_drop_edge8;
+%currentpicture:=currentpicture shifted(-2.6u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EF,round (14u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-2.04u#;
+if .5w = good.x .5w: change_width; fi
+x1=x2=.5w; y2c=0; y1h=h;
+y6=y7=y8=y9=1.3cap_jut; y4=y3=y11=y12=h-1.3cap_jut+1/2slab;
+x3=x7=x2l; x8=x12=x2r; x4=x6=x3-u; x11=x9=x12+u;
+x5=s+1/2cap_curve; x10-x1=x1-x5; y4-y5=y5-y6; y10=y5;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,270);
+penpos7(cap_bar,270);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+penpos10(cap_curve,0);
+penpos11(cap_bar,90);
+penpos12(cap_bar,90);
+penstroke z3e--z4e{left}..tension.8..{down}z5e{down}..tension.8..{right}z6e--z7e;
+penstroke z8e--z9e{right}..tension.8..{up}z10e{up}..tension.8..{left}z11e--z12e;
+%currentpicture:=currentpicture shifted(-1.6u,0);
+penlabels (range 1 thru 12);
+endchar;
+
+beginchar(CYR_HA,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.21u#;
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_TSE,12.5u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-1.28u#;
+x1=x2=x5=cap_jut+1/2cap_stem+s;
+x3=x4=x6=w-x1-.5u; y5=y6=y2h;
+y1c=y3c=h; y2c=y4c=0; x7e=w-s; y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e;
+T_serif(7,cap_bar,border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_CHE,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.79u#;
+x1=cap_jut+1/2cap_stem+s; x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,-90,cap_jut,cap_jut);
+serif(3,cap_stem,90,cap_jut,cap_jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l+.2c; y5=cap_bar_height-1/2cap_bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-1.5cap_bar;
+penpos6(cap_stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+%currentpicture:=currentpicture shifted(-3.2u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SHA,16u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.79u#;
+if .5w <> good.x .5w: change_width; fi
+x1=x2=good.x (cap_jut+1/2cap_stem+s);
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=good.x .5w; y5=y1; y6=y2;
+y9b=slab; x9=good.x w-x1;
+x10=x9; y10b=h-slab;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_SHCHA,16u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-.79u#;
+if .5w <> good.x .5w: change_width; fi
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=slab; x9h=w-s;
+x10=x9; y10b=h-slab;
+x11e=w-s; y11=y9h;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,slab,border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_HARD_SIGN,13u#,cap_height#,0);
+italcorr cap_height#*sind 18-3.13u#;
+x2r=x5-css_width; x1=x2; x8e=0; y8g=h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+x7=x1d; y1c=h; y2c=0;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y3=y4=cap_bar_height; x3=x2r-.1c; x4=x6=round(x3+5u-cap_stem);
+y6=y7=y2h;
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(8,cap_bar,border_height,0);
+fill T_edge8;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+%currentpicture:=currentpicture shifted(-1.7u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YERU,16u#+c#,cap_height#,0);
+italcorr cap_height#*sind 18-.79u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+y3=y4=cap_bar_height; x3=x2r-.1c; x4=x6=round (x3+5u-cap_stem) - 1;
+y4-y5=y5-y6; x5=x2r+css_width; y8b=slab; x8h=w-s;
+y6=y7=y2h; x9=x8; y9b=h-slab;
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(8,cap_stem,90,cap_jut,cap_jut);
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge9--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SOFT_SIGN,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-3.13u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=cap_bar_height; x3=x2r-.1c; x4=x6=x3+5u-cap_stem;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y6=y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_E,10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.1u#;
+x1=16/39w; x5=.5w; y1=0; y5=h;
+y7=.5h; x7=w-1/2cap_curve-s;
+x9e=s; y9=0;
+dl_drop(9,cap_drop_round,16/39w-s,1.55cap_drop_round,slab);
+y8=0.1h-c; y6=0.9h+c; x8=x9+9/16(x7-x9); x6=x5+9/16(x7-x5);
+penpos5(cap_bar,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+penpos1(cap_bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+y2=y5; x2=x5-c;
+S_serif(2,slab,x1+c,1.5border_height);
+x3=x7-1/2cap_stem; y3=y4=cap_bar_height; x4=x2b-x1;
+penpos3(cap_bar,90); penpos4(cap_bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+%currentpicture:=currentpicture shifted(-u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YU,16u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.18u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+y3=y7=.5h; x7=w-1/2cap_curve-s; x3=x7-cap_o_width; y9=0; y5=h; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3cap_stem; y11=y12=cap_bar_height;
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_YA,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.79u#;
+x1=x2=w-cap_jut-1/2cap_stem-s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2l;
+y1c=h; y2c=0; x6=x4=x7-2.2u; x3=x1c;
+y4-y5=y5-y6; x5=x8-1.5c; x9=s; y9=0; y6-y8=y8-y9; x7-x10=3(x10-x6); x10-x8=x8-x9;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos7(cap_bar,270);
+penpos6(cap_bar,270);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90); fill z9l..z9r..cycle;
+penstroke z3e--z4e{left}..tension.9..z5e..tension.9..{right}z6e--z7e;
+penstroke z9e{right}..tension1..{up}z8e{up}..tension1..{right}z10e;
+penlabels(range 1 thru 10);
+endchar;
+currenttransform := identity;
+
+beginchar(CYR_a,9u#+2c#,x_height#,0);
+x1=w-s-.7stem; y1=h; y2=7/33h; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=w-s-bar/3; y4=8/33h;
+penpos1(stem,180);
+penpos2(stem,180);
+penpos3(1.2vair,270);
+penpos4(bar,340);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 60}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x5=x1-1.25stem; y5=h; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c; y6=.54h; y8=.46h; z8l=whatever[z1r,z2r];
+penpos8(2bar,0);
+penpos5(vair,90);
+penpos6(curve,180);
+penpos7(vair,270);
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=h-c; z10=(x1r+c,h); z11=(x1l-c,h);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar(CYR_be,8u#+s#+stem#,asc_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5(w-stem)-1/2(x_height*sind 14/cosd 14); x3=.5(w-stem)+1/2(x_height*sind 14/cosd 14); y1=0; y3=x_height;
+y2=.54x_height; y4=.46x_height; x2=1/2curve+s; x4=w-1/2curve-stem-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+y5=y2; x5r=x2l; x6=22/35w; y6=45/51h; y7r=h; x7=w-s;
+penpos5(bar,180);
+penpos6(.9curve,90);
+penpos7(.8curve,90);
+penstroke z5e{dir 76}..tension.8..{dir 7}z6e{dir 7}..{dir 30}z7e;
+fill z7l..tension2..z7r..tension2..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_ve,8u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=4/5h; x2=1/2curve+s; x4=w-1/2curve-s; z5r=z2; x6=w-s-s-1/2curve; y6=9/33h; z7=z5;
+penpos5(vair,-270);
+penpos6(curve,180);
+penpos7(vair,270);
+penstroke z7e{dir 14}..tension.9..{dir 256}z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{dir 194}z5e;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_ghe,7u#+s#,x_height#,0);
+x4=0.5w; top y4 = good.y (0.5h+1/3bar); y3=12.5/16h; x3=w-s-1/2curve;
+x2=10/18w; y2=h; x1=s+1/2curve; y1=24/33h;
+x5=s+1/2curve; y5=h-y3; x6=w-x2; y6=0; x7=w-x1; y7=h-y1;
+penpos1(bar,180);
+penpos2(1.2bar,90);
+penpos3(curve,0);
+penpos4(1.2bar,-90);
+penpos5(curve,0);
+penpos6(1.2bar,90);
+penpos7(bar,180);
+penstroke z1e{dir 60}..{right}z2e..z3e{dir -90}...{dir 200}z4e{dir 200}...{dir -90}z5e..z6e{right}..{dir 60}z7e;
+fill z7l..tension1.3..z7r..tension1.3..cycle;
+fill z1l..tension1.3..z1r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_de,8u#+s#+.3stem#,asc_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5(w-.3stem)-1/2(x_height*sind 14/cosd 14); x3=.5(w-.3stem)+1/2(x_height*sind 14/cosd 14); y1=0; y3=x_height;
+y2=.54x_height; y4=.46x_height; x2=1/2curve+s; x4=w-1/2curve-.3stem-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..tension1..{right}z3e..tension.9..{dir 256}z4e{dir 256}..tension1..{left}z1e..cycle;
+y5=24/33x_height; z5=z4+whatever*dir 77; x6=22/35w; y6=h;
+y56=y5+s+stem; z56=z4+whatever*dir 78;
+x7=10/35w; y7=42/51h;
+penpos5(1.1curve,-180);
+penpos56(.9curve,-180);
+penpos6(1.2bar,-90);
+penpos7(bar,0);
+penstroke z4e{dir 76}..z5e{dir 76}..z56e..tension1..{dir 174}z6e{left}..z7e;
+fill z7l..tension1.3..z7r..tension1.3..cycle;
+penlabels(range 1 thru 8,56);
+endchar;
+
+beginchar(CYR_ie,8u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=4/5h; x2=1/2curve+s; x4=w-1/2curve-s; z5r=z2; x6=w-s-s-1/2vair; y6=9/33h;
+penpos5(vair,-270);
+penpos6(vair,135);
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{dir 194}z5e;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_ye,8u#+c#,asc_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(x_height*sind 14/cosd 14); x3=.5w+1/2(x_height*sind 14/cosd 14);
+y1=0; y3=x_height; y2=.54x_height; y4=4/5x_height; x2=1/2curve+s;
+x4=w-1/2curve-s; z5r=z2; x6=w-s-s-1/2vair; y6=9/33x_height;
+penpos5(vair,-270);
+penpos6(vair,135);
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{dir 194}z5e;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+z8r=(w-s,h-1/2curve); y7=y8; x7=x8-1.9curve;
+penpos7(curve,0); penpos8(curve,0);
+fill z7r..z7l..cycle; fill z8r..z8l..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_zhe,15u#+2s#,x_height#,0);
+penpos1(1.2vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+x1=x3-(h*sind 14/cosd 14); x3=w-s-3/4stem; y1=0; y3=h;
+y2=.54h; x2=x1-3/4stem; x5=w-s-4/5stem; y5=7/33h;
+penpos5(vair,160); z4=z3;
+penstroke z5e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e;
+fill z5l..tension1.5..z5r..tension1.5..cycle;
+z77=(.5w,.5h); z9=z77+whatever*dir 76; y9=h;
+z8=whatever[z9,z77]; y8=0;
+penpos8(stem,0); penpos9(stem,0);
+penstroke z8e--z9e;
+ur_drop(4,drop_round,3/4stem,drop_round,bar);
+fill ur_drop_edge4;
+x10=w-x5; y10=26/33h; x11=w-x1; y11=h; x12=w-x2; y12=.46h;
+x13=w-x3; y13=0; z14=z13;
+penpos10(bar,160); penpos11(bar,90);
+penpos12(curve,0); penpos13(bar,-90);
+penstroke z10e..z11e{right}..{dir -104}z12e{dir -104}..{left}z13e;
+fill z10l..tension1.5..z10r..tension1.5..cycle; z14=z13;
+dl_drop(14,drop_round,3/4stem,drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+x7=x12; x6=x2; y6=y7=bar_height;
+penpos7(bar,90); penpos6(bar,90);
+penstroke z6e--z7e;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_ze,8u#,x_height#,0);
+x1=2.5s+1/2vair; y1=26/33h; x2=.5w+1/2(h*sind 14/cosd 14); y2=h;
+x3=w-s-1/2curve; y2-y3=y3-y4; x5=x1+s;
+z4=z2+whatever*dir -104; y4=y5=bar_height;
+z7=whatever[z2,z4]; y7=0; z6=z3+whatever*dir -100;
+y4-y6=y6-y7; z8=z7;
+penpos1(bar,135); penpos2(bar,90);
+penpos3(curve,0); penpos4(bar,-90);
+penpos5(bar,-90); penpos6(curve,180);
+penpos7(bar,90);
+penstroke z1e..z2e{right}..{dir -100}z3e{dir -100}..{left}z4e--z5e;
+penstroke z4e{right}..{dir -100}z6e{dir -100}..{left}z7e;
+fill z1l..tension1.5..z1r..tension1.5..cycle;
+fill z5l..tension1.5..z5r..tension1.5..cycle;
+dl_drop(8,drop_round,x7-s,1.2drop_round,bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_i,10u#+.7s#,x_height#,0);
+x1=w-s-1.1stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=0; y5=8/34h;
+x5=s+1/2stem; x6=x5+.9stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+z7l=z5r+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_short_i,10u#+.7s#,asc_height#,0);
+x1=w-s-1.1stem; y1=x_height; y2=10/33x_height; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33x_height; y3=y6=0; y5=8/34x_height;
+x5=s+1/2stem; x6=x5+.9stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33x_height;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+z7l=z5r+whatever*dir 76; y7l=x_height-bar;
+serif(7,stem,-104,jut,0);
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+y9d=h; z9d=z7f+whatever*dir 76;
+dl_drop(9,drop_round,.9stem,drop_round,bar);
+fill dl_drop_edge9; fill z9e..z9c..cycle;
+z10=z9; y11=h-bar; z11=z1+whatever*dir 80;
+penpos10(bar,90); penpos11(bar,135);
+penstroke z10e{right}..tension1.3..z11e;
+fill z11l..tension1.3..z11r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ka,10u#,x_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-2*.75stem; y1=bar_height-2.5bar; y2=6/33h; z2=z1+whatever*dir -104;
+x3=x2+.7stem; x4=w-s-1/2bar; y4=10/33h; y3=y5=y6=0;
+x8=x2-3/4stem; y8=bar_height; y9=bar_height-2bar; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.1bar,270); penpos9(1.2bar,0);
+penstroke z9e{dir 68}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x10=x3; y10=h; penpos10(1.2bar,270); z11=z10;
+penstroke z9e{dir 60}..{dir 25}z10e;
+ur_drop(11,drop_round,9/8drop_round,drop_round,1.2bar);
+fill ur_drop_edge11;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_el,10u#+c#,x_height#,0);
+x1=w-s-stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+.7stem; x4=w-s-1/2bar; y4=10/33h; y3=0;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x5=x1r; y5=h-1/2bar; x8=1/5w; y8=0; z9=z8;
+y6=27/34h; y7=7/34h; x6=.5w; z7=z6+whatever*dir -108;
+penpos5(vair,90); penpos6(bar,180);
+penpos7(bar,180); penpos8(vair,90);
+penstroke z5e{left}..z6e--z7e{dir -108}..{left}z8e;
+dl_drop(9,drop_round,x8-s,drop_round,bar);
+fill dl_drop_edge9; fill z9e..z9c..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_em,12u#+s#,x_height#,0);
+x1=w-s-.9stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+.7stem; x4=w-s-1/2bar; y4=9/33h; y3=0;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+z5r=z1r; z6=z5+whatever*dir -120; y6=0;
+penpos5(bar,180); penpos6(bar,180);
+penstroke z5e--z6e; fill z6l..tension1.3..z6r..tension1.3..cycle;
+z7l=z6r+whatever*dir 92; y7l=7/28h;
+z8l=whatever[z6r,z7l]; y8l=h;
+penpos7(.9stem,0); penpos8(.9stem,0);
+penstroke z7e--z8e; fill z6r--z7l--z7r--cycle;
+y9=h-bar; x9=x8l; y10=10/33h; z10=z9+whatever*dir -104;
+y11=0; x11=s+.7stem; z12=z11;
+penpos10(bar,0); penpos11(bar,-90);
+serif(9,bar,-104,jut,0);
+fill z10l--z10r--reverse serif_edge9--cycle;
+penstroke z10e{dir -104}..{left}z11e;
+dl_drop(12,drop_round,x11-s,drop_round,bar);
+fill dl_drop_edge12; fill z12e..z12c..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_en,10u#+s#,x_height#,0);
+x1=w-s-1.1stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+.7stem; x4=w-s-1/2bar; y4=10/33h; y3=y5=y6=0;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+y8=y9=bar_height; z9=z2+whatever*dir 76; z8=whatever[z6,z7];
+penpos8(bar,90); penpos9(bar,90);
+penstroke z8e--z9e; fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_o,8u#+s#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=.46h; x2=1/2curve+s; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+italic_o_width := x4-x2; save italic_o_width;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_pe,10u#+s#,x_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-9/8stem; y1=26/33h; y2=10/33h; z2=z1+whatever*dir -108;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y5=y6=0;
+x8=x2; y8=h; y9=bar_height-bar; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.2bar,270); penpos9(bar,0);
+penstroke z9e{dir 68}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_er,9u#+c#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=x2+.5(x4-x2)-1/4(h*sind 14/cosd 14)-c; x3=x2+.5(x4-x2)+3/4(h*sind 14/cosd 14)-c; y1=0; y3=h;
+y2=.54h; y4=.46h; x2=x4-italic_o_width+c; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension1..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+y5=h-bar; z5=z2+whatever*dir 76;
+serif(5,stem,-104,jut,0); fill z5e{dir 76}..z5d{left}..cycle;
+y6=-d+bar; z6=whatever[z2,z5];
+serif(6,stem,76,.3jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_es,7.5u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+x1=4u-1/2(h*sind 18/cosd 18)+c; x3=4u+1/2(h*sind 18/cosd 18); y1=0; y3=h;
+y2=.54h; x2=1/2curve+s; x6=8u-2s-1/2vair; y6=9/33h;
+penpos6(vair,150); z4=z3;
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e;
+fill z6l..tension1.5..z6r..tension1.5..cycle;
+ur_drop(4,drop_round,w-s-x3,5/4drop_round,bar);
+fill ur_drop_edge4;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_te,round (8u#-.5s#),x_height#,0);
+if .5w = good.x .5w: change_width; fi
+currenttransform := identity slanted sind 14;
+x2=.5w-w*sind 14/cosd 14+c; x1e=s-w*sind 14/cosd 14+c;
+x4e=w-s-w*sind 14/cosd 14+c;
+y1=y4=y2h; y2c=h; y3=y5=0; x3=.5w-1/2stem-w*sind 14/cosd 14+c;
+x5=.5w+1/2stem-w*sind 14/cosd 14+c;
+serif(2,stem,-90,jut,jut);
+T_serif(1,bar,4/5border_height,0);
+T_serif(4,bar,4/5border_height,1);
+fill z3--z5--reverse serif_edge2--cycle;
+fill T_edge1; fill T_edge4;
+currenttransform := identity;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_u,10u#,x_height#,desc_depth#);
+x5=w-s-1/2stem; y5=h; y6=10/33h; z6=z5+whatever*dir -104;
+y3=0; y2=8/34h; x2=s+stem; x3=x2+.9stem;
+y7=0; z7=z6+whatever*dir -104;
+penpos5(stem,180); penpos6(stem,180);
+z8r=z7r+whatever*dir -108; y8r=-1/2d;
+z4l=whatever[z6r,z5r]; y4l=15/33h;
+penpos2(stem,180); penpos3(1.1bar,270);
+y9=-d; x9=x2l-s; z10=z9;
+penpos4(bar,360); penpos7(stem,180);
+penpos8(.8stem,180); penpos9(bar,90);
+penstroke z2e{dir -104}..z3e{right}..{dir 76}z4e;
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+penstroke z5e{dir -104}..z6e..z7e..z8e..{left}z9e;
+dl_drop(10,.9stem,x9-s,1.2drop_round,bar);
+fill dl_drop_edge10; fill z10e..z10c..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ef,12u#+s#,asc_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(.9curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=x2+.5(x4-x2)-3/8(x_height*sind 14/cosd 14)-.3c;
+x3=x2+.5(x4-x2)+5/8(x_height*sind 14/cosd 14)-.3c;
+y1=y6=0; y3=y8=x_height; y5=y4; x7=1/2curve+s; y7=y2;
+y2=.54x_height; y4=.46x_height; x4=w-1/2curve-s;
+x4-x2=x2-x7; x5=x2;
+x8=x7+.5(x5-x7)+3/8(x_height*sind 14/cosd 14)+.3c;
+x6=x7+.5(x5-x7)-5/8(x_height*sind 14/cosd 14)+.3c;
+penpos6(vair,90); penpos7(curve,0);
+penpos8(vair,-90); penpos5(.9curve,180);
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension1..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+penstroke z6e{left}..tension1..{dir 76}z7e{dir 76}..{right}z8e..tension.9..{dir 256}z5e{dir 256}..{left}z6e..cycle;
+x5-x77=x77-x2; y2-y77=y77-y5;
+y10=h; x10=w-s-stem; y11=44/34x_height; z11=z77+whatever*dir 76;
+y12=-1/8d; z12=z77+whatever*dir -104; y13=-d; x13=s+stem; z9=z10;
+penpos10(bar,90); penpos11(stem,180);
+penpos12(stem,180); penpos13(bar,90);
+penstroke z10e{left}..{dir -104}z11e--z12e{dir -104}..{left}z13e;
+ur_drop(9,drop_round,stem,drop_round,bar);
+fill ur_drop_edge9; z14=z13;
+dl_drop(14,drop_round,stem,drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 14,77);
+endchar;
+
+beginchar(CYR_ha,10u#+c#,x_height#,0);
+penpos1(1.2vair,90);
+penpos2(curve,0);
+penpos3(vair,-90); penpos12(curve,0);
+x1=x3-(h*sind 14/cosd 14); x3=w-s-3/4stem; y1=0; y3=h;
+y2=.51h; x2=x1-25/40stem;
+x5=w-s-.7stem; y5=7/33h;
+penpos5(vair,150); z4=z3;
+penstroke z5e..z1e{left}..{dir 76}z2e{dir 76}..{right}z3e;
+fill z5l..tension1.5..z5r..tension1.5..cycle;
+ur_drop(4,drop_round,3/4stem,drop_round,bar);
+fill ur_drop_edge4;
+x10=w-x5; y10=26/33h; x11=w-x1; y11=h; x12=w-x2; y12=.49h;
+x13=w-x3; y13=-2epsilon; z14=z13;
+penpos10(bar,150); penpos11(bar,90);
+penpos13(bar,-90);
+penstroke z10e..z11e{right}..{dir -104}z12e{dir -104}..{left}z13e;
+fill z10l..tension1.5..z10r..tension1.5..cycle; z14=z13;
+dl_drop(14,drop_round,3/4stem,drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_tse,10u#+.7s#,x_height#,desc_depth#);
+x1=w-s-1.1stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=0; y5=8/34h;
+x5=s+1/2stem; x6=x5+.9stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+z7l=z5r+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+y9l=0; x9l=x3+bar; x10=x2+1/4stem; y10=-1/2d;
+y11=-d; x11=x10-1.1stem;
+penpos11(bar,90); penpos10(stem,180); penpos9(bar,120);
+penstroke z9e..tension1.3..{down}z10e{down}..tension.8..{left}z11e;
+fill z11l..tension1.3..z11r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_che,9u#,x_height#,0);
+x7g=s; y7g=h-1/2bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-.9stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+.7stem; x4=w-s-1/2bar; y4=9/33h; y3=0; y6l=bar_height; y5=y6l+2bar;
+z5=z7+whatever*dir -104; x6=x5+3/4stem;
+penpos1(stem,180); penpos2(stem,180);
+z8=z2r+whatever*dir 74; y8l=y5-bar;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(1.2bar,256);
+penstroke z5e{dir -104}..z6e{right}..{dir 25}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_sha,14u#+s#,x_height#,0);
+if .5w <> good.x .5w: change_width; fi
+x1=w-s-1.1stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+.7stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=y10=0; y5=y11=8/34h;
+x11=s+1/2stem; x10=x11+.9stem;
+z12=z11+whatever*dir 76; y12=h-bar;
+y13=h; z13=whatever[z11,z12];
+x6=x5+.9stem; x1-x7=x7-x13; y7l=h; z5=z7+whatever*dir -104;
+serif(12,stem,-104,jut,0);
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=y9l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360); penpos7(stem,180);
+z9l=whatever[z5r,z7r];
+penstroke z7e--z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+penpos11(stem,180); penpos10(1.1bar,270);
+penpos9(bar,360);
+fill z11r--z11l--reverse serif_edge12--cycle;
+fill z12e{dir 76}..z12d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penstroke z11e{dir -104}..z10e{right}..{dir 76}z9e;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_shcha,14u#+s#,x_height#,desc_depth#);
+if .5w <> good.x .5w: change_width; fi
+x1=w-s-1.1stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+.7stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=y10=0; y5=y11=8/34h;
+x11=s+1/2stem; x10=x11+.9stem;
+z12=z11+whatever*dir 76; y12=h-bar;
+y13=h; z13=whatever[z11,z12];
+x6=x5+.9stem; x1-x7=x7-x13; y7l=h; z5=z7+whatever*dir -104;
+serif(12,stem,-104,jut,0);
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=y9l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360); penpos7(stem,180);
+z9l=whatever[z5r,z7r];
+penstroke z7e--z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+penpos11(stem,180); penpos10(1.1bar,270);
+penpos9(bar,360);
+fill z11r--z11l--reverse serif_edge12--cycle;
+fill z12e{dir 76}..z12d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penstroke z11e{dir -104}..z10e{right}..{dir 76}z9e;
+y14l=0; x14l=x3+bar; x15=x2+1/4stem; y15=-1/2d;
+y16=-d; x16=x15-1.1stem;
+penpos16(bar,90); penpos15(stem,180); penpos14(bar,120);
+penstroke z14e..tension1.3..{down}z15e{down}..tension.8..{left}z16e;
+fill z16l..tension1.3..z16r..tension1.3..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_soft_sign,8u#,x_height#,0);
+y2=10/34h; x2=s+1/2stem; x3=x2+1.05stem; z5=z3+whatever*dir 76; y5=bar_height+bar; y4=.5y5; x4=w-s-1/2curve; y3=0;
+y6l=y2+bar; z6l=z2l+whatever*dir 76;
+penpos2(stem,180); penpos3(bar,270);
+penpos4(curve,360); penpos5(bar,90);
+penpos6(1.5bar,180);
+penstroke z2e{dir -104}..z3e{right}..{dir 76}z4e{dir 76}..tension1..{left}z5e{left}..{dir -104}z6e;
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+sss_italic_width :=x4-x2; save sss_italic_width;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_yeru,12u#+s#,x_height#,0);
+y2=10/34h; x2=s+1/2stem; x3=x2+1.05stem; z5=z3+whatever*dir 76; y5=bar_height+bar; y4=.5y5; x4=x2+sss_italic_width; y3=-2epsilon;
+y6l=y2+bar; z6l=z2l+whatever*dir 76;
+penpos2(stem,180); penpos3(bar,270);
+penpos4(curve,360); penpos5(bar,90);
+penpos6(1.5bar,180);
+penstroke z2e{dir -104}..z3e{right}..{dir 76}z4e{dir 76}..tension1..{left}z5e{left}..{dir -104}z6e;
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+x7=w-s-1.1stem; y7=h-bar; y8=10/33h; z8=z7+whatever*dir -104;
+x9=x8+3/4stem; x10=w-s-1/2bar; y10=10/33h; y9=2epsilon;
+penpos8(stem,180);
+penpos9(1.1bar,270); penpos10(bar,335);
+penstroke z8e{dir -104}..{right}z9e{dir 20}..{dir 65}z10e;
+fill z10l..tension1.3..z10r..tension1.3..cycle;
+serif(7,stem,-104,jut,0);
+fill z8r--z8l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_hard_sign,11u#-c#,x_height#,0);
+y2=10/34h; x2=x4-sss_italic_width; x3=x2+1.05stem; z5=z3+whatever*dir 76; y5=bar_height+bar; y4=.5y5; x4=w-s-1/2curve; y3=0;
+y6l=y2+bar; z6l=z2l+whatever*dir 76;
+z1r=z2l+whatever*dir 76; y1=h;
+penpos2(stem,180); penpos3(bar,270);
+penpos4(curve,360); penpos5(bar,90);
+penpos6(1.5bar,180); penpos1(bar,180);
+penstroke z1e..z2e{dir -104}..z3e{right}..{dir 76}z4e{dir 76}..tension1..{left}z5e{left}..{dir -104}z6e;
+x10=s+1/3bar; y10=y5r+1/2bar; y11=h; z11=z10+whatever*dir 70;
+penpos10(bar,0); penpos11(bar,0);
+fill z10l..tension1.3..z10r..tension1.3..cycle;
+fill z11l..tension1.3..z11r..tension1.3..cycle;
+fill z1l..tension1.3..z1r..tension1.3..cycle;
+penstroke z10e--z11e;
+x7=x1r; y7=h-1/2bar; y8=h-5/8stem; x8=x11r+1/2stem;
+x9r=x11r-.1c; y9r=h; penpos9(curve,70);
+penpos7(bar,90); penpos8(.8curve,80);
+penstroke z7e{dir 200}..{left}z8e..{dir 160}z9e;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_e,7.5u#,x_height#,0);
+x10=2.5s+1/2vair; y10=26/33h; x11=.5w+1/2(h*sind 14/cosd 14); y11=h;
+x12=w-s-1/2curve; y12=.46h;
+x13=.5w-1/2(h*sind 14/cosd 14); y13=0; z14=z13;
+penpos10(bar,145); penpos11(bar,90);
+penpos12(curve,0); penpos13(bar,-90);
+penstroke z10e..z11e{right}..{dir -104}z12e{dir -104}..{left}z13e;
+fill z10l..tension1.5..z10r..tension1.5..cycle; z14=z13;
+dl_drop(14,drop_round,x13-s,1.2drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+x1=x14c; x2=x12; y1=y2=bar_height;
+penpos1(bar,90); penpos2(bar,90);
+penstroke z1e--z2e; fill z1r..z1l..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_yu,12u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=x2+.5(x4-x2)-1/2(h*sind 14/cosd 14); x3=x2+.5(x4-x2)+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=.46h; x2=x4-italic_o_width; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+x5=s; y5=y6=0; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5--z6--reverse serif_edge7--cycle;
+y8=y9=bar_height; z8=whatever[z6,z7]; x9=x2;
+penpos8(bar,90); penpos9(bar,90);
+penstroke z8e--z9e; fill z7e{dir 76}..z7d{left}..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ya,10u#+2c#,x_height#,0);
+x1=w-s-.9stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=2epsilon;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x5=x1r; y5=h-1/2bar; x6=x5-stem; y6=h-1/2vair;
+x7=12/40w; y8=y9=bar_height; z9=z5+whatever*dir -104;
+x8=x9-4/5stem; y5-y7l=y7l-y9;
+penpos5(bar,90); penpos6(vair,90);
+penpos7(curve,166); penpos8(bar,270);
+penpos9(bar,270); x11=s+2/3stem; y11=-2epsilon;
+12(x8-x10)=9(x10-x11); y8-y10=y10-y11; z12=z11;
+penpos10(.7curve,360); penpos11(bar,270);
+penstroke z5e--z6e{left}..z7e{dir -104}..{right}z8e--z9e;
+penstroke z9e{left}..tension.8..{dir -104}z10e{dir -104}..{left}z11e;
+dl_drop(12,drop_round,x11-s,drop_round,bar);
+fill dl_drop_edge12; fill z12e..z12c..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+currenttransform := identity slanted sind 18;
+beginchar("A",13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4b]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar("B",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.3u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r-.1c; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("C",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.12u#;
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+%currentpicture:=currentpicture shifted(-1.6u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("D",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-2.18u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(o,30);
+penpos6(cap_curve,0);
+penpos7(o,-30);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+x3=x9=x1d;
+x8=x4=.5w; y8=y9=1/2cap_bar; y4=y3=h-1/2cap_bar;
+y6=.5h; x6=w-1/2cap_curve-s;
+y7=0.1h-c+1/2cap_bar; y5=0.9h+c-1/2cap_bar; x5=x7=x4+5/8(x6-x4);
+penstroke z3e--z4e{right}..z5e..z6e..z7e..{left}z8e--z9e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("E",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.13u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r-.1c; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("F",10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-.76u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; y5=y3; x5e=w-s;
+y6=y7=y8=cap_bar_height;x6=x1r-.1c; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("G",10u#+cap_jut#+c#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.7u#;
+x1=x5=23/42(w-cap_jut-c); y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s-cap_jut-c; y8=y1; x8=x1-.1(w-cap_jut-c);
+S_serif(6,slab,w-s-2c-x1-cap_jut,1.5border_height);
+S_serif(7,slab,w-s-x1-cap_jut+c,7/4border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+x9r=x7e; y9r=7/4border_height-1/2cap_bar;
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+x10=x9l; x11=x9r; y10=y11=3/4cap_bar;
+fill reverse serif_edge9--z10--z11--cycle;
+%currentpicture:=currentpicture shifted(-1.6u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("H",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.79u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r-.1c; x6=x3l+.1c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("I",2cap_jut#+cap_stem#+2s#,cap_height#,0);
+italcorr cap_height#*sind 18-.79u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+endchar;
+currenttransform := identity;
+
+beginchar("J",7u#,cap_height#,0);
+italcorr cap_height#*sind 18-1.51u#;
+x7=w-.5cap_jut-1/2cap_stem-s; y7=4cap_bar; penpos7(.7cap_stem,0);
+y1c=h; z1r=z7r+whatever*dir 72; serif(1,cap_stem,-108,1.2cap_jut,.6cap_jut);
+z2=z1r+whatever*dir -108; z3=z1l+whatever*dir-108;
+z4=z1+whatever*dir-108; y2=y3=y4=18/53h;
+y5=0; x5=s+cap_drop_round; z6=z5;
+fill z3--z2--reverse serif_edge1--cycle;
+penpos4(cap_stem,0);
+penpos5(cap_bar,-90);
+penstroke z4e{dir -108}..z7e..{left}z5e;
+dl_drop(6,cap_drop_round,x5-s,1.3drop_round,cap_bar);
+fill dl_drop_edge6;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+currenttransform := identity slanted sind 18;
+
+beginchar("K",13u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-1.73u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=cap_bar_height; x3l=w-cap_jut-.5cap_jut-cap_bar-s; y3l=h-cap_bar;
+x5=x6=x1r-.2c; y5=cap_bar_height-cap_bar; y6=y5-1.2cap_bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+A_serif(3,cap_bar,theta1,1.5cap_jut,.6cap_jut);
+x4l=w-s-1.2cap_jut-cap_stem; y4l=cap_bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,cap_stem,theta2,.8cap_jut,cap_jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("L",10u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=y5=y2h; x3=x2d; x5e=w-s;
+T_serif(5,cap_bar,border_height,1); x4=x5;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penstroke z3e--z4e;
+fill T_edge5 reflectedabout(z3,z4);
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar("M",13u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.79u#;
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,.51cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,-30); penpos6(bar,-30);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 111; y7l=12/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("N",12u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-.79u#;
+x1=x2=cap_jut+1/2cap_bar+s;
+x3=w-x1; y1c=y3c=h; y2c=y4=y5=0;
+x4=x3r; x5=x3l;
+serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+A_serif(2,cap_bar,90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill A_serif_edge2--reverse serif_edge1--cycle;
+numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+theta1=angle(z5-z7);
+z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+fill z6--z1h--z7--z5{down}..{up}z4--reverse A_serif_edge3--cycle;
+unfill z1b--z1l--z1a--cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("O",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.1u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+%currentpicture:=currentpicture shifted(-1.6u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("P",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.55u#;
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Q",11u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-2.1u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x12-1.5c; x12=x7l-c; y11=y12=-comma_depth;
+y9=0; x9=x1-c; y9-y10=y10-y11; x11-x10=x10-x9;
+penpos9(cap_bar,90); penpos10(cap_curve,0);
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z9e{dir -20}..tension.8..z10e..tension.8..{right}z11e--z12e;
+fill z12r..z12l..cycle;
+%currentpicture:=currentpicture shifted(-1.6u,0);
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("R",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.58u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2r;
+y1c=h; y2c=0; x6=x4=x7+2.2u; x3=x1d;
+y4-y5=y5-y6; x5=x8; x9=w-s-1/2cap_bar; y9=0; y6-y8=y8-y9; x10=x6; x9-x8=6/7(x8-x10);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,-90);
+penpos6(cap_bar,-90);
+penpos8(cap_curve,-180);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension1..z5e..tension1..{left}z6e--z7e;
+penstroke z9e{left}..tension.9..{up}z8e{up}..tension.9..{left}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("S",9u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.67u#;
+x6=x7=1/2w; y6=y7=0;
+S_serif(7,cap_bar,x6-s,1.5border_height);
+y5=11/53h; x5=w-s-1/2(1.9hair);
+y4=28/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2(1.9cap_bar);
+x2=.5w-c; y2=h; z1=z2;
+penpos6(cap_bar,-90);
+penpos5(1.9hair,0);
+penpos4(1.1cap_curve,90);
+penpos3(1.9hair,0);
+penpos2(cap_bar,-90);
+penstroke z6e{right}..z5e..tension.9..z4e..tension.9..z3e..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-cap_bar,1.2border_height);
+fill S_serif_edge1;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("T",round (11u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-.79u#;
+x1=x2=.5w; y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+%currentpicture:=currentpicture shifted(-2.9u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("U",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.79u#;
+x1=cap_jut+1/2cap_stem+s;
+x3=w-s-cap_jut-1/2cap_bar;
+y1c=y3c=h; y2=y4=y5=y6=y24=y56=16/53h; x2=x1l;
+x4=x1r; x5=x3l; x6=x3r;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill z2--z4--reverse serif_edge1--cycle;
+fill z5--z6--reverse A_serif_edge3--cycle;
+x7=x1+.5(x3-x1); y7=0; x4-x24=x24-x2; x6-x56=x56-x5;
+penpos24(cap_stem,-180); penpos7(vair,-90);
+penpos56(cap_bar,0);
+penstroke z24e{down}..tension.9..{right}z7e{right}..tension.9..{up}z56e;
+%currentpicture:=currentpicture shifted(-2.2u,0);
+penlabels(range 1 thru 7,24,56);
+endchar;
+
+beginchar("V",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-.79u#;
+x1l=cap_jut+s; x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w-1/2cap_bar; x5=.5w+1/2cap_bar;
+y4=y5=1/2cap_bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+%currentpicture:=currentpicture shifted(-3.3u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("W",17u#,cap_height#,0);
+italcorr cap_height#*sind 18-.79u#;
+x9l=.5w-.3cap_stem; x7r=w-s-cap_jut;
+y9l=y7r=y1l=h-cap_bar; x5=x9l+.5(x7r-x9l)-1/2cap_bar; x6=x9l+.5(x7r-x9l)+1/2cap_bar;
+y5=y6=y2=y3=1/2cap_bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(7,cap_bar,theta2,1.3cap_jut,cap_jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+cap_jut;
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+z2=z1l+whatever*dir theta1; x3=x2+cap_bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+%currentpicture:=currentpicture shifted(-3.3u,0);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("X",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.21u#;
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("Y",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-.76u#;
+x1l=cap_jut+s;
+x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w;
+y4=8/25h;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+y5c=0; x5=.5w+.5c;
+serif(5,cap_stem,90,cap_jut,cap_jut);
+x6=x5l; x7=x5r;
+z6=z1l+whatever*dir theta1;
+z7=z3r+whatever*dir theta2;
+fill z6--serif_edge5--z7--reverse A_serif_edge3--z2--reverse serif_edge1--z6&cycle;
+%currentpicture:=currentpicture shifted(-3.3u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Z",9u#+1.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-.76u#;
+x6=s+1/2cap_bar; y6=y7=y8=1/2cap_bar;
+x8e=w-s; x7=x8;
+T_serif(8,cap_bar,border_height,1);
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4cap_bar;
+x4r=w-s-1/4cap_bar; y4=h-cap_bar;
+penpos4(cap_stem,0);
+penpos5(cap_stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2cap_bar;
+x3=w-s-1/2cap_bar; x1e=s+c;
+T_serif(1,cap_bar,border_height,0);
+x2=x1;
+penpos3(cap_bar,90);
+penpos2(cap_bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e-c; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+currenttransform := identity;
+
+beginchar("a",9u#+2c#,x_height#,0);
+x1=w-s-.7stem; y1=h; y2=7/33h; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=w-s-bar/3; y4=8/33h;
+penpos1(stem,180);
+penpos2(stem,180);
+penpos3(1.2vair,270);
+penpos4(bar,340);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 60}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x5=x1-1.25stem; y5=h; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c; y6=.54h; y8=.46h; z8l=whatever[z1r,z2r];
+penpos8(2bar,0);
+penpos5(vair,90);
+penpos6(curve,180);
+penpos7(vair,270);
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=h-c; z10=(x1r+c,h); z11=(x1l-c,h);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar("b",8u#+s#,asc_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(x_height*sind 14/cosd 14); x3=.5w+1/2(x_height*sind 14/cosd 14);
+y1=0; y3=x_height; y2=.54x_height; y4=.46x_height; x2=1/2curve+s; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+y5=h-bar; z5=z2+whatever*dir 76;
+serif(5,stem,-104,jut,0);
+fill z2l--z2r--reverse serif_edge5--cycle;
+fill z5e{dir 76}..z5d{left}..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("c",7.5u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+x1=4u-1/2(h*sind 18/cosd 18)+c; x3=4u+1/2(h*sind 18/cosd 18); y1=0; y3=h;
+y2=.54h; x2=1/2curve+s; x6=8u-2s-1/2vair; y6=9/33h;
+penpos6(vair,150); z4=z3;
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e;
+fill z6l..tension1.5..z6r..tension1.5..cycle;
+ur_drop(4,drop_round,w-s-x3,5/4drop_round,bar);
+fill ur_drop_edge4;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("d",10u#,asc_height#,0);
+x1=w-s-1/2stem; y1=h-bar; y2=11/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem; x4=w-s-1/2bar; y4=10/33x_height; y3=2epsilon;
+serif(1,stem,-104,1.5jut,0);
+penpos2(stem,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+y6=-2epsilon; y8=x_height; x7=1/2curve+s; y7=.54x_height;
+x8=x7+.5(x5-x7)+3/8(x_height*sind 14/cosd 14)+.5c;
+x6=x7+.5(x5-x7)-5/8(x_height*sind 14/cosd 14)+.5c;
+y5r=.46x_height; z5r=whatever[z1l,z2r];
+penpos6(vair,90); penpos7(curve,0);
+penpos8(vair,-90); penpos5(.7curve,180);
+penstroke z6e{left}..tension1..{dir 76}z7e{dir 76}..{right}z8e..tension.9..{dir 256}z5e{dir 256}..{left}z6e..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("e",8u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=4/5h; x2=1/2curve+s; x4=w-1/2curve-s; z5r=z2; x6=w-s-s-1/2vair; y6=9/33h;
+penpos5(vair,-270);
+penpos6(vair,135);
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{dir 194}z5e;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("f",7u#+c#,asc_height#,desc_depth#);
+x1d=w-s; y1d=x_height; y2=7/33x_height;
+serif(1,stem,-104,1.2jut,jut);
+z2=z1+whatever*dir -104; penpos2(stem,180);
+y3l=-2/3d-c; z3l=whatever[z1f,z2l]; penpos3(1.1bar,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penstroke z2e{dir -104}..{dir -104}z3e;
+z4=z3; dl_drop(4,drop_round,1/3d,drop_round,1.1bar);
+y5=h-.95stem; z5=z1l+whatever*dir 80;
+penpos5(bar,0); z6=z5;
+ur_drop(6,drop_round,stem,drop_round,bar);
+fill ur_drop_edge6 rotatedaround(z5,85);
+fill dl_drop_edge4 rotatedaround(z3,76);
+fill z3l..tension1.3..z3r..tension1.3..cycle;
+fill z5l..tension1.3..z5r..tension1.3..cycle;
+fill z1l..z5l--z5r..z1r--cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("g",9u#+c#,x_height#,desc_depth#);
+currenttransform := identity slanted sind 14;
+italcorr x_height#*sind 18-1.44u#;
+penpos1(vair,90); penpos2(o,30);
+penpos3(curve,0); penpos4(o,-30);
+penpos5(vair,-90); penpos6(o,-150);
+penpos7(curve,-180); penpos8(o,-210);
+y3=y7=2/3h; x3=1/2curve+s+c; x7=w-3/2stem-s;
+x1=x5=x3+1/2(x7-x3); y1=3/11h; y5=h;
+y2=y8=y1+0.1(8/11h); y4=y6=y1+0.9(8/11h); x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x9=x7; y9=y7+1/2(y6-y7); y10=h; x10=x7l+c;
+x11e=w-s; y11=y10;
+ur_drop(11,.8stem,x11e-x10,drop_round,bar);
+penpos9(hair,180); penpos10(vair,90);
+penstroke z9e{up}..{right}z10e;
+fill ur_drop_edge11;
+y12=y1; x12=x1; y13=.65y12; x13=s+1/4stem+.5c;
+y14=y15=0; x14=x2r; x15=x8r; y16=y18=-d/2; x16=w-s-1/2stem;
+x18=s+.7hair; y17=-d+1/2bar; x17=s+.6bar+9/20(x16-x18); x19=x14; y19l=y14r;
+penpos12(vair,90); penpos13(1/2curve,180); penpos14(curve,270);
+z144=z14; penpos144(curve,90); penpos15(curve,90);penpos16(1/2curve,0);
+penpos17(vair,-90); penpos18(1.4hair,-180); penpos19(1.4vair,-270);
+penstroke z12e{left}..{down}z13e{down}..{right}z14e;
+penstroke z144e--z15e{right}..tension1..{down}z16e{down}..{left}z17e{left}..{up}z18e{up}..{right}z19e;
+currenttransform := identity;
+penlabels(range 1 thru 19);
+endchar;
+
+beginchar("h",10u#+s#,asc_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-9/8stem; y1=26/33x_height; y2=10/33x_height; z2=z1+whatever*dir -108;
+x3=x2+.7stem; x4=w-s-1/2bar; y4=10/33x_height; y3=y5=y6=0;
+x8=x2; y8=x_height; y9=bar_height-bar; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.2bar,270); penpos9(bar,0);
+penstroke z9e{dir 68}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("i",5u#,asc_height#,0);
+x1=w-s-stem; y1=x_height-bar; y2=11/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem; x4=w-s-1/2bar; y4=10/33x_height; y3=0;
+serif(1,stem,-104,jut,0);
+penpos2(stem,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+x5=x1d-c; y5=h-7/6stem; penpos5(curve,0);
+fill z5l..z5r..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("j",7u#,asc_height#,desc_depth#);
+x5=w-s-1/2stem; x1d=x5+c; y5=h-7/6stem; penpos5(curve,0);
+y1d=x_height; y2=7/33x_height; serif(1,stem,-104,jut,0);
+z2=z1+whatever*dir -104; penpos2(stem,180);
+y3l=-2/3d-c; z3l=whatever[z1f,z2l]; penpos3(1.1bar,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penstroke z2e{dir -104}..{dir -104}z3e;
+fill z1e{dir 76}..z1d{left}..cycle;
+fill z5l..z5r..cycle; z4=z3;
+dl_drop(4,drop_round,1/3d,drop_round,1.1bar);
+fill dl_drop_edge4 rotatedaround(z3,76);
+fill z3l..tension1.3..z3r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("k",10u#+c#,asc_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,1.2jut,0);
+x1=w-s-2*.8stem-c; y1=bar_height-2.5bar; y2=6/33x_height; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-bar; y4=9/33x_height; y3=y5=y6=0;
+x8=x2-stem; y8=y9=bar_height; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.1bar,270); penpos9(1.1bar,270);
+penstroke z9e{right}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+y11=x_height; x11e=w-s;
+ur_drop(11,drop_round,7/8drop_round,drop_round,1bar);
+z12=z11; x12-x10=x10-x8; y12-y10=y10-y8;
+penpos10(bar,-18); penpos12(bar,270);
+penstroke z8e{right}..{dir 72}z10e{dir 72}..{right}z12e;
+fill ur_drop_edge11;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("l",5u#,asc_height#,0);
+x1=w-s-1/2stem; y1=h-bar; y2=11/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem; x4=w-s-1/2bar; y4=10/33x_height; y3=0;
+serif(1,stem,-104,jut,0);
+penpos2(stem,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("m",14u#+4c#,x_height#,0);
+x11=s+1/2stem; z12=z11+whatever*dir 76; y12=h-bar;
+y11=0; serif(12,stem,-104,jut,0); penpos11(stem,0);
+x1=w-s-9/8stem; y1=26/33h; y2=10/33h; z2=z1+whatever*dir -108;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=0;
+x5=x2; y5=y9=h; y6r=y10l=bar_height-bar; z6r=z7r+whatever*dir 76;
+y13=0; z13=z1+whatever*dir -104; x13-x7=x7-x11; y7=0;
+y8=y1; z8=z7+whatever*dir 76; x1-x5=x8-x9; z10l=whatever[z11r,z12f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos5(1.2bar,270); penpos6(bar,0);
+penpos7(stem,0); penpos8(stem,0);
+penpos9(1.2bar,90); penpos10(bar,180);
+penstroke z6e{dir 68}..{right}z5e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z11l--z11r--reverse serif_edge12--cycle;
+fill z12e{dir 76}..z12d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penstroke z10e{dir 68}..{right}z9e..z8e{dir -104}..z7e;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar("n",10u#+s#,x_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-9/8stem; y1=26/33h; y2=10/33h; z2=z1+whatever*dir -108;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y5=y6=0;
+x8=x2; y8=h; y9=bar_height-bar; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.2bar,270); penpos9(bar,0);
+penstroke z9e{dir 68}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("o",8u#+s#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=.46h; x2=1/2curve+s; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("p",9u#+c#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=x2+.5(x4-x2)-1/4(h*sind 14/cosd 14)-c; x3=x2+.5(x4-x2)+3/4(h*sind 14/cosd 14)-c; y1=0; y3=h;
+y2=.54h; y4=.46h; x2=x4-italic_o_width+c; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension1..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+y5=h-bar; z5=z2+whatever*dir 76;
+serif(5,stem,-104,jut,0); fill z5e{dir 76}..z5d{left}..cycle;
+y6=-d+bar; z6=whatever[z2,z5];
+serif(6,stem,76,.3jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("q",9u#,x_height#,desc_depth#);
+x1=w-s-1/2stem; y1=h-1/2bar; y2=-d+bar; z2=z1+whatever*dir -104;
+serif(2,stem,76,1.3jut,1.3jut);
+penpos1(stem,180);
+fill z1l--z1r--serif_edge2--cycle;
+y6=0; y8=h; x7=1/2curve+s; y7=.54h;
+x8=x7+.5(x5-x7)+3/8(x_height*sind 14/cosd 14)+.5c;
+x6=x7+.5(x5-x7)-5/8(x_height*sind 14/cosd 14)+.5c;
+y5r=.46x_height; z5r=whatever[z1r,z2l];
+penpos6(vair,90); penpos7(curve,0);
+penpos8(vair,-90); penpos5(.7curve,180);
+penstroke z6e{left}..tension1..{dir 76}z7e{dir 76}..{right}z8e..tension.9..{dir 256}z5e{dir 256}..{left}z6e..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("r",9u#-c#,x_height#,0);
+y2=0; x2=s+1/2stem; penpos2(stem,180);
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+y3l=15/33h; z3l=whatever[z2l,z1f];
+y4=h; x4=w-s-3/4stem; z5=z4;
+penpos3(1.2bar,180); penpos4(1.1bar,90);
+penstroke z3e{dir 76}..{right}z4e;
+ur_drop(5,drop_round,3/4stem,drop_round,1.1bar);
+fill ur_drop_edge5;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("s",8u#-s#,x_height#,0);
+z4=(.5w,.55h); y2=h; y6=0; y5=8/34h;
+z2=z4+whatever*dir 76; z6=z4+whatever*dir -100;
+x5=w-s-.6stem; x3=s+4/5stem; y3=27/34h;
+%z34=z4+whatever*dir 160; z45=z4+whatever*dir -30;
+%x34=x4-1/2stem*sind 40; x45=x4+1/2stem*sind 40;
+penpos2(bar,90); penpos3(.6stem,180);
+penpos6(bar,90); penpos5(.6stem,180);
+%penpos34(stem,250); penpos45(stem,250);
+penpos4(curve,250);
+penstroke z2e{left}..z3e..z4e..z5e..tension1..{left}z6e;
+z1=z2; z7=z6;
+ur_drop(1,drop_round,w-s-x2,drop_round,bar);
+fill ur_drop_edge1;
+dl_drop(7,drop_round,x6-s,1.2drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 12,34,45);
+endchar;
+
+beginchar("t",5u#+s#,asc_height#,0);
+x1=w-s-1/2stem-1.2jut; y1=x_height-bar; y2=9/33x_height;
+z2=z1+whatever*dir -104; z5=whatever[z2,z1]; y5=h-stem;
+x3=x2+1/2stem; x4=w-s-bar; y4=10/33x_height; y3=0;
+serif(1,stem,-104,1.2jut,1.2jut);
+penpos2(stem,180); penpos5(.95stem,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1l--z5l--z5r--z1r--cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("u",10u#+.7s#,x_height#,0);
+x1=w-s-1.1stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=0; y5=8/34h;
+x5=s+1/2stem; x6=x5+.9stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+z7l=z5r+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("v",9u#-c#,x_height#,0);
+y2=10/33h; x2=s+1/2stem;
+x3=x2+stem; x4=w-s-1/2bar; y4=26/33h; y3=0;
+penpos2(stem,180);
+penpos3(1.1bar,270); penpos4(bar,0);
+penstroke z2e{dir -104}..{right}z3e{dir 5}..tension1.3..{dir 80}z4e;
+z7=z2+whatever*dir 76; y7=h-bar;
+serif(7,stem,-104,jut,0); z9=z4;
+fill z2r--z2l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+ul_drop(9,drop_round,7/33h,.9drop_round,bar);
+fill ul_drop_edge9 rotatedaround(z4,-90);
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("w",12u#+2s#,x_height#,0);
+z77=(.5w,.5h); z1=z77+whatever*dir 76; y1=h; y2=10/33h;
+z2=z1+whatever*dir -104;
+x3=x2+.9stem; x4=w-s-1/2bar; y4=26/33h; y3=y6=0; y5=8/34h;
+x5=s+1/2stem; x6=x5+.9stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,0);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 5}..tension1.3..{dir 80}z4e;
+z7l=z5r+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0); z9=z4;
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+ul_drop(9,drop_round,7/33h,.9drop_round,bar);
+fill ul_drop_edge9 rotatedaround(z4,-90);
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("x",10u#+c#,x_height#,0);
+penpos1(1.2vair,90);
+penpos2(curve,0);
+penpos3(vair,-90); penpos12(curve,0);
+x1=x3-(h*sind 14/cosd 14); x3=w-s-3/4stem; y1=0; y3=h;
+y2=.51h; x2=x1-25/40stem;
+x5=w-s-.7stem; y5=7/33h;
+penpos5(vair,150); z4=z3;
+penstroke z5e..z1e{left}..{dir 76}z2e{dir 76}..{right}z3e;
+fill z5l..tension1.5..z5r..tension1.5..cycle;
+ur_drop(4,drop_round,3/4stem,drop_round,bar);
+fill ur_drop_edge4;
+x10=w-x5; y10=26/33h; x11=w-x1; y11=h; x12=w-x2; y12=.49h;
+x13=w-x3; y13=-2epsilon; z14=z13;
+penpos10(bar,150); penpos11(bar,90);
+penpos13(bar,-90);
+penstroke z10e..z11e{right}..{dir -104}z12e{dir -104}..{left}z13e;
+fill z10l..tension1.5..z10r..tension1.5..cycle; z14=z13;
+dl_drop(14,drop_round,3/4stem,drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar("y",10u#,x_height#,desc_depth#);
+x5=w-s-1/2stem; y5=h; y6=10/33h; z6=z5+whatever*dir -104;
+y3=0; y2=8/34h; x2=s+stem; x3=x2+.9stem;
+y7=0; z7=z6+whatever*dir -104;
+penpos5(stem,180); penpos6(stem,180);
+z8r=z7r+whatever*dir -108; y8r=-1/2d;
+z4l=whatever[z6r,z5r]; y4l=15/33h;
+penpos2(stem,180); penpos3(1.1bar,270);
+y9=-d; x9=x2l-s; z10=z9;
+penpos4(bar,360); penpos7(stem,180);
+penpos8(.8stem,180); penpos9(bar,90);
+penstroke z2e{dir -104}..z3e{right}..{dir 76}z4e;
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+penstroke z5e{dir -104}..z6e..z7e..z8e..{left}z9e;
+dl_drop(10,.9stem,x9-s,1.2drop_round,bar);
+fill dl_drop_edge10; fill z10e..z10c..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("z",8u#,x_height#,0);
+y2=y3=h-1/2(.8stem); y1=y2l+1/2bar;
+x3=w-s-3/4stem; x1e=s+1/2stem; x2=x1;
+T_serif(1,bar,.8border_height,0);
+penpos3(.8stem,90); penpos2(.8stem,90);
+penstroke z2e--z3e; fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+2c;
+fill z1r--z1f--z12--z2r--cycle;
+unfill z1d{up}..z13--z12--cycle;
+x4=w-s-bar*sind 45; y4=h-bar*sind 28;
+x5=w-x4; y5=h-y4; z34=(x4,h);
+penpos4(bar,152); penpos5(bar,152);
+penstroke z4e--z5e; fill z4l..tension1.2..z4r..tension1.2..cycle;
+fill z5l..tension1.2..z5r..tension1.2..cycle;
+fill z3l--z3r--z34--cycle;
+x7=.5w-c; y7=.4stem; penpos7(.9stem,90);
+x8l=x7+.6stem; y8l=0; penpos8(.6stem,90);
+x9=w-s-.9stem; y9=bar; penpos9(bar,90); z10=z9;
+penstroke z5e{dir 62}..{right}z7e..z8e..z9e;
+dl_drop(10,drop_round,1.2stem,drop_round,bar);
+fill dl_drop_edge10 reflectedabout(z9l,z9r) rotatedaround(z9,28);
+fill z9r..z9l..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(hex"30",10u#,cap_height#,0);
+penpos1(vair,90);
+penpos2(cap_curve,0);
+penpos3(vair,-90);
+penpos4(cap_curve,-180);
+x1=.5w-1/2(h*sind 10/cosd 10); x3=.5w+1/2(h*sind 10/cosd 10); y1=0; y3=h;
+y2=.47h; y4=.53h; x2=1/2cap_curve+s; x4=w-1/2cap_curve-s;
+penstroke z1e{left}..tension.9..{dir 80}z2e{dir 80}..tension1.2..{right}z3e..tension.9..{dir 260}z4e{dir 260}..tension1.2..{left}z1e..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"31",10u#-3/2s#,cap_height#,0);
+y1c=0; x1g=s; y2=y3=h; x3=x2-1/2cap_stem;
+serif(1,cap_stem,72,1.5cap_jut,1.5cap_jut);
+z2=z1f+whatever*dir 72;
+y6=y7=h-cap_stem; y5=y4=y6+cap_bar; y8=y6+.3c;
+z8=z1a+whatever*dir 72;
+x7=x3-1.2stem; x6=x5=x7-.6cap_stem; x4=x7-cap_bar;
+fill serif_edge1--z2{dir 150}..{dir 210}z3{dir 230}..{left}z4--z5{left}..z6--z7..z8--cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"32",10u#,cap_height#,0);
+y2=43/53h; x3=22/37w; y3=h; x2=8/37h;
+z1=z3; x4=w-s-1/2cap_curve; y4=41/53h;
+x5=s+1/2hair; y5=6/53h; x6=x5+2cap_bar; y6=y5+1/2cap_bar;
+y7=1/2curve-1/4cap_bar; x7=.47w; x8=w-s-2.5cap_bar;
+y8=15/53h; penpos6(.4cap_stem,90);
+penpos7(cap_curve,90); penpos8(bar,150);
+penpos2(bar,0); penpos3(vair,-90);
+penpos4(cap_curve,180); penpos5(bar,180);
+penstroke z3e{right}..{dir -104}z4e{dir -100}.. {dir -104}z5e; %z2e{dir 76}..{right}
+penstroke z5e..z6e{dir 10}..z7e{dir -10}..{dir 60}z8e;
+fill z8r..tension1.3..z8l..tension1.3..cycle;
+ul_drop(1,cap_drop_round,x3-x2+bar,1.3cap_curve,cap_bar);
+fill ul_drop_edge1;% rotatedaround(z2,90);
+x9=s-.1c; y9=1/2cap_bar; y10=-1/2cap_bar; x10=x9+cap_bar;
+x11=x10+cap_bar; y11=1/3cap_bar; x12=x11-2/3cap_bar; y12=3/2cap_bar;
+fill z5r..z9..z10..z11{up}..z12..{dir 10}z6l{dir 130}..{dir 190}z5r..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"33",10u#,cap_height#,0);
+penpos2(vair,90); penpos5(cap_bar,-90);
+penpos4(vair,-90); penpos3(cap_curve,-180);
+x2=.5w-1/2(h*sind 14/cosd 14); y2=0; y4=cap_bar_height+c;
+z4=z2+whatever*dir 76; y5=y4-1/3cap_bar-.5c;
+y3=13/53h; x5=cap_curve+s+bar; x3=w-cap_curve-s; z1=z2;
+y6=y5r; x6=x5; x7=w-s-1/2cap_curve; y7=41/53h; z8=z4+whatever*dir 82;
+y8=h; z9=z8; penpos67(cap_bar,110); penpos8(cap_bar,-90);
+penpos6(cap_bar,90); penpos7(.9cap_curve,180); z67=z4;
+penstroke z5e...{right}z4e..tension1..{dir 256}z3e{dir 256}..tension1.2..{left}z2e;
+penstroke z8e{right}..tension.9..{dir -100}z7e{dir -100}..tension.9..z67e{dir 210}..z6e;
+fill z5l..tension1.2..z6l..tension1.2..cycle;
+dl_drop(1,cap_drop_round,x1-s,cap_drop_round,cap_bar);
+fill dl_drop_edge1; fill z1e..z1c..cycle;
+ul_drop(9,cap_drop_round,x8-x5+2bar,cap_curve,cap_bar);
+fill ul_drop_edge9;
+penlabels(1,2,3,4,5,6,7,8,9,67);
+endchar;
+
+beginchar(hex"34",10u#,cap_height#,0);
+y1c=0; x1g=s+1/2cap_stem; y2=h-stem;
+serif(1,cap_stem,72,1.5cap_jut,1.5cap_jut);
+z2=z1+whatever*dir 72; penpos2(cap_stem,0);
+fill serif_edge1--z2r--z2l--cycle;
+z3r=whatever[z1f,z2r]; y3r=h; penpos3(.7cap_stem,0);
+penstroke z2e--z3e; y6=y7=16/53h; x7=w-2s; x6=s+1/2cap_bar;
+penpos6(1.2cap_bar,90); penpos7(1.2cap_bar,90);
+penstroke z6e--z7e; fill z6l..tension1.4..z6r..tension1.4..cycle;
+fill z7l..tension1.2..z7r..tension1.2..cycle;
+z5l=z6r; z4l=z3l; penpos4(1.2cap_bar,-20); penpos5(1.2cap_bar,-20);
+penstroke z4e--z5e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"35",10u#,cap_height#,0);
+penpos2(vair,90); penpos5(cap_bar,0);
+penpos4(vair,-90); penpos3(cap_curve,-180);
+x2=.5w-1/2(h*sind 14/cosd 14); y2=0; y4=34/54h; z4=z2+whatever*dir 76;
+y5=y4-2.8cap_bar; y3=15/53h; x5=cap_curve+s; x3=w-cap_curve-s; z1=z2;
+penstroke z5e...{right}z4e..tension1..{dir 256}z3e{dir 256}..tension1.2..{left}z2e;
+z6=z5+whatever*dir 72; y6=h-1/3cap_bar;
+penpos6(cap_bar,0); penstroke z5e--z6e;
+fill z6r..tension1.5..z6l..tension1.5..cycle;
+fill z5r..tension1.3..z5l..tension1.3..cycle;
+y7r=y6r; x7r=x6r-.05c; y8=h-4/6cap_curve;
+x8=x7+5/4cap_curve; x9=w-s-.25cap_bar;
+y9=h-cap_bar*cosd 45; penpos7(.9cap_curve,72); penpos8(.7cap_curve,90);
+penpos9(1.2cap_bar,120); penstroke z7e{dir -18}..z8e..z9e;
+fill z9r..tension1.3..z9l..tension1.3..cycle;
+dl_drop(1,cap_drop_round,x1-s,cap_drop_round,cap_bar);
+fill dl_drop_edge1; fill z1e..z1c..cycle;
+penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(hex"36",10u#,cap_height#,0);
+penpos1(vair,90); penpos4(.8cap_curve,0);
+penpos3(vair,-90); penpos2(cap_curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y4=38/53h; y2=.53h; x4=cap_curve+s; x2=w-1/2cap_curve-s;
+x5=.505w; y5=21/53h; penpos5(vair,90); z7=z1;
+y6r=y2+2s; z6r=z2r+whatever*dir 76; penpos6(2cap_bar,-180);
+penstroke z6e{dir 256}..{left}z5e{left}..tension.9..{dir 76}z4e{dir 76}..tension.9..{right}z3e..tension1..{dir 256}z2e{dir 256}..tension1.2..{left}z1e; z8=(.5w,.5h);
+dl_drop(7,cap_drop_round,x1-s,cap_drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+currentpicture := currentpicture rotatedaround(z8,180);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"37",9u#-c#,cap_height#,0);
+x1=s+1/2cap_bar; y1=36/53h; y2=.98h; z2=z1+whatever*dir 70;
+x3=16.5/34w; y4=44/53h; y3=47/53h; z4=z3+whatever*dir -45;
+x5=24/34w; y5=43/53h; x6=w-s-1/2*(3/2cap_bar); y6=y2;
+x7=8/34w; y7=1/2cap_curve;
+penpos1(cap_bar,180); penpos2(cap_bar,180);
+penpos3(.9cap_curve,45); penpos4(.9cap_curve,45);
+penpos5(2cap_bar,110); penpos6(3/2cap_bar,180);
+z67l=z6l;
+penpos7(cap_curve,180); penpos67(cap_bar,180);
+penstroke z1e--z2e;
+penstroke z1e{dir 70}..{dir -45}z3e--z4e{dir -45}..z5e..{up}z6e;
+penstroke z67e{down}..{dir -94}z7e;
+fill z7r..z7l..cycle; fill z1r..tension1.3..z1l..tension1.3..cycle;
+fill z2r..tension1.3..z2l..tension1.3..cycle;
+fill z6r..tension1.3..z6l..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"38",10u#,cap_height#,0);
+y1=0; x1=15/37w; y5=h; z5=z1+whatever*dir 78;
+y7=29/53h; z7=whatever[z1,z5]; x2=s+1/2(.6cap_stem);
+x4=w-x2; y2=13/53h; y4=43/53h; z3=z7; y6=44/53h; 3(x5-x6)=4(x4-x5);
+5(x1-x2)=4(x8-x1); y8=11/53h; penpos7(cap_curve,48);
+y67l=y7+.05cap_stem; y78=y7-.6cap_stem;
+z67l=z7l+whatever*dir 138; penpos67(cap_curve,48);
+z78=whatever[z67,z7]; penpos78(cap_curve,30);
+penpos1(cap_bar,-90); penpos2(.7stem,-180);
+penpos3(cap_bar,-235); penpos4(.6stem,-180);
+penpos5(cap_bar,-90); penpos6(.7stem, 0);
+penpos8(.7stem,0);
+penstroke z1e{left}..{dir 82}z2e{dir 78}..z3e..{dir 78}z4e{dir 78}..{left}z5e{left}..z6e..z67e..z7e..z78e..tension.9..z8e..{left}z1e;
+penlabels(1,2,3,4,5,6,7,8,67,78);
+endchar;
+
+beginchar(hex"39",10u#,cap_height#,0);
+penpos1(vair,90); penpos4(.8cap_curve,0);
+penpos3(vair,-90); penpos2(cap_curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y4=38/53h; y2=.53h; x4=cap_curve+s; x2=w-1/2cap_curve-s;
+x5=.505w; y5=21/53h; penpos5(vair,90); z7=z1;
+y6r=y2+2s; z6r=z2r+whatever*dir 76; penpos6(2cap_bar,-180);
+penstroke z6e{dir 256}..{left}z5e{left}..tension.9..{dir 76}z4e{dir 76}..tension.9..{right}z3e..tension1..{dir 256}z2e{dir 256}..tension1.2..{left}z1e; z8=(.5w,.5h);
+dl_drop(7,cap_drop_round,x1-s,cap_drop_round,cap_bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(oct"56",cap_stem#+2s#,cap_stem#,0);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+endchar;
+
+beginchar(oct"54",cap_stem#+2s#+c#,cap_stem#,comma_depth#);
+ currenttransform := identity slanted sind 14;
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"60",cap_stem#+2s#+c#,asc_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(oct"41", cap_stem#+2s#,cap_height#,0);
+ italcorr cap_height#*sind 18-1.44u#;
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+ x3=.5w-1/2cap_bar; x4=.5w+1/2cap_bar; y3=y4=3/2cap_stem;
+ x6=x1; x5=x2; y5=y6=h;
+ fill z6--z3..z4--z5{up}..z6&cycle;
+endchar;
+
+beginchar(hex"22",2cap_stem#+3s#+2c#,cap_height#,0);
+ z1=(s,h-1/2cap_stem); z2=(x1+cap_stem+c,h-1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-cap_stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture shifted((sind 18)*-w*1.3,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"5C",2cap_stem#+3s#+2c#,cap_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(x1+cap_stem+c,1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+currenttransform := identity;
+
+beginchar(hex"7b",10u#-1.5c#,x_height#,0); "En dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"3D",10u#+1.5c#,x_height#,0);
+ z1=(s+1/2bar,bar_height-3c); z2=(w-s-1/2bar,bar_height-3c);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+3c); z4=(w-s-1/2bar,bar_height+3c);
+ penpos3(bar,90); penpos4(bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"23",13u#,asc_height#,body_depth#);
+ z1=(s+1/2bar,bar_height-5c); z2=(w-s-1/2bar,bar_height-5c);
+ penpos1(1.5bar,90); penpos2(1.5bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+5c); z4=(w-s-1/2bar,bar_height+5c);
+ penpos3(1.5bar,90); penpos4(1.5bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ z5=(.5w-5c,bar_height); z6=(.5w+5c,bar_height);
+ z7=z5+whatever*dir 76; y7=h; z8=whatever[z5,z7]; y8=-d;
+ penpos7(1.5bar,0); penpos8(1.5bar,0);
+ fill z7l{up}..{down}z7r--z8r{down}..{up}z8l--z7l&cycle;
+ z9=z6+whatever*dir 76; y9=h; z10=whatever[z6,z9]; y10=-d;
+ penpos9(1.5bar,0); penpos10(1.5bar,0);
+ fill z9l{up}..{down}z9r--z10r{down}..{up}z10l--z9l&cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"7c",14u#,x_height#,0); "Em dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(oct"55",2cap_jut#+cap_stem#+2s#,x_height#,0); "hyphen";
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"5F",1.1stem#+2s#,x_height#+2.1stem#,0);
+ z1=(.5w,h); z2=(.5w,h-1.1stem);
+ fill z1..z2..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7E",7u#,body_height#,0);
+ pickup pencircle xscaled 1pt yscaled .2pt rotated 55;
+ z4=(w-s-c,h-s); x1=s+c; y1=y4-1/2cap_stem;
+ y2-y1=y4-y3=3(y4-y1); z2-z1=z4-z3=whatever * dir 55;
+ draw z1..controls z2 and z3..z4;
+ penlabels(1,2,3,4);
+endchar;
+
+currenttransform := identity slanted sind 14;
+beginchar(hex"3C",7u#-2c#,x_height#,0); "looks like <<";
+ italcorr x_height#*sind 18-1.45u#;
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(.9stem,0);
+ penpos3(.9stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.5stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ %currentpicture := currentpicture shifted(-1.1u,0);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3E",7u#-2c#,x_height#,0);
+ italcorr x_height#*sind 18-1.55u#;
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(.9stem,0);
+ penpos3(.9stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.5stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ z10=(.5w,.5h);
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ currentpicture := currentpicture rotatedaround(z10,180) shifted((sind 18)*w*1.3,0);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3B",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ italcorr cap_height#*sind 18-2.62u#;
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+3/2c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ z8=(s,h-1/2cap_stem); z9=(w-s,h-1/2cap_stem);
+ fill z8..z9..cycle;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(hex"3A",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ italcorr cap_height#*sind 18-2.62u#;
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ fill z1..z2..cycle;
+ penlabels(1,2,3,4);
+ z3=(s,1/2cap_stem); z4=(w-s,1/2cap_stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2B",2cap_jut#+cap_stem#+2s#,x_height#,0);
+ italcorr x_height#*sind 18-1.89u#;
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ x3=x4=.5w; y3=y2+1/2(x2-x1); y4=y2-1/2(x2-x1);
+ penpos3(1.8bar,0); penpos4(1.8bar,0);
+ penstroke z3e--z4e;
+ fill z3r..z3l..cycle; fill z4r..z4l..cycle;
+ %currentpicture := currentpicture shifted(-.8u,0);
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2F",2s#+bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.65u#;
+ z1=(.5w,h-.5bar); z2=(.5w,-d+.5bar);
+ %pickup pencircle xscaled bar yscaled bar;
+ penpos1(bar,0); penpos2(bar,0);
+ penstroke z1e--z2e; fill z1r..z1l..cycle;
+ fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"27",cap_stem#+2s#+c#,x_height#+2.1stem#,0);
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ z6=(.5w-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ currentpicture := currentpicture shifted((sind 18)*-w*1.3,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"28",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.72u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"29",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-3.34u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180) shifted((sind 18)*w*1.3,0);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"0E",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.72u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"0F",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180) shifted((sind 18)*w*1.3,0);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"5B",2s#+3cap_bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.65u#;
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x2,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z1r..z1l..cycle; fill z6r..z6l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"5D",2s#+3cap_bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.6u#;
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x1,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z2r..z2l..cycle; fill z5r..z5l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"B9",16u#,cap_height#,0);
+ italcorr cap_height#*sind 18-2.9u#;
+ x1=x2=cap_jut+1/2cap_bar+s+cap_stem;
+ x3=w-x1-1/2cap_stem; y1c=h; y4=y5=0;
+ x4=x3r; x5=x3l; y2=12/53h; y3=h-y2;
+ x8=x2-stem; y8=0; z9=z8;
+ dl_drop(9,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill dl_drop_edge9; penpos8(bar,-90);
+ serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+ penpos2(bar,0); penpos3(bar,0);
+ penstroke z2e{down}..{left}z8e;
+ fill z2l--z2r--reverse serif_edge1--cycle;
+ numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+ theta1=angle(z5-z7); x10=x3+stem; y10=h; z11=z10;
+ penpos10(bar,-90); penstroke z3e{up}..{right}z10e;
+ ur_drop(11,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill ur_drop_edge11;
+ z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+ fill z6--z1h--z7--z5{down}..{up}z4--z3r--z3l--cycle;
+ unfill z1b--z1l--z1a--cycle;
+ y12=y13=2cap_bar; x12=x4+2cap_bar+s; x13=w-2s;
+ penpos12(.4stem,90); penpos13(.4stem,90);
+ penstroke z12e--z13e; y16=y11d-4cap_bar;
+ x13-x14=x14-x12; x16=x14; y14=y13+4cap_bar;
+ x17=w-s-1/4stem; x17-x16=x16-x15; y16-y15=y15-y14;
+ y17=y15; penpos17(.6stem,0); penpos16(bar,90);
+ penpos15(.6stem,180); penpos14(bar,270);
+ penstroke z17e{up}..{left}z16e{left}..{down}z15e{down}..{right}z14e{right}..{up}z17e;
+ fill z12l..tension1.2..z12r..tension1.2..cycle;
+ fill z13l..tension1.2..z13r..tension1.2..cycle;
+ penlabels(range 1 thru 17);
+endchar;
+
+beginchar(hex"24",9u#-s#,body_height#,body_height#-cap_height#);
+ italcorr body_height#*sind 18-2.44u#;
+ x6=x7=1/2w-c; y6=y7=0;
+ dl_drop(7,cap_drop_round,x6-s,1.5drop_round,cap_bar);
+ y5=11/53cap_height; x5=w-s-1/2(1.9hair);
+ y4=28/53cap_height; x4=18/38w; y3=42/53cap_height; x3=s+1/2(1.9cap_bar);
+ x2=.5w+c; y2=cap_height; z1=z2;
+ penpos6(cap_bar,-90); penpos5(1.9hair,0);
+ penpos4(cap_curve,90); penpos3(1.9hair,0);
+ penpos2(cap_bar,-90);
+ penstroke z6e{right}..z5e..tension.9..z4e..tension.9..z3e..{right}z2e;
+ fill dl_drop_edge7;
+ ur_drop(1,cap_drop_round,w-s-x2,1.5drop_round,cap_bar);
+ fill ur_drop_edge1;
+ z8=(.5w,h); z9=(.5w,-d);
+ penpos8(cap_bar,0); penpos9(cap_bar,0);
+ penstroke z8e--z9e;
+ fill z9r..z9l..cycle; fill z8r..z8l..cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"25",12u#,asc_height#,0);
+italcorr asc_height#*sind 18-3.15u#;
+penpos1(vair,90); penpos2(.6curve,0);
+penpos3(vair,-90); penpos4(.6curve,-180);
+y1=.55h; y3=h; y3-y4=y4-y1; y2=y4; x2=1/4curve+s; x4=2.1curve+s;
+x4-x1=x1-x2; x3=x1;
+penstroke z1e{left}..tension.9..{up}z2e{up}..tension1.2..{right}z3e..tension.9..{down}z4e{down}..tension1.2..{left}z1e..cycle;
+penpos5(vair,90); penpos6(.6curve,0);
+penpos7(vair,-90); penpos8(.6curve,-180);
+y5=0; y7=.45h; y7-y8=y8-y5; y6=y8; x8=w-1/4curve-s; x6=w-2.1curve-s;
+x8-x5=x5-x6; x7=x5;
+penstroke z5e{left}..tension.9..{up}z6e{up}..tension1.2..{right}z7e..tension.9..{down}z8e{down}..tension1.2..{left}z5e..cycle;
+x9l=x7; y9=h; x10r=x1; y10=0;
+penpos9(1.2bar,0); penpos10(1.2bar,0);
+penstroke z9e--z10e;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"26",14u#,cap_height#,0);
+italcorr cap_height#*sind 18-2.99u#;
+x4=x8=x3+.8curve; y6=0; y2=h; x2=x3+.7cap_curve;
+y7=13/53h; y5=9/53h; x5=x7+3.1cap_curve; x6=x7+1.8cap_curve;
+y4=y8=30/53h; y1=44/53h; y3=42/53h; x3=2s+curve;
+x1=x3+1.8cap_curve; x7=s+1/2cap_curve;
+x10=w-s; y10=9/53h; x10-x9=x9-x5; y9=1/5cap_curve;
+th:=angle(z4-z5)+5; th1:=th-11; x11h=w-s-c; y11h=y1-4s;
+A_serif(11,cap_bar,-110,cap_jut,cap_jut); z12l=z11a;
+penpos6(cap_bar,-90); penpos5(.9cap_stem,45);
+penpos4(.9cap_stem,45); penpos3(2.5hair,0);
+penpos2(cap_bar,-90); penpos1(2hair,-180);
+penpos7(cap_curve,-180); penpos8(cap_bar,-250);
+penpos9(.5cap_curve,70); penpos10(cap_bar,150);
+penpos12(cap_bar,0);
+penstroke z10e..z9e..z5e{dir th}..{dir th1}z4e..tension.9..z3e..tension1..z2e{right}..tension.9..z1e..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e{dir 8}..{dir 70}z12e;
+fill z12l--z12r..reverse A_serif_edge11--cycle;
+fill z10l..tension1.3..z10r..tension1.3..cycle;
+%currentpicture := currentpicture shifted(-.7u,0);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+currenttransform := identity;
+
+beginchar(hex"40",14u#+c#,x_height#+2curve#,2curve#);
+a_width:=9u+2c-2s;
+x1=2s+a_width-s-3/4stem+1.5curve; y1=x_height; y2=7/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=3s+a_width+1.5curve; y4=15/33x_height;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.2vair,270); penpos4(bar,360);
+x5=x1-1.25stem; y5=x_height; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c+1.5curve; y6=.54x_height; y8=.46x_height; z8l=whatever[z1r,z2r];
+x13=x5; y13=h-1/2bar; x14=s+1/2bar; y14=y6; y15=-d+1/2bar; x15=x7;
+x16=x4; y16=-d+3bar; penpos7(vair,270); penpos16(bar,270);
+penpos13(bar,90); penpos14(bar,180); penpos15(bar,270);
+penpos8(2bar,0); penpos5(vair,90); penpos6(curve,180);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 80}z4e..z13e{left}..z14e..{right}z15e..z16e;
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=x_height-c; z10=(x1r+c,x_height); z11=(x1l-c,x_height);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+fill z16r..z16l..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar(hex"12",1.5cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=s+.45cap_stem*cosd 45;
+x2=w-s+cap_bar*cosd 45; z2=z1+whatever*dir -45;
+penpos1(.8cap_stem,45); penpos2(cap_bar,45);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"13",1.5cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=w-s-.45cap_stem*cosd 45;
+x2=s-cap_bar*cosd 45; z2=z1+whatever*dir -135;
+penpos1(.8cap_stem,135); penpos2(cap_bar,135);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"3F",8u#+3c#,cap_height#,0);
+ x1=s+1/2cap_stem; y1=1/2cap_stem;
+ penpos1(cap_stem,0);
+ fill z1r..z1l..cycle;
+ y2=cap_stem+4/5cap_bar; z2=z1+whatever*dir 78;
+ z3l=z2l+whatever*dir 78; y3l=21/53h;
+ penpos2(cap_bar,0); penpos3(1.3cap_bar,0);
+ penstroke z2e--z3e;
+ z4r=z3l; penpos4(cap_bar,90);
+ y5=y4; x5=x4+2cap_bar; penpos7(cap_bar,-90);
+ x6=w-s-1/2cap_curve; y6=35/51h; x7=18/31w; y7=h;
+ penpos5(cap_bar,90); penpos6(cap_curve,180); z8=z7;
+ penstroke z4e--z5e{right}..tension1.2..{dir 78}z6e{dir 78}..tension1.1..{left}z7e;
+ ul_drop(8,cap_drop_round,x7-x3+cap_bar,cap_curve,cap_bar);
+ fill ul_drop_edge8;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"10",5u#,asc_height#,0);
+x1=w-s-stem; y1=x_height-bar; y2=11/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem; x4=w-s-1/2bar; y4=10/33x_height; y3=0;
+serif(1,stem,-104,jut,0);
+penpos2(stem,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"11",7u#-c#,asc_height#,desc_depth#);
+x1d=w-s; y1d=x_height; y2=7/33x_height; serif(1,stem,-104,jut,0);
+z2=z1+whatever*dir -104; penpos2(stem,180);
+y3l=-2/3d-c; z3l=whatever[z1f,z2l]; penpos3(1.1bar,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penstroke z2e{dir -104}..{dir -104}z3e;
+fill z1e{dir 76}..z1d{left}..cycle; z4=z3;
+dl_drop(4,drop_round,1/3d,drop_round,1.1bar);
+fill dl_drop_edge4 rotatedaround(z3,76);
+fill z3l..tension1.3..z3r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"2A",3cap_stem#+3s#,body_height#,0);
+ x1=x2=x3=x4=.5w; y1=h-1/2stem; y2=y1-cap_stem; y3=y2-bar; y4=y3-bar;
+ penpos1(stem,0); penpos2(cap_bar,0); penpos3(2cap_bar,0);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle;
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,60);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,120);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,180);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,240);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,300);
+ penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"5E",6u#,body_height#,0);
+ x1=s+.45cap_bar*cosd 45; x2=w/2; y2=h-bar;
+ z1=z2+whatever*dir -135; x3=w-x1; z3=z2+whatever*dir -45;
+ penpos1(bar,135); penpos2(2bar,90); penpos3(bar,45);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"16",6u#,body_height#,0);
+ x1=s; x2=w-x1; y1=y2=h-4bar;
+ penpos1(.8bar,90); penpos2(.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7F",2stem#+4s#,x_height#+2.1stem#,0);
+ z1=(s+.5stem,h); z2=(s+.5stem,h-stem);
+ fill z1..z2..cycle;
+ z3=(w-s-.5stem,h); z4=(w-s-.5stem,h-stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+ligtable "7":
+ "8" kern -kk#,
+ "A" kern -kkk#,
+ CYR_A kern -kkk#,
+ "f" kern -kk#,
+ "j" kern -kkk#,
+ "g" kern -kkk#,
+ CYR_el kern -kkk#,
+ CYR_em kern -kkk#,
+ CYR_u kern -k#,
+ CYR_er kern -k#,
+ CYR_ya kern -kk#,
+ "c" kern -k#,
+ "q" kern -k#,
+ "p" kern -k#;
+
+ligtable CYR_A: "A":
+ CYR_O kern -k#,
+ CYR_ES kern -k#,
+ CYR_TE kern -k#,
+ CYR_U kern -kk#,
+ CYR_EF kern -k#,
+ CYR_CHE kern -kk#,
+ CYR_HARD_SIGN kern -k#,
+ CYR_che kern -k#,
+ "W" kern -kkk#,
+ "V" kern -kkk#,
+ "Y" kern -kk#,
+ "T" kern -k#;
+
+ligtable CYR_GHE: CYR_TE: "T":
+ CYR_A kern -kk#,
+ CYR_DE kern -k#,
+ CYR_EL kern -kk#,
+ "l" kern kk#,
+ "t" kern k#,
+ "i" kern k#,
+ "k" kern kk#,
+ "b" kern kk#,
+ "h" kern kk#;
+
+ligtable CYR_E: CYR_YU:
+ CYR_U kern -k#,
+ CYR_be kern k#,
+ CYR_te kern kk#,
+ CYR_o kern k#,
+ CYR_pe kern k#,
+ CYR_er kern k#,
+ CYR_ka kern k#,
+ CYR_en kern k#,
+ CYR_che kern kk#,
+ CYR_sha kern kk#,
+ CYR_yu kern k#,
+ CYR_u kern k#,
+ "b" kern k#,
+ "t" kern kk#,
+ CYR_HA kern -k#;
+
+ligtable CYR_O: CYR_EF: "D": "O": "Q":
+ CYR_yeru kern k#,
+ CYR_pe kern k#,
+ CYR_en kern k#,
+ CYR_o kern k#,
+ CYR_be kern k#,
+ CYR_HA kern -k#,
+ CYR_te kern kk#,
+ CYR_ef kern k#,
+ CYR_er kern k#,
+ CYR_ka kern k#,
+ CYR_che kern kk#,
+ CYR_sha kern kk#,
+ CYR_yu kern k#,
+ CYR_u kern k#,
+ "o" kern k#,
+ "e" kern k#,
+ "q" kern k#,
+ "l" kern k#,
+ "p" kern k#,
+ "t" kern k#,
+ "u" kern kk#,
+ "b" kern k#,
+ "X" kern -k#;
+
+ligtable CYR_ER: "P":
+ CYR_A kern -kk#,
+ CYR_el kern -k#,
+ CYR_te kern k#,
+ CYR_pe kern k#,
+ "p" kern k#,
+ CYR_ka kern k#,
+ CYR_en kern k#,
+ CYR_che kern kk#,
+ CYR_sha kern kk#,
+ CYR_yu kern k#,
+ CYR_u kern k#,
+ "i" kern k#,
+ "b" kern k#,
+ "u" kern k#,
+ "l" kern k#,
+ "r" kern k#;
+
+ligtable CYR_ES: "C":
+ CYR_i kern kk#,
+ CYR_pe kern k#,
+ CYR_ve kern k#,
+ "7" kern kk#,
+ "l" kern kk#,
+ "n" kern k#,
+ "h" kern k#,
+ CYR_o kern k#;
+
+ligtable CYR_EN:
+ CYR_i kern k#;
+
+ligtable CYR_U:
+ CYR_A kern -kkk#,
+ CYR_O kern -k#,
+ CYR_ES kern -k#,
+ CYR_EF kern -k#;
+
+ligtable CYR_HA: "X":
+ CYR_ES kern -k#,
+ CYR_EF kern -k#,
+ CYR_O kern -k#,
+ "O" kern -k#,
+ "Q" kern -k#,
+ "C" kern -k#,
+ "G" kern -k#;
+
+ligtable CYR_be:
+ CYR_a kern -kk#,
+ CYR_o kern -kk#,
+ "a" kern -kk#,
+ "o" kern -kk#,
+ "e" kern -kk#,
+ "c" kern -k#,
+ "x" kern -kk#,
+ "p" kern -kk#,
+ CYR_ie kern -kk#,
+ CYR_ze kern -kk#,
+ CYR_el kern -kk#,
+ CYR_em kern -kk#,
+ CYR_es kern -k#,
+ CYR_ef kern -k#,
+ CYR_ha kern -kk#,
+ CYR_e kern -kk#,
+ CYR_ye kern -k#,
+ CYR_ya kern -kk#,
+ CYR_yeru kern -k#,
+ CYR_ve kern -k#,
+ CYR_ghe kern -kk#,
+ CYR_de kern -k#,
+ CYR_zhe kern -kk#,
+ CYR_i kern -k#,
+ CYR_ka kern -kk#,
+ CYR_en kern -kk#,
+ CYR_pe kern -kk#,
+ CYR_er kern -kk#,
+ CYR_u kern -kkk#,
+ "y" kern -kkk#,
+ CYR_tse kern -kk#,
+ CYR_che kern -k#,
+ CYR_sha kern -k#,
+ CYR_shcha kern -k#,
+ CYR_soft_sign kern -k#,
+ CYR_yu kern -kk#;
+
+ligtable CYR_de:
+ CYR_em kern -kk#,
+ CYR_a kern -kk#,
+ "a" kern -kk#,
+ "c" kern -kk#,
+ "p" kern -kk#,
+ "o" kern -k#,
+ "e" kern -k#,
+ "n" kern -kk#,
+ CYR_zhe kern -kk#,
+ CYR_ze kern -kk#,
+ CYR_el kern -kkk#,
+ CYR_pe kern -kk#,
+ CYR_er kern -kk#,
+ CYR_es kern -kk#,
+ CYR_u kern -kk#,
+ CYR_ha kern -kk#,
+ CYR_ya kern -kk#,
+ CYR_be kern -k#,
+ CYR_ve kern -k#,
+ CYR_ghe kern -k#,
+ CYR_ie kern -k#,
+ CYR_ye kern -k#,
+ CYR_ka kern -k#,
+ CYR_en kern -k#,
+ CYR_o kern -k#,
+ CYR_ef kern -k#,
+ CYR_tse kern -k#,
+ CYR_sha kern -k#,
+ CYR_hard_sign kern -k#,
+ CYR_e kern -k#,
+ CYR_yu kern -k#;
+
+ligtable CYR_ghe:
+ CYR_el kern -k#;
+
+ligtable CYR_pe: "n":
+ "y" kern -k#,
+ CYR_u kern -k#,
+ "f" kern -kk#,
+ "j" kern -kk#,
+ "g" kern -k#;
+
+ligtable CYR_te:
+ CYR_em kern -k#,
+ CYR_ie kern -k#,
+ CYR_el kern -kkk#;
+
+ligtable CYR_u: "y":
+ CYR_el kern -k#,
+ CYR_em kern -k#,
+ CYR_ie kern -k#,
+ CYR_ka kern -k#,
+ CYR_ya kern -k#,
+ CYR_ye kern -k#,
+ "f" kern -kk#,
+ "j" kern -kk#;
+
+ligtable "I": "H": "N": "U":
+ "l" kern kk#,
+ "t" kern k#,
+ "i" kern k#,
+ "k" kern kk#,
+ "b" kern kk#,
+ "h" kern kk#;
+
+ligtable "L":
+ "T" kern -kk#,
+ "W" kern -k#,
+ "V" kern -k#,
+ "Y" kern -kk#;
+
+ligtable "S":
+ "b" kern k#,
+ "c" kern k#,
+ "l" kern k#,
+ "t" kern k#,
+ "j" kern -k#,
+ "o" kern k#;
+
+ligtable "V": "W":
+ "A" kern -kkk#,
+ "l" kern kk#,
+ "t" kern k#,
+ "i" kern k#,
+ "k" kern kk#,
+ "b" kern kk#,
+ "h" kern kk#;
+
+ligtable "d":
+ "f" kern -kk#,
+ "g" kern -k#,
+ "j" kern -kk#;
+
+ligtable "f":
+ "g" kern -k#,
+ "f" kern -kk#,
+ "a" kern -k#,
+ "c" kern -k#,
+ "d" kern -k#,
+ "e" kern -k#,
+ "o" kern -k#,
+ "q" kern -k#,
+ "r" kern -k#,
+ "s" kern -k#,
+ "x" kern -k#,
+ "z" kern -k#,
+ "j" kern -k#;
+
+ligtable "g":
+ "i" kern k#,
+ "u" kern k#,
+ "t" kern k#,
+ "f" kern -k#,
+ "v" kern k#,
+ "w" kern k#;
+
+ligtable "o": "b": "p": "e":
+ "W" kern -kkk#,
+ "V" kern -kkk#,
+ "X" kern -kk#,
+ "e" kern k#,
+ "f" kern -kk#,
+ "j" kern -kk#,
+ "o" kern k#;
+
+ligtable "r":
+ "g" kern -k#,
+ "a" kern -k#;
+
+ligtable "s": "z":
+ "f" kern -kk#,
+ "j" kern -kk#;
+
+ligtable "t":
+ "f" kern -k#,
+ "a" kern -k#;
+
+ligtable "v": "w":
+ "f" kern -kk#,
+ "g" kern -k#,
+ "j" kern -kk#;
+
+ligtable "c": CYR_es:
+ CYR_el kern -k#,
+ CYR_em kern -k#,
+ "j" kern -kk#;
+
+ligtable "x": CYR_ha:
+ CYR_el kern -kk#,
+ CYR_em kern -kk#,
+ "j" kern -kk#;
+
+ligtable oct"55":
+ oct"55" =: hex"7b";
+ligtable hex"7b":
+ oct"55" =: hex"7c";
+end
diff --git a/fonts/obnov/obnitb17.mf b/fonts/obnov/obnitb17.mf
new file mode 100644
index 0000000000..3b0724fdb9
--- /dev/null
+++ b/fonts/obnov/obnitb17.mf
@@ -0,0 +1,3571 @@
+%written by Basil Solomykov, Russia
+%(C) Copyright 2011 LPPL (LaTeX Project Public License)
+%Font Ordinary New (Obyknovennaya novaya), Italic Bold
+
+design_size := 17.28pt#;
+o# := .7776*1.3pt#;
+u# := 1.1*32/35pt#;
+bar# := 17.28/36pt#;
+slab# := 17.28/36pt#;
+cap_bar# := 17.28/36pt#;
+vair# := 17.28/36pt#;
+hair# := 17.28/36pt#;
+jut# := 34.56/36pt#;
+cap_jut# := 44.928/36pt#;
+stem# := 1.3*51.84/36pt#;
+curve# := 1.3*53.568/36pt#;
+cap_stem# := 1.3*62.21/36pt#;
+cap_curve# := 1.3*64.28/36pt#;
+s# := 0.65pt#;
+c# := .32pt#;
+
+input obn_lcyw_code.mf
+font_identifier "OBNITB";
+mode_setup;
+clear_pen_memory;
+
+font_size design_size*pt#;
+asc_height# := 24/36*design_size*pt#;
+cap_height# := 24/36*design_size*pt#;
+body_height# := 27/36*design_size*pt#;
+x_height# := 15.4/36*design_size*pt#;
+desc_depth# := 8/36*design_size*pt#;
+body_depth# := 9/36*design_size*pt#;
+comma_depth# := 5/36*design_size*pt#;
+x_depth# := 4/5comma_depth#;
+bar_height# := .52x_height#;
+cap_bar_height# := .52cap_height#;
+cap_bar2_height# := .45cap_height#;
+border_height# := comma_depth#;
+cap_drop_round# := 4.5*slab#;
+drop_round# := 6.6/8cap_drop_round#;
+A_bracket# := 1.6pt#;
+bracket# := pt#;
+
+font_slant sind 32;
+font_x_height x_height#;
+font_normal_space 9u#;
+font_normal_stretch 4u#;
+font_normal_shrink 2u#;
+font_quad 12u#;
+font_extra_space 6u#;
+
+k# := .8u#;
+kk# := 1.5u#;
+kkk# := 3u#;
+
+serif_darkness := 1/30;
+define_pixels(bracket,cap_o_width,sss_width,css_width);
+define_pixels(c,s,cap_bar_height,cap_bar2_height);
+define_pixels(border_height,A_bracket,cap_drop_round,x_depth,drop_round);
+define_whole_blacker_pixels(stem,cap_stem,curve,cap_curve,bar,slab,cap_bar);
+define_good_x_pixels(hair); define_good_y_pixels(vair);
+define_whole_pixels(asc_height,cap_height,x_height,u,desc_depth,comma_depth,bar_height,body_height,body_depth,u,o,cap_jut,jut);
+%define_corrected_pixels();
+lowres_fix(stem,curve) 1.2;
+lowres_fix(cap_stem,cap_curve) 1.2;
+if jut=cap_jut: jut:=jut-1; fi
+
+def serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g if left_jut=0: -1/2slab fi +1/2slab; x$d=x$e=x$h if right_jut=0: +1/2slab fi-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def serif_edge suffix $ =
+(serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse serif_bracket($f,$r,$e)) enddef;
+
+def serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...serif_darkness[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def T_serif(suffix $)(expr slab, bord_height, direction)= %Direction: 0-left, 1-right;
+penpos$(slab,if direction=1: - fi 90);
+x$=x$a=x$g; y$g-y$=y$-y$a=1/2slab;
+x$b=x$a + if direction=0: - fi .882bord_height; y$b=y$d=y$c+1/2slab;
+x$c=x$b + if direction=0: - fi 1/2slab; y$c=y$a-bord_height;
+x$d=x$e=x$b + if direction=0: - fi slab;
+y$e=y$g-1/2slab; y$f=y$g; x$f=x$c;
+labels($a,$b,$c,$d,$e,$f,$g) enddef;
+
+def T_edge suffix $ =
+(z$a..{down}z$b..z$c..z$d--z$e{up}..z$f--z$g--cycle) enddef;
+
+def A_serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(A_bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g+1/2slab; x$d=x$e=x$h-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def A_serif_edge suffix $ =
+(A_serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse A_serif_bracket($f,$r,$e)) enddef;
+
+def A_serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...0.6[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def ur_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a= 1/2slab;
+x$e=x$a + drop_length; y$e=y$f- drop_height;
+x$d=x$e - 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e - drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d - 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ur_drop_edge suffix $ =
+(z$f{right}..tension.9..{down}z$e{down}..{left}z$d{left}..{up}z$c{up}..z$b...{left}z$a--cycle) enddef;
+
+def ul_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$f- drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d + 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ul_drop_edge suffix $ =
+(z$f{left}..tension.9..{down}z$e{down}..{right}z$d{right}..{up}z$c{up}..z$b...{right}z$a--cycle) enddef;
+
+def dl_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, -90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$a + drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e + 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d - drop_round); x$b=x$d + 1/90drop_round;
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def dl_drop_edge suffix $ =
+(z$a{left}..tension.9..{up}z$e{up}..{right}z$d{right}..{down}z$c..{dir 250}z$b{dir -80}..{right}z$f--cycle) enddef;
+
+def S_serif (suffix $)(expr serif_slab, serif_length, serif_height)=
+%penpos$(serif_slab,90);
+x$a=x$i=x$; y$i=y$+1/2serif_slab; y$a=y$-1/2serif_slab;
+x$f=x$e=x$a+serif_length; y$f=y$g-1/2serif_slab; y$e=y$c=y$d+1/2serif_slab;
+x$g=x$f-1/2serif_slab; y$g=y$i-1/2serif_slab;
+y$h=y$f-1/4serif_slab; x$h=x$g-serif_slab;
+x$c=x$e-serif_slab; x$d=x$e-1/2serif_slab; y$d=y$g-serif_height;
+x$b=x$h-6/18serif_length; y$b=y$h-1/2slab;
+labels ($a,$b,$c,$d,$e,$f,$g,$h,$i) enddef;
+
+def S_serif_edge suffix $ =
+(z$a{right}...z$b..{dir -80}z$c..z$d..z$e--z$f{up}..z$g{left}..z$h{dir 150}..{left}z$i--cycle) enddef;
+
+currenttransform := identity slanted sind 18;
+beginchar(CYR_A,13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5e];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar(CYR_BE,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.8u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=y5=h-1/2slab;
+y1c=h; y2c=0; x5e=w-s-.95cap_stem;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h; x4=w-s-cap_stem-border_height;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_VE,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.25u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+css_width := x8 - x2r; save css_width;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar(CYR_GHE,9u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.7u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; x3=x4+2u;
+y5=y3; x5e=w-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_DE,12u#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-.95u#;
+x10e=w-s; y10c=-d;
+y4c=h; x4h=w-s-1/2slab;
+x9=x4; y9c=0;
+x3=x8=x9d; y8=y7=1/2cap_bar; y3=y2=h-y8;
+x6e=s; y6=y10; x7=border_height+s;
+y5=y9; x5g=s+.5u; y1=y4; x1=x5+1.5u;
+x2=x1c;
+A_serif(1,1.2cap_bar,-96,10/7cap_jut,cap_jut);
+A_serif(5,1.2cap_bar,81,6/7cap_jut,cap_jut);
+serif(4,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+penpos2(cap_bar,90);
+penpos3(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_bar,90);
+penstroke z7e--z8e; penstroke z2e--z3e;
+fill A_serif_edge5...reverse A_serif_edge1...cycle;
+fill serif_edge9--reverse serif_edge4--cycle;
+T_serif(6,slab,border_height,0);
+T_serif(10,slab,border_height,1);
+fill T_edge6;
+fill T_edge10;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_IE,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_YE,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+x12=x13=x2r-s; y12=h+1/4cap_stem; y13=y12+cap_stem;
+x14=x15=x12+1.8cap_stem; y14=y12; y15=y13;
+fill z12..z13..cycle; fill z14..z15..cycle;
+penlabels(range 1 thru 15);
+endchar;
+
+beginchar(CYR_ZHE,round (16u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-1.43u#;
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; y7=y4=y10=y11=cap_bar_height; x4=x7-1.5u;
+x10=x8r; x11=x10+1.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+x6=s; y6=0; y4-y5=y5-y6; x4-x5=x5-x6;
+penpos7(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,90);
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z6e{right}..tension.8..{up}z5e{up}..tension.8..{right}z4e--z7e;
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+x3=x5+1/2cap_stem; y2=h; x4-x3=x3-x2; y2-y3=y3-y4;
+penpos3(hair,0);
+penpos2(cap_bar,90);
+penstroke z4e{left}..tension.8..{up}z3e{up}..tension.8..{left}z2e;
+y1=h; x1a=x2; fill z6l..z6r..cycle;
+ul_drop(1,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ul_drop_edge1; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ZE,10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.1u#;
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height;
+x4=x6-3/2cap_stem; x5=x4-3u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.9..{down}z6e{down}..tension.9..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3c,1.4border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.5cap_drop_round,slab);
+fill dl_drop_edge8;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_I,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.7u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-30); penpos6(cap_bar,-30);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar(CYR_SHORT_I,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.7u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-30); penpos6(cap_bar,-30);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+y7d=h+1.4cap_drop_round; z7d=z1r+whatever*dir 83;
+dl_drop(7,.95cap_drop_round,stem,.8cap_drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+z8=z7; y9=y7d-2bar; z9=z3+whatever*dir 105;
+penpos8(bar,90); penpos9(bar,135);
+penstroke z8e{right}..tension1.3..z9e;
+fill z9l..tension1.3..z9r..tension1.3..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_KA,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.43u#;
+x8g=x9g=s; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+y10=y11=cap_bar_height;
+x10=x8r-.1c; x11=x10+2.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13; fill z16l..z16r..cycle;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_EL,13u#+1/2s#,cap_height#,0);
+italcorr cap_height#*sind 18-.7u#;
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.8cap_drop_round; y3=1.1cap_drop_round;
+dl_drop(1,cap_drop_round,1.1cap_drop_round,1.1cap_drop_round,slab);
+fill dl_drop_edge1;
+penpos2(cap_bar,-90);
+penpos3(cap_bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-slab;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,cap_bar,theta1,1.3cap_jut,1.3cap_jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,cap_stem,-90,cap_jut,cap_jut);
+serif(8,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z5e--z6e;
+%currentpicture := currentpicture shifted(-.6u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_EM,13u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.7u#;
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,1/2cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 111; y7l=13/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EN,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.7u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r-.1c; x6=x3l+.1c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_O,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.05u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+cap_o_width := x7-x3; save cap_o_width;
+%currentpicture := currentpicture shifted(-1.7u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_PE,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.7u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ER,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.45u#;
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_ES,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-u#;
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+%currentpicture := currentpicture shifted(-1.7u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_TE,round (11u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-.7u#;
+x1=x2=.5w; y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+%currentpicture := currentpicture shifted(-3.1u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_U,13u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.7u#;
+x1l=s+cap_jut; y1l=.98h-cap_bar;
+x3r=w-s-.8cap_jut; y3r=.98h-cap_bar;
+x4=33/60w; y4=6/53h;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,1.2cap_bar,theta2,1.2cap_jut,.8cap_jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=0; x6=x4-.9cap_stem; z7l=z2;
+penpos7(1.2cap_bar,theta2+90);
+penpos5(1.2cap_bar,theta2+90);
+penpos6(cap_bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,cap_drop_round,2.5u, 10/53h, round cap_bar);
+fill dl_drop_edge8;
+%currentpicture := currentpicture shifted(-3.1u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EF,round (14u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-2.05u#;
+if .5w = good.x .5w: change_width; fi
+x1=x2=.5w; y2c=0; y1h=h;
+y6=y7=y8=y9=1.3cap_jut; y4=y3=y11=y12=h-1.3cap_jut+1/2slab;
+x3=x7=x2l+.1c; x8=x12=x2r-.1c; x4=x6=x3-u; x11=x9=x12+u;
+x5=s+1/2cap_curve; x10-x1=x1-x5; y4-y5=y5-y6; y10=y5;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,270);
+penpos7(cap_bar,270);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+penpos10(cap_curve,0);
+penpos11(cap_bar,90);
+penpos12(cap_bar,90);
+penstroke z3e--z4e{left}..tension.8..{down}z5e{down}..tension.8..{right}z6e--z7e;
+penstroke z8e--z9e{right}..tension.8..{up}z10e{up}..tension.8..{left}z11e--z12e;
+%currentpicture := currentpicture shifted(-1.8u,0);
+penlabels (range 1 thru 12);
+endchar;
+
+beginchar(CYR_HA,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.07u#;
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_TSE,12.5u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-1.2u#;
+x1=x2=x5=cap_jut+1/2cap_stem+s;
+x3=x4=x6=w-x1-.5u; y5=y6=y2h;
+y1c=y3c=h; y2c=y4c=0; x7e=w-s; y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e;
+T_serif(7,cap_bar,border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_CHE,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.7u#;
+x1=cap_jut+1/2cap_stem+s; x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,-90,cap_jut,cap_jut);
+serif(3,cap_stem,90,cap_jut,cap_jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l+.1c; y5=cap_bar_height-1/2cap_bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-1.8cap_bar;
+penpos6(cap_stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+%currentpicture := currentpicture shifted(-3.2u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SHA,16u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.68u#;
+if .5w <> good.x .5w: change_width; fi
+x1=x2=good.x (cap_jut+1/2cap_stem+s);
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=good.x .5w; y5=y1; y6=y2;
+y9b=slab; x9=good.x w-x1;
+x10=x9; y10b=h-slab;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_SHCHA,16u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-.7u#;
+if .5w <> good.x .5w: change_width; fi
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=slab; x9h=w-s;
+x10=x9; y10b=h-slab;
+x11e=w-s; y11=y9h;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,slab,border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_HARD_SIGN,13.5u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-3.03u#;
+x2r=x5-css_width; x1=x2; x8e=0; y8g=h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+x7=x1d; y1c=h; y2c=0;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y3=y4=cap_bar_height; x3=x2r-.1c; x4=x6=round(x3+5u-cap_stem);
+y6=y7=y2h;
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(8,cap_bar,border_height,0);
+fill T_edge8;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+%currentpicture := currentpicture shifted(-1.8u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YERU,16u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d; italcorr cap_height#*sind 18-.7u#;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+y3=y4=cap_bar_height; x3=round x2r; x4=x6=round (x3+5u-cap_stem) - 1;
+y4-y5=y5-y6; x5=x2r+css_width; y8b=slab; x8h=w-s;
+y6=y7=y2h; x9=x8; y9b=h-slab;
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(8,cap_stem,90,cap_jut,cap_jut);
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge9--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SOFT_SIGN,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-3.03u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=x3+5u-cap_stem;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y6=y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_E,10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.05u#;
+x1=16/39w; x5=.5w; y1=0; y5=h;
+y7=.5h; x7=w-1/2cap_curve-s;
+x9e=s; y9=0;
+dl_drop(9,cap_drop_round,16/39w-s,1.5cap_drop_round,slab);
+y8=0.1h-c; y6=0.9h+c; x8=x9+9/16(x7-x9); x6=x5+9/16(x7-x5);
+penpos5(cap_bar,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+penpos1(cap_bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+y2=y5; x2=x5-c;
+S_serif(2,slab,x1+c,1.5border_height);
+x3=x7-1/2cap_stem; y3=y4=cap_bar_height; x4=x2b-x1;
+penpos3(cap_bar,90); penpos4(cap_bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+%currentpicture := currentpicture shifted(-.9u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YU,16u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.12u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+y3=y7=.5h; x7=w-1/2cap_curve-s; x3=x7-cap_o_width; y9=0; y5=h; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3cap_stem; y11=y12=cap_bar_height;
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_YA,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.7u#;
+x1=x2=w-cap_jut-1/2cap_stem-s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2l;
+y1c=h; y2c=0; x6=x4=x7-2.5u; x3=x1c;
+y4-y5=y5-y6; x5=x8-1.5c; x9=s; y9=0; y6-y8=y8-y9; x7-x10=3(x10-x6); x10-x8=x8-x9;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos7(cap_bar,270);
+penpos6(cap_bar,270);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90); fill z9l..z9r..cycle;
+penstroke z3e--z4e{left}..tension1..z5e..tension1..{right}z6e--z7e;
+penstroke z9e{right}..tension1..{up}z8e{up}..tension1..{right}z10e;
+penlabels(range 1 thru 10);
+endchar;
+currenttransform := identity;
+
+beginchar(CYR_a,9u#+2c#,x_height#,0);
+x1=w-s-3/4stem; y1=h; y2=7/33h; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=w-s-bar/3; y4=8/33h;
+penpos1(stem,180);
+penpos2(stem,180);
+penpos3(1.2vair,270);
+penpos4(bar,360);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 60}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x5=x1-1.25stem; y5=h; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c; y6=.54h; y8=.46h; z8l=whatever[z1r,z2r];
+penpos8(2bar,0);
+penpos5(vair,90);
+penpos6(curve,180);
+penpos7(vair,270);
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=h-c; z10=(x1r+c,h); z11=(x1l-c,h);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar(CYR_be,8u#+s#+stem#,asc_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5(w-stem)-1/2(x_height*sind 14/cosd 14); x3=.5(w-stem)+1/2(x_height*sind 14/cosd 14); y1=0; y3=x_height;
+y2=.54x_height; y4=.46x_height; x2=1/2curve+s; x4=w-1/2curve-stem-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+y5=y2; x5r=x2l; x6=22/35w; y6=45/51h; y7r=h; x7=w-s;
+penpos5(bar,180);
+penpos6(.9curve,90);
+penpos7(.8curve,90);
+penstroke z5e{dir 76}..tension.8..{dir 7}z6e{dir 7}..{dir 30}z7e;
+fill z7l..tension2..z7r..tension2..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_ve,8u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=4/5h; x2=1/2curve+s; x4=w-1/2curve-s; z5r=z2; x6=w-s-s-1/2curve; y6=9/33h; z7=z5;
+penpos5(vair,-270);
+penpos6(curve,180);
+penpos7(vair,270);
+penstroke z7e{dir 14}..tension.9..{dir 256}z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{dir 194}z5e;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_ghe,7u#+s#,x_height#,0);
+x4=0.5w; top y4 = good.y (0.5h+1/3bar); y3=12.5/16h; x3=w-s-1/2curve;
+x2=10/18w; y2=h; x1=s+1/2curve; y1=24/33h;
+x5=s+1/2curve; y5=h-y3; x6=w-x2; y6=0; x7=w-x1; y7=h-y1;
+penpos1(bar,180);
+penpos2(1.2bar,90);
+penpos3(curve,0);
+penpos4(1.2bar,-90);
+penpos5(curve,0);
+penpos6(1.2bar,90);
+penpos7(bar,180);
+penstroke z1e{dir 60}..{right}z2e..z3e{dir -90}...{dir 200}z4e{dir 200}...{dir -90}z5e..z6e{right}..{dir 60}z7e;
+fill z7l..tension1.3..z7r..tension1.3..cycle;
+fill z1l..tension1.3..z1r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_de,8u#+s#+stem#,asc_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5(w-stem)-1/2(x_height*sind 14/cosd 14); x3=.5(w-stem)+1/2(x_height*sind 14/cosd 14); y1=0; y3=x_height;
+y2=.54x_height; y4=.46x_height; x2=1/2curve+s; x4=w-1/2curve-stem-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..tension1..{right}z3e..tension.9..{dir 256}z4e{dir 256}..tension1..{left}z1e..cycle;
+y5=24/33x_height; z5=z4+whatever*dir 77; x6=22/35w; y6=h;
+y56=y5+s+stem; z56=z4+whatever*dir 78;
+x7=10/35w; y7=42/51h;
+penpos5(1.1curve,-180);
+penpos56(.9curve,-180);
+penpos6(1.2bar,-90);
+penpos7(bar,0);
+penstroke z4e{dir 76}..z5e{dir 76}..z56e..tension1..{dir 174}z6e{left}..z7e;
+fill z7l..tension1.3..z7r..tension1.3..cycle;
+penlabels(range 1 thru 8,56);
+endchar;
+
+beginchar(CYR_ie,8u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=4/5h; x2=1/2curve+s; x4=w-1/2curve-s; z5r=z2; x6=w-s-s-1/2vair; y6=9/33h;
+penpos5(vair,-270);
+penpos6(vair,135);
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{dir 194}z5e;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_ye,8u#+c#,asc_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(x_height*sind 14/cosd 14); x3=.5w+1/2(x_height*sind 14/cosd 14);
+y1=0; y3=x_height; y2=.54x_height; y4=4/5x_height; x2=1/2curve+s;
+x4=w-1/2curve-s; z5r=z2; x6=w-s-s-1/2vair; y6=9/33x_height;
+penpos5(vair,-270);
+penpos6(vair,135);
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{dir 194}z5e;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+z8r=(w-s,h-1/2curve); y7=y8; x7=x8-2curve+s;
+penpos7(curve,0); penpos8(curve,0);
+fill z7r..z7l..cycle; fill z8r..z8l..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_zhe,15u#+s#,x_height#,0);
+penpos1(1.2vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+x1=x3-(h*sind 14/cosd 14); x3=w-s-3/4stem; y1=0; y3=h;
+y2=.54h; x2=x1-3/4stem; x5=w-s-4/5stem; y5=7/33h;
+penpos5(vair,150); z4=z3;
+penstroke z5e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e;
+fill z5l..tension1.5..z5r..tension1.5..cycle;
+z77=(.5w,.5h); z9=z77+whatever*dir 76; y9=h;
+z8=whatever[z9,z77]; y8=0;
+penpos8(stem,0); penpos9(stem,0);
+penstroke z8e--z9e;
+ur_drop(4,drop_round,3/4stem,drop_round,bar);
+fill ur_drop_edge4;
+x10=w-x5; y10=26/33h; x11=w-x1; y11=h; x12=w-x2; y12=.46h;
+x13=w-x3; y13=0; z14=z13;
+penpos10(bar,150); penpos11(bar,90);
+penpos12(curve,0); penpos13(bar,-90);
+penstroke z10e..z11e{right}..{dir -104}z12e{dir -104}..{left}z13e;
+fill z10l..tension1.5..z10r..tension1.5..cycle; z14=z13;
+dl_drop(14,drop_round,3/4stem,drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+x7=x12; x6=x2; y6=y7=bar_height;
+penpos7(bar,90); penpos6(bar,90);
+penstroke z6e--z7e;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_ze,8u#,x_height#,0);
+x1=2.5s+1/2vair; y1=26/33h; x2=.5w+1/2(h*sind 14/cosd 14); y2=h;
+x3=w-s-1/2curve; y2-y3=y3-y4; x5=x1+s;
+z4=z2+whatever*dir -104; y4=y5=bar_height;
+z7=whatever[z2,z4]; y7=0; z6=z3+whatever*dir -100;
+y4-y6=y6-y7; z8=z7;
+penpos1(bar,135); penpos2(bar,90);
+penpos3(curve,0); penpos4(bar,-90);
+penpos5(bar,-90); penpos6(curve,180);
+penpos7(bar,90);
+penstroke z1e..z2e{right}..{dir -100}z3e{dir -100}..{left}z4e--z5e;
+penstroke z4e{right}..{dir -100}z6e{dir -100}..{left}z7e;
+fill z1l..tension1.5..z1r..tension1.5..cycle;
+fill z5l..tension1.5..z5r..tension1.5..cycle;
+dl_drop(8,drop_round,x7-s,1.2drop_round,bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_i,10u#+.7s#,x_height#,0);
+x1=w-s-1.1stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+.7stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=0; y5=8/34h;
+x5=s+1/2stem; x6=x5+.9stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+z7l=z5r+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_short_i,10u#+.7s#,asc_height#,0);
+x1=w-s-1.1stem; y1=x_height; y2=10/33x_height; z2=z1+whatever*dir -104;
+x3=x2+.7stem; x4=w-s-1/2bar; y4=10/33x_height; y3=y6=0; y5=8/34x_height;
+x5=s+1/2stem; x6=x5+.9stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33x_height;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+z7l=z5r+whatever*dir 76; y7l=x_height-bar;
+serif(7,stem,-104,jut,0);
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+y9d=h; z9d=z7f+whatever*dir 82;
+dl_drop(9,drop_round,stem,drop_round,bar);
+fill dl_drop_edge9; fill z9e..z9c..cycle;
+z10=z9; y11=h-bar; z11=z8+whatever*dir 73;
+penpos10(bar,90); penpos11(bar,135);
+penstroke z10e{right}..tension1.3..z11e;
+fill z11l..tension1.3..z11r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ka,10u#,x_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-2*.8stem; y1=bar_height-2.5bar; y2=6/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y5=y6=0;
+x8=x2-3/4stem; y8=bar_height; y9=bar_height-2bar; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.1bar,270); penpos9(1.2bar,0);
+penstroke z9e{dir 68}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x10=x3; y10=h; penpos10(1.2bar,270); z11=z10;
+penstroke z9e{dir 60}..{dir 25}z10e;
+ur_drop(11,drop_round,9/8drop_round,drop_round,1.2bar);
+fill ur_drop_edge11;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_el,10u#+c#,x_height#,0);
+x1=w-s-.9stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=0;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x5=x1r; y5=h-1/2bar; x8=1/5w; y8=0; z9=z8;
+y6=27/34h; y7=7/34h; x6=.5w; z7=z6+whatever*dir -108;
+penpos5(vair,90); penpos6(bar,180);
+penpos7(bar,180); penpos8(vair,90);
+penstroke z5e{left}..z6e--z7e{dir -108}..{left}z8e;
+dl_drop(9,drop_round,x8-s,drop_round,bar);
+fill dl_drop_edge9; fill z9e..z9c..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_em,12u#+s#,x_height#,0);
+x1=w-s-.9stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=9/33h; y3=0;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+z5r=z1r; z6=z5+whatever*dir -120; y6=0;
+penpos5(bar,180); penpos6(bar,180);
+penstroke z5e--z6e; fill z6l..tension1.3..z6r..tension1.3..cycle;
+z7l=z6r+whatever*dir 92; y7l=7/28h;
+z8l=whatever[z6r,z7l]; y8l=h;
+penpos7(.9stem,0); penpos8(.9stem,0);
+penstroke z7e--z8e; fill z6r--z7l--z7r--cycle;
+y9=h-bar; x9=x8l; y10=10/33h; z10=z9+whatever*dir -104;
+y11=0; x11=s+.7stem; z12=z11;
+penpos10(bar,0); penpos11(bar,-90);
+serif(9,bar,-104,jut,0);
+fill z10l--z10r--reverse serif_edge9--cycle;
+penstroke z10e{dir -104}..{left}z11e;
+dl_drop(12,drop_round,x11-s,drop_round,bar);
+fill dl_drop_edge12; fill z12e..z12c..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_en,10u#+s#,x_height#,0);
+x1=w-s-1.1stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y5=y6=0;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+y8=y9=bar_height; z9=z2+whatever*dir 76; z8=whatever[z6,z7];
+penpos8(bar,90); penpos9(bar,90);
+penstroke z8e--z9e; fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_o,8u#+s#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=.46h; x2=1/2curve+s; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+italic_o_width := x4-x2; save italic_o_width;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_pe,10u#+s#,x_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-9/8stem; y1=26/33h; y2=10/33h; z2=z1+whatever*dir -108;
+x3=x2+.7stem; x4=w-s-1/2bar; y4=10/33h; y3=y5=y6=0;
+x8=x2; y8=h; y9=bar_height-bar; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.2bar,270); penpos9(bar,0);
+penstroke z9e{dir 68}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_er,9u#+c#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=x2+.5(x4-x2)-1/4(h*sind 14/cosd 14)-c; x3=x2+.5(x4-x2)+3/4(h*sind 14/cosd 14)-c; y1=0; y3=h;
+y2=.54h; y4=.46h; x2=x4-italic_o_width+c; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+y5=h-bar; z5=z2+whatever*dir 76;
+serif(5,stem,-104,jut,0); fill z5e{dir 76}..z5d{left}..cycle;
+y6=-d+bar; z6=whatever[z2,z5];
+serif(6,stem,76,.3jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_es,7.5u#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+x1=4u-1/2(h*sind 18/cosd 18)+c; x3=4u+1/2(h*sind 18/cosd 18); y1=0; y3=h;
+y2=.54h; x2=1/2curve+s; x6=8u-2.5s-1/2vair; y6=9/33h;
+penpos6(vair,135); z4=z3;
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e;
+fill z6l..tension1.5..z6r..tension1.5..cycle;
+ur_drop(4,drop_round,w-s-x3,5/4drop_round,bar);
+fill ur_drop_edge4;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_te,round (8u#-.5s#),x_height#,0);
+if .5w = good.x .5w: change_width; fi
+currenttransform := identity slanted sind 14;
+x2=.5w-w*sind 14/cosd 14+c; x1e=s-w*sind 14/cosd 14+c;
+x4e=w-s-w*sind 14/cosd 14+c;
+y1=y4=y2h; y2c=h; y3=y5=0; x3=.5w-1/2stem-w*sind 14/cosd 14+c;
+x5=.5w+1/2stem-w*sind 14/cosd 14+c;
+serif(2,stem,-90,jut,jut);
+T_serif(1,bar,4/5border_height,0);
+T_serif(4,bar,4/5border_height,1);
+fill z3--z5--reverse serif_edge2--cycle;
+fill T_edge1; fill T_edge4;
+currenttransform := identity;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_u,10u#,x_height#,desc_depth#);
+x5=w-s-1/2stem; y5=h; y6=10/33h; z6=z5+whatever*dir -104;
+y3=0; y2=8/34h; x2=s+stem; x3=x2+.9stem;
+y7=0; z7=z6+whatever*dir -104;
+penpos5(stem,180); penpos6(stem,180);
+z8r=z7r+whatever*dir -108; y8r=-1/2d;
+z4l=whatever[z6r,z5r]; y4l=15/33h;
+penpos2(stem,180); penpos3(1.1bar,270);
+y9=-d; x9=x2l-s; z10=z9;
+penpos4(bar,360); penpos7(stem,180);
+penpos8(.8stem,180); penpos9(bar,90);
+penstroke z2e{dir -104}..z3e{right}..{dir 76}z4e;
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+penstroke z5e{dir -104}..z6e..z7e..z8e..{left}z9e;
+dl_drop(10,.9stem,x9-s,1.2drop_round,bar);
+fill dl_drop_edge10; fill z10e..z10c..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ef,12u#+s#,asc_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(.9curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=x2+.5(x4-x2)-3/8(x_height*sind 14/cosd 14)-.3c;
+x3=x2+.5(x4-x2)+5/8(x_height*sind 14/cosd 14)-.3c;
+y1=y6=0; y3=y8=x_height; y5=y4; x7=1/2curve+s; y7=y2;
+y2=.54x_height; y4=.46x_height; x4=w-1/2curve-s;
+x4-x2=x2-x7; x5=x2;
+x8=x7+.5(x5-x7)+3/8(x_height*sind 14/cosd 14)+.3c;
+x6=x7+.5(x5-x7)-5/8(x_height*sind 14/cosd 14)+.3c;
+penpos6(vair,90); penpos7(curve,0);
+penpos8(vair,-90); penpos5(.9curve,180);
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension1..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+penstroke z6e{left}..tension1..{dir 76}z7e{dir 76}..{right}z8e..tension.9..{dir 256}z5e{dir 256}..{left}z6e..cycle;
+x5-x77=x77-x2; y2-y77=y77-y5;
+y10=h; x10=w-s-stem; y11=44/34x_height; z11=z77+whatever*dir 76;
+y12=-1/8d; z12=z77+whatever*dir -104; y13=-d; x13=s+stem; z9=z10;
+penpos10(bar,90); penpos11(stem,180);
+penpos12(stem,180); penpos13(bar,90);
+penstroke z10e{left}..{dir -104}z11e--z12e{dir -104}..{left}z13e;
+ur_drop(9,drop_round,stem,drop_round,bar);
+fill ur_drop_edge9; z14=z13;
+dl_drop(14,drop_round,stem,drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 14,77);
+endchar;
+
+beginchar(CYR_ha,10u#+c#,x_height#,0);
+penpos1(1.2vair,90);
+penpos2(curve,0);
+penpos3(vair,-90); penpos12(curve,0);
+x1=x3-(h*sind 14/cosd 14); x3=w-s-3/4stem; y1=0; y3=h;
+y2=.51h; x2=x1-27/40stem;
+x5=w-s-.7stem; y5=7/33h;
+penpos5(vair,150); z4=z3;
+penstroke z5e..z1e{left}..{dir 76}z2e{dir 76}..{right}z3e;
+fill z5l..tension1.5..z5r..tension1.5..cycle;
+ur_drop(4,drop_round,3/4stem,drop_round,bar);
+fill ur_drop_edge4;
+x10=w-x5; y10=26/33h; x11=w-x1; y11=h; x12=w-x2; y12=.49h;
+x13=w-x3; y13=-2epsilon; z14=z13;
+penpos10(bar,150); penpos11(bar,90);
+penpos13(bar,-90);
+penstroke z10e..z11e{right}..{dir -104}z12e{dir -104}..{left}z13e;
+fill z10l..tension1.5..z10r..tension1.5..cycle; z14=z13;
+dl_drop(14,drop_round,3/4stem,drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_tse,10u#+.7s#,x_height#,desc_depth#);
+x1=w-s-1.1stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=0; y5=8/34h;
+x5=s+1/2stem; x6=x5+.9stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+z7l=z5r+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+y9l=-.3bar; x9l=x3+.6bar; x10=x2+1/4stem; y10=-1/2d;
+y11=-d; x11=x10-1.1stem;
+penpos11(bar,90); penpos10(stem,180); penpos9(bar,120);
+penstroke z9e..tension1.3..{down}z10e{down}..tension.8..{left}z11e;
+fill z11l..tension1.3..z11r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_che,9u#,x_height#,0);
+x7g=s; y7g=h-1/2bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-.9stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+.7stem; x4=w-s-1/2bar; y4=9/33h; y3=0; y6l=bar_height; y5=y6l+2bar;
+z5=z7+whatever*dir -104; x6=x5+3/4stem;
+penpos1(stem,180); penpos2(stem,180);
+z8=whatever[z2r,z1r]; y8l=y5-bar;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(1.2bar,256);
+penstroke z5e{dir -104}..z6e{right}..{dir 25}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_sha,14u#+s#,x_height#,0);
+if .5w <> good.x .5w: change_width; fi
+x1=w-s-1.1stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=y10=0; y5=y11=8/34h;
+x11=s+1/2stem; x10=x11+.9stem;
+z12=z11+whatever*dir 76; y12=h-bar;
+y13=h; z13=whatever[z11,z12];
+x6=x5+.9stem; x1-x7=x7-x13; y7l=h; z5=z7+whatever*dir -104;
+serif(12,stem,-104,jut,0);
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=y9l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360); penpos7(stem,180);
+z9l=whatever[z5r,z7r];
+penstroke z7e--z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+penpos11(stem,180); penpos10(1.1bar,270);
+penpos9(bar,360);
+fill z11r--z11l--reverse serif_edge12--cycle;
+fill z12e{dir 76}..z12d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penstroke z11e{dir -104}..z10e{right}..{dir 76}z9e;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_shcha,14u#+s#,x_height#,desc_depth#);
+if .5w <> good.x .5w: change_width; fi
+x1=w-s-1.1stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=y10=0; y5=y11=8/34h;
+x11=s+1/2stem; x10=x11+.9stem;
+z12=z11+whatever*dir 76; y12=h-bar;
+y13=h; z13=whatever[z11,z12];
+x6=x5+.9stem; x1-x7=x7-x13; y7l=h; z5=z7+whatever*dir -104;
+serif(12,stem,-104,jut,0);
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=y9l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360); penpos7(stem,180);
+z9l=whatever[z5r,z7r];
+penstroke z7e--z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+penpos11(stem,180); penpos10(1.1bar,270);
+penpos9(bar,360);
+fill z11r--z11l--reverse serif_edge12--cycle;
+fill z12e{dir 76}..z12d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penstroke z11e{dir -104}..z10e{right}..{dir 76}z9e;
+y14l=-.3bar; x14l=x3+.6bar; x15=x2+1/4stem; y15=-1/2d;
+y16=-d; x16=x15-1.1stem;
+penpos16(bar,90); penpos15(stem,180); penpos14(bar,120);
+penstroke z14e..tension1.3..{down}z15e{down}..tension.8..{left}z16e;
+fill z16l..tension1.3..z16r..tension1.3..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_soft_sign,8u#,x_height#,0);
+y2=10/34h; x2=s+1/2stem; x3=x2+1.05stem; z5=z3+whatever*dir 76; y5=bar_height+bar; y4=.5y5; x4=w-s-1/2curve; y3=0;
+y6l=y2+bar; z6l=z2l+whatever*dir 76;
+penpos2(stem,180); penpos3(bar,270);
+penpos4(curve,360); penpos5(bar,90);
+penpos6(1.5bar,180);
+penstroke z2e{dir -104}..z3e{right}..{dir 76}z4e{dir 76}..tension.9..{left}z5e{left}..{dir -104}z6e;
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+sss_italic_width :=x4-x2; save sss_italic_width;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_yeru,12u#+s#,x_height#,0);
+y2=10/34h; x2=s+1/2stem; x3=x2+1.05stem; z5=z3+whatever*dir 76; y5=bar_height+bar; y4=.5y5; x4=x2+sss_italic_width; y3=-2epsilon;
+y6l=y2+bar; z6l=z2l+whatever*dir 76;
+penpos2(stem,180); penpos3(bar,270);
+penpos4(curve,360); penpos5(bar,90);
+penpos6(1.5bar,180);
+penstroke z2e{dir -104}..z3e{right}..{dir 76}z4e{dir 76}..tension.9..{left}z5e{left}..{dir -104}z6e;
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+x7=w-s-1.1stem; y7=h-bar; y8=10/33h; z8=z7+whatever*dir -104;
+x9=x8+3/4stem; x10=w-s-1/2bar; y10=10/33h; y9=2epsilon;
+penpos8(stem,180);
+penpos9(1.1bar,270); penpos10(bar,335);
+penstroke z8e{dir -104}..{right}z9e{dir 20}..{dir 65}z10e;
+fill z10l..tension1.3..z10r..tension1.3..cycle;
+serif(7,stem,-104,jut,0);
+fill z8r--z8l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_hard_sign,11u#-c#,x_height#,0);
+y2=10/34h; x2=x4-sss_italic_width; x3=x2+1.05stem; z5=z3+whatever*dir 76; y5=bar_height+bar; y4=.5y5; x4=w-s-1/2curve; y3=0;
+y6l=y2+bar; z6l=z2l+whatever*dir 76;
+z1r=z2l+whatever*dir 76; y1=h;
+penpos2(stem,180); penpos3(bar,270);
+penpos4(curve,360); penpos5(bar,90);
+penpos6(1.5bar,180); penpos1(bar,180);
+penstroke z1e..z2e{dir -104}..z3e{right}..{dir 76}z4e{dir 76}..tension.9..{left}z5e{left}..{dir -104}z6e;
+x10=s+1/3bar; y10=y5r+1/2bar; y11=h; z11=z10+whatever*dir 70;
+penpos10(bar,0); penpos11(bar,0);
+fill z10l..tension1.3..z10r..tension1.3..cycle;
+fill z11l..tension1.3..z11r..tension1.3..cycle;
+fill z1l..tension1.3..z1r..tension1.3..cycle;
+penstroke z10e--z11e;
+x7=x1r; y7=h-1/2bar; y8=h-5/8stem; x8=x11r+1/2stem;
+x9r=x11r-.1c; y9r=h; penpos9(curve,70);
+penpos7(bar,90); penpos8(.8curve,80);
+penstroke z7e{dir 200}..{left}z8e..{dir 160}z9e;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_e,7.5u#,x_height#,0);
+x10=2.5s+1/2vair; y10=26/33h; x11=.5w+1/2(h*sind 14/cosd 14); y11=h;
+x12=w-s-1/2curve; y12=.46h;
+x13=.5w-1/2(h*sind 14/cosd 14); y13=0; z14=z13;
+penpos10(bar,135); penpos11(bar,90);
+penpos12(curve,0); penpos13(bar,-90);
+penstroke z10e..z11e{right}..{dir -104}z12e{dir -104}..{left}z13e;
+fill z10l..tension1.5..z10r..tension1.5..cycle; z14=z13;
+dl_drop(14,drop_round,x13-s,1.2drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+x1=x14c; x2=x12; y1=y2=bar_height;
+penpos1(bar,90); penpos2(bar,90);
+penstroke z1e--z2e; fill z1r..z1l..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(CYR_yu,12u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=x2+.5(x4-x2)-1/2(h*sind 14/cosd 14); x3=x2+.5(x4-x2)+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=.46h; x2=x4-italic_o_width; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+x5=s; y5=y6=0; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5--z6--reverse serif_edge7--cycle;
+y8=y9=bar_height; z8=whatever[z6,z7]; x9=x2;
+penpos8(bar,90); penpos9(bar,90);
+penstroke z8e--z9e; fill z7e{dir 76}..z7d{left}..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ya,10u#+2c#,x_height#,0);
+x1=w-s-.9stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=2epsilon;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x5=x1r; y5=h-1/2bar; x6=x5-stem; y6=h-1/2vair;
+x7=12/40w; y8=y9=bar_height; z9=z5+whatever*dir -104;
+x8=x9-.7stem; y5-y7l=y7l-y9;
+penpos5(bar,90); penpos6(vair,90);
+penpos7(curve,166); penpos8(bar,270);
+penpos9(bar,270); x11=s+2/3stem; y11=-2epsilon;
+12(x8-x10)=9(x10-x11); y8-y10=y10-y11; z12=z11;
+penpos10(.7curve,360); penpos11(bar,270);
+penstroke z5e--z6e{left}..z7e{dir -104}..{right}z8e--z9e;
+penstroke z9e{left}..tension.8..{dir -104}z10e{dir -104}..{left}z11e;
+dl_drop(12,drop_round,x11-s,drop_round,bar);
+fill dl_drop_edge12; fill z12e..z12c..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+currenttransform := identity slanted sind 18;
+beginchar("A",13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5e];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar("B",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.22u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("C",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-u#;
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+%currentpicture := currentpicture shifted(-1.7u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("D",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-2.08u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(o,30);
+penpos6(cap_curve,0);
+penpos7(o,-30);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+x3=x9=x1d;
+x8=x4=.5w; y8=y9=1/2cap_bar; y4=y3=h-1/2cap_bar;
+y6=.5h; x6=w-1/2cap_curve-s;
+y7=0.1h-c+1/2cap_bar; y5=0.9h+c-1/2cap_bar; x5=x7=x4+5/8(x6-x4);
+penstroke z3e--z4e{right}..z5e..z6e..z7e..{left}z8e--z9e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("E",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("F",10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-.7u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("G",10u#+cap_jut#+c#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.6u#;
+x1=x5=23/42(w-cap_jut-c); y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s-cap_jut-c; y8=y1; x8=x1-.1(w-cap_jut-c);
+S_serif(6,slab,w-s-2c-x1-cap_jut,1.5border_height);
+S_serif(7,slab,w-s-x1-cap_jut+c,7/4border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+x9r=x7e; y9r=7/4border_height-1/2cap_bar;
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+x10=x9l; x11=x9r; y10=y11=3/4cap_bar;
+fill reverse serif_edge9--z10--z11--cycle;
+%currentpicture := currentpicture shifted(-1.6u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("H",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.7u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r-.1c; x6=x3l+.1c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("I",2cap_jut#+cap_stem#+2s#,cap_height#,0);
+italcorr cap_height#*sind 18-.68u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+endchar;
+currenttransform := identity;
+
+beginchar("J",7u#,cap_height#,0);
+italcorr cap_height#*sind 18-1.4u#;
+x7=w-.5cap_jut-1/2cap_stem-s; y7=4cap_bar; penpos7(.75cap_stem,0);
+y1c=h; z1r=z7r+whatever*dir 72; serif(1,cap_stem,-108,1.2cap_jut,.6cap_jut);
+z2=z1r+whatever*dir -108; z3=z1l+whatever*dir-108;
+z4=z1+whatever*dir-108; y2=y3=y4=18/53h;
+y5=0; x5=s+cap_drop_round; z6=z5;
+fill z3--z2--reverse serif_edge1--cycle;
+penpos4(cap_stem,0);
+penpos5(cap_bar,-90);
+penstroke z4e{dir -108}..z7e..{left}z5e;
+dl_drop(6,cap_drop_round,x5-s,1.3drop_round,cap_bar);
+fill dl_drop_edge6;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+currenttransform := identity slanted sind 18;
+
+beginchar("K",13u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-1.62u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=cap_bar_height; x3l=w-cap_jut-.5cap_jut-cap_bar-s; y3l=h-cap_bar;
+x5=x6=x1r-.1c; y5=cap_bar_height-cap_bar; y6=y5-1.2cap_bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+A_serif(3,cap_bar,theta1,1.5cap_jut,.6cap_jut);
+x4l=w-s-1.2cap_jut-cap_stem; y4l=cap_bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,cap_stem,theta2,.8cap_jut,cap_jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("L",10u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=y5=y2h; x3=x2d; x5e=w-s;
+T_serif(5,cap_bar,border_height,1); x4=x5;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penstroke z3e--z4e;
+fill T_edge5 reflectedabout(z3,z4);
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar("M",13u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.7u#;
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,1/2cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 111; y7l=13/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("N",12u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-.7u#;
+x1=x2=cap_jut+1/2cap_bar+s;
+x3=w-x1; y1c=y3c=h; y2c=y4=y5=0;
+x4=x3r; x5=x3l;
+serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+A_serif(2,cap_bar,90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill A_serif_edge2--reverse serif_edge1--cycle;
+numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+theta1=angle(z5-z7);
+z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+fill z6--z1h--z7--z5{down}..{up}z4--reverse A_serif_edge3--cycle;
+unfill z1b--z1l--z1a--cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("O",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.05u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+%currentpicture := currentpicture shifted(-1.7u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("P",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.45u#;
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Q",11u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-2.05u#;
+penpos1(vair,90);penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x12-1.5c; x12=x7l-c; y11=y12=-comma_depth;
+y9=0; x9=x1-c; y9-y10=y10-y11; x11-x10=x10-x9;
+penpos9(cap_bar,90); penpos10(cap_curve,0);
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z9e{dir -20}..tension.8..z10e..tension.8..{right}z11e--z12e;
+fill z12r..z12l..cycle;
+%currentpicture := currentpicture shifted(-1.7u,0);
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("R",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.53u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2r;
+y1c=h; y2c=0; x6=x4=x7+2.2u; x3=x1d;
+y4-y5=y5-y6; x5=x8; x9=w-s-1/2cap_bar; y9=0; y6-y8=y8-y9; x10=x6; x9-x8=6/7(x8-x10);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,-90);
+penpos6(cap_bar,-90);
+penpos8(cap_curve,-180);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension1..z5e..tension1..{left}z6e--z7e;
+penstroke z9e{left}..tension.8..{up}z8e{up}..tension.8..{left}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("S",9u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.55u#;
+x6=x7=1/2w; y6=y7=0;
+S_serif(7,cap_bar,x6-s,1.5border_height);
+y5=11/53h; x5=w-s-1/2(1.9hair);
+y4=28/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2(1.9cap_bar);
+x2=.5w-c; y2=h; z1=z2;
+penpos6(cap_bar,-90);
+penpos5(1.9hair,0);
+penpos4(1.1cap_curve,90);
+penpos3(1.9hair,0);
+penpos2(cap_bar,-90);
+penstroke z6e{right}..z5e..tension.9..z4e..tension.9..z3e..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-cap_bar,1.2border_height);
+fill S_serif_edge1;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("T",round (11u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-.7u#;
+x1=x2=.5w; y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+%currentpicture := currentpicture shifted(-3.1u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("U",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.7u#;
+x1=cap_jut+1/2cap_stem+s;
+x3=w-s-cap_jut-1/2cap_bar;
+y1c=y3c=h; y2=y4=y5=y6=y24=y56=16/53h; x2=x1l;
+x4=x1r; x5=x3l; x6=x3r;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill z2--z4--reverse serif_edge1--cycle;
+fill z5--z6--reverse A_serif_edge3--cycle;
+x7=x1+.5(x3-x1); y7=0; x4-x24=x24-x2; x6-x56=x56-x5;
+penpos24(cap_stem,-180); penpos7(vair,-90);
+penpos56(cap_bar,0);
+penstroke z24e{down}..tension.9..{right}z7e{right}..tension.9..{up}z56e;
+%currentpicture := currentpicture shifted(-2.2u,0);
+penlabels(range 1 thru 7,24,56);
+endchar;
+
+beginchar("V",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-.7u#;
+x1l=cap_jut+s; x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w-1/2cap_bar; x5=.5w+1/2cap_bar;
+y4=y5=1/2cap_bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+%currentpicture := currentpicture shifted(-3.3u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("W",17u#,cap_height#,0);
+italcorr cap_height#*sind 18-.7u#;
+x9l=.5w-.3cap_stem;
+x7r=w-s-cap_jut;
+y9l=y7r=y1l=h-cap_bar; x5=x9l+.5(x7r-x9l)-1/2cap_bar; x6=x9l+.5(x7r-x9l)+1/2cap_bar;
+y5=y6=y2=y3=1/2cap_bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(7,cap_bar,theta2,1.3cap_jut,cap_jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+cap_jut;
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+z2=z1l+whatever*dir theta1; x3=x2+cap_bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+%currentpicture := currentpicture shifted(-3.3u,0);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("X",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.07u#;
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("Y",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-.7u#;
+x1l=cap_jut+s; x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w;
+y4=8/25h;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+y5c=0; x5=.5w+.5c;
+serif(5,cap_stem,90,cap_jut,cap_jut);
+x6=x5l; x7=x5r;
+z6=z1l+whatever*dir theta1;
+z7=z3r+whatever*dir theta2;
+fill z6--serif_edge5--z7--reverse A_serif_edge3--z2--reverse serif_edge1--z6&cycle;
+%currentpicture := currentpicture shifted(-3.2u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Z",9u#+1.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-.7u#;
+x6=s+1/2cap_bar; y6=y7=y8=1/2cap_bar;
+x8e=w-s; x7=x8;
+T_serif(8,cap_bar,border_height,1);
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4cap_bar;
+x4r=w-s-1/4cap_bar; y4=h-cap_bar;
+penpos4(cap_stem,0);
+penpos5(cap_stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2cap_bar;
+x3=w-s-1/2cap_bar; x1e=s+c;
+T_serif(1,cap_bar,border_height,0);
+x2=x1;
+penpos3(cap_bar,90);
+penpos2(cap_bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e-c; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+currenttransform := identity;
+
+beginchar("a",9u#+2c#,x_height#,0);
+x1=w-s-3/4stem; y1=h; y2=7/33h; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=w-s-bar/3; y4=8/33h;
+penpos1(stem,180);
+penpos2(stem,180);
+penpos3(1.2vair,270);
+penpos4(bar,360);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 60}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+x5=x1-1.25stem; y5=h; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c; y6=.54h; y8=.46h; z8l=whatever[z1r,z2r];
+penpos8(2bar,0);
+penpos5(vair,90);
+penpos6(curve,180);
+penpos7(vair,270);
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=h-c; z10=(x1r+c,h); z11=(x1l-c,h);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar("b",8u#+s#,asc_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(x_height*sind 14/cosd 14); x3=.5w+1/2(x_height*sind 14/cosd 14);
+y1=0; y3=x_height; y2=.54x_height; y4=.46x_height; x2=1/2curve+s; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+y5=h-bar; z5=z2+whatever*dir 76;
+serif(5,stem,-104,jut,0);
+fill z2l--z2r--reverse serif_edge5--cycle;
+fill z5e{dir 76}..z5d{left}..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("c",7.5u#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+x1=4u-1/2(h*sind 18/cosd 18)+c; x3=4u+1/2(h*sind 18/cosd 18); y1=0; y3=h;
+y2=.54h; x2=1/2curve+s; x6=8u-2.5s-1/2vair; y6=9/33h;
+penpos6(vair,135); z4=z3;
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e;
+fill z6l..tension1.5..z6r..tension1.5..cycle;
+ur_drop(4,drop_round,w-s-x3,5/4drop_round,bar);
+fill ur_drop_edge4;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("d",10u#,asc_height#,0);
+x1=w-s-1/2stem; y1=h-bar; y2=11/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem; x4=w-s-1/2bar; y4=10/33x_height; y3=2epsilon;
+serif(1,stem,-104,1.5jut,0);
+penpos2(stem,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+y6=-2epsilon; y8=x_height; x7=1/2curve+s; y7=.54x_height;
+x8=x7+.5(x5-x7)+3/8(x_height*sind 14/cosd 14)+.5c;
+x6=x7+.5(x5-x7)-5/8(x_height*sind 14/cosd 14)+.5c;
+y5r=.46x_height; z5r=whatever[z1l,z2r];
+penpos6(vair,90); penpos7(curve,0);
+penpos8(vair,-90); penpos5(.7curve,180);
+penstroke z6e{left}..tension.9..{dir 76}z7e{dir 76}..{right}z8e..tension.9..{dir 256}z5e{dir 256}..{left}z6e..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("e",8u#+c#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=4/5h; x2=1/2curve+s; x4=w-1/2curve-s; z5r=z2; x6=w-s-s-1/2vair; y6=9/33h;
+penpos5(vair,-270);
+penpos6(vair,135);
+penstroke z6e..z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{dir 194}z5e;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("f",7u#+c#,asc_height#,desc_depth#);
+x1d=w-s; y1d=x_height; y2=7/33x_height;
+serif(1,stem,-104,1.2jut,jut);
+z2=z1+whatever*dir -104; penpos2(stem,180);
+y3l=-2/3d-c; z3l=whatever[z1f,z2l]; penpos3(1.1bar,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penstroke z2e{dir -104}..{dir -104}z3e;
+z4=z3; dl_drop(4,drop_round,1/3d,drop_round,1.1bar);
+y5=h-.95stem; z5=z1l+whatever*dir 80;
+penpos5(bar,0); z6=z5;
+ur_drop(6,drop_round,stem,drop_round,bar);
+fill ur_drop_edge6 rotatedaround(z5,85);
+fill dl_drop_edge4 rotatedaround(z3,76);
+fill z3l..tension1.3..z3r..tension1.3..cycle;
+fill z5l..tension1.3..z5r..tension1.3..cycle;
+fill z1l..z5l--z5r..z1r--cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("g",9u#+c#,x_height#,desc_depth#);
+currenttransform := identity slanted sind 14;
+italcorr x_height#*sind 18-1.42u#;
+penpos1(vair,90); penpos2(o,30);
+penpos3(curve,0); penpos4(o,-30);
+penpos5(vair,-90); penpos6(o,-150);
+penpos7(curve,-180); penpos8(o,-210);
+y3=y7=2/3h; x3=1/2curve+s+c; x7=w-3/2stem-s;
+x1=x5=x3+1/2(x7-x3); y1=3/11h; y5=h;
+y2=y8=y1+0.1(8/11h); y4=y6=y1+0.9(8/11h); x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x9=x7; y9=y7+1/2(y6-y7); y10=h; x10=x7l+c;
+x11e=w-s; y11=y10;
+ur_drop(11,.8stem,x11e-x10,drop_round,bar);
+penpos9(hair,180); penpos10(vair,90);
+penstroke z9e{up}..{right}z10e;
+fill ur_drop_edge11;
+y12=y1; x12=x1; y13=.65y12; x13=s+1/4stem+.5c;
+y14=y15=0; x14=x2r; x15=x8r; y16=y18=-d/2; x16=w-s-1/2stem;
+x18=s+.7hair; y17=-d+1/2bar; x17=s+.6bar+9/20(x16-x18); x19=x14; y19l=y14r;
+penpos12(vair,90); penpos13(1/2curve,180); penpos14(curve,270);
+z144=z14; penpos144(curve,90); penpos15(curve,90);penpos16(1/2curve,0);
+penpos17(vair,-90); penpos18(1.4hair,-180); penpos19(1.4vair,-270);
+penstroke z12e{left}..{down}z13e{down}..{right}z14e;
+penstroke z144e--z15e{right}..tension1..{down}z16e{down}..{left}z17e{left}..{up}z18e{up}..{right}z19e;
+currenttransform := identity;
+penlabels(range 1 thru 19);
+endchar;
+
+beginchar("h",10u#+s#,asc_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-9/8stem; y1=26/33x_height; y2=10/33x_height; z2=z1+whatever*dir -108;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33x_height; y3=y5=y6=0;
+x8=x2; y8=x_height; y9=bar_height-bar; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.2bar,270); penpos9(bar,0);
+penstroke z9e{dir 68}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("i",5u#,asc_height#,0);
+x1=w-s-stem; y1=x_height-bar; y2=11/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem; x4=w-s-1/2bar; y4=10/33x_height; y3=0;
+serif(1,stem,-104,jut,0);
+penpos2(stem,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+x5=x1d-c; y5=h-7/6stem; penpos5(curve,0);
+fill z5l..z5r..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("j",7u#,asc_height#,desc_depth#);
+x5=w-s-1/2stem; x1d=x5+c; y5=h-7/6stem; penpos5(curve,0);
+y1d=x_height; y2=7/33x_height; serif(1,stem,-104,jut,0);
+z2=z1+whatever*dir -104; penpos2(stem,180);
+y3l=-2/3d-c; z3l=whatever[z1f,z2l]; penpos3(1.1bar,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penstroke z2e{dir -104}..{dir -104}z3e;
+fill z1e{dir 76}..z1d{left}..cycle;
+fill z5l..z5r..cycle; z4=z3;
+dl_drop(4,drop_round,1/3d,drop_round,1.1bar);
+fill dl_drop_edge4 rotatedaround(z3,76);
+fill z3l..tension1.3..z3r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("k",10u#+c#,asc_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,1.2jut,0);
+x1=w-s-2*.8stem-c; y1=bar_height-2.5bar; y2=6/33x_height; z2=z1+whatever*dir -104;
+x3=x2+3/4stem; x4=w-s-bar; y4=9/33x_height; y3=y5=y6=0;
+x8=x2-stem; y8=y9=bar_height; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.1bar,270); penpos9(1.1bar,270);
+penstroke z9e{right}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+y11=x_height; x11e=w-s;
+ur_drop(11,drop_round,7/8drop_round,drop_round,1bar);
+z12=z11; x12-x10=x10-x8; y12-y10=y10-y8;
+penpos10(bar,-18); penpos12(bar,270);
+penstroke z8e{right}..{dir 72}z10e{dir 72}..{right}z12e;
+fill ur_drop_edge11;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("l",5u#,asc_height#,0);
+x1=w-s-1/2stem; y1=h-bar; y2=11/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem; x4=w-s-1/2bar; y4=10/33x_height; y3=0;
+serif(1,stem,-104,jut,0);
+penpos2(stem,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("m",14u#+4c#,x_height#,0);
+x11=s+1/2stem; z12=z11+whatever*dir 76; y12=h-bar;
+y11=0; serif(12,stem,-104,jut,0); penpos11(stem,0);
+x1=w-s-9/8stem; y1=26/33h; y2=10/33h; z2=z1+whatever*dir -108;
+x3=x2+3/4stem; x4=w-s-1/2bar; y4=10/33h; y3=0;
+x5=x2; y5=y9=h; y6r=y10l=bar_height-bar; z6r=z7r+whatever*dir 76;
+y13=0; z13=z1+whatever*dir -104; x13-x7=x7-x11; y7=0;
+y8=y1; z8=z7+whatever*dir 76; x1-x5=x8-x9; z10l=whatever[z11r,z12f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos5(1.2bar,270); penpos6(bar,0);
+penpos7(stem,0); penpos8(stem,0);
+penpos9(1.2bar,90); penpos10(bar,180);
+penstroke z6e{dir 68}..{right}z5e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z11l--z11r--reverse serif_edge12--cycle;
+fill z12e{dir 76}..z12d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penstroke z10e{dir 68}..{right}z9e..z8e{dir -104}..z7e;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar("n",10u#+s#,x_height#,0);
+x5=s; x6=x5+stem; z7l=z5+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+x1=w-s-9/8stem; y1=26/33h; y2=10/33h; z2=z1+whatever*dir -108;
+x3=x2+.7stem; x4=w-s-1/2bar; y4=10/33h; y3=y5=y6=0;
+x8=x2; y8=h; y9=bar_height-bar; z9r=whatever[z6,z7f];
+penpos1(stem,180); penpos2(stem,180);
+penpos3(bar,270); penpos4(bar,335);
+penpos8(1.2bar,270); penpos9(bar,0);
+penstroke z9e{dir 68}..{right}z8e..z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z5--z6--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("o",8u#+s#,x_height#,0);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y2=.54h; y4=.46h; x2=1/2curve+s; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("p",9u#+c#,x_height#,desc_depth#);
+penpos1(vair,90);
+penpos2(curve,0);
+penpos3(vair,-90);
+penpos4(curve,-180);
+x1=x2+.5(x4-x2)-1/4(h*sind 14/cosd 14)-c; x3=x2+.5(x4-x2)+3/4(h*sind 14/cosd 14)-c; y1=0; y3=h;
+y2=.54h; y4=.46h; x2=x4-italic_o_width+c; x4=w-1/2curve-s;
+penstroke z1e{left}..tension.9..{dir 76}z2e{dir 76}..{right}z3e..tension.9..{dir 256}z4e{dir 256}..{left}z1e..cycle;
+y5=h-bar; z5=z2+whatever*dir 76;
+serif(5,stem,-104,jut,0); fill z5e{dir 76}..z5d{left}..cycle;
+y6=-d+bar; z6=whatever[z2,z5];
+serif(6,stem,76,.3jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("q",9u#,x_height#,desc_depth#);
+x1=w-s-1/2stem; y1=h-1/2bar; y2=-d+bar; z2=z1+whatever*dir -104;
+serif(2,stem,76,1.3jut,1.3jut);
+penpos1(stem,180);
+fill z1l--z1r--serif_edge2--cycle;
+y6=0; y8=h; x7=1/2curve+s; y7=.54h;
+x8=x7+.5(x5-x7)+3/8(x_height*sind 14/cosd 14)+.5c;
+x6=x7+.5(x5-x7)-5/8(x_height*sind 14/cosd 14)+.5c;
+y5r=.46x_height; z5r=whatever[z1r,z2l];
+penpos6(vair,90); penpos7(curve,0);
+penpos8(vair,-90); penpos5(.7curve,180);
+penstroke z6e{left}..tension.9..{dir 76}z7e{dir 76}..{right}z8e..tension.9..{dir 256}z5e{dir 256}..{left}z6e..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("r",9u#-c#,x_height#,0);
+y2=0; x2=s+1/2stem; penpos2(stem,180);
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+y3l=15/33h; z3l=whatever[z2l,z1f];
+y4=h; x4=w-s-3/4stem; z5=z4;
+penpos3(1.2bar,180); penpos4(1.1bar,90);
+penstroke z3e{dir 76}..{right}z4e;
+ur_drop(5,drop_round,3/4stem,drop_round,1.1bar);
+fill ur_drop_edge5;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("s",8u#-s#,x_height#,0);
+z4=(.5w,.55h); y2=h; y6=0; y5=8/34h;
+z2=z4+whatever*dir 76; z6=z4+whatever*dir -100;
+x5=w-s-.6stem; x3=s+4/5stem; y3=27/34h;
+%z34=z4+whatever*dir 160; z45=z4+whatever*dir -30;
+%x34=x4-1/2stem*sind 40; x45=x4+1/2stem*sind 40;
+penpos2(bar,90); penpos3(.6stem,180);
+penpos5(.6stem,180); penpos6(bar,90);
+%penpos45(stem,250);penpos34(stem,250);
+penpos4(curve,250);
+penstroke z2e{left}..z3e..z4e..z5e..tension1..{left}z6e;
+z1=z2; z7=z6;
+ur_drop(1,drop_round,w-s-x2,drop_round,bar);
+fill ur_drop_edge1;
+dl_drop(7,drop_round,x6-s,1.2drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 12,34,45);
+endchar;
+
+beginchar("t",5u#+s#,asc_height#,0);
+x1=w-s-1/2stem-1.2jut; y1=x_height-bar; y2=9/33x_height;
+z2=z1+whatever*dir -104; z5=whatever[z2,z1]; y5=h-stem;
+x3=x2+1/2stem; x4=w-s-bar; y4=10/33x_height; y3=0;
+serif(1,stem,-104,1.2jut,1.2jut);
+penpos2(stem,180); penpos5(.95stem,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1l--z5l--z5r--z1r--cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("u",10u#+.7s#,x_height#,0);
+x1=w-s-1.1stem; y1=h; y2=10/33h; z2=z1+whatever*dir -104;
+x3=x2+.7stem; x4=w-s-1/2bar; y4=10/33h; y3=y6=0; y5=8/34h;
+x5=s+1/2stem; x6=x5+.9stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,335);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+z7l=z5r+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0);
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("v",9u#-c#,x_height#,0);
+y2=10/33h; x2=s+1/2stem;
+x3=x2+stem; x4=w-s-1/2bar; y4=26/33h; y3=0;
+penpos2(stem,180);
+penpos3(1.1bar,270); penpos4(bar,0);
+penstroke z2e{dir -104}..{right}z3e{dir 5}..tension1.3..{dir 80}z4e;
+z7=z2+whatever*dir 76; y7=h-bar;
+serif(7,stem,-104,jut,0); z9=z4;
+fill z2r--z2l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+ul_drop(9,1.1drop_round,7/33h,.9drop_round,bar);
+fill ul_drop_edge9 rotatedaround(z4,-90);
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("w",12u#+2s#,x_height#,0);
+z77=(.5w,.5h); z1=z77+whatever*dir 76; y1=h; y2=10/33h;
+z2=z1+whatever*dir -104;
+x3=x2+.9stem; x4=w-s-1/2bar; y4=26/33h; y3=y6=0; y5=8/34h;
+x5=s+1/2stem; x6=x5+.9stem;
+penpos1(stem,180); penpos2(stem,180);
+z8l=whatever[z2r,z1r]; y8l=15/33h;
+penpos3(1.1bar,270); penpos4(bar,0);
+penpos5(stem,180); penpos6(1.1bar,270);
+penpos8(bar,360);
+penstroke z5e{dir -104}..z6e{right}..{dir 76}z8e;
+penstroke z1e{dir -104}..z2e{dir -104}..{right}z3e{dir 5}..tension1.3..{dir 80}z4e;
+z7l=z5r+whatever*dir 76; y7l=h-bar;
+serif(7,stem,-104,jut,0); z9=z4;
+fill z5r--z5l--reverse serif_edge7--cycle;
+fill z7e{dir 76}..z7d{left}..cycle;
+ul_drop(9,1.1drop_round,7/33h,.9drop_round,bar);
+fill ul_drop_edge9 rotatedaround(z4,-90);
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("x",10u#+c#,x_height#,0);
+penpos1(1.2vair,90);
+penpos2(curve,0);
+penpos3(vair,-90); penpos12(curve,0);
+x1=x3-(h*sind 14/cosd 14); x3=w-s-3/4stem; y1=0; y3=h;
+y2=.51h; x2=x1-27/40stem;
+x5=w-s-.7stem; y5=7/33h;
+penpos5(vair,150); z4=z3;
+penstroke z5e..z1e{left}..{dir 76}z2e{dir 76}..{right}z3e;
+fill z5l..tension1.5..z5r..tension1.5..cycle;
+ur_drop(4,drop_round,3/4stem,drop_round,bar);
+fill ur_drop_edge4;
+x10=w-x5; y10=26/33h; x11=w-x1; y11=h; x12=w-x2; y12=.49h;
+x13=w-x3; y13=-2epsilon; z14=z13;
+penpos10(bar,150); penpos11(bar,90);
+penpos13(bar,-90);
+penstroke z10e..z11e{right}..{dir -104}z12e{dir -104}..{left}z13e;
+fill z10l..tension1.5..z10r..tension1.5..cycle; z14=z13;
+dl_drop(14,drop_round,3/4stem,drop_round,bar);
+fill dl_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar("y",10u#,x_height#,desc_depth#);
+x5=w-s-1/2stem; y5=h; y6=10/33h; z6=z5+whatever*dir -104;
+y3=0; y2=8/34h; x2=s+stem; x3=x2+.9stem;
+y7=0; z7=z6+whatever*dir -104;
+penpos5(stem,180); penpos6(stem,180);
+z8r=z7r+whatever*dir -108; y8r=-1/2d;
+z4l=whatever[z6r,z5r]; y4l=15/33h;
+penpos2(stem,180); penpos3(1.1bar,270);
+y9=-d; x9=x2l-s; z10=z9;
+penpos4(bar,360); penpos7(stem,180);
+penpos8(.8stem,180); penpos9(bar,90);
+penstroke z2e{dir -104}..z3e{right}..{dir 76}z4e;
+z1l=z2r+whatever*dir 76; y1l=h-bar;
+serif(1,stem,-104,jut,0);
+fill z2r--z2l--reverse serif_edge1--cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+penstroke z5e{dir -104}..z6e..z7e..z8e..{left}z9e;
+dl_drop(10,.9stem,x9-s,1.2drop_round,bar);
+fill dl_drop_edge10; fill z10e..z10c..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("z",8u#,x_height#,0);
+y2=y3=h-1/2(.8stem); y1=y2l+1/2bar;
+x3=w-s-3/4stem; x1e=s+1/2stem; x2=x1;
+T_serif(1,bar,.8border_height,0);
+penpos3(.8stem,90); penpos2(.8stem,90);
+penstroke z2e--z3e; fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+2c;
+fill z1r--z1f--z12--z2r--cycle;
+unfill z1d{up}..z13--z12--cycle;
+x4=w-s-bar*sind 45; y4=h-bar*sind 28;
+x5=w-x4; y5=h-y4; z34=(x4,h);
+penpos4(bar,152); penpos5(bar,152);
+penstroke z4e--z5e; fill z4l..tension1.2..z4r..tension1.2..cycle;
+fill z5l..tension1.2..z5r..tension1.2..cycle;
+fill z3l--z3r--z34--cycle;
+x7=.5w-c; y7=.4stem; penpos7(.9stem,90);
+x8l=x7+.6stem; y8l=0; penpos8(.6stem,90);
+x9=w-s-.9stem; y9=bar; penpos9(bar,90); z10=z9;
+penstroke z5e{dir 62}..{right}z7e..z8e..z9e;
+dl_drop(10,drop_round,1.2stem,drop_round,bar);
+fill dl_drop_edge10 reflectedabout(z9l,z9r) rotatedaround(z9,28);
+fill z9r..z9l..cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(hex"30",10u#,cap_height#,0);
+penpos1(vair,90);
+penpos2(cap_curve,0);
+penpos3(vair,-90);
+penpos4(cap_curve,-180);
+x1=.5w-1/2(h*sind 10/cosd 10); x3=.5w+1/2(h*sind 10/cosd 10); y1=0; y3=h;
+y2=.47h; y4=.53h; x2=1/2cap_curve+s; x4=w-1/2cap_curve-s;
+penstroke z1e{left}..tension.9..{dir 80}z2e{dir 80}..tension1.2..{right}z3e..tension.9..{dir 260}z4e{dir 260}..tension1.2..{left}z1e..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"31",10u#-3/2s#,cap_height#,0);
+y1c=0; x1g=s; y2=y3=h; x3=x2-1/2cap_stem;
+serif(1,cap_stem,72,1.5cap_jut,1.5cap_jut);
+z2=z1f+whatever*dir 72;
+y6=y7=h-cap_stem; y5=y4=y6+cap_bar; y8=y6+.3c;
+z8=z1a+whatever*dir 72;
+x7=x3-1.2stem; x6=x5=x7-.6cap_stem; x4=x7-cap_bar;
+fill serif_edge1--z2{dir 150}..{dir 210}z3{dir 230}..{left}z4--z5{left}..z6--z7..z8--cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"32",10u#,cap_height#,0);
+y2=43/53h; x3=22/37w; y3=h; x2=8/37h;
+z1=z3; x4=w-s-1/2cap_curve; y4=41/53h;
+x5=s+1/2hair; y5=6/53h; x6=x5+2cap_bar; y6=y5+1/2cap_bar;
+y7=1/2curve-1/4cap_bar; x7=.47w; x8=w-s-2.5cap_bar;
+y8=15/53h; penpos6(.4cap_stem,90);
+penpos7(cap_curve,90); penpos8(bar,150);
+penpos2(bar,0); penpos3(vair,-90);
+penpos4(cap_curve,180); penpos5(bar,180);
+penstroke z3e{right}..{dir -104}z4e{dir -100}.. {dir -104}z5e; %z2e{dir 76}..{right}
+penstroke z5e..z6e{dir 10}..z7e{dir -10}..{dir 60}z8e;
+fill z8r..tension1.3..z8l..tension1.3..cycle;
+ul_drop(1,cap_drop_round,x3-x2+bar,1.3cap_curve,cap_bar);
+fill ul_drop_edge1;% rotatedaround(z2,90);
+x9=s-.1c; y9=1/2cap_bar; y10=-1/2cap_bar; x10=x9+cap_bar;
+x11=x10+cap_bar; y11=1/3cap_bar; x12=x11-2/3cap_bar; y12=3/2cap_bar;
+fill z5r..z9..z10..z11{up}..z12..{dir 10}z6l{dir 130}..{dir 190}z5r..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"33",10u#,cap_height#,0);
+penpos2(vair,90); penpos5(cap_bar,-90);
+penpos4(vair,-90); penpos3(cap_curve,-180);
+x2=.5w-1/2(h*sind 14/cosd 14); y2=0; y4=cap_bar_height+c;
+z4=z2+whatever*dir 76; y5=y4-1/3cap_bar-.5c;
+y3=13/53h; x5=cap_curve+s+bar; x3=w-cap_curve-s; z1=z2;
+y6=y5r; x6=x5; x7=w-s-1/2cap_curve; y7=41/53h; z8=z4+whatever*dir 82;
+y8=h; z9=z8; penpos67(cap_bar,110); penpos8(cap_bar,-90);
+penpos6(cap_bar,90); penpos7(.9cap_curve,180); z67=z4;
+penstroke z5e...{right}z4e..tension1..{dir 256}z3e{dir 256}..tension1.2..{left}z2e;
+penstroke z8e{right}..tension.9..{dir -100}z7e{dir -100}..tension.9..z67e{dir 210}..z6e;
+fill z5l..tension1.2..z6l..tension1.2..cycle;
+dl_drop(1,cap_drop_round,x1-s,cap_drop_round,cap_bar);
+fill dl_drop_edge1; fill z1e..z1c..cycle;
+ul_drop(9,cap_drop_round,x8-x5+2bar,cap_curve,cap_bar);
+fill ul_drop_edge9;
+penlabels(1,2,3,4,5,6,7,8,9,67);
+endchar;
+
+beginchar(hex"34",10u#,cap_height#,0);
+y1c=0; x1g=s+1/2cap_stem; y2=h-stem;
+serif(1,cap_stem,72,1.5cap_jut,1.5cap_jut);
+z2=z1+whatever*dir 72; penpos2(cap_stem,0);
+fill serif_edge1--z2r--z2l--cycle;
+z3r=whatever[z1f,z2r]; y3r=h; penpos3(.7cap_stem,0);
+penstroke z2e--z3e; y6=y7=16/53h; x7=w-2s; x6=s+1/2cap_bar;
+penpos6(1.2cap_bar,90); penpos7(1.2cap_bar,90);
+penstroke z6e--z7e; fill z6l..tension1.4..z6r..tension1.4..cycle;
+fill z7l..tension1.2..z7r..tension1.2..cycle;
+z5l=z6r; z4l=z3l; penpos4(1.2cap_bar,-20); penpos5(1.2cap_bar,-20);
+penstroke z4e--z5e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"35",10u#,cap_height#,0);
+penpos2(vair,90); penpos5(cap_bar,0);
+penpos4(vair,-90); penpos3(cap_curve,-180);
+x2=.5w-1/2(h*sind 14/cosd 14); y2=0; y4=34/54h; z4=z2+whatever*dir 76;
+y5=y4-2.8cap_bar; y3=15/53h; x5=cap_curve+s; x3=w-cap_curve-s; z1=z2;
+penstroke z5e...{right}z4e..tension1..{dir 256}z3e{dir 256}..tension1.2..{left}z2e;
+z6=z5+whatever*dir 72; y6=h-1/3cap_bar;
+penpos6(cap_bar,0); penstroke z5e--z6e;
+fill z6r..tension1.5..z6l..tension1.5..cycle;
+fill z5r..tension1.3..z5l..tension1.3..cycle;
+y7r=y6r; x7r=x6r-.05c; y8=h-4/6cap_curve;
+x8=x7+5/4cap_curve; x9=w-s-.25cap_bar;
+y9=h-cap_bar*cosd 45; penpos7(.9cap_curve,72); penpos8(.7cap_curve,90);
+penpos9(1.2cap_bar,120); penstroke z7e{dir -18}..z8e..z9e;
+fill z9r..tension1.3..z9l..tension1.3..cycle;
+dl_drop(1,cap_drop_round,x1-s,cap_drop_round,cap_bar);
+fill dl_drop_edge1; fill z1e..z1c..cycle;
+penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(hex"36",10u#-c#,cap_height#,0);
+penpos1(vair,90); penpos4(.8cap_curve,0);
+penpos3(vair,-90); penpos2(cap_curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y4=38/53h; y2=.53h; x4=cap_curve+s; x2=w-1/2cap_curve-s;
+x5=.505w; y5=21/53h; penpos5(vair,90); z7=z1;
+y6r=y2+2s; z6r=z2r+whatever*dir 76; penpos6(2cap_bar,-180);
+penstroke z6e{dir 256}..{left}z5e{left}..tension.9..{dir 76}z4e{dir 76}..tension.9..{right}z3e..tension1..{dir 256}z2e{dir 256}..tension1.2..{left}z1e; z8=(.5w,.5h);
+dl_drop(7,cap_drop_round,x1-s,cap_drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+currentpicture := currentpicture rotatedaround(z8,180);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"37",9u#-c#,cap_height#,0);
+x1=s+1/2cap_bar; y1=36/53h; y2=.98h; z2=z1+whatever*dir 70;
+x3=16.5/34w; y4=44/53h; y3=47/53h; z4=z3+whatever*dir -45;
+x5=24/34w; y5=43/53h; x6=w-s-1/2*(3/2cap_bar); y6=y2;
+x7=8/34w; y7=1/2cap_curve;
+penpos1(cap_bar,180); penpos2(cap_bar,180);
+penpos3(.9cap_curve,45); penpos4(.9cap_curve,45);
+penpos5(2cap_bar,110); penpos6(3/2cap_bar,180);
+z67l=z6l;
+penpos7(cap_curve,180); penpos67(cap_bar,180);
+penstroke z1e--z2e;
+penstroke z1e{dir 70}..{dir -45}z3e--z4e{dir -45}..z5e..{up}z6e;
+penstroke z67e{down}..{dir -94}z7e;
+fill z7r..z7l..cycle; fill z1r..tension1.3..z1l..tension1.3..cycle;
+fill z2r..tension1.3..z2l..tension1.3..cycle;
+fill z6r..tension1.3..z6l..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"38",10u#,cap_height#,0);
+y1=0; x1=15/37w; y5=h; z5=z1+whatever*dir 78;
+y7=29/53h; z7=whatever[z1,z5]; x2=s+1/2(.6cap_stem);
+x4=w-x2; y2=13/53h; y4=43/53h; z3=z7; y6=44/53h; 3(x5-x6)=4(x4-x5);
+5(x1-x2)=4(x8-x1); y8=11/53h; penpos7(cap_curve,48);
+y67l=y7+.05cap_stem; y78=y7-.6cap_stem;
+z67l=z7l+whatever*dir 138; penpos67(cap_curve,40);
+z78=whatever[z67,z7]; penpos78(cap_curve,30);
+penpos1(cap_bar,-90); penpos2(.7stem,-180);
+penpos3(cap_bar,-235); penpos4(.6stem,-180);
+penpos5(cap_bar,-90); penpos6(.7stem, 0);
+penpos8(.7stem,0);
+penstroke z1e{left}..{dir 82}z2e{dir 78}..z3e..{dir 78}z4e{dir 78}..{left}z5e{left}..z6e..z67e..z7e..z78e..tension.9..z8e..{left}z1e;
+penlabels(1,2,3,4,5,6,7,8,67,78);
+endchar;
+
+beginchar(hex"39",10u#-c#,cap_height#,0);
+penpos1(vair,90); penpos4(.8cap_curve,0);
+penpos3(vair,-90); penpos2(cap_curve,-180);
+x1=.5w-1/2(h*sind 14/cosd 14); x3=.5w+1/2(h*sind 14/cosd 14); y1=0; y3=h;
+y4=38/53h; y2=.53h; x4=cap_curve+s; x2=w-1/2cap_curve-s;
+x5=.505w; y5=21/53h; penpos5(vair,90); z7=z1;
+y6r=y2+2s; z6r=z2r+whatever*dir 76; penpos6(2cap_bar,-180);
+penstroke z6e{dir 256}..{left}z5e{left}..tension.9..{dir 76}z4e{dir 76}..tension.9..{right}z3e..tension1..{dir 256}z2e{dir 256}..tension1.2..{left}z1e; z8=(.5w,.5h);
+dl_drop(7,cap_drop_round,x1-s,cap_drop_round,cap_bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(oct"56",cap_stem#+2s#,cap_stem#,0);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+endchar;
+
+beginchar(oct"54",cap_stem#+2s#+c#,cap_stem#,comma_depth#);
+ currenttransform := identity slanted sind 14;
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"60",cap_stem#+2s#+c#,asc_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(oct"41", cap_stem#+2s#,cap_height#,0); "Exclamation mark";
+ italcorr cap_height#*sind 18-1.4u#;
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+ x3=.5w-1/2cap_bar; x4=.5w+1/2cap_bar; y3=y4=3/2cap_stem;
+ x6=x1; x5=x2; y5=y6=h;
+ fill z6--z3..z4--z5{up}..z6&cycle;
+endchar;
+
+beginchar(hex"22",2cap_stem#+3s#+2c#,cap_height#,0);
+ z1=(s,h-1/2cap_stem); z2=(x1+cap_stem+c,h-1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-cap_stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture shifted((sind 18)*-w*1.3,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"5C",2cap_stem#+3s#+2c#,cap_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(x1+cap_stem+c,1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+currenttransform := identity;
+
+beginchar(hex"7b",10u#-1.5c#,x_height#,0); "En dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"3D",10u#+1.5c#,x_height#,0);
+ z1=(s+1/2bar,bar_height-3c); z2=(w-s-1/2bar,bar_height-3c);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+3c); z4=(w-s-1/2bar,bar_height+3c);
+ penpos3(bar,90); penpos4(bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"23",13u#,asc_height#,body_depth#);
+ z1=(s+1/2bar,bar_height-5c); z2=(w-s-1/2bar,bar_height-5c);
+ penpos1(1.5bar,90); penpos2(1.5bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+5c); z4=(w-s-1/2bar,bar_height+5c);
+ penpos3(1.5bar,90); penpos4(1.5bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ z5=(.5w-5c,bar_height); z6=(.5w+5c,bar_height);
+ z7=z5+whatever*dir 76; y7=h; z8=whatever[z5,z7]; y8=-d;
+ penpos7(1.5bar,0); penpos8(1.5bar,0);
+ fill z7l{up}..{down}z7r--z8r{down}..{up}z8l--z7l&cycle;
+ z9=z6+whatever*dir 76; y9=h; z10=whatever[z6,z9]; y10=-d;
+ penpos9(1.5bar,0); penpos10(1.5bar,0);
+ fill z9l{up}..{down}z9r--z10r{down}..{up}z10l--z9l&cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"7c",14u#,x_height#,0); "Em dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(oct"55",2cap_jut#+cap_stem#+2s#,x_height#,0); "hyphen";
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"5F",1.1stem#+2s#,x_height#+2.1stem#,0);
+ z1=(.5w,h); z2=(.5w,h-1.1stem);
+ fill z1..z2..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7E",7u#,body_height#,0);
+ pickup pencircle xscaled pt yscaled .2pt rotated 55;
+ z4=(w-s-c,h-s); x1=s+c; y1=y4-1/2cap_stem;
+ y2-y1=y4-y3=3(y4-y1); z2-z1=z4-z3=whatever * dir 55;
+ draw z1..controls z2 and z3..z4;
+ penlabels(1,2,3,4);
+endchar;
+
+currenttransform := identity slanted sind 14;
+beginchar(hex"3C",7u#-2c#,x_height#,0); "looks like <<";
+ italcorr x_height#*sind 18-1.4u#;
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.5stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ %currentpicture := currentpicture shifted(-1.2u,0);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3E",7u#-2c#,x_height#,0);
+ italcorr x_height#*sind 18-1.5u#;
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.5stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ z10=(.5w,.5h);
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ currentpicture := currentpicture rotatedaround(z10,180) shifted((sind 18)*w*1.3,0);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3B",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ italcorr cap_height#*sind 18-2.53u#;
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+3/2c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ z8=(s,h-1/2cap_stem); z9=(w-s,h-1/2cap_stem);
+ fill z8..z9..cycle;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(hex"3A",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ italcorr cap_height#*sind 18-2.53u#;
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ fill z1..z2..cycle;
+ penlabels(1,2,3,4);
+ z3=(s,1/2cap_stem); z4=(w-s,1/2cap_stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2B",2cap_jut#+cap_stem#+2s#,x_height#,0);
+ italcorr x_height#*sind 18-1.9u#;
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ x3=x4=.5w; y3=y2+1/2(x2-x1); y4=y2-1/2(x2-x1);
+ penpos3(1.8bar,0); penpos4(1.8bar,0);
+ penstroke z3e--z4e;
+ fill z3r..z3l..cycle; fill z4r..z4l..cycle;
+ %currentpicture := currentpicture shifted(-u,0);
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2F",2s#+bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.55u#;
+ z1=(.5w,h-.5bar); z2=(.5w,-d+.5bar);
+ %pickup pencircle xscaled bar yscaled bar;
+ penpos1(bar,0); penpos2(bar,0);
+ penstroke z1e--z2e; fill z1r..z1l..cycle;
+ fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"27",cap_stem#+2s#+c#,x_height#+2.1stem#,0);
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ z6=(.5w-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ currentpicture := currentpicture shifted((sind 18)*-w*1.3,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"28",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.62u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"29",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-3.25u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180) shifted((sind 18)*w*1.3,0);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"0E",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.64u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"0F",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180) shifted((sind 18)*w*1.3,0);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"5B",2s#+3cap_bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.56u#;
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x2,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z1r..z1l..cycle; fill z6r..z6l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"5D",2s#+3cap_bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.54u#;
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x1,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z2r..z2l..cycle; fill z5r..z5l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"B9",16u#,cap_height#,0);
+ italcorr cap_height#*sind 18-2.87u#;
+ x1=x2=cap_jut+1/2cap_bar+s+cap_stem;
+ x3=w-x1-1/2cap_stem; y1c=h; y4=y5=0;
+ x4=x3r; x5=x3l; y2=12/53h; y3=h-y2;
+ x8=x2-stem; y8=0; z9=z8;
+ dl_drop(9,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill dl_drop_edge9; penpos8(bar,-90);
+ serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+ penpos2(bar,0); penpos3(bar,0);
+ penstroke z2e{down}..{left}z8e;
+ fill z2l--z2r--reverse serif_edge1--cycle;
+ numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+ theta1=angle(z5-z7); x10=x3+stem; y10=h; z11=z10;
+ penpos10(bar,-90); penstroke z3e{up}..{right}z10e;
+ ur_drop(11,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill ur_drop_edge11;
+ z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+ fill z6--z1h--z7--z5{down}..{up}z4--z3r--z3l--cycle;
+ unfill z1b--z1l--z1a--cycle;
+ y12=y13=2cap_bar; x12=x4+2cap_bar+s; x13=w-2s;
+ penpos12(.4stem,90); penpos13(.4stem,90);
+ penstroke z12e--z13e; y16=y11d-4cap_bar;
+ x13-x14=x14-x12; x16=x14; y14=y13+4cap_bar;
+ x17=w-s-1/4stem; x17-x16=x16-x15; y16-y15=y15-y14;
+ y17=y15; penpos17(.6stem,0); penpos16(bar,90);
+ penpos15(.6stem,180); penpos14(bar,270);
+ penstroke z17e{up}..{left}z16e{left}..{down}z15e{down}..{right}z14e{right}..{up}z17e;
+ fill z12l..tension1.2..z12r..tension1.2..cycle;
+ fill z13l..tension1.2..z13r..tension1.2..cycle;
+ penlabels(range 1 thru 17);
+endchar;
+
+beginchar(hex"24",9u#-s#,body_height#,body_height#-cap_height#);
+ italcorr body_height#*sind 18-2.3u#;
+ x6=x7=1/2w-c; y6=y7=0;
+ dl_drop(7,cap_drop_round,x6-s,1.5drop_round,cap_bar);
+ y5=11/53cap_height; x5=w-s-1/2(1.9hair);
+ y4=28/53cap_height; x4=18/38w; y3=42/53cap_height; x3=s+1/2(1.9cap_bar);
+ x2=.5w+c; y2=cap_height; z1=z2;
+ penpos6(cap_bar,-90); penpos5(1.9hair,0);
+ penpos4(cap_curve,90); penpos3(1.9hair,0);
+ penpos2(cap_bar,-90);
+ penstroke z6e{right}..z5e..tension.9..z4e..tension.9..z3e..{right}z2e;
+ fill dl_drop_edge7;
+ ur_drop(1,cap_drop_round,w-s-x2,1.5drop_round,cap_bar);
+ fill ur_drop_edge1;
+ z8=(.5w,h); z9=(.5w,-d);
+ penpos8(cap_bar,0); penpos9(cap_bar,0);
+ penstroke z8e--z9e;
+ fill z9r..z9l..cycle; fill z8r..z8l..cycle;
+ %currentpicture := currentpicture shifted(-.7u,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"25",12u#,asc_height#,0);
+italcorr asc_height#*sind 18-3u#;
+penpos1(vair,90); penpos2(.6curve,0);
+penpos3(vair,-90); penpos4(.6curve,-180);
+y1=.55h; y3=h; y3-y4=y4-y1; y2=y4; x2=1/4curve+s; x4=2.1curve+s;
+x4-x1=x1-x2; x3=x1;
+penstroke z1e{left}..tension.9..{up}z2e{up}..tension1.2..{right}z3e..tension.9..{down}z4e{down}..tension1.2..{left}z1e..cycle;
+penpos5(vair,90); penpos6(.6curve,0);
+penpos7(vair,-90); penpos8(.6curve,-180);
+y5=0; y7=.45h; y7-y8=y8-y5; y6=y8; x8=w-1/4curve-s; x6=w-2.1curve-s;
+x8-x5=x5-x6; x7=x5;
+penstroke z5e{left}..tension.9..{up}z6e{up}..tension1.2..{right}z7e..tension.9..{down}z8e{down}..tension1.2..{left}z5e..cycle;
+x9l=x7; y9=h; x10r=x1; y10=0;
+penpos9(1.2bar,0); penpos10(1.2bar,0);
+penstroke z9e--z10e;
+%currentpicture := currentpicture shifted(-1.2u,0);
+penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"26",14u#,cap_height#,0);
+italcorr cap_height#*sind 18-2.8u#;
+x4=x8=x3+.8curve; y6=0; y2=h; x2=x3+.7cap_curve;
+y7=13/53h; y5=9/53h; x5=x7+3.1cap_curve; x6=x7+1.8cap_curve;
+y4=y8=30/53h; y1=44/53h; y3=42/53h; x3=2s+curve;
+x1=x3+1.8cap_curve; x7=s+1/2cap_curve;
+x10=w-s; y10=9/53h; x10-x9=x9-x5; y9=1/5cap_curve;
+th:=angle(z4-z5)+5; th1:=th-11; x11h=w-s-c; y11h=y1-4s;
+A_serif(11,cap_bar,-110,cap_jut,cap_jut); z12l=z11a;
+penpos6(cap_bar,-90); penpos5(.9cap_stem,45);
+penpos4(.9cap_stem,45); penpos3(2.5hair,0);
+penpos2(cap_bar,-90); penpos1(2hair,-180);
+penpos7(cap_curve,-180); penpos8(cap_bar,-250);
+penpos9(.5cap_curve,70); penpos10(cap_bar,150);
+penpos12(cap_bar,0);
+penstroke z10e..z9e..z5e{dir th}..{dir th1}z4e..tension.9..z3e..tension1..z2e{right}..tension.9..z1e..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e{dir 8}..{dir 70}z12e;
+fill z12l--z12r..reverse A_serif_edge11--cycle;
+fill z10l..tension1.3..z10r..tension1.3..cycle;
+%currentpicture := currentpicture shifted(-.9u,0);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+currenttransform := identity;
+
+beginchar(hex"40",14u#+c#,x_height#+2curve#,2curve#);
+a_width:=9u+2c-2s;
+x1=2s+a_width-s-3/4stem+1.5curve; y1=x_height; y2=7/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=3s+a_width+1.5curve; y4=15/33x_height;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.2vair,270); penpos4(bar,360);
+x5=x1-1.25stem; y5=x_height; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c+1.5curve; y6=.54x_height; y8=.46x_height; z8l=whatever[z1r,z2r];
+x13=x5; y13=h-1/2bar; x14=s+1/2bar; y14=y6; y15=-d+1/2bar; x15=x7;
+x16=x4; y16=-d+3bar; penpos7(vair,270); penpos16(bar,270);
+penpos13(bar,90); penpos14(bar,180); penpos15(bar,270);
+penpos8(2bar,0); penpos5(vair,90); penpos6(curve,180);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 80}z4e..z13e{left}..z14e..{right}z15e..z16e;
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=x_height-c; z10=(x1r+c,x_height); z11=(x1l-c,x_height);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+fill z16r..z16l..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar(hex"12",1.5cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=s+.45cap_stem*cosd 45;
+x2=w-s+cap_bar*cosd 45; z2=z1+whatever*dir -45;
+penpos1(.8cap_stem,45); penpos2(cap_bar,45);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"13",1.5cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=w-s-.45cap_stem*cosd 45;
+x2=s-cap_bar*cosd 45; z2=z1+whatever*dir -135;
+penpos1(.8cap_stem,135); penpos2(cap_bar,135);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"3F",8u#+3c#,cap_height#,0);
+ x1=s+1/2cap_stem; y1=1/2cap_stem;
+ penpos1(cap_stem,0);
+ fill z1r..z1l..cycle;
+ y2=cap_stem+4/5cap_bar; z2=z1+whatever*dir 78;
+ z3l=z2l+whatever*dir 78; y3l=21/53h;
+ penpos2(cap_bar,0); penpos3(1.3cap_bar,0);
+ penstroke z2e--z3e;
+ z4r=z3l; penpos4(cap_bar,90);
+ y5=y4; x5=x4+2cap_bar; penpos7(cap_bar,-90);
+ x6=w-s-1/2cap_curve; y6=35/51h; x7=18/31w; y7=h;
+ penpos5(cap_bar,90); penpos6(cap_curve,180); z8=z7;
+ penstroke z4e--z5e{right}..tension1.2..{dir 78}z6e{dir 78}..tension1.1..{left}z7e;
+ ul_drop(8,cap_drop_round,x7-x3+cap_bar,cap_curve,cap_bar);
+ fill ul_drop_edge8;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"10",5u#,asc_height#,0);
+x1=w-s-stem; y1=x_height-bar; y2=11/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem; x4=w-s-1/2bar; y4=10/33x_height; y3=0;
+serif(1,stem,-104,jut,0);
+penpos2(stem,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penpos3(1.1bar,270); penpos4(bar,335);
+penstroke z2e{dir -104}..{right}z3e{dir 20}..{dir 65}z4e;
+fill z4l..tension1.3..z4r..tension1.3..cycle;
+fill z1e{dir 76}..z1d{left}..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"11",7u#-c#,asc_height#,desc_depth#);
+x1d=w-s; y1d=x_height; y2=7/33x_height; serif(1,stem,-104,jut,0);
+z2=z1+whatever*dir -104; penpos2(stem,180);
+y3l=-2/3d-c; z3l=whatever[z1f,z2l]; penpos3(1.1bar,180);
+fill z2r--z2l--reverse serif_edge1--cycle;
+penstroke z2e{dir -104}..{dir -104}z3e;
+fill z1e{dir 76}..z1d{left}..cycle; z4=z3;
+dl_drop(4,drop_round,1/3d,drop_round,1.1bar);
+fill dl_drop_edge4 rotatedaround(z3,76);
+fill z3l..tension1.3..z3r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"2A",3cap_stem#+3s#,body_height#,0);
+ x1=x2=x3=x4=.5w; y1=h-1/2stem; y2=y1-cap_stem; y3=y2-bar; y4=y3-bar;
+ penpos1(stem,0); penpos2(cap_bar,0); penpos3(2cap_bar,0);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle;
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,60);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,120);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,180);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,240);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,300);
+ penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"5E",6u#,body_height#,0);
+ x1=s+.45cap_bar*cosd 45; x2=w/2; y2=h-bar;
+ z1=z2+whatever*dir -135; x3=w-x1; z3=z2+whatever*dir -45;
+ penpos1(bar,135); penpos2(2bar,90); penpos3(bar,45);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"16",6u#,body_height#,0);
+ x1=s; x2=w-x1; y1=y2=h-4bar;
+ penpos1(.8bar,90); penpos2(.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7F",2stem#+4s#,x_height#+2.1stem#,0);
+ z1=(s+.5stem,h); z2=(s+.5stem,h-stem);
+ fill z1..z2..cycle;
+ z3=(w-s-.5stem,h); z4=(w-s-.5stem,h-stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+ligtable "7":
+ "8" kern -kk#,
+ "A" kern -kkk#,
+ CYR_A kern -kkk#,
+ "f" kern -kk#,
+ "j" kern -kkk#,
+ "g" kern -kkk#,
+ CYR_el kern -kkk#,
+ CYR_em kern -kkk#,
+ CYR_u kern -k#,
+ CYR_er kern -k#,
+ CYR_ya kern -kk#,
+ "c" kern -k#,
+ "q" kern -k#,
+ "p" kern -k#;
+
+ligtable CYR_A: "A":
+ CYR_O kern -k#,
+ CYR_ES kern -k#,
+ CYR_TE kern -k#,
+ CYR_U kern -kk#,
+ CYR_EF kern -k#,
+ CYR_CHE kern -kk#,
+ CYR_HARD_SIGN kern -k#,
+ CYR_che kern -k#,
+ "W" kern -kkk#,
+ "V" kern -kkk#,
+ "Y" kern -kk#,
+ "T" kern -k#;
+
+ligtable CYR_GHE: CYR_TE: "T":
+ CYR_A kern -kk#,
+ CYR_DE kern -k#,
+ CYR_EL kern -kk#,
+ "l" kern kk#,
+ "t" kern k#,
+ "i" kern k#,
+ "k" kern kk#,
+ "b" kern kk#,
+ "h" kern kk#;
+
+ligtable CYR_E: CYR_YU:
+ CYR_U kern -k#,
+ CYR_be kern k#,
+ CYR_te kern kk#,
+ CYR_o kern k#,
+ CYR_pe kern k#,
+ CYR_er kern k#,
+ CYR_ka kern k#,
+ CYR_en kern k#,
+ CYR_che kern kk#,
+ CYR_sha kern kk#,
+ CYR_yu kern k#,
+ CYR_u kern k#,
+ "b" kern k#,
+ "t" kern kk#,
+ CYR_HA kern -k#;
+
+ligtable CYR_O: CYR_EF: "D": "O": "Q":
+ CYR_yeru kern k#,
+ CYR_pe kern k#,
+ CYR_en kern k#,
+ CYR_o kern k#,
+ CYR_be kern k#,
+ CYR_HA kern -k#,
+ CYR_te kern kk#,
+ CYR_ef kern k#,
+ CYR_er kern k#,
+ CYR_ka kern k#,
+ CYR_che kern kk#,
+ CYR_sha kern kk#,
+ CYR_yu kern k#,
+ CYR_u kern k#,
+ "o" kern k#,
+ "e" kern k#,
+ "q" kern k#,
+ "l" kern k#,
+ "p" kern k#,
+ "t" kern k#,
+ "u" kern kk#,
+ "b" kern k#,
+ "X" kern -k#;
+
+ligtable CYR_ER: "P":
+ CYR_A kern -kk#,
+ CYR_el kern -k#,
+ CYR_te kern k#,
+ CYR_pe kern k#,
+ "p" kern k#,
+ CYR_ka kern k#,
+ CYR_en kern k#,
+ CYR_che kern kk#,
+ CYR_sha kern kk#,
+ CYR_yu kern k#,
+ CYR_u kern k#,
+ "i" kern k#,
+ "b" kern k#,
+ "u" kern k#,
+ "l" kern k#,
+ "r" kern k#;
+
+ligtable CYR_ES: "C":
+ CYR_i kern kk#,
+ CYR_pe kern k#,
+ CYR_ve kern k#,
+ "7" kern kk#,
+ "l" kern kk#,
+ "n" kern k#,
+ "h" kern k#,
+ CYR_o kern k#;
+
+ligtable CYR_EN:
+ CYR_i kern k#;
+
+ligtable CYR_U:
+ CYR_A kern -kkk#,
+ CYR_O kern -k#,
+ CYR_ES kern -k#,
+ CYR_EF kern -k#;
+
+ligtable CYR_HA: "X":
+ CYR_ES kern -k#,
+ CYR_EF kern -k#,
+ CYR_O kern -k#,
+ "O" kern -k#,
+ "Q" kern -k#,
+ "C" kern -k#,
+ "G" kern -k#;
+
+ligtable CYR_be:
+ CYR_a kern -kk#,
+ CYR_o kern -kk#,
+ "a" kern -kk#,
+ "o" kern -kk#,
+ "e" kern -kk#,
+ "c" kern -k#,
+ "x" kern -kk#,
+ "p" kern -kk#,
+ CYR_ie kern -kk#,
+ CYR_ze kern -kk#,
+ CYR_el kern -kk#,
+ CYR_em kern -kk#,
+ CYR_es kern -k#,
+ CYR_ef kern -k#,
+ CYR_ha kern -kk#,
+ CYR_e kern -kk#,
+ CYR_ye kern -k#,
+ CYR_ya kern -kk#,
+ CYR_yeru kern -k#,
+ CYR_ve kern -k#,
+ CYR_ghe kern -kk#,
+ CYR_de kern -k#,
+ CYR_zhe kern -kk#,
+ CYR_i kern -k#,
+ CYR_ka kern -kk#,
+ CYR_en kern -kk#,
+ CYR_pe kern -kk#,
+ CYR_er kern -kk#,
+ CYR_u kern -kkk#,
+ "y" kern -kkk#,
+ CYR_tse kern -kk#,
+ CYR_che kern -k#,
+ CYR_sha kern -k#,
+ CYR_shcha kern -k#,
+ CYR_soft_sign kern -k#,
+ CYR_yu kern -kk#;
+
+ligtable CYR_de:
+ CYR_em kern -kk#,
+ CYR_a kern -kk#,
+ "a" kern -kk#,
+ "c" kern -kk#,
+ "p" kern -kk#,
+ "o" kern -k#,
+ "e" kern -k#,
+ "n" kern -kk#,
+ CYR_zhe kern -kk#,
+ CYR_ze kern -kk#,
+ CYR_el kern -kkk#,
+ CYR_pe kern -kk#,
+ CYR_er kern -kk#,
+ CYR_es kern -kk#,
+ CYR_u kern -kk#,
+ CYR_ha kern -kk#,
+ CYR_ya kern -kk#,
+ CYR_be kern -k#,
+ CYR_ve kern -k#,
+ CYR_ghe kern -k#,
+ CYR_ie kern -k#,
+ CYR_ye kern -k#,
+ CYR_ka kern -k#,
+ CYR_en kern -k#,
+ CYR_o kern -k#,
+ CYR_ef kern -k#,
+ CYR_tse kern -k#,
+ CYR_sha kern -k#,
+ CYR_hard_sign kern -k#,
+ CYR_e kern -k#,
+ CYR_yu kern -k#;
+
+ligtable CYR_ghe:
+ CYR_el kern -k#;
+
+ligtable CYR_pe: "n":
+ "y" kern -k#,
+ CYR_u kern -k#,
+ "f" kern -kk#,
+ "j" kern -kk#,
+ "g" kern -k#;
+
+ligtable CYR_te:
+ CYR_em kern -k#,
+ CYR_ie kern -k#,
+ CYR_el kern -kkk#;
+
+ligtable CYR_u: "y":
+ CYR_el kern -k#,
+ CYR_em kern -k#,
+ CYR_ie kern -k#,
+ CYR_ka kern -k#,
+ CYR_ya kern -k#,
+ CYR_ye kern -k#,
+ "f" kern -kk#,
+ "j" kern -kk#;
+
+ligtable "I": "H": "N": "U":
+ "l" kern kk#,
+ "t" kern k#,
+ "i" kern k#,
+ "k" kern kk#,
+ "b" kern kk#,
+ "h" kern kk#;
+
+ligtable "L":
+ "T" kern -kk#,
+ "W" kern -k#,
+ "V" kern -k#,
+ "Y" kern -kk#;
+
+ligtable "S":
+ "b" kern k#,
+ "c" kern k#,
+ "l" kern k#,
+ "t" kern k#,
+ "j" kern -k#,
+ "o" kern k#;
+
+ligtable "V": "W":
+ "A" kern -kkk#,
+ "l" kern kk#,
+ "t" kern k#,
+ "i" kern k#,
+ "k" kern kk#,
+ "b" kern kk#,
+ "h" kern kk#;
+
+ligtable "d":
+ "f" kern -kk#,
+ "g" kern -k#,
+ "j" kern -kk#;
+
+ligtable "f":
+ "g" kern -k#,
+ "f" kern -kk#,
+ "a" kern -k#,
+ "c" kern -k#,
+ "d" kern -k#,
+ "e" kern -k#,
+ "o" kern -k#,
+ "q" kern -k#,
+ "r" kern -k#,
+ "s" kern -k#,
+ "x" kern -k#,
+ "z" kern -k#,
+ "j" kern -k#;
+
+ligtable "g":
+ "i" kern k#,
+ "u" kern k#,
+ "t" kern k#,
+ "f" kern -k#,
+ "v" kern k#,
+ "w" kern k#;
+
+ligtable "o": "b": "p": "e":
+ "W" kern -kkk#,
+ "V" kern -kkk#,
+ "X" kern -kk#,
+ "e" kern k#,
+ "f" kern -kk#,
+ "j" kern -kk#,
+ "o" kern k#;
+
+ligtable "r":
+ "g" kern -k#,
+ "a" kern -k#;
+
+ligtable "s": "z":
+ "f" kern -kk#,
+ "j" kern -kk#;
+
+ligtable "t":
+ "f" kern -k#,
+ "a" kern -k#;
+
+ligtable "v": "w":
+ "f" kern -kk#,
+ "g" kern -k#,
+ "j" kern -kk#;
+
+ligtable "c": CYR_es:
+ CYR_el kern -k#,
+ CYR_em kern -k#,
+ "j" kern -kk#;
+
+ligtable "x": CYR_ha:
+ CYR_el kern -kk#,
+ CYR_em kern -kk#,
+ "j" kern -kk#;
+
+ligtable oct"55":
+ oct"55" =: hex"7b";
+ligtable hex"7b":
+ oct"55" =: hex"7c";
+end
diff --git a/fonts/obnov/obnsc10.mf b/fonts/obnov/obnsc10.mf
new file mode 100644
index 0000000000..2e62062d32
--- /dev/null
+++ b/fonts/obnov/obnsc10.mf
@@ -0,0 +1,3462 @@
+%written by Basil Solomykov, Russia
+%(C) Copyright 2011 LPPL (LaTeX Project Public License)
+%Font Ordinary New (Obyknovennaya novaya), Small Capitals
+
+design_size := 10pt#;
+o# := .45pt#;
+u# := 19/35pt#;
+bar# := 10/36pt#;
+slab# := 10/36pt#;
+cap_bar# := 10/36pt#;
+vair# := 10/36pt#;
+hair# := 10/36pt#;
+jut# := 20/36pt#;
+cap_jut# := 26/36pt#;
+stem# := 30/36pt#;
+curve# := 31/36pt#;
+cap_stem# := 36/36pt#;
+cap_curve# := 37.2/36pt#;
+s# := 0.4pt#;
+c# := .2pt#;
+
+input obn_lcyw_code.mf;
+font_identifier "OBNSC";
+mode_setup;
+clear_pen_memory;
+
+font_size design_size*pt#;
+asc_height# := 24/36*design_size*pt#;
+cap_height# := 24/36*design_size*pt#;
+body_height# := 27/36*design_size*pt#;
+x_height# := 15.4/36*design_size*pt#;
+desc_depth# := 8/36*design_size*pt#;
+body_depth# := 9/36*design_size*pt#;
+comma_depth# := 5/36*design_size*pt#;
+x_depth# := 4/5comma_depth#;
+bar_height# := .52x_height#;
+cap_bar_height# := .52cap_height#;
+cap_bar2_height# := .45cap_height#;
+border_height# := comma_depth#;
+cap_drop_round# := 3.7*slab#;
+drop_round# := 6/8cap_drop_round#;
+
+bracket# := pt#;
+
+font_x_height x_height#;
+font_normal_space 6u#;
+font_normal_stretch 4u#;
+font_normal_shrink 2u#;
+font_quad 16u#;
+font_extra_space 6u#;
+
+k# := .8u#;
+kk# := 1.5u#;
+kkk# := 3u#;
+
+serif_darkness := 1/30;
+define_pixels(bracket,cap_o_width,sss_width,css_width);
+define_pixels(c,s,cap_bar_height,cap_bar2_height);
+define_pixels(border_height,A_bracket,cap_drop_round,x_depth,drop_round);
+define_whole_blacker_pixels(stem,cap_stem,curve,cap_curve,bar,slab,cap_bar,vair,hair);
+define_whole_pixels(asc_height,cap_height,x_height,u,desc_depth,comma_depth,bar_height,body_height,body_depth,u,o,cap_jut,jut);
+%define_corrected_pixels();
+lowres_fix(stem,curve) 1.2;
+lowres_fix(cap_stem,cap_curve) 1.2;
+if jut=cap_jut: jut:=jut-1; fi
+
+def serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g if left_jut=0: -1/2slab fi +1/2slab; x$d=x$e=x$h if right_jut=0: +1/2slab fi-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut; %йПЮИМХЕ РНВЙХ ГЮЙПСЦКЕМХИ
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def serif_edge suffix $ =
+(serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse serif_bracket($f,$r,$e)) enddef;
+
+def serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...serif_darkness[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def T_serif(suffix $)(expr slab, bord_height, direction)= %Direction: 0-left, 1-right;
+penpos$(slab,if direction=1: - fi 90);
+x$=x$a=x$g; y$g-y$=y$-y$a=1/2slab;
+x$b=x$a + if direction=0: - fi .882bord_height; y$b=y$d=y$c+1/2slab;
+x$c=x$b + if direction=0: - fi 1/2slab; y$c=y$a-bord_height;
+x$d=x$e=x$b + if direction=0: - fi slab;
+y$e=y$g-1/2slab; y$f=y$g; x$f=x$c;
+labels($a,$b,$c,$d,$e,$f,$g) enddef;
+
+def T_edge suffix $ =
+(z$a..{down}z$b..z$c..z$d--z$e{up}..z$f--z$g--cycle) enddef;
+
+def A_serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g+1/2slab; x$d=x$e=x$h-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut; %йПЮИМХЕ РНВЙХ ГЮЙПСЦКЕМХИ
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def A_serif_edge suffix $ =
+(A_serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse A_serif_bracket($f,$r,$e)) enddef;
+
+def A_serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...0.6[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def ur_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a= 1/2slab;
+x$e=x$a + drop_length; y$e=y$f- drop_height;
+x$d=x$e - 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e - drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d - 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ur_drop_edge suffix $ =
+(z$f{right}..tension.9..{down}z$e{down}..{left}z$d{left}..{up}z$c{up}..z$b...{left}z$a--cycle) enddef;
+
+def ul_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$f- drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d + 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ul_drop_edge suffix $ =
+(z$f{left}..tension.9..{down}z$e{down}..{right}z$d{right}..{up}z$c{up}..z$b...{right}z$a--cycle) enddef;
+
+def dl_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, -90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$a + drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e + 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d - drop_round); x$b=x$d + 1/90drop_round;
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def dl_drop_edge suffix $ =
+(z$a{left}..tension.9..{up}z$e{up}..{right}z$d{right}..{down}z$c..{dir 250}z$b{dir -80}..{right}z$f--cycle) enddef;
+
+def S_serif (suffix $)(expr serif_slab, serif_length, serif_height)=
+%penpos$(serif_slab,90);
+x$a=x$i=x$; y$i=y$+1/2serif_slab; y$a=y$-1/2serif_slab;
+x$f=x$e=x$a+serif_length; y$f=y$g-1/2serif_slab; y$e=y$c=y$d+1/2serif_slab;
+x$g=x$f-1/2serif_slab; y$g=y$i-1/2serif_slab;
+y$h=y$f-1/4serif_slab; x$h=x$g-serif_slab;
+x$c=x$e-serif_slab; x$d=x$e-1/2serif_slab; y$d=y$g-serif_height;
+x$b=x$h-6/18serif_length; y$b=y$h-1/2slab;
+labels ($a,$b,$c,$d,$e,$f,$g,$h,$i) enddef;
+
+def S_serif_edge suffix $ =
+(z$a{right}...z$b..{dir -80}z$c..z$d..z$e--z$f{up}..z$g{left}..z$h{dir 150}..{left}z$i--cycle) enddef;
+
+beginchar(CYR_A,13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar(CYR_BE,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=y5=h-1/2slab;
+y1c=h; y2c=0; x5e=w-s-1/2cap_stem;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h; x4=w-s-1/2cap_stem-border_height;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_VE,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+css_width := x8 - x2r; save css_width;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar(CYR_GHE,9u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; x3=x4+2u;
+y5=y3; x5e=w-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_DE,12u#,cap_height#,comma_depth#);
+x10e=w-s; y10c=-d;
+y4c=h; x4h=w-s-1/2slab;
+x9=x4; y9c=0;
+x3=x8=x9d; y8=y7=1/2cap_bar; y3=y2=h-y8;
+x6e=s; y6=y10; x7=border_height+s;
+y5=y9; x5g=s+.5u; y1=y4; x1=x5+1.5u;
+x2=x1c;
+A_serif(1,1.2cap_bar,-96,10/7cap_jut,cap_jut);
+A_serif(5,1.2cap_bar,81,6/7cap_jut,cap_jut);
+serif(4,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+penpos2(cap_bar,90);
+penpos3(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_bar,90);
+penstroke z7e--z8e; penstroke z2e--z3e;
+fill A_serif_edge5...reverse A_serif_edge1...cycle;
+fill serif_edge9--reverse serif_edge4--cycle;
+T_serif(6,slab,border_height,0);
+T_serif(10,slab,border_height,1);
+fill T_edge6;
+fill T_edge10;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_IE,10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_YE,10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+x12=x13=x2r; y12=h+1/4cap_stem; y13=y12+cap_stem;
+x14=x15=x12+2cap_stem; y14=y12; y15=y13;
+fill z12..z13..cycle; fill z14..z15..cycle;
+penlabels(range 1 thru 15);
+endchar;
+
+beginchar(CYR_ZHE,round (16u#+s#),cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; y7=y4=y10=y11=cap_bar_height; x4=x7-1.5u;
+x10=x8r; x11=x10+1.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+x6=s; y6=0; y4-y5=y5-y6; x4-x5=x5-x6;
+penpos7(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,90);
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z6e{right}..tension.8..{up}z5e{up}..tension.8..{right}z4e--z7e;
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+x3=x5+1/2cap_stem; y2=h; x4-x3=x3-x2; y2-y3=y3-y4;
+penpos3(hair,0);
+penpos2(cap_bar,90);
+penstroke z4e{left}..tension.8..{up}z3e{up}..tension.8..{left}z2e;
+y1=h; x1a=x2; fill z6l..z6r..cycle;
+ul_drop(1,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ul_drop_edge1; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ZE,10u#+.5s#,cap_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height;
+x4=x6-3/2cap_stem; x5=x4-3u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.9..{down}z6e{down}..tension.9..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3c,1.4border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.5cap_drop_round,slab);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_I,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-20); penpos6(cap_bar,-20);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar(CYR_SHORT_I,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-20); penpos6(cap_bar,-20);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+x7=.5w; y7=h+cap_bar;
+ur_drop(7,cap_drop_round,1/2(x3l-x1r),.95cap_drop_round,1.2cap_bar);
+fill ur_drop_edge7 rotatedaround(z7,180);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_KA,12u#+s#,cap_height#,0);
+x8g=x9g=s; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+y10=y11=cap_bar_height;
+x10=x8r; x11=x10+2.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_EL,13u#+1/2s#,cap_height#,0);
+x7h=x8h=w-s; y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+cap_drop_round; y3=1.1cap_drop_round;
+dl_drop(1,1.1cap_drop_round,1.1cap_drop_round,1.2cap_drop_round,slab);
+fill dl_drop_edge1;
+penpos2(cap_bar,-90);
+penpos3(cap_bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-slab;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,cap_bar,theta1,1.3cap_jut,1.3cap_jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,cap_stem,-90,cap_jut,cap_jut);
+serif(8,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_EM,13u#+s#,cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,.51cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -107; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 110; y7l=11/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EN,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_O,11u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+cap_o_width := x7-x3; save cap_o_width;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_PE,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ER,10u#+s#,cap_height#,0);
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_ES,10u#+s#,cap_height#,0);
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_TE,round (11u#+s#),cap_height#,0);
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_U,13u#+s#,cap_height#,0);
+x1l=s+cap_jut; y1l=.98h-cap_bar;
+x3r=w-s-.8cap_jut; y3r=.98h-cap_bar;
+x4=33/60w; y4=6/53h;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.2cap_jut,.8cap_jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=0; x6=x4-1.2cap_stem; z7l=z2;
+penpos7(cap_bar,theta2+90);
+penpos5(cap_bar,theta2+90);
+penpos6(cap_bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,cap_drop_round,2u, 10/53h,cap_bar);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EF,round (14u#+s#),cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1=x2=.5w; y2c=0; y1h=h;
+y6=y7=y8=y9=1.3cap_jut; y4=y3=y11=y12=h-1.3cap_jut+1/2slab;
+x3=x7=x2l; x8=x12=x2r; x4=x6=x3-u; x11=x9=x12+u;
+x5=s+1/2cap_curve; x10-x1=x1-x5; y4-y5=y5-y6; y10=y5;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,270);
+penpos7(cap_bar,270);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+penpos10(cap_curve,0);
+penpos11(cap_bar,90);
+penpos12(cap_bar,90);
+penstroke z3e--z4e{left}..tension.8..{down}z5e{down}..tension.8..{right}z6e--z7e;
+penstroke z8e--z9e{right}..tension.8..{up}z10e{up}..tension.8..{left}z11e--z12e;
+penlabels (range 1 thru 12);
+endchar;
+
+beginchar(CYR_HA,12u#+s#,cap_height#,0);
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_TSE,12.5u#+s#,cap_height#,comma_depth#);
+x1=x2=x5=cap_jut+1/2cap_stem+s;
+x3=x4=x6=w-x1-.5u; y5=y6=y2h;
+y1c=y3c=h; y2c=y4c=0; x7e=w-s; y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e;
+T_serif(7,cap_bar,border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_CHE,12u#+s#,cap_height#,0);
+x1=cap_jut+1/2cap_stem+s;
+x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,-90,cap_jut,cap_jut);
+serif(3,cap_stem,90,cap_jut,cap_jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=cap_bar_height-1/2cap_bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-2cap_bar;
+penpos6(cap_stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SHA,16u#+s#,cap_height#,0);
+if .5w <> good.x .5w: change_width; fi
+x1=x2=good.x (cap_jut+1/2cap_stem+s);
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=good.x .5w; y5=y1; y6=y2;
+y9b=slab; x9=good.x w-x1;
+x10=x9; y10b=h-slab;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_SHCHA,16.5u#+s#,cap_height#,comma_depth#);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=slab; x9h=w-s-.5u;
+x10=x9; y10b=h-slab;
+x11e=w-s; y11=y9h;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,slab,border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_HARD_SIGN,13.5u#+c#,cap_height#,0);
+x2r=x5-css_width; x1=x2; x8e=s; y8g=h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+x7=x1d; y1c=h; y2c=0;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=round(x3+5u-cap_stem);
+y6=y7=y2h;
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(8,cap_bar,border_height,0);
+fill T_edge8;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YERU,16u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+y3=y4=cap_bar_height; x3=round x2r; x4=x6=round (x3+5u-cap_stem) - 1;
+y4-y5=y5-y6; x5=x2r+css_width; y8b=slab; x8h=w-s;
+y6=y7=y2h; x9=x8; y9b=h-slab;
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(8,cap_stem,90,cap_jut,cap_jut);
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge9--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SOFT_SIGN,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=x3+5u-cap_stem;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y6=y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_E,10u#+.5s#,cap_height#,0);
+x1=16/39w; x5=.5w; y1=0; y5=h;
+y7=.5h; x7=w-1/2cap_curve-s;
+x9e=s; y9=0;
+dl_drop(9,cap_drop_round,16/39w-s,1.7cap_drop_round,slab);
+y8=0.1h-c; y6=0.9h+c; x8=x9+9/16(x7-x9); x6=x5+9/16(x7-x5);
+penpos5(cap_bar,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+penpos1(cap_bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+y2=y5; x2=x5-c;
+S_serif(2,slab,x1+c,1.5border_height);
+x3=x7-1/2cap_stem; y3=y4=cap_bar_height; x4=x2b-x1;
+penpos3(cap_bar,90); penpos4(cap_bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YU,16u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+y3=y7=.5h; x7=w-1/2cap_curve-s; x3=x7-cap_o_width; y9=0; y5=h; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3cap_stem; y11=y12=cap_bar_height;
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_YA,11u#+s#,cap_height#,0);
+x1=x2=w-cap_jut-1/2cap_stem-s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2l;
+y1c=h; y2c=0; x6=x4=x7-2.5u; x3=x1c;
+y4-y5=y5-y6; x5=x8-1.5c; x9=s; y9=0; y6-y8=y8-y9; x7-x10=3(x10-x6); x10-x8=x8-x9;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos7(cap_bar,270);
+penpos6(cap_bar,270);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90); fill z9l..z9r..cycle;
+penstroke z3e--z4e{left}..tension.9..z5e..tension.9..{right}z6e--z7e;
+penstroke z9e{right}..tension1..{up}z8e{up}..tension1..{right}z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_a,.8(13u#+s#),.8cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+.8cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,.8*1.3cap_bar,theta4,.8cap_jut,.8*1.2cap_jut);
+serif(5,.8cap_stem,theta5,.8cap_jut,.8cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar(CYR_be,.8(11u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x3=x10=x1d; y3=y4=y5=h-1/2slab;
+y1c=h; y2c=0; x5e=w-s-.8*1/2cap_stem;
+y6=y7=.8cap_bar_height; x6=x2r; x7=x9=x6+3.6u-.8cap_stem;
+y7-y8=y8-y9; x8=w-.8*1/2cap_curve-s;
+y9=y10=y2h; x4=w-s-.8*1/2cap_stem-.8border_height;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penstroke z3e--z4e;
+T_serif(5,slab,.8border_height,1);
+fill T_edge5;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(.8cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ve,.8(11u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=.8cap_bar_height; x6=x2r; x7=x9=x6+.8*4.5u-.8cap_stem;
+y7-y8=y8-y9; x8=w-.8*1/2cap_curve-s; y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-.8*2/5cap_curve; y77=y7; x77=x4;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(.8cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(.8cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+sss_width := x8 - x2r; save sss_width;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar(CYR_ghe,.8(9u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; x3=x4+2u;
+y5=y3; x5e=w-s;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+T_serif(5,slab,.8border_height,1);
+fill T_edge5;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_de,.8*12u#,.8cap_height#,.8comma_depth#);
+x10e=w-s; y10c=-d; y4c=h; x4h=w-s-1/2slab; x9=x4; y9c=0;
+x3=x8=x9d; y8=y7=1/2cap_bar; y3=y2=h-y8;
+x6e=s; y6=y10; x7=.8border_height+s;
+y5=y9; x5g=s+.5u; y1=y4; x1=x5+u; x2=x1c;
+A_serif(1,cap_bar,-96,.8*10/7cap_jut,.8cap_jut);
+A_serif(5,cap_bar,81,.8*6/7cap_jut,.8cap_jut);
+serif(4,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(9,.8cap_stem,90,.8cap_jut,.8cap_jut);
+penpos2(cap_bar,90);
+penpos3(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_bar,90);
+penstroke z7e--z8e; penstroke z2e--z3e;
+fill A_serif_edge5...reverse A_serif_edge1...cycle;
+fill serif_edge9--reverse serif_edge4--cycle;
+T_serif(6,slab,.8border_height,0);
+T_serif(10,slab,.8border_height,1);
+fill T_edge6;
+fill T_edge10;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ie,.8(10u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-.7c;
+y6=y7=y8=.8cap_bar_height;x6=x1r; x7=x8=x6+.8u;
+T_serif(5,slab,.8border_height,1);
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a; penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8*.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,.8border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_ye,.8(10u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-.7c;
+y6=y7=y8=.8cap_bar_height;x6=x1r; x7=x8=x6+.8u;
+T_serif(5,slab,.8border_height,1);
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a; penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8*.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,.8border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+x12=x13=x2r; y12=h+.8*(1/4cap_stem); y13=y12+.8cap_stem;
+x14=x15=x12+.8*2cap_stem; y14=y12; y15=y13;
+fill z12..z13..cycle; fill z14..z15..cycle;
+penlabels(range 1 thru 15);
+endchar;
+
+beginchar(CYR_zhe,round .8(16u#+s#),.8cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(9,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; y7=y4=y10=y11=.8cap_bar_height; x4=x7-.8*1.5u;
+x10=x8r; x11=x10+.8*1.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+x6=s; y6=0; y4-y5=y5-y6; x4-x5=x5-x6;
+penpos7(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8cap_curve,180);
+penpos6(cap_bar,90);
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(.8cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z6e{right}..tension.8..{up}z5e{up}..tension.8..{right}z4e--z7e;
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-.8*1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,.8cap_drop_round,.8*.9cap_drop_round,.8cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+x3=x5+.8*1/2cap_stem; y2=h; x4-x3=x3-x2; y2-y3=y3-y4;
+penpos3(hair,0);
+penpos2(cap_bar,90);
+penstroke z4e{left}..tension.8..{up}z3e{up}..tension.8..{left}z2e;
+y1=h; x1a=x2; fill z6l..z6r..cycle;
+ul_drop(1,.8cap_drop_round,.8*.9cap_drop_round,.8cap_drop_round,cap_bar);
+fill ul_drop_edge1; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ze,.8(10u#+.5s#),.8cap_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=.8cap_bar_height;
+x4=x6-.8*3/2cap_stem; x5=x4-.8*3u;
+x6=w-s-.8*1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-.8*1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(.8cap_curve,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(.8cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.9..{down}z6e{down}..tension.9..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3c,.8*1.4border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,.8cap_drop_round,18/39w-s,.8*1.5cap_drop_round,slab);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_i,.8(12u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x5=x1+.8*1/3cap_stem; x6=x4-.8*1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(4,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-20); penpos6(cap_bar,-20);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar(CYR_short_i,.8(12u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x5=x1+.8*1/3cap_stem; x6=x4-.8*1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(4,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-20); penpos6(cap_bar,-20);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+x7=.5w; y7=h+cap_bar;
+ur_drop(7,.8*cap_drop_round,1/2(x3l-x1r),.8*.95cap_drop_round,1.2cap_bar);
+fill ur_drop_edge7 rotatedaround(z7,180);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_ka,.8(12u#+s#),.8cap_height#,0);
+x8g=x9g=s; y8c=h; y9c=0;
+serif(8,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(9,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+y10=y11=.8cap_bar_height;
+x10=x8r; x11=x10+.8*2.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(.8cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-.8*1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,.8cap_drop_round,.8*.9cap_drop_round,.8*cap_drop_round,cap_bar);
+fill ur_drop_edge14; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_el,.8*(13u#+1/2s#),.8cap_height#,0);
+x7h=x8h=w-s; y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.8cap_drop_round; y3=.8*1.1cap_drop_round;
+dl_drop(1,.8*cap_drop_round,.8*cap_drop_round,.8*1.1cap_drop_round,slab);
+fill dl_drop_edge1;
+penpos2(cap_bar,-90);
+penpos3(cap_bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-slab;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,cap_bar,theta1,.8*1.3cap_jut,.8*1.3cap_jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(8,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_em,.8(13u#+s#),.8cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,.8jut,.8jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,.8cap_stem,-90,.51cap_bar,.8jut);
+serif(4,.8cap_stem,90,.8jut,.8jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -107; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 107; y7l=11/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(.8cap_stem,0); penpos8(.8cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_en,.8(12u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(4,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=.8cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_o,.8(11u#+s#),.8cap_height#,0);
+penpos1(vair,90);
+penpos2(.8o,30);
+penpos3(.8cap_curve,0);
+penpos4(.8o,-30);
+penpos5(vair,-90);
+penpos6(.8o,-150);
+penpos7(.8cap_curve,-180);
+penpos8(.8o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=.8*1/2cap_curve+s; x7=w-.8*1/2cap_curve-s;
+y2=y8=0.08h-c; y4=y6=0.92h+c; x2=x4=x3+7/16(x5-x3)+1.4c; x6=x8=x5+9/16(x7-x5)-1.4c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_pe,.8(12u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(4,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_er,.8(10u#+s#),.8cap_height#,0);
+x1=x2=x3=.8cap_jut+.8*1/2cap_stem+s;
+y3=y4=.8cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+.8*3u;
+y5-y4=y6-y5; x5=w-.8*1/2cap_curve-s;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(.8cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_es,.8(10u#+s#),.8cap_height#,0);
+x1=x5=24/42w; y1=0; y5=h;
+y3=.5h; x3=.8*1/2cap_curve+s;
+y2=0.08h-c; y4=0.92h+c; x2=x4=x3+7/16(x1-x3)+.9c;
+penpos1(cap_bar,90);
+penpos2(.8o,30);
+penpos3(.8cap_curve,0);
+penpos4(.8o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-.7c-x1,.8*1.5border_height);
+S_serif(7,slab,w-s-x1,.8*1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_te,round .8(11u#+s#),.8cap_height#,0);
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,.8cap_stem,-90,.8*1.2cap_jut,.8*1.2cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round .8border_height,0);
+T_serif(4,cap_bar,round .8border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_u,.8(13u#+s#),.8cap_height#,0);
+x1l=s+.8cap_jut; y1l=.98h-cap_bar;
+x3r=w-s-.8*.8cap_jut; y3r=.98h-cap_bar;
+x4=33/60w; y4=6/53h;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,.8cap_stem,theta1,.8cap_jut,.8cap_jut);
+A_serif(3,.8*1.2cap_bar,theta2,.8*1.2cap_jut,.8*.8cap_jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=0; x6=x4-.8*1.2cap_stem; z7l=z2;
+penpos7(cap_bar,theta2+90);
+penpos5(cap_bar,theta2+90);
+penpos6(cap_bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,.8cap_drop_round,.8*2u, 9/53h, round cap_bar);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_ef,round .8(14u#+s#),.8cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1=x2=.5w; y2c=0; y1h=h;
+y6=y7=y8=y9=.8*1.3cap_jut; y4=y3=y11=y12=h-.8*1.3cap_jut+1/2slab;
+x3=x7=x2l; x8=x12=x2r; x4=x6=x3-.8u; x11=x9=x12+.8u;
+x5=s+.8*1/2cap_curve; x10-x1=x1-x5; y4-y5=y5-y6; y10=y5;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8cap_curve,180);
+penpos6(cap_bar,270);
+penpos7(cap_bar,270);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+penpos10(.8cap_curve,0);
+penpos11(cap_bar,90);
+penpos12(cap_bar,90);
+penstroke z3e--z4e{left}..tension.9..{down}z5e{down}..tension.9..{right}z6e--z7e;
+penstroke z8e--z9e{right}..tension.9..{up}z10e{up}..tension.9..{left}z11e--z12e;
+penlabels (range 1 thru 12);
+endchar;
+
+beginchar(CYR_ha,.8(12u#+s#),.8cap_height#,0);
+y3=y4=slab; x3=w-s-.8cap_jut-.8*1/2cap_stem; x4=s+.8cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+.8cap_jut+.8*1/2cap_stem+c; x2=w-s-.8*1.5c-.8cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,.8cap_stem,theta1-180,.8cap_jut,.8cap_jut);
+A_serif(2,.8*1.2cap_bar,theta2-180,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,theta1,.8cap_jut,.8cap_jut);
+A_serif(4,.8*1.2cap_bar,theta2,.8cap_jut,.8cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_tse,.8(12.5u#+s#),.8cap_height#,.8comma_depth#);
+x1=x2=x5=.8cap_jut+.8*1/2cap_stem+s;
+x3=x4=x6=w-x1-.8*.5u; y5=y6=y2h;
+y1c=y3c=h; y2c=y4c=0; x7e=w-s; y7=y2h;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(4,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e;
+T_serif(7,cap_bar,.8border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_che,.8(12u#+s#),.8cap_height#,0);
+x1=.8cap_jut+.8*1/2cap_stem+s;
+x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=.8cap_bar_height-1/2cap_bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-.7*2cap_bar;
+penpos6(.8cap_stem,180);
+penpos5(vair,270);
+penpos7(vair,270);
+penstroke z6e{down}...z7e..z5e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_sha,.8(16u#+s#),.8cap_height#,0);
+if .5w <> good.x .5w: change_width; fi
+x1=x2=good.x (.8cap_jut+.8*1/2cap_stem+s);
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=good.x .5w; y5=y1; y6=y2;
+y9b=slab; x9=good.x w-x1;
+x10=x9; y10b=h-slab;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(6,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(10,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_shcha,.8(16.5u#+s#),.8cap_height#,.8comma_depth#);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=slab; x9h=w-s-.8*.5u;
+x10=x9; y10b=h-slab;
+x11e=w-s; y11=y9h;
+serif(9,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(10,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(6,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,slab,.8border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_hard_sign,.8(13.5u#+c#),.8cap_height#,0);
+x2r=x5-sss_width; x1=x2; x8e=s; y8g=h;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+x7=x1d; y1c=h; y2c=0;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y3=y4=.8cap_bar_height; x3=x2r; x4=x6=round(x3+3.5u-.8cap_stem);
+y6=y7=y2h;
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(8,cap_bar,.8border_height,0);
+fill T_edge8;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_yeru,.8(16u#+c#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x7=x1d; y1c=h; y2c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+y3=y4=.8cap_bar_height; x3=round x2r; x4=x6=round (x3+3.5u-.8cap_stem) - 1;
+y4-y5=y5-y6; x5=x2r+sss_width; y8b=slab; x8h=w-s;
+y6=y7=y2h; x9=x8; y9b=h-slab;
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(8,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(9,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+fill serif_edge8--reverse serif_edge9--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_soft_sign,.8(11u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=.8cap_bar_height; x3=x2r; x4=x6=x3+3.5u-.8cap_stem;
+y4-y5=y5-y6; x5=w-.8*1/2cap_curve-s;
+y6=y7=y2h;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_e,.8(10u#+.5s#),.8cap_height#,0);
+x1=16/39w; x5=.5w; y1=0; y5=h;
+y7=.5h; x7=w-.8*1/2cap_curve-s;
+x9e=s; y9=0;
+dl_drop(9,.8cap_drop_round,16/39w-s,.8*1.6cap_drop_round,slab);
+y8=0.1h-c; y6=0.9h+c; x8=x9+9/16(x7-x9); x6=x5+8/16(x7-x5);
+penpos5(cap_bar,-90);
+penpos6(.8o,-150);
+penpos7(.8cap_curve,-180);
+penpos8(.8o,-210);
+penpos1(cap_bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+y2=y5; x2=x5;
+S_serif(2,slab,x2-2.5c,.8*1.4border_height);
+x3=x7-.8*1/2cap_stem; y3=y4=.8cap_bar_height; x4=x2b-x1;
+penpos3(cap_bar,90); penpos4(cap_bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_yu,.8(16u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(.8o,30);
+penpos3(.8cap_curve,0);
+penpos4(.8o,-30);
+penpos5(vair,-90);
+penpos6(.8o,-150);
+penpos7(.8cap_curve,-180);
+penpos8(.8o,-210);
+y3=y7=.5h; x7=w-.8*1/2cap_curve-s; x3=x7-.8cap_o_width; y9=0; y5=h; x7-x5=x5-x3; x9=x5;
+y10=y8=0.08h-c; y4=y6=0.92h+c; x10=x4=x3+7/16(x5-x3)+c; x6=x8=x5+9/16(x7-x5)-c;
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-.8*1/3cap_stem; y11=y12=.8cap_bar_height;
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ya,.8(11u#+s#),.8cap_height#,0);
+x1=x2=w-.8cap_jut-.8*1/2cap_stem-s;
+y6=y10=y7=.8cap_bar_height; y3=y4=h-1/2slab; x7=x2l;
+y1c=h; y2c=0; x6=x4=x7-2.5u; x3=x1c;
+y4-y5=y5-y6; x5=x8-1.5c; x9=s; y9=0; y6-y8=y8-y9; x7-x10=3(x10-x6); x10-x8=x8-x9;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8cap_curve,180);
+penpos7(cap_bar,270);
+penpos6(cap_bar,270);
+penpos8(.8cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{left}..tension1..z5e..tension1..{right}z6e--z7e;
+penstroke z9e{right}..tension1..{up}z8e{up}..tension1..{right}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("A",13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar("B",11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,1/2cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("C",10u#+s#,cap_height#,0);
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("D",12u#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(o,30);
+penpos6(cap_curve,0);
+penpos7(o,-30);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+x3=x9=x1d;
+x8=x4=.5w; y8=y9=1/2cap_bar; y4=y3=h-1/2cap_bar;
+y6=.5h; x6=w-1/2cap_curve-s;
+y7=0.1h-c+1/2cap_bar; y5=0.9h+c-1/2cap_bar; x5=x7=x4+5/8(x6-x4);
+penstroke z3e--z4e{right}..z5e..z6e..z7e..{left}z8e--z9e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("E",10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("F",10u#+.5s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("G",10u#+cap_jut#+c#+s#,cap_height#,0);
+x1=x5=23/42(w-cap_jut-c); y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s-cap_jut-c; y8=y1; x8=x1-.1(w-cap_jut-c);
+S_serif(6,slab,w-s-2c-x1-cap_jut,1.5border_height);
+S_serif(7,slab,w-s-x1-cap_jut+c,7/4border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+x9r=x7e; y9r=7/4border_height-1/2cap_bar;
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+x10=x9l; x11=x9r; y10=y11=3/4cap_bar;
+fill reverse serif_edge9--z10--z11--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("H",12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("I",2cap_jut#+cap_stem#+2s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+endchar;
+
+beginchar("J",7u#+s#,cap_height#,0);
+x1=x4=w-cap_jut-1/2cap_stem-s;
+y1c=h; y2=y3=y4=13/53h; x2=x1r; x3=x1l;
+y5=0; x5=x3-2/3cap_stem;
+serif(1,cap_stem,-90,1.2cap_jut,cap_jut);
+fill z3--z2--reverse serif_edge1--cycle;
+penpos4(cap_stem,0);
+penpos5(cap_bar,-90);
+penstroke z4e{down}..{left}z5e;
+x6e=s; y6=0;
+dl_drop(6,cap_drop_round,x5-s,1.3drop_round,cap_bar);
+fill dl_drop_edge6;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("K",13u#-c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=cap_bar_height; x3l=w-cap_jut-.5cap_jut-cap_bar-s; y3l=h-cap_bar;
+x5=x6=x1r; y5=cap_bar_height-cap_bar; y6=y5-1.2cap_bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+A_serif(3,cap_bar,theta1,1.5cap_jut,.6cap_jut);
+x4l=w-s-1.2cap_jut-cap_stem; y4l=cap_bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,cap_stem,theta2,.8cap_jut,cap_jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("L",10u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=y5=y2h; x3=x2d; x5e=w-s;
+T_serif(5,cap_bar,border_height,1); x4=x5;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penstroke z3e--z4e;
+fill T_edge5 reflectedabout(z3,z4);
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar("M",13u#+s#,cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,.51cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -107; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 110; y7l=11/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("N",12u#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_bar+s;
+x3=w-x1; y1c=y3c=h; y2c=y4=y5=0;
+x4=x3r; x5=x3l;
+serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+A_serif(2,cap_bar,90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill A_serif_edge2--reverse serif_edge1--cycle;
+numeric theta[]; y7=y1h; x7=x1h-1.1cap_stem;
+theta1=angle(z5-z7);
+z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+fill z6--z1h--z7--z5{down}..{up}z4--reverse A_serif_edge3--cycle;
+unfill z1b--z1l--z1a--cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("O",11u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("P",10u#+s#,cap_height#,0);
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Q",11u#+s#,cap_height#,comma_depth#);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x12-1.5c; x12=x7l-c; y11=y12=-comma_depth;
+y9=0; x9=x1-c; y9-y10=y10-y11; x11-x10=x10-x9;
+penpos9(cap_bar,90); penpos10(cap_curve,0);
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z9e{dir -20}..tension.8..z10e..tension.8..{right}z11e--z12e;
+fill z12r..z12l..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("R",11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2r;
+y1c=h; y2c=0; x6=x4=x7+2.5u; x3=x1d;
+y4-y5=y5-y6; x5=x8; x9=w-s-1/2cap_bar; y9=0; y6-y8=y8-y9; x10=x6; x9-x8=6/7(x8-x10);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,-90);
+penpos6(cap_bar,-90);
+penpos8(cap_curve,-180);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penstroke z9e{left}..tension1..{up}z8e{up}..tension.9..{left}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("S",9u#+s#,cap_height#,0);
+x6=x7=1/2w; y6=y7=0;
+S_serif(7,cap_bar,x6-s,1.5border_height);
+y5=11/53h; x5=w-s-1/2(1.9hair);
+y4=28/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2(1.9cap_bar);
+x2=.5w-c; y2=h; z1=z2;
+penpos6(cap_bar,-90);
+penpos5(1.9hair,0);
+penpos4(1.1cap_curve,90);
+penpos3(1.9hair,0);
+penpos2(cap_bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-cap_bar,1.2border_height);
+fill S_serif_edge1;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("T",round (11u#+s#),cap_height#,0);
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("U",12u#+s#,cap_height#,0);
+x1=cap_jut+1/2cap_stem+s;
+x3=w-s-cap_jut-1/2cap_bar;
+y1c=y3c=h; y2=y4=y5=y6=y24=y56=16/53h; x2=x1l;
+x4=x1r; x5=x3l; x6=x3r;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill z2--z4--reverse serif_edge1--cycle;
+fill z5--z6--reverse A_serif_edge3--cycle;
+x7=x1+.5(x3-x1); y7=0; x4-x24=x24-x2; x6-x56=x56-x5;
+penpos24(cap_stem,-180); penpos7(vair,-90);
+penpos56(cap_bar,0);
+penstroke z24e{down}..tension.9..{right}z7e{right}..tension.9..{up}z56e;
+penlabels(range 1 thru 7,24,56);
+endchar;
+
+beginchar("V",12u#,cap_height#,0);
+x1l=cap_jut+s;
+x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w-1/2cap_bar; x5=.5w+1/2cap_bar;
+y4=y5=1/2cap_bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("W",17u#,cap_height#,0);
+x9l=.5w-.3cap_stem;
+x7r=w-s-cap_jut;
+y9l=y7r=y1l=h-cap_bar; x5=x9l+.5(x7r-x9l)-1/2cap_bar; x6=x9l+.5(x7r-x9l)+1/2cap_bar;
+y5=y6=y2=y3=1/2cap_bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(7,cap_bar,theta2,1.3cap_jut,cap_jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+cap_jut;
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+z2=z1l+whatever*dir theta1; x3=x2+cap_bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("X",12u#+s#,cap_height#,0);
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("Y",12u#,cap_height#,0);
+x1l=cap_jut+s;
+x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w;
+y4=8/25h;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+y5c=0; x5=.5w+.5c;
+serif(5,cap_stem,90,cap_jut,cap_jut);
+x6=x5l; x7=x5r;
+z6=z1l+whatever*dir theta1;
+z7=z3r+whatever*dir theta2;
+fill z6--serif_edge5--z7--reverse A_serif_edge3--z2--reverse serif_edge1--z6&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Z",9u#+1.5s#,cap_height#,0);
+x6=s+1/2cap_bar; y6=y7=y8=1/2cap_bar;
+x8e=w-s; x7=x8;
+T_serif(8,cap_bar,border_height,1);
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4cap_bar;
+x4r=w-s-1/4cap_bar; y4=h-cap_bar;
+penpos4(cap_stem,0);
+penpos5(cap_stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2cap_bar;
+x3=w-s-1/2cap_bar; x1e=s+c;
+T_serif(1,cap_bar,border_height,0);
+x2=x1;
+penpos3(cap_bar,90);
+penpos2(cap_bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar("a",.8(13u#+s#),.8cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+.8cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,.8*1.3cap_bar,theta4,.8cap_jut,.8*1.2cap_jut);
+serif(5,.8cap_stem,theta5,.8cap_jut,.8cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar("b",.8(11u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=.8cap_bar_height; x6=x2r; x7=x9=x6+.8*4.5u-.8cap_stem;
+y7-y8=y8-y9; x8=w-.8*1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-.8*2/5cap_curve; y77=y7; x77=x4;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(.8cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(.8cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+sss_width := x8 - x2r; save sss_width;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("c",.8(10u#+s#),.8cap_height#,0);
+x1=x5=24/42w; y1=0; y5=h;
+y3=.5h; x3=.8*1/2cap_curve+s;
+y2=0.08h-c; y4=0.92h+c; x2=x4=x3+7/16(x1-x3)+.9c;
+penpos1(cap_bar,90);
+penpos2(.8o,30);
+penpos3(.8cap_curve,0);
+penpos4(.8o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-.7c-x1,.8*1.5border_height);
+S_serif(7,slab,w-s-x1,.8*1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar("d",.8*12u#,.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8o,30);
+penpos6(.8cap_curve,0);
+penpos7(.8o,-30);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+x3=x9=x1d;
+x8=x4=.5w; y8=y9=1/2cap_bar; y4=y3=h-1/2cap_bar;
+y6=.5h; x6=w-.8*1/2cap_curve-s;
+y7=0.1h-c; y5=0.9h+c; x5=x7=x4+3.5/8(x6-x4);
+penstroke z3e--z4e{right}..z5e..z6e..z7e..{left}z8e--z9e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("e",.8(10u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-.7c;
+y6=y7=y8=.8cap_bar_height;x6=x1r; x7=x8=x6+.8u;
+T_serif(5,slab,.8border_height,1);
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8*.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,.8border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("f",.8(10u#+.5s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; y5=y3; x5e=w-s;
+y6=y7=y8=.8*cap_bar_height;x6=x1r; x7=x8=x6+.8u;
+T_serif(5,slab,.8border_height,1);
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a; penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8*.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("g",.8(10u#+cap_jut#+c#+s#),.8cap_height#,0);
+x1=x5=23/42(w-.8cap_jut-c); y1=0; y5=h;
+y3=.5h; x3=.8*1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+8/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(.8o,30);
+penpos3(.85cap_curve,0);
+penpos4(.8o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s-.8cap_jut; y8=y1; x8=x1-.1(w-.8cap_jut-.8c);
+S_serif(6,slab,w-s-.8*2c-x1-.8cap_jut,.8*1.5border_height);
+S_serif(7,slab,w-s-x1-.8cap_jut+.8c,.8*7/4border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+x9r=x7e; y9r=.75*7/4border_height-1/2cap_bar;
+serif(9,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+x10=x9l; x11=x9r; y10=y11=3/4cap_bar;
+fill reverse serif_edge9--z10--z11--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("h",.8(12u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(4,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=.8cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("i",.8(2cap_jut#+cap_stem#+2s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+endchar;
+
+beginchar("j",.8(7u#+s#),.8cap_height#,0);
+x1=x4=w-.8cap_jut-.8*1/2cap_stem-s;
+y1c=h; y2=y3=y4=13/53h; x2=x1r; x3=x1l;
+y5=0; x5=x3-.8*2/3cap_stem;
+serif(1,.8cap_stem,-90,.8*1.2cap_jut,.8cap_jut);
+fill z3--z2--reverse serif_edge1--cycle;
+penpos4(.8cap_stem,0);
+penpos5(cap_bar,-90);
+penstroke z4e{down}..{left}z5e;
+x6e=s; y6=0;
+dl_drop(6,.8cap_drop_round,x5-s,.8*1.3drop_round,cap_bar);
+fill dl_drop_edge6;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("k",.8(13u#-c#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=.8cap_bar_height; x3l=w-.8cap_jut-.8*.5cap_jut-cap_bar-c; y3l=h-cap_bar;
+x5=x6=x1r; y5=.8cap_bar_height-cap_bar; y6=y5-1.2cap_bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+A_serif(3,cap_bar,theta1,.8*1.5cap_jut,.8*.6cap_jut);
+x4l=w-s-.8*1.2cap_jut-.8cap_stem; y4l=cap_bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,.8cap_stem,theta2,.8*.8cap_jut,.8cap_jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("l",.8(10u#+c#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=y5=y2h; x3=x2d; x5e=w-s;
+T_serif(5,cap_bar,.8border_height,1); x4=x5;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penstroke z3e--z4e;
+fill T_edge5 reflectedabout(z3,z4);
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar("m",.8(13u#+s#),.8cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,.8jut,.8jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,.8cap_stem,-90,.51cap_bar,.8jut);
+serif(4,.8cap_stem,90,.8jut,.8jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -107; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 107; y7l=11/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(.8cap_stem,0); penpos8(.8cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("n",.8*12u#,.8cap_height#,0);
+x1=x2=.8cap_jut+1/2cap_bar+s;
+x3=w-x1; y1c=y3c=h; y2c=y4=y5=0;
+x4=x3r; x5=x3l;
+serif(1,cap_bar,-90,.8cap_jut,.8*1.3cap_jut);
+A_serif(2,cap_bar,90,.8cap_jut,.8cap_jut);
+A_serif(3,cap_bar,-90,.8cap_jut,.8cap_jut);
+fill A_serif_edge2--reverse serif_edge1--cycle;
+numeric theta[]; y7=y1h; x7=x1h-.8*1.1cap_stem;
+theta1=angle(z5-z7);
+z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+fill z6--z1h--z7--z5{down}..{up}z4--reverse A_serif_edge3--cycle;
+unfill z1b--z1l--z1a--cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("o",.8(11u#+s#),.8cap_height#,0);
+penpos1(vair,90);
+penpos2(.8o,30);
+penpos3(.8cap_curve,0);
+penpos4(.8o,-30);
+penpos5(vair,-90);
+penpos6(.8o,-150);
+penpos7(.8cap_curve,-180);
+penpos8(.8o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=.8*1/2cap_curve+s; x7=w-.8*1/2cap_curve-s;
+y2=y8=0.08h-c; y4=y6=0.92h+c; x2=x4=x3+7/16(x5-x3)+1.4c; x6=x8=x5+9/16(x7-x5)-1.4c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar("p",.8(10u#+s#),.8cap_height#,0);
+x1=x2=x3=.8cap_jut+.8*1/2cap_stem+s;
+y3=y4=.8cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+.8*3u;
+y5-y4=y6-y5; x5=w-.8*1/2cap_curve-s;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(.8cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("q",.8(11u#+s#),.8cap_height#,.8comma_depth#);
+penpos1(vair,90);
+penpos2(.8o,30);
+penpos3(.8cap_curve,0);
+penpos4(.8o,-30);
+penpos5(vair,-90);
+penpos6(.8o,-150);
+penpos7(.8cap_curve,-180);
+penpos8(.8o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=.8*1/2cap_curve+s; x7=w-.8*1/2cap_curve-s;
+y2=y8=0.08h-c; y4=y6=0.92h+c; x2=x4=x3+7/16(x5-x3)+1.4c; x6=x8=x5+9/16(x7-x5)-1.4c;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x12-1.5c; x12=x7l-c; y11=y12=-.8comma_depth;
+y9=0; x9=x1-c; y9-y10=y10-y11; x11-x10=x10-x9;
+penpos9(cap_bar,90); penpos10(.8cap_curve,0);
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z9e{dir -20}..tension.8..z10e..tension.8..{right}z11e--z12e;
+fill z12r..z12l..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("r",.8(11u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y6=y10=y7=.8cap_bar_height; y3=y4=h-1/2slab; x7=x2r;
+y1c=h; y2c=0; x6=x4=x7+1.8u; x3=x1d;
+y4-y5=y5-y6; x5=x8+.5c; x9=w-s-1/3cap_bar; y9=0; y6-y8=y8-y9; x10=x6-c; x9-x8=6/7(x8-x10);
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8cap_curve,0);
+penpos7(cap_bar,-90);
+penpos6(cap_bar,-90);
+penpos8(.8cap_curve,-180);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penstroke z9e{left}..tension.9..{up}z8e{up}..tension.8..{left}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("s",.8(9u#+s#),.8cap_height#,0);
+x6=x7=1/2w; y6=y7=0;
+S_serif(7,cap_bar,x6-s,.8*1.5border_height);
+y5=11/53h; x5=w-s-1/2(1.9hair);
+y4=28/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2(1.9cap_bar);
+x2=.5w-c; y2=h; z1=z2;
+penpos6(cap_bar,-90);
+penpos5(.8*1.9hair,0);
+penpos4(.8*1.1cap_curve,80);
+penpos3(.8*1.9hair,0);
+penpos2(cap_bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.85..z4e..tension.85..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-.5cap_bar,.8*1.2border_height);
+fill S_serif_edge1;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("t",round .8(11u#+s#),.8cap_height#,0);
+x1=x2=.5w; y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,.8cap_stem,-90,.8*1.2cap_jut,.8*1.2cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round .8border_height,0);
+T_serif(4,cap_bar,round .8border_height,1);
+fill T_edge3; fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("u",.8(12u#+s#),.8cap_height#,0);
+x1=.8cap_jut+.8*1/2cap_stem+s;
+x3=w-s-.8cap_jut-1/2cap_bar;
+y1c=y3c=h; y2=y4=y5=y6=y24=y56=16/53h; x2=x1l;
+x4=x1r; x5=x3l; x6=x3r;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+A_serif(3,cap_bar,-90,.8cap_jut,.8cap_jut);
+fill z2--z4--reverse serif_edge1--cycle;
+fill z5--z6--reverse A_serif_edge3--cycle;
+x7=x1+.5(x3-x1); y7=0; x4-x24=x24-x2; x6-x56=x56-x5;
+penpos24(.8cap_stem,-180); penpos7(vair,-90);
+penpos56(cap_bar,0);
+penstroke z24e{down}..tension.9..{right}z7e{right}..tension.9..{up}z56e;
+penlabels(range 1 thru 7,24,56);
+endchar;
+
+beginchar("v",.8*12u#,.8cap_height#,0);
+x1l=.8cap_jut+s;
+x3r=w-s-.8cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w-1/2cap_bar; x5=.5w+1/2cap_bar;
+y4=y5=1/2cap_bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,.8cap_stem,theta1,.8cap_jut,.8cap_jut);
+A_serif(3,cap_bar,theta2,.8*1.3cap_jut,.8cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("w",.8*17u#,.8cap_height#,0);
+x9l=.5w-.8*.3cap_stem;
+x7r=w-s-.8cap_jut;
+y9l=y7r=y1l=h-cap_bar; x5=x9l+.5(x7r-x9l)-1/2cap_bar; x6=x9l+.5(x7r-x9l)+1/2cap_bar;
+y5=y6=y2=y3=1/2cap_bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,.8cap_stem,theta1,.8cap_jut,.8cap_jut);
+A_serif(7,cap_bar,theta2,.8*1.3cap_jut,.8cap_jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+.8cap_jut;
+serif(1,.8cap_stem,theta1,.8cap_jut,.8cap_jut);
+z2=z1l+whatever*dir theta1; x3=x2+cap_bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("x",.8(12u#+s#),.8cap_height#,0);
+y3=y4=slab; x3=w-s-.8cap_jut-.8*1/2cap_stem; x4=s+.8cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+.8cap_jut+.8*1/2cap_stem+c; x2=w-s-.8*1.5c-.8cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,.8cap_stem,theta1-180,.8cap_jut,.8cap_jut);
+A_serif(2,.8*1.2cap_bar,theta2-180,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,theta1,.8cap_jut,.8cap_jut);
+A_serif(4,.8*1.2cap_bar,theta2,.8cap_jut,.8cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("y",.8*12u#,.8cap_height#,0);
+x1l=.8cap_jut+s; x3r=w-s-.8cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w;
+y4=8/25h;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z4-z3r);
+serif(1,.8cap_stem,theta1,.8cap_jut,.8cap_jut);
+A_serif(3,cap_bar,theta2,.8*1.3cap_jut,.8cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+y5c=0; x5=.5w+.5c;
+serif(5,.8cap_stem,90,.8cap_jut,.8cap_jut);
+x6=x5l; x7=x5r;
+z6=z1l+whatever*dir theta1;
+z7=z3r+whatever*dir theta2;
+fill z6--serif_edge5--z7--reverse A_serif_edge3--z2--reverse serif_edge1--z6&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("z",.8(9u#+1.5s#),.8cap_height#,0);
+x6=s+1/2cap_bar; y6=y7=y8=1/2cap_bar; x8e=w-s; x7=x8;
+T_serif(8,cap_bar,.8border_height,1);
+penpos6(cap_bar,90); penpos7(cap_bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-.5c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4cap_bar;
+x4r=w-s-1/4cap_bar; y4=h-cap_bar;
+penpos4(.8cap_stem,0);
+penpos5(.8cap_stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2cap_bar;
+x3=w-s-1/2cap_bar; x1e=s+c;
+T_serif(1,cap_bar,.8border_height,0); x2=x1;
+penpos3(cap_bar,90); penpos2(cap_bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1; x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(hex"30",9u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.09h-c; y4=y6=0.91h+c; x2=x4=x3+7.5/16(x5-x3); x6=x8=x5+8.5/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"31",6u#+3/2c#,cap_height#,0);
+y1c=0; x1h=w-s;
+serif(1,cap_stem,90,cap_jut,cap_jut);
+x6=x1f; y5=y6=h; x5=x1; x2=x1a; y2=42/53h;
+penpos4(1.1cap_bar,theta1+45);
+penpos3(1.1cap_bar,theta1+45);
+x4l=s; y4=30/53h; numeric theta[]; theta1=angle(z5-z4l);
+z3l=z5; penstroke z3e--z4e; fill z4l..z4r..cycle;
+fill serif_edge1--z6{dir 110}..{dir 250}z5--z2--cycle;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"32",9u#,cap_height#,0);
+z4=(9/33w,14/53h); z5=(s+11/20cap_bar,0);
+z3=(w-s-.5c-7/16cap_curve,40/53h); z2=(15/33w,h);
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos4(1.1cap_bar,-45);
+penpos5(1.1cap_bar,0);
+x6=x5r; y6=y7=7/16cap_stem; y8=1/2cap_bar;
+x8e=w-s; x7=x8e;
+T_serif(8,cap_bar,3/5border_height,1);
+penpos6(7/8cap_stem,90);
+penpos7(7/8cap_stem,90);
+penstroke z6e--z7e; %fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+unfill z11{down}..z9--z10--cycle;
+penstroke z5e{up}..z4e..{up}z3e{up}..{left}z2e;
+z1=z2; ul_drop(1,cap_drop_round,15/33w-3c,1.4cap_drop_round,slab);
+fill ul_drop_edge1;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"33",9u#,cap_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height+c;
+x4=x6-3/2cap_stem; x5=x4-2u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..{down}z3e{down}..{left}z44e;
+penstroke z5e--z4e{right}..tension.9..{down}z6e{down}..tension.9..{left}z7e;
+fill z5r..z5l..cycle;
+ul_drop(1,cap_drop_round,17/39w-s,1.1cap_drop_round,slab);
+fill ul_drop_edge1;
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.3cap_drop_round,slab);
+fill dl_drop_edge8;
+penlabels(1,2,3,4,5,6,7,8,44);
+endchar;
+
+beginchar(hex"34",9u#+c#,cap_height#,0);
+y1=y2=33/53h; y4c=0; x4h=w-s;
+serif(4,7/8cap_stem,90,cap_jut,cap_jut);
+x1=x4r; x2=x1-bar;
+x3=x4l; y3=28/53h;
+numeric theta[]; theta1=angle(z2-z3);
+fill z3{dir theta1}--z2{dir theta1}..{down}z1--reverse serif_edge4--z3&cycle;
+y5=y6=15/53h; x5=x4e; x6=s+cap_bar;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e; fill z5r..z5l..cycle;
+y7=y6l; x7l=x6; z8=(6/36w, 21/53h);
+z9=(2/3w,h);
+penpos7(cap_bar,180); penpos8(cap_bar,150);
+penpos9(cap_stem,180);
+penstroke z7e{up}..z8e..{dir 70}z9e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"35",9u#,cap_height#,0);
+x7=x4=18/39w; y7=0; y5=cap_bar_height+c; y4=y5+s;
+x8e=s; y8=0; x5=x8d;
+dl_drop(8,cap_drop_round,18/39w-s,1.3cap_drop_round,slab);
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z5e..z4e{right}..tension.85..{down}z6e{down}..tension.85..{left}z7e;
+fill z5r..z5l..cycle;
+fill dl_drop_edge8;
+z3=z5; x2=x3; y2=h;
+penpos3(cap_bar,0); penpos2(cap_bar,0);
+penstroke z3e--z2e; fill z2l..tension 1.7..z2r..tension 1.7..cycle;
+y1r=h; x1=x2r; x13=x6; y13=h; 2(x12-x1)=x13-x12; y12=h-.6cap_stem;
+penpos1(7/8cap_stem,90); penpos13(1.1cap_bar,90); penpos12(3/4cap_stem,90);
+penstroke z1e..z12e..z13e; fill z13r..tension 1.7..z13l..tension 1.7..cycle;
+penlabels(1,2,3,4,5,6,7,8,12,13);
+endchar;
+
+beginchar(hex"36",9u#,cap_height#,0);
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=x9=.45w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.1h-c; y4=y6=0.9h+c; x8=x6=x7+11/32(x5-x7); x4=x10=x5+9/16(x3-x5); x2=x4-1/2c;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.1h-c; y11=y7;
+x11l=x3l; y10=y8;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e..z10e..z11e;
+z12 = z1;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+z13 = (.5w,.5h);
+currentpicture := currentpicture rotatedaround(z13,180);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"37",9u#-c#,cap_height#,0);
+x4=w-s-1/2cap_bar; y4=h-1/2cap_bar;
+penpos4(cap_bar,0);
+y3=y2=h-7/16cap_stem; y1=h-7/8cap_stem+1/2cap_bar;
+x3=x4l; x1e=s;
+T_serif(1,cap_bar,3/5border_height,0);
+x2=x1e;
+penpos3(7/8cap_stem,90);
+penpos2(7/8cap_stem,90);
+penstroke z2e--z3e;
+fill T_edge1; z44=(x4,h); fill z4r{up}..{left}z44--z3r--z4l--cycle;
+x10=s+c; x11=s; y10=y11=h;
+unfill z1d{up}..z10--z11--cycle;
+unfill z1d{up}..z10--z11--cycle;
+x5r=x3; y5=h-7/8cap_stem;
+x6=14/30w; y6=1/3cap_curve;
+penpos5(cap_bar,0); penpos6(cap_curve,0);
+penstroke z4e{dir -105}..z5e..{dir -95}z6e; fill z6l..z6r..cycle;
+penlabels(1,2,3,4,5,6,10,11,12);
+endchar;
+
+beginchar(hex"38",10u#-s#,cap_height#,0);
+x6=x4=x2=x8=1/2w; y6=0; y2=h;
+y5=11/53h; y7=13/53h; x5=w-s-1/2(1.9hair);
+y4=y8=28/53h; y3=42/53h; y1=40/53h; x3=2s+1/2(1.9cap_bar);
+x1=w-2s-1/2(1.9cap_bar); x7=w-x5;
+penpos6(cap_bar,-90);
+penpos5(2.5hair,0);
+penpos4(cap_curve,90);
+penpos3(2.5hair,0);
+penpos2(cap_bar,-90);
+penpos1(2.5hair,-180);
+penpos7(2.5hair,-180);
+penpos8(cap_bar,-270);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"39",9u#,cap_height#,0);
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=x9=.45w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.1h-c; y4=y6=0.9h+c; x8=x6=x7+11/32(x5-x7); x4=x10=x5+9/16(x3-x5); x2=x4-1/2c;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.1h-c; y11=y7;
+x11l=x3l; y10=y8;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e..z10e..z11e;
+z12 = z1;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+beginchar(oct"56",cap_stem#+2s#,cap_stem#,0);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+endchar;
+
+beginchar(oct"54",cap_stem#+2s#+c#,cap_stem#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"60",cap_stem#+2s#+c#,asc_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(oct"41", cap_stem#+2s#,cap_height#,0); "Exclamation mark";
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+ x3=.5w-1/2cap_bar; x4=.5w+1/2cap_bar; y3=y4=3/2cap_stem;
+ x6=x1; x5=x2; y5=y6=h;
+ fill z6--z3..z4--z5{up}..z6&cycle;
+endchar;
+
+beginchar(hex"22",2cap_stem#+3s#+2c#,cap_height#,0);
+ z1=(s,h-1/2cap_stem); z2=(x1+cap_stem+c,h-1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-cap_stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"5C",2cap_stem#+3s#+2c#,cap_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(x1+cap_stem+c,1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"7b",10u#-1.5c#,x_height#,0); "En dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"3D",10u#+1.5c#,x_height#,0);
+ z1=(s+1/2bar,bar_height-3c); z2=(w-s-1/2bar,bar_height-3c);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+3c); z4=(w-s-1/2bar,bar_height+3c);
+ penpos3(bar,90); penpos4(bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"23",13u#,asc_height#,body_depth#);
+ z1=(s+1/2bar,bar_height-5c); z2=(w-s-1/2bar,bar_height-5c);
+ penpos1(1.5bar,90); penpos2(1.5bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+5c); z4=(w-s-1/2bar,bar_height+5c);
+ penpos3(1.5bar,90); penpos4(1.5bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ z5=(.5w-5c,bar_height); z6=(.5w+5c,bar_height);
+ z7=z5+whatever*dir 76; y7=h; z8=whatever[z5,z7]; y8=-d;
+ penpos7(1.5bar,0); penpos8(1.5bar,0);
+ fill z7l{up}..{down}z7r--z8r{down}..{up}z8l--z7l&cycle;
+ z9=z6+whatever*dir 76; y9=h; z10=whatever[z6,z9]; y10=-d;
+ penpos9(1.5bar,0); penpos10(1.5bar,0);
+ fill z9l{up}..{down}z9r--z10r{down}..{up}z10l--z9l&cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"7c",14u#,x_height#,0); "Em dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(oct"55",2cap_jut#+cap_stem#+2s#,x_height#,0); "hyphen";
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"5F",1.1stem#+2s#,x_height#+2.1stem#,0);
+ z1=(.5w,h); z2=(.5w,h-1.1stem);
+ fill z1..z2..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7E",7u#,body_height#,0);
+ pickup pencircle xscaled .6pt yscaled .2pt rotated 55;
+ z4=(w-s-c,h-s); x1=s+c; y1=y4-1/2cap_stem;
+ y2-y1=y4-y3=3(y4-y1); z2-z1=z4-z3=whatever * dir 55;
+ draw z1..controls z2 and z3..z4;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"3C",7u#-2c#,x_height#,0); "looks like <<";
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3E",7u#-2c#,x_height#,0);
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ z10=(.5w,.5h);
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ currentpicture := currentpicture rotatedaround(z10,180);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3B",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+3/2c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ z8=(s,h-1/2cap_stem); z9=(w-s,h-1/2cap_stem);
+ fill z8..z9..cycle;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(hex"3A",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ fill z1..z2..cycle;
+ penlabels(1,2,3,4);
+ z3=(s,1/2cap_stem); z4=(w-s,1/2cap_stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2B",2cap_jut#+cap_stem#+2s#,x_height#,0); "plus";
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ x3=x4=.5w; y3=y2+1/2(x2-x1); y4=y2-1/2(x2-x1);
+ penpos3(1.8bar,0); penpos4(1.8bar,0);
+ penstroke z3e--z4e;
+ fill z3r..z3l..cycle; fill z4r..z4l..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2F",2s#+bar#,body_height#,body_depth#);
+ z1=(.5w,h-.5bar); z2=(.5w,-d+.5bar);
+ %pickup pencircle xscaled bar yscaled bar;
+ penpos1(bar,0); penpos2(bar,0);
+ penstroke z1e--z2e; fill z1r..z1l..cycle;
+ fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"27",cap_stem#+2s#+c#,x_height#+2.1stem#,0);
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ z6=(.5w-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"28",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"29",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"86",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"87",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"5B",2s#+3cap_bar#,body_height#,body_depth#);
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x2,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z1r..z1l..cycle; fill z6r..z6l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"5D",2s#+3cap_bar#,body_height#,body_depth#);
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x1,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z2r..z2l..cycle; fill z5r..z5l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"B9",16u#,cap_height#,0);
+ x1=x2=cap_jut+1/2cap_bar+s+cap_stem;
+ x3=w-x1-1/2cap_stem; y1c=h; y4=y5=0;
+ x4=x3r; x5=x3l; y2=12/53h; y3=h-y2;
+ x8=x2-stem; y8=0; z9=z8;
+ dl_drop(9,cap_drop_round,x8-s,1.3drop_round,cap_bar);
+ fill dl_drop_edge9; penpos8(bar,-90);
+ serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+ penpos2(bar,0); penpos3(bar,0);
+ penstroke z2e{down}..{left}z8e;
+ fill z2l--z2r--reverse serif_edge1--cycle;
+ numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+ theta1=angle(z5-z7); x10=x3+stem; y10=h; z11=z10;
+ penpos10(bar,-90); penstroke z3e{up}..{right}z10e;
+ ur_drop(11,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill ur_drop_edge11;
+ z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+ fill z6--z1h--z7--z5{down}..{up}z4--z3r--z3l--cycle;
+ unfill z1b--z1l--z1a--cycle;
+ y12=y13=2cap_bar; x12=x4+2cap_bar+s; x13=w-2s;
+ penpos12(.4stem,90); penpos13(.4stem,90);
+ penstroke z12e--z13e; y16=y11d-5cap_bar;
+ x13-x14=x14-x12; x16=x14; y14=y13+5cap_bar;
+ x17=w-s-1/4stem; x17-x16=x16-x15; y16-y15=y15-y14;
+ y17=y15; penpos17(.6stem,0); penpos16(bar,90);
+ penpos15(.6stem,180); penpos14(bar,270);
+ penstroke z17e{up}..{left}z16e{left}..{down}z15e{down}..{right}z14e{right}..{up}z17e;
+ fill z12l..tension1.2..z12r..tension1.2..cycle;
+ fill z13l..tension1.2..z13r..tension1.2..cycle;
+ penlabels(range 1 thru 17);
+endchar;
+
+beginchar(hex"24",9u#-s#,body_height#,body_height#-cap_height#);
+ x6=x7=1/2w-c; y6=y7=0;
+ dl_drop(7,cap_drop_round,x6-s,1.4cap_drop_round,cap_bar);
+ y5=10/53cap_height; x5=w-s-1/2(1.9hair);
+ y4=1/2cap_height; x4=19/38w; y3=42/53cap_height; x3=s+1/2(1.9cap_bar);
+ x2=.5w+c; y2=cap_height; z1=z2;
+ penpos6(cap_bar,-90); penpos5(1.9hair,0);
+ penpos4(1.1cap_curve,90); penpos3(1.9hair,0);
+ penpos2(cap_bar,-90);
+ penstroke z6e{right}..z5e..tension.9..z4e..tension.9..z3e..{right}z2e;
+ fill dl_drop_edge7;
+ ur_drop(1,cap_drop_round,w-s-x2,1.4cap_drop_round,cap_bar);
+ fill ur_drop_edge1;
+ z8=(.5w,h); z9=(.5w,-d);
+ penpos8(cap_bar,0); penpos9(cap_bar,0);
+ penstroke z8e--z9e;
+ fill z9r..z9l..cycle; fill z8r..z8l..cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"25",12u#,asc_height#,0);
+penpos1(vair,90); penpos2(.6curve,0);
+penpos3(vair,-90); penpos4(.6curve,-180);
+y1=.55h; y3=h; y3-y4=y4-y1; y2=y4; x2=1/4curve+s; x4=5/2curve+s;
+x4-x1=x1-x2; x3=x1;
+penstroke z1e{left}..tension.9..{up}z2e{up}..tension1.2..{right}z3e..tension.9..{down}z4e{down}..tension1.2..{left}z1e..cycle;
+penpos5(vair,90); penpos6(.6curve,0);
+penpos7(vair,-90); penpos8(.6curve,-180);
+y5=0; y7=.45h; y7-y8=y8-y5; y6=y8; x8=w-1/4curve-s; x6=w-5/2curve-s;
+x8-x5=x5-x6; x7=x5;
+penstroke z5e{left}..tension.9..{up}z6e{up}..tension1.2..{right}z7e..tension.9..{down}z8e{down}..tension1.2..{left}z5e..cycle;
+x9l=x7; y9=h; x10r=x1; y10=0;
+penpos9(1.2bar,0); penpos10(1.2bar,0);
+penstroke z9e--z10e;
+penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"26",14u#,cap_height#,0);
+x4=x8=x3+.5curve; y6=0; y2=h; x2=x3+1.3cap_curve;
+y7=13/53h; y5=9/53h; x5=x7+3.5cap_curve; x6=x7+1.8cap_curve;
+y4=y8=30/53h; y1=44/53h; y3=42/53h; x3=4s+curve;
+x1=x3+2.1cap_curve; x7=s+1/2cap_curve;
+x10=w-s; y10=9/53h; x10-x9=x9-x5; y9=1/5cap_curve;
+th:=angle(z4-z5)+5; th1:=th-11; x11h=w-s-c; y11h=y1-4s;
+A_serif(11,cap_bar,-110,cap_jut,cap_jut); z12l=z11a;
+penpos6(cap_bar,-90); penpos5(cap_stem,45);
+penpos4(cap_stem,45); penpos3(2.5hair,0);
+penpos2(cap_bar,-90); penpos1(2hair,-180);
+penpos7(cap_curve,-180); penpos8(cap_bar,-250);
+penpos9(.5cap_curve,70); penpos10(cap_bar,150);
+penpos12(cap_bar,0);
+penstroke z10e..z9e..z5e{dir th}..{dir th1}z4e..tension.9..{up}z3e{up}..tension1..z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e{dir 8}..{dir 70}z12e;
+fill z12l--z12r..reverse A_serif_edge11--cycle;
+fill z10l..tension1.3..z10r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"40",14u#,x_height#+2curve#,2curve#);
+a_width:=9u+c-2s;
+x1=2s+a_width-s-3/4stem+1.5curve; y1=x_height; y2=7/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=3s+a_width+1.5curve; y4=15/33x_height;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.2vair,270); penpos4(bar,360);
+x5=x1-3/2stem; y5=x_height; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c+1.5curve; y6=.54x_height; y8=.46x_height; z8l=whatever[z1r,z2r];
+x13=x5; y13=h-1/2bar; x14=s+1/2bar; y14=y6; y15=-d+1/2bar; x15=x7;
+x16=x4; y16=-d+3bar; penpos7(vair,270); penpos16(bar,270);
+penpos13(bar,90); penpos14(bar,180); penpos15(bar,270);
+penpos8(2bar,0); penpos5(vair,90); penpos6(curve,180);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 80}z4e..z13e{left}..z14e..{right}z15e..z16e;
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=x_height-c; z10=(x1r+c,x_height); z11=(x1l-c,x_height);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+fill z16r..z16l..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar(hex"12",2cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=s+.45cap_stem*cosd 45;
+x2=w-s+cap_bar*cosd 45; z2=z1+whatever*dir -45;
+penpos1(.9cap_stem,45); penpos2(cap_bar,45);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"13",2cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=w-s-.45cap_stem*cosd 45;
+x2=s-cap_bar*cosd 45; z2=z1+whatever*dir -135;
+penpos1(.9cap_stem,135); penpos2(cap_bar,135);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"3F",7u#+c#,cap_height#,0);
+ x1=s+4/5cap_stem; y1=1/2cap_stem;
+ penpos1(cap_stem,0);
+ fill z1r..z1l..cycle;
+ y2=cap_stem+cap_bar; x2=x1;
+ z3l=z2l+whatever*dir 96; y3l=25/53h;
+ penpos2(cap_bar,0); penpos3(cap_bar,0);
+ penstroke z2e--z3e;
+ z4l=z3l; penpos4(cap_bar,0);
+ y5=y4-2bar; x5=x4+3cap_bar; penpos7(cap_bar,-90);
+ x6=w-s-1/2cap_curve; y6=37/51h; x7=12/31w; y7=h;
+ penpos5(cap_bar,90); penpos6(cap_curve,180); z8=z7;
+ penstroke z4e{dir -69}..z5e{dir 10}..tension1..{up}z6e{up}..tension.9..{left}z7e;
+ ul_drop(8,.8cap_drop_round,x7-s,cap_curve,cap_bar);
+ fill ul_drop_edge8;.
+ fill z3r..tension1.2..z3l..tension1.2..cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"10",2jut#+stem#+2s#,x_height#,0);
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"11",5u#,x_height#,desc_depth#);
+x1h=w-s; y1c=x_height; y2=0; x2=x1;
+serif(1,stem,-90,1.5jut,0);
+penpos2(stem,0);
+fill z2l--z2r--reverse serif_edge1--cycle;
+y5=-1/4desc_depth; x5r=x2r;
+y6=-d+1/2bar; x6=x2l-1/2stem;
+penpos5(.97stem,0);
+penpos6(bar,-90);
+penstroke z2e--z5e{down}..{left}z6e;
+x7e=s; y7=-d+1/2bar;
+dl_drop(7,stem,x6-x7e,drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(hex"2A",3cap_stem#+3s#,body_height#,0);
+ x1=x2=x3=x4=.5w; y1=h-1/2stem; y2=y1-cap_stem; y3=y2-bar; y4=y3-bar;
+ penpos1(stem,0); penpos2(cap_bar,0); penpos3(2cap_bar,0);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle;
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,60);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,120);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,180);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,240);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,300);
+ penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"0B",4jut#+2stem#+2c#+3s#,asc_height#,0);
+w:=w+1;
+numeric dist; dist := 2jut+2stem-3c;
+x1g=x2g=s+dist; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x1; y3=x_height; x4r=x1l-.1stem; y4=x_height+1/2(asc_height-x_height);
+x5l=x4l-.05stem; y5=y4+1.5bar; x6=round (x1r+.2stem); y6=h-1/2bar;
+penpos3(stem,180);
+penpos4(.75curve,180);
+penpos5(.6curve,180);
+penpos6(bar,90);
+penstroke z3e{dir 95}...{up}z4e..z5e..{right}z6e;
+y6=y7; x7e=w-s;
+ur_drop(7,stem,x7e-x6,drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+x11g=x12g=s; y11c=x_height; y12c=0;
+serif(11,stem,-90,jut,jut);
+serif(12,stem,90,jut,jut);
+fill serif_edge12--reverse serif_edge11--cycle;
+x13=x11; y13=x_height; x14l=x13l; y14=x_height+1/2(asc_height-x_height);
+x15l=x14l; y15=y14+1.5bar; x16=x11r+.8stem; y16=h-1/2bar;
+x17r=x5l; y17=y5;
+penpos13(stem,180);
+penpos14(.75curve,180);
+penpos15(.6curve,180);
+penpos16(bar,90);
+penpos17(bar,0);
+penstroke z13e{dir 95}...{up}z14e..z15e..{right}z16e{right}..{down}z17e;
+fill z11d--z1c--z1b--z11e--cycle;
+penlabels(1,2,3,4,5,6,7,11,12,13,14,15,16,17);
+endchar;
+
+beginchar(hex"5E",6u#,body_height#,0);
+ x1=s+.45cap_bar*cosd 45; x2=w/2; y2=h-bar;
+ z1=z2+whatever*dir -135; x3=w-x1; z3=z2+whatever*dir -45;
+ penpos1(bar,135); penpos2(2bar,90); penpos3(bar,45);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"16",6u#,body_height#,0);
+ x1=s; x2=w-x1; y1=y2=h-4bar;
+ penpos1(.8bar,90); penpos2(.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7F",2stem#+4s#,x_height#+2.1stem#,0);
+ z1=(s+.5stem,h); z2=(s+.5stem,h-stem);
+ fill z1..z2..cycle;
+ z3=(w-s-.5stem,h); z4=(w-s-.5stem,h-stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+ligtable CYR_A: "A":
+ CYR_O kern -k#,
+ CYR_ES kern -k#,
+ CYR_TE kern -kk#,
+ "T" kern -kk#,
+ CYR_U kern -kk#,
+ CYR_EF kern -k#,
+ CYR_CHE kern -kk#,
+ CYR_HARD_SIGN kern -k#,
+ CYR_te kern -k#,
+ "t" kern -k#,
+ CYR_u kern -kk#,
+ CYR_ef kern -k#,
+ CYR_che kern -kk#,
+ "W" kern -kkk#,
+ "V" kern -kkk#,
+ "Y" kern -kkk#,
+ "y" kern -kk#,
+ "w" kern -kk#,
+ "v" kern -kk#;
+
+ligtable CYR_GHE: CYR_TE: "T":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_DE kern -k#,
+ CYR_EL kern -kk#,
+ CYR_a kern -kk#,
+ "a" kern -kk#,
+ CYR_de kern -k#,
+ CYR_el kern -kk#,
+ CYR_o kern -k#,
+ CYR_es kern -k#;
+
+ligtable CYR_O: CYR_E: CYR_YU:
+ CYR_U kern -k#,
+ CYR_ha kern -k#,
+ "X" kern -k#,
+ CYR_HA kern -k#;
+
+ligtable CYR_ER: "P":
+ CYR_A kern -kk#,
+ CYR_a kern -kk#,
+ CYR_EL kern -k#,
+ CYR_el kern -k#;
+
+ligtable CYR_U:
+ CYR_A kern -kkk#,
+ "A" kern -kkk#,
+ CYR_a kern -kkk#,
+ "a" kern -kkk#,
+ CYR_O kern -k#,
+ CYR_ES kern -k#,
+ CYR_EL kern -k#,
+ CYR_el kern -k#,
+ CYR_EF kern -k#;
+
+ligtable CYR_HA: "X":
+ CYR_O kern -k#,
+ "O" kern -k#,
+ "Q" kern -k#,
+ "C" kern -k#,
+ "G" kern -k#;
+
+ligtable CYR_a: "a":
+ CYR_O kern -k#,
+ CYR_ES kern -k#,
+ CYR_TE kern -kk#,
+ CYR_U kern -kk#,
+ CYR_EF kern -k#,
+ CYR_CHE kern -kk#,
+ CYR_HARD_SIGN kern -k#,
+ CYR_o kern -k#,
+ CYR_es kern -k#,
+ CYR_te kern -kk#,
+ CYR_u kern -kk#,
+ CYR_ef kern -k#,
+ CYR_che kern -kk#,
+ CYR_hard_sign kern -k#,
+ CYR_che kern -kk#,
+ "V" kern -kk#,
+ "W" kern -kk#,
+ "T" kern -kk#,
+ "y" kern -kk#,
+ "v" kern -kk#,
+ "w" kern -kk#,
+ "t" kern -kk#,
+ "u" kern -k#,
+ "Y" kern -kk#;
+
+ligtable CYR_ghe: CYR_te: "t":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_DE kern -k#,
+ CYR_EL kern -kk#,
+ CYR_a kern -kk#,
+ "a" kern -kk#,
+ CYR_de kern -k#,
+ CYR_el kern -kk#,
+ CYR_o kern -k#,
+ CYR_es kern -k#;
+
+ligtable CYR_o: CYR_e: CYR_yu: "o": "d":
+ CYR_u kern -k#,
+ "x" kern -k#,
+ CYR_ha kern -k#,
+ "v" kern -k#,
+ "w" kern -k#,
+ "V" kern -k#,
+ "W" kern -k#;
+
+ligtable CYR_er: "p":
+ CYR_A kern -k#,
+ "A" kern -k#,
+ "a" kern -kk#,
+ CYR_a kern -kk#,
+ CYR_el kern -k#;
+
+ligtable CYR_u:
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_a kern -kkk#,
+ "a" kern -kkk#,
+ CYR_o kern -k#,
+ CYR_es kern -k#,
+ CYR_el kern -k#,
+ CYR_ef kern -k#;
+
+ligtable CYR_ha: "x":
+ "o" kern -k#,
+ CYR_o kern -k#;
+
+ligtable "D": "O": "Q":
+ "X" kern -k#;
+
+ligtable "L": "l":
+ "T" kern -kk#,
+ "Y" kern -kk#,
+ "t" kern -kk#,
+ CYR_TE kern -kk#,
+ CYR_te kern -kk#,
+ "y" kern -kk#;
+
+ligtable "V": "W":
+ "A" kern -kkk#,
+ "a" kern -kkk#,
+ CYR_A kern -kkk#,
+ CYR_a kern -kkk#;
+
+ligtable "Y":
+ CYR_A kern -kk#,
+ CYR_a kern -kk#,
+ "a" kern -kk#,
+ "A" kern -kk#;
+
+ligtable "v": "w":
+ "A" kern -kk#,
+ CYR_A kern -kk#,
+ CYR_a kern -kk#,
+ "o" kern -k#,
+ "c" kern -k#,
+ "a" kern -kk#;
+
+ligtable hex"37":
+ CYR_A kern -kk#,
+ CYR_a kern -kk#,
+ "a" kern -kk#,
+ "A" kern -kk#;
+ligtable oct"55":
+ oct"55" =: hex"7b";
+ligtable hex"7b":
+ oct"55" =: hex"7c";
+end.
diff --git a/fonts/obnov/obnsc12.mf b/fonts/obnov/obnsc12.mf
new file mode 100644
index 0000000000..cd60eb0b9a
--- /dev/null
+++ b/fonts/obnov/obnsc12.mf
@@ -0,0 +1,3462 @@
+%written by Basil Solomykov, Russia
+%(C) Copyright 2011 LPPL (LaTeX Project Public License)
+%Font Ordinary New (Obyknovennaya novaya), Small Capitals
+
+design_size := 12pt#;
+o# := .54pt#;
+u# := 22/35pt#;
+bar# := 12/36pt#;
+slab# := 12/36pt#;
+cap_bar# := 12/36pt#;
+vair# := 12/36pt#;
+hair# := 12/36pt#;
+jut# := 24/36pt#;
+cap_jut# := 31.2/36pt#;
+stem# := 36/36pt#;
+curve# := 37.2/36pt#;
+cap_stem# := 43.2/36pt#;
+cap_curve# := 44.64/36pt#;
+s# := 0.5pt#;
+c# := .25pt#;
+
+input obn_lcyw_code.mf;
+font_identifier "OBNSC";
+mode_setup;
+clear_pen_memory;
+
+font_size design_size*pt#;
+asc_height# := 24/36*design_size*pt#;
+cap_height# := 24/36*design_size*pt#;
+body_height# := 27/36*design_size*pt#;
+x_height# := 15.4/36*design_size*pt#;
+desc_depth# := 8/36*design_size*pt#;
+body_depth# := 9/36*design_size*pt#;
+comma_depth# := 5/36*design_size*pt#;
+x_depth# := 4/5comma_depth#;
+bar_height# := .52x_height#;
+cap_bar_height# := .52cap_height#;
+cap_bar2_height# := .45cap_height#;
+border_height# := comma_depth#;
+cap_drop_round# := 3.8*slab#;
+drop_round# := 6/8cap_drop_round#;
+A_bracket# := 1.4pt#;
+bracket# := pt#;
+
+font_x_height x_height#;
+font_normal_space 6u#;
+font_normal_stretch 4u#;
+font_normal_shrink 2u#;
+font_quad 16u#;
+font_extra_space 6u#;
+
+k# := .8u#;
+kk# := 1.5u#;
+kkk# := 3u#;
+
+serif_darkness := 1/30;
+define_pixels(bracket,cap_o_width,sss_width,css_width);
+define_pixels(c,s,cap_bar_height,cap_bar2_height);
+define_pixels(border_height,A_bracket,cap_drop_round,x_depth,drop_round);
+define_whole_blacker_pixels(stem,cap_stem,curve,cap_curve,bar,slab,cap_bar,vair,hair);
+define_whole_pixels(asc_height,cap_height,x_height,u,desc_depth,comma_depth,bar_height,body_height,body_depth,u,o,cap_jut,jut);
+%define_corrected_pixels();
+lowres_fix(stem,curve) 1.2;
+lowres_fix(cap_stem,cap_curve) 1.2;
+if jut=cap_jut: jut:=jut-1; fi
+
+def serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g if left_jut=0: -1/2slab fi +1/2slab; x$d=x$e=x$h if right_jut=0: +1/2slab fi-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def serif_edge suffix $ =
+(serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse serif_bracket($f,$r,$e)) enddef;
+
+def serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...serif_darkness[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def T_serif(suffix $)(expr slab, bord_height, direction)= %Direction: 0-left, 1-right;
+penpos$(slab,if direction=1: - fi 90);
+x$=x$a=x$g; y$g-y$=y$-y$a=1/2slab;
+x$b=x$a + if direction=0: - fi .882bord_height; y$b=y$d=y$c+1/2slab;
+x$c=x$b + if direction=0: - fi 1/2slab; y$c=y$a-bord_height;
+x$d=x$e=x$b + if direction=0: - fi slab;
+y$e=y$g-1/2slab; y$f=y$g; x$f=x$c;
+labels($a,$b,$c,$d,$e,$f,$g) enddef;
+
+def T_edge suffix $ =
+(z$a..{down}z$b..z$c..z$d--z$e{up}..z$f--z$g--cycle) enddef;
+
+def A_serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(A_bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g+1/2slab; x$d=x$e=x$h-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def A_serif_edge suffix $ =
+(A_serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse A_serif_bracket($f,$r,$e)) enddef;
+
+def A_serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...0.6[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def ur_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a= 1/2slab;
+x$e=x$a + drop_length; y$e=y$f- drop_height;
+x$d=x$e - 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e - drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d - 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ur_drop_edge suffix $ =
+(z$f{right}..tension.9..{down}z$e{down}..{left}z$d{left}..{up}z$c{up}..z$b...{left}z$a--cycle) enddef;
+
+def ul_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$f- drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d + 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ul_drop_edge suffix $ =
+(z$f{left}..tension.9..{down}z$e{down}..{right}z$d{right}..{up}z$c{up}..z$b...{right}z$a--cycle) enddef;
+
+def dl_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, -90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$a + drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e + 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d - drop_round); x$b=x$d + 1/90drop_round;
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def dl_drop_edge suffix $ =
+(z$a{left}..tension.9..{up}z$e{up}..{right}z$d{right}..{down}z$c..{dir 250}z$b{dir -80}..{right}z$f--cycle) enddef;
+
+def S_serif (suffix $)(expr serif_slab, serif_length, serif_height)=
+%penpos$(serif_slab,90);
+x$a=x$i=x$; y$i=y$+1/2serif_slab; y$a=y$-1/2serif_slab;
+x$f=x$e=x$a+serif_length; y$f=y$g-1/2serif_slab; y$e=y$c=y$d+1/2serif_slab;
+x$g=x$f-1/2serif_slab; y$g=y$i-1/2serif_slab;
+y$h=y$f-1/4serif_slab; x$h=x$g-serif_slab;
+x$c=x$e-serif_slab; x$d=x$e-1/2serif_slab; y$d=y$g-serif_height;
+x$b=x$h-6/18serif_length; y$b=y$h-1/2slab;
+labels ($a,$b,$c,$d,$e,$f,$g,$h,$i) enddef;
+
+def S_serif_edge suffix $ =
+(z$a{right}...z$b..{dir -80}z$c..z$d..z$e--z$f{up}..z$g{left}..z$h{dir 150}..{left}z$i--cycle) enddef;
+
+beginchar(CYR_A,13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar(CYR_BE,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=y5=h-1/2slab;
+y1c=h; y2c=0; x5e=w-s-1/2cap_stem;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h; x4=w-s-1/2cap_stem-border_height;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_VE,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+css_width := x8 - x2r; save css_width;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar(CYR_GHE,9u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; x3=x4+2u;
+y5=y3; x5e=w-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_DE,12u#,cap_height#,comma_depth#);
+x10e=w-s; y10c=-d;
+y4c=h; x4h=w-s-1/2slab;
+x9=x4; y9c=0;
+x3=x8=x9d; y8=y7=1/2cap_bar; y3=y2=h-y8;
+x6e=s; y6=y10; x7=border_height+s;
+y5=y9; x5g=s+.5u; y1=y4; x1=x5+1.5u;
+x2=x1c;
+A_serif(1,1.2cap_bar,-96,10/7cap_jut,cap_jut);
+A_serif(5,1.2cap_bar,81,6/7cap_jut,cap_jut);
+serif(4,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+penpos2(cap_bar,90);
+penpos3(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_bar,90);
+penstroke z7e--z8e; penstroke z2e--z3e;
+fill A_serif_edge5...reverse A_serif_edge1...cycle;
+fill serif_edge9--reverse serif_edge4--cycle;
+T_serif(6,slab,border_height,0);
+T_serif(10,slab,border_height,1);
+fill T_edge6;
+fill T_edge10;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_IE,10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_YE,10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+x12=x13=x2r; y12=h+1/4cap_stem; y13=y12+cap_stem;
+x14=x15=x12+2cap_stem; y14=y12; y15=y13;
+fill z12..z13..cycle; fill z14..z15..cycle;
+penlabels(range 1 thru 15);
+endchar;
+
+beginchar(CYR_ZHE,round (16u#+s#),cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; y7=y4=y10=y11=cap_bar_height; x4=x7-1.5u;
+x10=x8r; x11=x10+1.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+x6=s; y6=0; y4-y5=y5-y6; x4-x5=x5-x6;
+penpos7(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,90);
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z6e{right}..tension.8..{up}z5e{up}..tension.8..{right}z4e--z7e;
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+x3=x5+1/2cap_stem; y2=h; x4-x3=x3-x2; y2-y3=y3-y4;
+penpos3(hair,0);
+penpos2(cap_bar,90);
+penstroke z4e{left}..tension.8..{up}z3e{up}..tension.8..{left}z2e;
+y1=h; x1a=x2; fill z6l..z6r..cycle;
+ul_drop(1,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ul_drop_edge1; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ZE,10u#+.5s#,cap_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height;
+x4=x6-3/2cap_stem; x5=x4-3u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3c,1.4border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.5cap_drop_round,slab);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_I,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-20); penpos6(cap_bar,-20);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar(CYR_SHORT_I,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-20); penpos6(cap_bar,-20);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+x7=.5w; y7=h+cap_bar;
+ur_drop(7,.8cap_drop_round,1/2(x3l-x1r),.8cap_drop_round,1.2cap_bar);
+fill ur_drop_edge7 rotatedaround(z7,180);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_KA,12u#+s#,cap_height#,0);
+x8g=x9g=s; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+y10=y11=cap_bar_height;
+x10=x8r; x11=x10+2.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_EL,13u#+1/2s#,cap_height#,0);
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.9cap_drop_round; y3=1.1cap_drop_round;
+dl_drop(1,1.1cap_drop_round,1.1cap_drop_round,1.2cap_drop_round,slab);
+fill dl_drop_edge1;
+penpos2(cap_bar,-90);
+penpos3(cap_bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-slab;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,cap_bar,theta1,1.3cap_jut,1.3cap_jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,cap_stem,-90,cap_jut,cap_jut);
+serif(8,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_EM,13u#+1.5s#,cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,.51cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 109; y7l=10/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EN,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_O,11u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+cap_o_width := x7-x3; save cap_o_width;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_PE,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ER,10u#+s#,cap_height#,0);
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_ES,10u#+s#,cap_height#,0);
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_TE,round (11u#+s#),cap_height#,0);
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_U,13u#+s#,cap_height#,0);
+x1l=s+cap_jut; y1l=.98h-cap_bar;
+x3r=w-s-.8cap_jut; y3r=.98h-cap_bar;
+x4=33/60w; y4=6/53h;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.2cap_jut,.8cap_jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=0; x6=x4-1.2cap_stem; z7l=z2;
+penpos7(cap_bar,theta2+90);
+penpos5(cap_bar,theta2+90);
+penpos6(cap_bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,cap_drop_round,2u, 10/53h,cap_bar);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EF,round (14u#+s#),cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1=x2=.5w; y2c=0; y1h=h;
+y6=y7=y8=y9=1.3cap_jut; y4=y3=y11=y12=h-1.3cap_jut+1/2slab;
+x3=x7=x2l; x8=x12=x2r; x4=x6=x3-u; x11=x9=x12+u;
+x5=s+1/2cap_curve; x10-x1=x1-x5; y4-y5=y5-y6; y10=y5;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,270);
+penpos7(cap_bar,270);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+penpos10(cap_curve,0);
+penpos11(cap_bar,90);
+penpos12(cap_bar,90);
+penstroke z3e--z4e{left}..tension.8..{down}z5e{down}..tension.8..{right}z6e--z7e;
+penstroke z8e--z9e{right}..tension.8..{up}z10e{up}..tension.8..{left}z11e--z12e;
+penlabels (range 1 thru 12);
+endchar;
+
+beginchar(CYR_HA,12u#+s#,cap_height#,0);
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_TSE,12.5u#+s#,cap_height#,comma_depth#);
+x1=x2=x5=cap_jut+1/2cap_stem+s;
+x3=x4=x6=w-x1-.5u; y5=y6=y2h;
+y1c=y3c=h; y2c=y4c=0; x7e=w-s; y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e;
+T_serif(7,cap_bar,border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_CHE,12u#+s#,cap_height#,0);
+x1=cap_jut+1/2cap_stem+s;
+x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,-90,cap_jut,cap_jut);
+serif(3,cap_stem,90,cap_jut,cap_jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=cap_bar_height-1/2cap_bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-2cap_bar;
+penpos6(cap_stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SHA,16u#+s#,cap_height#,0);
+if .5w <> good.x .5w: change_width; fi
+x1=x2=good.x (cap_jut+1/2cap_stem+s);
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=good.x .5w; y5=y1; y6=y2;
+y9b=slab; x9=good.x w-x1;
+x10=x9; y10b=h-slab;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_SHCHA,16.5u#+s#,cap_height#,comma_depth#);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=slab; x9h=w-s-.5u;
+x10=x9; y10b=h-slab;
+x11e=w-s; y11=y9h;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,slab,border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_HARD_SIGN,13.5u#+c#,cap_height#,0);
+x2r=x5-css_width; x1=x2; x8e=s; y8g=h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+x7=x1d; y1c=h; y2c=0;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=round(x3+5u-cap_stem);
+y6=y7=y2h;
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(8,cap_bar,border_height,0);
+fill T_edge8;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YERU,16u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+y3=y4=cap_bar_height; x3=round x2r; x4=x6=round (x3+5u-cap_stem) - 1;
+y4-y5=y5-y6; x5=x2r+css_width; y8b=slab; x8h=w-s;
+y6=y7=y2h; x9=x8; y9b=h-slab;
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(8,cap_stem,90,cap_jut,cap_jut);
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge9--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SOFT_SIGN,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=x3+5u-cap_stem;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y6=y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_E,10u#+.5s#,cap_height#,0);
+x1=16/39w; x5=.5w; y1=0; y5=h;
+y7=.5h; x7=w-1/2cap_curve-s;
+x9e=s; y9=0;
+dl_drop(9,cap_drop_round,16/39w-s,1.7cap_drop_round,slab);
+y8=0.1h-c; y6=0.9h+c; x8=x9+9/16(x7-x9); x6=x5+9/16(x7-x5);
+penpos5(cap_bar,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+penpos1(cap_bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+y2=y5; x2=x5-c;
+S_serif(2,slab,x1+c,1.5border_height);
+x3=x7-1/2cap_stem; y3=y4=cap_bar_height; x4=x2b-x1;
+penpos3(cap_bar,90); penpos4(cap_bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YU,16u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+y3=y7=.5h; x7=w-1/2cap_curve-s; x3=x7-cap_o_width; y9=0; y5=h; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3cap_stem; y11=y12=cap_bar_height;
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_YA,11u#+s#,cap_height#,0);
+x1=x2=w-cap_jut-1/2cap_stem-s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2l;
+y1c=h; y2c=0; x6=x4=x7-2.5u; x3=x1c;
+y4-y5=y5-y6; x5=x8-1.5c; x9=s; y9=0; y6-y8=y8-y9; x7-x10=3(x10-x6); x10-x8=x8-x9;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos7(cap_bar,270);
+penpos6(cap_bar,270);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90); fill z9l..z9r..cycle;
+penstroke z3e--z4e{left}..tension.9..z5e..tension.9..{right}z6e--z7e;
+penstroke z9e{right}..tension1..{up}z8e{up}..tension1..{right}z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_a,.8(13u#+s#),.8cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+.8cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,.8*1.3cap_bar,theta4,.8cap_jut,.8*1.2cap_jut);
+serif(5,.8cap_stem,theta5,.8cap_jut,.8cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar(CYR_be,.8(11u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x3=x10=x1d; y3=y4=y5=h-1/2slab;
+y1c=h; y2c=0; x5e=w-s-.8*1/2cap_stem;
+y6=y7=.8cap_bar_height; x6=x2r; x7=x9=x6+3.6u-.8cap_stem;
+y7-y8=y8-y9; x8=w-.8*1/2cap_curve-s;
+y9=y10=y2h; x4=w-s-.8*1/2cap_stem-.8border_height;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penstroke z3e--z4e;
+T_serif(5,slab,.8border_height,1);
+fill T_edge5;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(.8cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ve,.8(11u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=.8cap_bar_height; x6=x2r; x7=x9=x6+.8*4.5u-.8cap_stem;
+y7-y8=y8-y9; x8=w-.8*1/2cap_curve-s; y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-.8*2/5cap_curve; y77=y7; x77=x4;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(.8cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(.8cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+sss_width := x8 - x2r; save sss_width;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar(CYR_ghe,.8(9u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; x3=x4+2u;
+y5=y3; x5e=w-s;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+T_serif(5,slab,.8border_height,1);
+fill T_edge5;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_de,.8*13u#,.8cap_height#,.8comma_depth#);
+x10e=w-s; y10c=-d; y4c=h; x4h=w-s-1/2slab; x9=x4; y9c=0;
+x3=x8=x9d; y8=y7=1/2cap_bar; y3=y2=h-y8;
+x6e=s; y6=y10; x7=.8border_height+s;
+y5=y9; x5g=s+.5u; y1=y4; x1=x5+u; x2=x1c;
+A_serif(1,cap_bar,-96,.8*10/7cap_jut,.8cap_jut);
+A_serif(5,cap_bar,81,.8*6/7cap_jut,.8cap_jut);
+serif(4,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(9,.8cap_stem,90,.8cap_jut,.8cap_jut);
+penpos2(cap_bar,90);
+penpos3(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_bar,90);
+penstroke z7e--z8e; penstroke z2e--z3e;
+fill A_serif_edge5...reverse A_serif_edge1...cycle;
+fill serif_edge9--reverse serif_edge4--cycle;
+T_serif(6,slab,.8border_height,0);
+T_serif(10,slab,.8border_height,1);
+fill T_edge6;
+fill T_edge10;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ie,.8(10u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-.7c;
+y6=y7=y8=.8cap_bar_height;x6=x1r; x7=x8=x6+.8u;
+T_serif(5,slab,.8border_height,1);
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a; penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8*.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,.8border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_ye,.8(10u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-.7c;
+y6=y7=y8=.8cap_bar_height;x6=x1r; x7=x8=x6+.8u;
+T_serif(5,slab,.8border_height,1);
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a; penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8*.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,.8border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+x12=x13=x2r; y12=h+.8*(1/4cap_stem); y13=y12+.8cap_stem;
+x14=x15=x12+.8*2cap_stem; y14=y12; y15=y13;
+fill z12..z13..cycle; fill z14..z15..cycle;
+penlabels(range 1 thru 15);
+endchar;
+
+beginchar(CYR_zhe,.8(16u#+s#),.8cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(9,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; y7=y4=y10=y11=.8cap_bar_height; x4=x7-.8*1.5u;
+x10=x8r; x11=x10+.8*1.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+x6=s; y6=0; y4-y5=y5-y6; x4-x5=x5-x6;
+penpos7(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8cap_curve,180);
+penpos6(cap_bar,90);
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(.8cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z6e{right}..tension.8..{up}z5e{up}..tension.8..{right}z4e--z7e;
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-.8*1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,.8cap_drop_round,.8*.9cap_drop_round,.8cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+x3=x5+.8*1/2cap_stem; y2=h; x4-x3=x3-x2; y2-y3=y3-y4;
+penpos3(hair,0);
+penpos2(cap_bar,90);
+penstroke z4e{left}..tension.8..{up}z3e{up}..tension.8..{left}z2e;
+y1=h; x1a=x2; fill z6l..z6r..cycle;
+ul_drop(1,.8cap_drop_round,.8*.9cap_drop_round,.8cap_drop_round,cap_bar);
+fill ul_drop_edge1; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ze,.8(10u#+.5s#),.8cap_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=.8cap_bar_height;
+x4=x6-.8*3/2cap_stem; x5=x4-.8*3u;
+x6=w-s-.8*1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-.8*1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(.8cap_curve,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(.8cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3c,.8*1.4border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,.8cap_drop_round,18/39w-s,.8*1.5cap_drop_round,slab);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_i,.8(12u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x5=x1+.8*1/3cap_stem; x6=x4-.8*1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(4,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-20); penpos6(cap_bar,-20);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar(CYR_short_i,.8(12u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x5=x1+.8*1/3cap_stem; x6=x4-.8*1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(4,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-20); penpos6(cap_bar,-20);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+x7=.5w; y7=h+cap_bar;
+ur_drop(7,.8*.8cap_drop_round,1/2(x3l-x1r),.8*.8cap_drop_round,.9cap_bar);
+fill ur_drop_edge7 rotatedaround(z7,180);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_ka,.8(12u#+s#),.8cap_height#,0);
+x8g=x9g=s; y8c=h; y9c=0;
+serif(8,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(9,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+y10=y11=.8cap_bar_height;
+x10=x8r; x11=x10+.8*2.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(.8cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-.8*1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,.8cap_drop_round,.8*.9cap_drop_round,.8*cap_drop_round,cap_bar);
+fill ur_drop_edge14; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_el,.8*(13u#+1/2s#),.8cap_height#,0);
+x7h=x8h=w-s; y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.8cap_drop_round; y3=.8*1.1cap_drop_round;
+dl_drop(1,.8*cap_drop_round,.8*cap_drop_round,.8*1.1cap_drop_round,slab);
+fill dl_drop_edge1;
+penpos2(cap_bar,-90);
+penpos3(cap_bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-slab;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,cap_bar,theta1,.8*1.3cap_jut,.8*1.3cap_jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(8,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_em,.8(13u#+s#),.8cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,.8jut,.8jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,.8cap_stem,-90,.51cap_bar,.8jut);
+serif(4,.8cap_stem,90,.8jut,.8jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -107; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 106; y7l=11/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(.8cap_stem,0); penpos8(.8cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_en,.8(12u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(4,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=.8cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_o,.8(11u#+1.2s#),.8cap_height#,0);
+penpos1(vair,90);
+penpos2(.8o,30);
+penpos3(.8cap_curve,0);
+penpos4(.8o,-30);
+penpos5(vair,-90);
+penpos6(.8o,-150);
+penpos7(.8cap_curve,-180);
+penpos8(.8o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=.8*1/2cap_curve+s; x7=w-.8*1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7.5/16(x5-x3); x6=x8=x5+8.5/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_pe,.8(12u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(4,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_er,.8(10u#+s#),.8cap_height#,0);
+x1=x2=x3=.8cap_jut+.8*1/2cap_stem+s;
+y3=y4=.8cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+.8*3u;
+y5-y4=y6-y5; x5=w-.8*1/2cap_curve-s;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(.8cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_es,.8(10u#+s#),.8cap_height#,0);
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=.8*1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7.5/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(.8o,30);
+penpos3(.8cap_curve,0);
+penpos4(.8o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-.7c-x1,.8*1.5border_height);
+S_serif(7,slab,w-s-x1,.8*1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_te,round .8(11u#+s#),.8cap_height#,0);
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,.8cap_stem,-90,.8*1.2cap_jut,.8*1.2cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round .8border_height,0);
+T_serif(4,cap_bar,round .8border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_u,.8(13u#+s#),.8cap_height#,0);
+x1l=s+.8cap_jut; y1l=.98h-cap_bar;
+x3r=w-s-.8*.8cap_jut; y3r=.98h-cap_bar;
+x4=33/60w; y4=6/53h;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,.8cap_stem,theta1,.8cap_jut,.8cap_jut);
+A_serif(3,cap_bar,theta2,.8*1.2cap_jut,.8*.8cap_jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=0; x6=x4-.8*1.2cap_stem; z7l=z2;
+penpos7(cap_bar,theta2+90);
+penpos5(cap_bar,theta2+90);
+penpos6(cap_bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,.8cap_drop_round,.8*2u, 9/53h,cap_bar);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_ef,round .8(14u#+s#),.8cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1=x2=.5w; y2c=0; y1h=h;
+y6=y7=y8=y9=.8*1.3cap_jut; y4=y3=y11=y12=h-.8*1.3cap_jut+1/2slab;
+x3=x7=x2l; x8=x12=x2r; x4=x6=x3-.8u; x11=x9=x12+.8u;
+x5=s+.8*1/2cap_curve; x10-x1=x1-x5; y4-y5=y5-y6; y10=y5;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8cap_curve,180);
+penpos6(cap_bar,270);
+penpos7(cap_bar,270);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+penpos10(.8cap_curve,0);
+penpos11(cap_bar,90);
+penpos12(cap_bar,90);
+penstroke z3e--z4e{left}..tension.9..{down}z5e{down}..tension.9..{right}z6e--z7e;
+penstroke z8e--z9e{right}..tension.9..{up}z10e{up}..tension.9..{left}z11e--z12e;
+penlabels (range 1 thru 12);
+endchar;
+
+beginchar(CYR_ha,.8(12u#+s#),.8cap_height#,0);
+y3=y4=slab; x3=w-s-.8cap_jut-.8*1/2cap_stem; x4=s+.8cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+.8cap_jut+.8*1/2cap_stem+c; x2=w-s-.8*1.5c-.8cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,.8cap_stem,theta1-180,.8cap_jut,.8cap_jut);
+A_serif(2,.8*1.2cap_bar,theta2-180,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,theta1,.8cap_jut,.8cap_jut);
+A_serif(4,.8*1.2cap_bar,theta2,.8cap_jut,.8cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_tse,.8(12.5u#+s#),.8cap_height#,.8comma_depth#);
+x1=x2=x5=.8cap_jut+.8*1/2cap_stem+s;
+x3=x4=x6=w-x1-.8*.5u; y5=y6=y2h;
+y1c=y3c=h; y2c=y4c=0; x7e=w-s; y7=y2h;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(4,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e;
+T_serif(7,cap_bar,.8border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_che,.8(12u#+s#),.8cap_height#,0);
+x1=.8cap_jut+.8*1/2cap_stem+s;
+x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=.8cap_bar_height-1/2cap_bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-.7*2cap_bar;
+penpos6(.8cap_stem,180);
+penpos5(vair,270);
+penpos7(vair,270);
+penstroke z6e{down}...z7e..z5e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_sha,.8(16u#+s#),.8cap_height#,0);
+if .5w <> good.x .5w: change_width; fi
+x1=x2=good.x (.8cap_jut+.8*1/2cap_stem+s);
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=good.x .5w; y5=y1; y6=y2;
+y9b=slab; x9=good.x w-x1;
+x10=x9; y10b=h-slab;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(6,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(10,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_shcha,.8(16.5u#+s#),.8cap_height#,.8comma_depth#);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=slab; x9h=w-s-.8*.5u;
+x10=x9; y10b=h-slab;
+x11e=w-s; y11=y9h;
+serif(9,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(10,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(6,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,slab,.8border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_hard_sign,.8(13.5u#+c#),.8cap_height#,0);
+x2r=x5-sss_width; x1=x2; x8e=s; y8g=h;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+x7=x1d; y1c=h; y2c=0;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y3=y4=.8cap_bar_height; x3=x2r; x4=x6=round(x3+3.5u-.8cap_stem);
+y6=y7=y2h;
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(8,cap_bar,.8border_height,0);
+fill T_edge8;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_yeru,.8(16u#+c#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x7=x1d; y1c=h; y2c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+y3=y4=.8cap_bar_height; x3=round x2r; x4=x6=round (x3+3.5u-.8cap_stem) - 1;
+y4-y5=y5-y6; x5=x2r+sss_width; y8b=slab; x8h=w-s;
+y6=y7=y2h; x9=x8; y9b=h-slab;
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(8,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(9,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+fill serif_edge8--reverse serif_edge9--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_soft_sign,.8(11u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=.8cap_bar_height; x3=x2r; x4=x6=x3+3.5u-.8cap_stem;
+y4-y5=y5-y6; x5=w-.8*1/2cap_curve-s;
+y6=y7=y2h;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_e,.8(10u#+.5s#),.8cap_height#,0);
+x1=16/39w; x5=.5w; y1=0; y5=h;
+y7=.5h; x7=w-.8*1/2cap_curve-s;
+x9e=s; y9=0;
+dl_drop(9,.8cap_drop_round,16/39w-s,.8*1.6cap_drop_round,slab);
+y8=0.1h-c; y6=0.9h+c; x8=x9+8.5/16(x7-x9); x6=x5+8/16(x7-x5);
+penpos5(cap_bar,-90);
+penpos6(.8o,-150);
+penpos7(.8cap_curve,-180);
+penpos8(.8o,-210);
+penpos1(cap_bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+y2=y5; x2=x5-c;
+S_serif(2,slab,x1+c,.8*1.5border_height);
+x3=x7-.8*1/2cap_stem; y3=y4=.8cap_bar_height; x4=x2b-x1;
+penpos3(cap_bar,90); penpos4(cap_bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_yu,.8(16u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(.8o,30);
+penpos3(.8cap_curve,0);
+penpos4(.8o,-30);
+penpos5(vair,-90);
+penpos6(.8o,-150);
+penpos7(.8cap_curve,-180);
+penpos8(.8o,-210);
+y3=y7=.5h; x7=w-.8*1/2cap_curve-s; x3=x7-.8cap_o_width; y9=0; y5=h; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+7.5/16(x5-x3); x6=x8=x5+8.5/16(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-.8*1/3cap_stem; y11=y12=.8cap_bar_height;
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ya,.8(11u#+s#),.8cap_height#,0);
+x1=x2=w-.8cap_jut-.8*1/2cap_stem-s;
+y6=y10=y7=.8cap_bar_height; y3=y4=h-1/2slab; x7=x2l;
+y1c=h; y2c=0; x6=x4=x7-2.3u; x3=x1c;
+y4-y5=y5-y6; x5=x8-1.5c; x9=s; y9=0; y6-y8=y8-y9; x7-x10=3(x10-x6); x10-x8=x8-x9;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8cap_curve,180);
+penpos7(cap_bar,270);
+penpos6(cap_bar,270);
+penpos8(.8cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{left}..tension1..z5e..tension1..{right}z6e--z7e;
+penstroke z9e{right}..tension1..{up}z8e{up}..tension1..{right}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("A",13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar("B",11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,1/2cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("C",10u#+s#,cap_height#,0);
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("D",12u#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(o,30);
+penpos6(cap_curve,0);
+penpos7(o,-30);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+x3=x9=x1d;
+x8=x4=.5w; y8=y9=1/2cap_bar; y4=y3=h-1/2cap_bar;
+y6=.5h; x6=w-1/2cap_curve-s;
+y7=0.1h-c+1/2cap_bar; y5=0.9h+c-1/2cap_bar; x5=x7=x4+6/10(x6-x4);
+penstroke z3e--z4e{right}..z5e..z6e..z7e..{left}z8e--z9e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("E",10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("F",10u#+.5s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("G",10u#+cap_jut#+c#+s#,cap_height#,0);
+x1=x5=23/42(w-cap_jut-c); y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s-cap_jut-c; y8=y1; x8=x1-.1(w-cap_jut-c);
+S_serif(6,slab,w-s-2c-x1-cap_jut,1.5border_height);
+S_serif(7,slab,w-s-x1-cap_jut+c,7/4border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+x9r=x7e; y9r=7/4border_height-1/2cap_bar;
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+x10=x9l; x11=x9r; y10=y11=3/4cap_bar;
+fill reverse serif_edge9--z10--z11--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("H",12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("I",2cap_jut#+cap_stem#+2s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+endchar;
+
+beginchar("J",7u#+s#,cap_height#,0);
+x1=x4=w-cap_jut-1/2cap_stem-s;
+y1c=h; y2=y3=y4=13/53h; x2=x1r; x3=x1l;
+y5=0; x5=x3-.55cap_stem;
+serif(1,cap_stem,-90,1.2cap_jut,cap_jut);
+fill z3--z2--reverse serif_edge1--cycle;
+penpos4(cap_stem,0);
+penpos5(cap_bar,-90);
+penstroke z4e{down}..{left}z5e;
+x6e=s; y6=0;
+dl_drop(6,cap_drop_round,x5-s,1.3drop_round,cap_bar);
+fill dl_drop_edge6;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("K",13u#-c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=cap_bar_height; x3l=w-cap_jut-.5cap_jut-cap_bar-s; y3l=h-cap_bar;
+x5=x6=x1r; y5=cap_bar_height-cap_bar; y6=y5-1.2cap_bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+A_serif(3,cap_bar,theta1,1.5cap_jut,.6cap_jut);
+x4l=w-s-1.2cap_jut-cap_stem; y4l=cap_bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,cap_stem,theta2,.8cap_jut,cap_jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("L",10u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=y5=y2h; x3=x2d; x5e=w-s;
+T_serif(5,cap_bar,border_height,1); x4=x5;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penstroke z3e--z4e;
+fill T_edge5 reflectedabout(z3,z4);
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar("M",13u#+1.5s#,cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,.51cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 109; y7l=10/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("N",12u#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_bar+s;
+x3=w-x1; y1c=y3c=h; y2c=y4=y5=0;
+x4=x3r; x5=x3l;
+serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+A_serif(2,cap_bar,90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill A_serif_edge2--reverse serif_edge1--cycle;
+numeric theta[]; y7=y1h; x7=x1h-1.1cap_stem;
+theta1=angle(z5-z7);
+z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+fill z6--z1h--z7--z5{down}..{up}z4--reverse A_serif_edge3--cycle;
+unfill z1b--z1l--z1a--cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("O",11u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("P",10u#+s#,cap_height#,0);
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Q",11u#+s#,cap_height#,comma_depth#);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x12-1.5c; x12=x7l-c; y11=y12=-comma_depth;
+y9=0; x9=x1-c; y9-y10=y10-y11; x11-x10=x10-x9;
+penpos9(cap_bar,90); penpos10(cap_curve,0);
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z9e{dir -20}..tension.8..z10e..tension.8..{right}z11e--z12e;
+fill z12r..z12l..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("R",11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2r;
+y1c=h; y2c=0; x6=x4=x7+2.3u; x3=x1d;
+y4-y5=y5-y6; x5=x8; x9=w-s-1/2cap_bar; y9=0; y6-y8=y8-y9; x10=x6; x9-x8=6/7(x8-x10);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,-90);
+penpos6(cap_bar,-90);
+penpos8(cap_curve,-180);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90); fill z9l..z9r..cycle;
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penstroke z9e{left}..tension.9..z8e{up}..tension.9..{left}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("S",9u#+s#,cap_height#,0);
+x6=x7=1/2w; y6=y7=0;
+S_serif(7,cap_bar,x6-s,1.5border_height);
+y5=11/53h; x5=w-s-1/2(1.9hair);
+y4=28/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2(1.9cap_bar);
+x2=.5w-c; y2=h; z1=z2;
+penpos6(cap_bar,-90);
+penpos5(1.9hair,0);
+penpos4(1.1cap_curve,90);
+penpos3(1.9hair,0);
+penpos2(cap_bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-cap_bar,1.2border_height);
+fill S_serif_edge1;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("T",round (11u#+s#),cap_height#,0);
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("U",12u#+s#,cap_height#,0);
+x1=cap_jut+1/2cap_stem+s;
+x3=w-s-cap_jut-1/2cap_bar;
+y1c=y3c=h; y2=y4=y5=y6=y24=y56=16/53h; x2=x1l;
+x4=x1r; x5=x3l; x6=x3r;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill z2--z4--reverse serif_edge1--cycle;
+fill z5--z6--reverse A_serif_edge3--cycle;
+x7=x1+.5(x3-x1); y7=0; x4-x24=x24-x2; x6-x56=x56-x5;
+penpos24(cap_stem,-180); penpos7(vair,-90);
+penpos56(cap_bar,0);
+penstroke z24e{down}..tension.9..{right}z7e{right}..tension.9..{up}z56e;
+penlabels(range 1 thru 7,24,56);
+endchar;
+
+beginchar("V",12u#,cap_height#,0);
+x1l=cap_jut+s;
+x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w-1/2cap_bar; x5=.5w+1/2cap_bar;
+y4=y5=1/2cap_bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("W",17u#,cap_height#,0);
+x9l=.5w-.3cap_stem;
+x7r=w-s-cap_jut;
+y9l=y7r=y1l=h-cap_bar; x5=x9l+.5(x7r-x9l)-1/2cap_bar; x6=x9l+.5(x7r-x9l)+1/2cap_bar;
+y5=y6=y2=y3=1/2cap_bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(7,cap_bar,theta2,1.3cap_jut,cap_jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+cap_jut;
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+z2=z1l+whatever*dir theta1; x3=x2+cap_bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("X",12u#+s#,cap_height#,0);
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("Y",12u#,cap_height#,0);
+x1l=cap_jut+s;
+x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w;
+y4=8/25h;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+y5c=0; x5=.5w+.5c;
+serif(5,cap_stem,90,cap_jut,cap_jut);
+x6=x5l; x7=x5r;
+z6=z1l+whatever*dir theta1;
+z7=z3r+whatever*dir theta2;
+fill z6--serif_edge5--z7--reverse A_serif_edge3--z2--reverse serif_edge1--z6&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Z",9u#+1.5s#,cap_height#,0);
+x6=s+1/2cap_bar; y6=y7=y8=1/2cap_bar;
+x8e=w-s; x7=x8;
+T_serif(8,cap_bar,border_height,1);
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4cap_bar;
+x4r=w-s-1/4cap_bar; y4=h-cap_bar;
+penpos4(cap_stem,0);
+penpos5(cap_stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2cap_bar;
+x3=w-s-1/2cap_bar; x1e=s+c;
+T_serif(1,cap_bar,border_height,0);
+x2=x1;
+penpos3(cap_bar,90);
+penpos2(cap_bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar("a",.8(13u#+s#),.8cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+.8cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,.8*1.3cap_bar,theta4,.8cap_jut,.8*1.2cap_jut);
+serif(5,.8cap_stem,theta5,.8cap_jut,.8cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar("b",.8(11u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=.8cap_bar_height; x6=x2r; x7=x9=x6+.8*4.5u-.8cap_stem;
+y7-y8=y8-y9; x8=w-.8*1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-.8*2/5cap_curve; y77=y7; x77=x4;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(.8cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(.8cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+sss_width := x8 - x2r; save sss_width;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("c",.8(10u#+s#),.8cap_height#,0);
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=.8*1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7.5/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(.8o,30);
+penpos3(.8cap_curve,0);
+penpos4(.8o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-.7c-x1,.8*1.5border_height);
+S_serif(7,slab,w-s-x1,.8*1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar("d",.8*12u#,.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8o,30);
+penpos6(.8cap_curve,0);
+penpos7(.8o,-30);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+x3=x9=x1d;
+x8=x4=.5w; y8=y9=1/2cap_bar; y4=y3=h-1/2cap_bar;
+y6=.5h; x6=w-.8*1/2cap_curve-s;
+y7=0.1h-c+1/2cap_bar; y5=0.9h+c-1/2cap_bar; x5=x7=x4+.56(x6-x4);
+penstroke z3e--z4e{right}..z5e..z6e..z7e..{left}z8e--z9e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("e",.8(10u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-.7c;
+y6=y7=y8=.8cap_bar_height;x6=x1r; x7=x8=x6+.8u;
+T_serif(5,slab,.8border_height,1);
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8*.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,.8border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("f",.8(10u#+.5s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; y5=y3; x5e=w-s;
+y6=y7=y8=.8*cap_bar_height;x6=x1r; x7=x8=x6+.8u;
+T_serif(5,slab,.8border_height,1);
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a; penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8*.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("g",.8(10u#+cap_jut#+c#+s#),.8cap_height#,0);
+x1=x5=23/42(w-.8cap_jut-c); y1=0; y5=h;
+y3=.5h; x3=.8*1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+8.5/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(.8o,30);
+penpos3(.9cap_curve,0);
+penpos4(.8o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s-.8cap_jut; y8=y1; x8=x1-.1(w-.8cap_jut-.8c);
+S_serif(6,slab,w-s-.8*2c-x1-.8cap_jut,.8*1.5border_height);
+S_serif(7,slab,w-s-x1-.8cap_jut+.8c,.8*7/4border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+x9r=x7e; y9r=.75*7/4border_height-1/2cap_bar;
+serif(9,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+x10=x9l; x11=x9r; y10=y11=3/4cap_bar;
+fill reverse serif_edge9--z10--z11--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("h",.8(12u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(4,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=.8cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("i",.8(2cap_jut#+cap_stem#+2s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+endchar;
+
+beginchar("j",.8(7u#+s#),.8cap_height#,0);
+x1=x4=w-.8cap_jut-.8*1/2cap_stem-s;
+y1c=h; y2=y3=y4=13/53h; x2=x1r; x3=x1l;
+y5=0; x5=x3-.8*.5cap_stem;
+serif(1,.8cap_stem,-90,.8*1.2cap_jut,.8cap_jut);
+fill z3--z2--reverse serif_edge1--cycle;
+penpos4(.8cap_stem,0);
+penpos5(cap_bar,-90);
+penstroke z4e{down}..{left}z5e;
+x6e=s; y6=0;
+dl_drop(6,.8cap_drop_round,x5-s,.8*1.3drop_round,cap_bar);
+fill dl_drop_edge6;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("k",.8(13u#-c#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=.8cap_bar_height; x3l=w-.8cap_jut-.8*.5cap_jut-cap_bar-c; y3l=h-cap_bar;
+x5=x6=x1r; y5=.8cap_bar_height-cap_bar; y6=y5-1.2cap_bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+A_serif(3,cap_bar,theta1,.8*1.5cap_jut,.8*.6cap_jut);
+x4l=w-s-.8*1.2cap_jut-.8cap_stem; y4l=cap_bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,.8cap_stem,theta2,.8*.8cap_jut,.8cap_jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("l",.8(10u#+c#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=y5=y2h; x3=x2d; x5e=w-s;
+T_serif(5,cap_bar,.8border_height,1); x4=x5;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penstroke z3e--z4e;
+fill T_edge5 reflectedabout(z3,z4);
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar("m",.8(13u#+s#),.8cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,.8jut,.8jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,.8cap_stem,-90,.51cap_bar,.8jut);
+serif(4,.8cap_stem,90,.8jut,.8jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -107; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 106; y7l=11/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(.8cap_stem,0); penpos8(.8cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("n",.8*12u#,.8cap_height#,0);
+x1=x2=.8cap_jut+1/2cap_bar+s;
+x3=w-x1; y1c=y3c=h; y2c=y4=y5=0;
+x4=x3r; x5=x3l;
+serif(1,cap_bar,-90,.8cap_jut,.8*1.3cap_jut);
+A_serif(2,cap_bar,90,.8cap_jut,.8cap_jut);
+A_serif(3,cap_bar,-90,.8cap_jut,.8cap_jut);
+fill A_serif_edge2--reverse serif_edge1--cycle;
+numeric theta[]; y7=y1h; x7=x1h-.8*1.1cap_stem;
+theta1=angle(z5-z7);
+z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+fill z6--z1h--z7--z5{down}..{up}z4--reverse A_serif_edge3--cycle;
+unfill z1b--z1l--z1a--cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("o",.8(11u#+s#),.8cap_height#,0);
+penpos1(vair,90);
+penpos2(.8o,30);
+penpos3(.8cap_curve,0);
+penpos4(.8o,-30);
+penpos5(vair,-90);
+penpos6(.8o,-150);
+penpos7(.8cap_curve,-180);
+penpos8(.8o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=.8*1/2cap_curve+s; x7=w-.8*1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7.5/16(x5-x3); x6=x8=x5+8.5/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar("p",.8(10u#+s#),.8cap_height#,0);
+x1=x2=x3=.8cap_jut+.8*1/2cap_stem+s;
+y3=y4=.8cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+.8*2.8u;
+y5-y4=y6-y5; x5=w-.8*1/2cap_curve-s;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(.8cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("q",.8(11u#+s#),.8cap_height#,.8comma_depth#);
+penpos1(vair,90);
+penpos2(.8o,30);
+penpos3(.8cap_curve,0);
+penpos4(.8o,-30);
+penpos5(vair,-90);
+penpos6(.8o,-150);
+penpos7(.8cap_curve,-180);
+penpos8(.8o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=.8*1/2cap_curve+s; x7=w-.8*1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7.5/16(x5-x3); x6=x8=x5+8.5/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x12-1.5c; x12=x7l-c; y11=y12=-.8comma_depth;
+y9=0; x9=x1-c; y9-y10=y10-y11; x11-x10=x10-x9;
+penpos9(cap_bar,90); penpos10(.8cap_curve,0);
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z9e{dir -20}..tension.8..z10e..tension.8..{right}z11e--z12e;
+fill z12r..z12l..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("r",.8(11u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y6=y10=y7=.8cap_bar_height; y3=y4=h-1/2slab; x7=x2r;
+y1c=h; y2c=0; x6=x4=x7+1.7u; x3=x1d;
+y4-y5=y5-y6; x5=x8+.5c; x9=w-s-1/3cap_bar; y9=0; y6-y8=y8-y9; x10=x6-c; x9-x8=6/7(x8-x10);
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8cap_curve,0);
+penpos7(cap_bar,-90);
+penpos6(cap_bar,-90);
+penpos8(.8cap_curve,-180);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penstroke z9e{left}..tension.9..{up}z8e{up}..tension.8..{left}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("s",.8(9u#+s#),.8cap_height#,0);
+x6=x7=1/2w; y6=y7=0;
+S_serif(7,cap_bar,x6-s,.8*1.5border_height);
+y5=11/53h; x5=w-s-1/2(1.9hair);
+y4=28/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2(1.9cap_bar);
+x2=.5w-c; y2=h; z1=z2;
+penpos6(cap_bar,-90);
+penpos5(.8*1.9hair,0);
+penpos4(.8*1.1cap_curve,80);
+penpos3(.8*1.9hair,0);
+penpos2(cap_bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.85..z4e..tension.85..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-.5cap_bar,.8*1.2border_height);
+fill S_serif_edge1;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("t",round .8(11u#+s#),.8cap_height#,0);
+x1=x2=.5w; y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,.8cap_stem,-90,.8*1.2cap_jut,.8*1.2cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round .8border_height,0);
+T_serif(4,cap_bar,round .8border_height,1);
+fill T_edge3; fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("u",.8(12u#+s#),.8cap_height#,0);
+x1=.8cap_jut+.8*1/2cap_stem+s;
+x3=w-s-.8cap_jut-1/2cap_bar;
+y1c=y3c=h; y2=y4=y5=y6=y24=y56=16/53h; x2=x1l;
+x4=x1r; x5=x3l; x6=x3r;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+A_serif(3,cap_bar,-90,.8cap_jut,.8cap_jut);
+fill z2--z4--reverse serif_edge1--cycle;
+fill z5--z6--reverse A_serif_edge3--cycle;
+x7=x1+.5(x3-x1); y7=0; x4-x24=x24-x2; x6-x56=x56-x5;
+penpos24(.8cap_stem,-180); penpos7(vair,-90);
+penpos56(cap_bar,0);
+penstroke z24e{down}..tension.9..{right}z7e{right}..tension.9..{up}z56e;
+penlabels(range 1 thru 7,24,56);
+endchar;
+
+beginchar("v",.8*12u#,.8cap_height#,0);
+x1l=.8cap_jut+s;
+x3r=w-s-.8cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w-1/2cap_bar; x5=.5w+1/2cap_bar;
+y4=y5=1/2cap_bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,.8cap_stem,theta1,.8cap_jut,.8cap_jut);
+A_serif(3,cap_bar,theta2,.8*1.3cap_jut,.8cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("w",.8*17u#,.8cap_height#,0);
+x9l=.5w-.8*.3cap_stem;
+x7r=w-s-.8cap_jut;
+y9l=y7r=y1l=h-cap_bar; x5=x9l+.5(x7r-x9l)-1/2cap_bar; x6=x9l+.5(x7r-x9l)+1/2cap_bar;
+y5=y6=y2=y3=1/2cap_bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,.8cap_stem,theta1,.8cap_jut,.8cap_jut);
+A_serif(7,cap_bar,theta2,.8*1.3cap_jut,.8cap_jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+.8cap_jut;
+serif(1,.8cap_stem,theta1,.8cap_jut,.8cap_jut);
+z2=z1l+whatever*dir theta1; x3=x2+cap_bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("x",.8(12u#+s#),.8cap_height#,0);
+y3=y4=slab; x3=w-s-.8cap_jut-.8*1/2cap_stem; x4=s+.8cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+.8cap_jut+.8*1/2cap_stem+c; x2=w-s-.8*1.5c-.8cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,.8cap_stem,theta1-180,.8cap_jut,.8cap_jut);
+A_serif(2,.8*1.2cap_bar,theta2-180,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,theta1,.8cap_jut,.8cap_jut);
+A_serif(4,.8*1.2cap_bar,theta2,.8cap_jut,.8cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("y",.8*12u#,.8cap_height#,0);
+x1l=.8cap_jut+s; x3r=w-s-.8cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w;
+y4=8/25h;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z4-z3r);
+serif(1,.8cap_stem,theta1,.8cap_jut,.8cap_jut);
+A_serif(3,cap_bar,theta2,.8*1.3cap_jut,.8cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+y5c=0; x5=.5w+.5c;
+serif(5,.8cap_stem,90,.8cap_jut,.8cap_jut);
+x6=x5l; x7=x5r;
+z6=z1l+whatever*dir theta1;
+z7=z3r+whatever*dir theta2;
+fill z6--serif_edge5--z7--reverse A_serif_edge3--z2--reverse serif_edge1--z6&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("z",.8(9u#+1.5s#),.8cap_height#,0);
+x6=s+1/2cap_bar; y6=y7=y8=1/2cap_bar; x8e=w-s; x7=x8;
+T_serif(8,cap_bar,.8border_height,1);
+penpos6(cap_bar,90); penpos7(cap_bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-.5c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4cap_bar;
+x4r=w-s-1/4cap_bar; y4=h-cap_bar;
+penpos4(.8cap_stem,0);
+penpos5(.8cap_stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2cap_bar;
+x3=w-s-1/2cap_bar; x1e=s+c;
+T_serif(1,cap_bar,.8border_height,0); x2=x1;
+penpos3(cap_bar,90); penpos2(cap_bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1; x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(hex"30",9u#+1.5s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7.5/16(x5-x3); x6=x8=x5+8.5/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"31",6u#+3/2c#,cap_height#,0);
+y1c=0; x1h=w-s;
+serif(1,cap_stem,90,cap_jut,cap_jut);
+x6=x1f; y5=y6=h; x5=x1; x2=x1a; y2=42/53h;
+penpos4(1.1cap_bar,theta1+45);
+penpos3(1.1cap_bar,theta1+45);
+x4l=s; y4=30/53h; numeric theta[]; theta1=angle(z5-z4l);
+z3l=z5; penstroke z3e--z4e; fill z4l..z4r..cycle;
+fill serif_edge1--z6{dir 110}..{dir 250}z5--z2--cycle;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"32",9u#,cap_height#,0);
+z4=(9/33w,14/53h); z5=(s+11/20cap_bar,0);
+z3=(w-s-.5c-7/16cap_curve,40/53h); z2=(15/33w,h);
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos4(1.1cap_bar,-45);
+penpos5(1.1cap_bar,0);
+x6=x5r; y6=y7=7/16cap_stem; y8=1/2cap_bar;
+x8e=w-s; x7=x8e;
+T_serif(8,cap_bar,3/5border_height,1);
+penpos6(7/8cap_stem,90);
+penpos7(7/8cap_stem,90);
+penstroke z6e--z7e; %fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+unfill z11{down}..z9--z10--cycle;
+penstroke z5e{up}..z4e..{up}z3e{up}..{left}z2e;
+z1=z2; ul_drop(1,cap_drop_round,15/33w-3c,1.4cap_drop_round,slab);
+fill ul_drop_edge1;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"33",9u#,cap_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height+c;
+x4=x6-3/2cap_stem; x5=x4-2u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-.3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_stem,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..{down}z3e{down}..{left}z44e;
+penstroke z5e--z4e{right}..tension.9..{down}z6e{down}..tension.9..{left}z7e;
+fill z5r..z5l..cycle;
+ul_drop(1,cap_drop_round,17/39w-s,1.1cap_drop_round,slab);
+fill ul_drop_edge1;
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.3cap_drop_round,slab);
+fill dl_drop_edge8;
+penlabels(1,2,3,4,5,6,7,8,44);
+endchar;
+
+beginchar(hex"34",9u#+c#,cap_height#,0);
+y1=y2=33/53h; y4c=0; x4h=w-s;
+serif(4,7/8cap_stem,90,cap_jut,cap_jut);
+x1=x4r; x2=x1-bar;
+x3=x4l; y3=28/53h;
+numeric theta[]; theta1=angle(z2-z3);
+fill z3{dir theta1}--z2{dir theta1}..{down}z1--reverse serif_edge4--z3&cycle;
+y5=y6=15/53h; x5=x4e; x6=s+cap_bar;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e; fill z5r..z5l..cycle;
+y7=y6l; x7l=x6; z8=(6/36w, 21/53h);
+z9=(2/3w,h);
+penpos7(cap_bar,180); penpos8(cap_bar,150);
+penpos9(cap_stem,180);
+penstroke z7e{up}..z8e..{dir 70}z9e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"35",9u#,cap_height#,0);
+x7=x4=18/39w; y7=0; y5=cap_bar_height+c; y4=y5+s;
+x8e=s; y8=0; x5=x8d;
+dl_drop(8,cap_drop_round,18/39w-s,1.3cap_drop_round,slab);
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z5e..z4e{right}..tension.85..{down}z6e{down}..tension.85..{left}z7e;
+fill z5r..z5l..cycle;
+fill dl_drop_edge8;
+z3=z5; x2=x3; y2=h;
+penpos3(cap_bar,0); penpos2(cap_bar,0);
+penstroke z3e--z2e; fill z2l..tension 1.7..z2r..tension 1.7..cycle;
+y1r=h; x1=x2r; x13=x6; y13=h; 2(x12-x1)=x13-x12; y12=h-.6cap_stem;
+penpos1(7/8cap_stem,90); penpos13(1.1cap_bar,90); penpos12(3/4cap_stem,90);
+penstroke z1e..z12e..z13e; fill z13r..tension 1.7..z13l..tension 1.7..cycle;
+penlabels(1,2,3,4,5,6,7,8,12,13);
+endchar;
+
+beginchar(hex"36",9u#+c#,cap_height#,0);
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=x9=.45w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.1h-c; y4=y6=0.9h+1.2c; x8=x6=x7+13/32(x5-x7); x4=x10=x5+9.5/16(x3-x5); x2=x4-1/2c;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.1h-c; y11=y7;
+x11l=x3l+c; y10=y8;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e..z10e..z11e;
+z12 = z1;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+z13 = (.5w,.5h);
+currentpicture := currentpicture rotatedaround(z13,180);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"37",9u#-c#,cap_height#,0);
+x4=w-s-1/2cap_bar; y4=h-1/2cap_bar;
+penpos4(cap_bar,0);
+y3=y2=h-7/16cap_stem; y1=h-7/8cap_stem+1/2cap_bar;
+x3=x4l; x1e=s;
+T_serif(1,cap_bar,3/5border_height,0);
+x2=x1e;
+penpos3(7/8cap_stem,90);
+penpos2(7/8cap_stem,90);
+penstroke z2e--z3e;
+fill T_edge1; z44=(x4,h); fill z4r{up}..{left}z44--z3r--z4l--cycle;
+x10=s+c; x11=s; y10=y11=h;
+unfill z1d{up}..z10--z11--cycle;
+unfill z1d{up}..z10--z11--cycle;
+x5r=x3; y5=h-7/8cap_stem;
+x6=14/30w; y6=1/3cap_curve;
+penpos5(cap_bar,0); penpos6(cap_curve,0);
+penstroke z4e{dir -105}..z5e..{dir -95}z6e; fill z6l..z6r..cycle;
+penlabels(1,2,3,4,5,6,10,11,12);
+endchar;
+
+beginchar(hex"38",10u#-s#,cap_height#,0);
+x6=x4=x2=x8=1/2w; y6=0; y2=h;
+y5=11/53h; y7=13/53h; x5=w-s-1/2(1.9hair);
+y4=y8=28/53h; y3=42/53h; y1=40/53h; x3=2s+1/2(1.9cap_bar);
+x1=w-2s-1/2(1.9cap_bar); x7=w-x5;
+penpos6(cap_bar,-90);
+penpos5(2.5hair,0);
+penpos4(cap_curve,75);
+penpos3(2.5hair,0);
+penpos2(cap_bar,-90);
+penpos1(2.5hair,-180);
+penpos7(2.5hair,-180);
+penpos8(cap_bar,-270);
+penstroke z6e{right}..tension.9..z5e..tension.85..z4e..tension.85..z3e..tension.9..{right}z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"39",9u#+c#,cap_height#,0);
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=x9=.45w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.1h-c; y4=y6=0.9h+1.2c; x8=x6=x7+13/32(x5-x7); x4=x10=x5+9.5/16(x3-x5); x2=x4-1/2c;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.1h-c; y11=y7;
+x11l=x3l+c; y10=y8;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e..z10e..z11e;
+z12 = z1;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+beginchar(oct"56",cap_stem#+2s#,cap_stem#,0);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+endchar;
+
+beginchar(oct"54",cap_stem#+2s#+c#,cap_stem#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"60",cap_stem#+2s#+c#,asc_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(oct"41", cap_stem#+2s#,cap_height#,0); "Exclamation mark";
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+ x3=.5w-1/2cap_bar; x4=.5w+1/2cap_bar; y3=y4=3/2cap_stem;
+ x6=x1; x5=x2; y5=y6=h;
+ fill z6--z3..z4--z5{up}..z6&cycle;
+endchar;
+
+beginchar(hex"22",2cap_stem#+3s#+2c#,cap_height#,0);
+ z1=(s,h-1/2cap_stem); z2=(x1+cap_stem+c,h-1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-cap_stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"5C",2cap_stem#+3s#+2c#,cap_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(x1+cap_stem+c,1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"7b",10u#-1.5c#,x_height#,0); "En dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"3D",10u#+1.5c#,x_height#,0);
+ z1=(s+1/2bar,bar_height-3c); z2=(w-s-1/2bar,bar_height-3c);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+3c); z4=(w-s-1/2bar,bar_height+3c);
+ penpos3(bar,90); penpos4(bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"23",13u#,asc_height#,body_depth#);
+ z1=(s+1/2bar,bar_height-5c); z2=(w-s-1/2bar,bar_height-5c);
+ penpos1(1.5bar,90); penpos2(1.5bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+5c); z4=(w-s-1/2bar,bar_height+5c);
+ penpos3(1.5bar,90); penpos4(1.5bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ z5=(.5w-5c,bar_height); z6=(.5w+5c,bar_height);
+ z7=z5+whatever*dir 76; y7=h; z8=whatever[z5,z7]; y8=-d;
+ penpos7(1.5bar,0); penpos8(1.5bar,0);
+ fill z7l{up}..{down}z7r--z8r{down}..{up}z8l--z7l&cycle;
+ z9=z6+whatever*dir 76; y9=h; z10=whatever[z6,z9]; y10=-d;
+ penpos9(1.5bar,0); penpos10(1.5bar,0);
+ fill z9l{up}..{down}z9r--z10r{down}..{up}z10l--z9l&cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"7c",14u#,x_height#,0); "Em dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(oct"55",2cap_jut#+cap_stem#+2s#,x_height#,0); "hyphen";
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"5F",1.1stem#+2s#,x_height#+2.1stem#,0);
+ z1=(.5w,h); z2=(.5w,h-1.1stem);
+ fill z1..z2..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7E",7u#,body_height#,0);
+ pickup pencircle xscaled .6pt yscaled .2pt rotated 55;
+ z4=(w-s-c,h-s); x1=s+c; y1=y4-1/2cap_stem;
+ y2-y1=y4-y3=3(y4-y1); z2-z1=z4-z3=whatever * dir 55;
+ draw z1..controls z2 and z3..z4;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"3C",7u#-2c#,x_height#,0); "looks like <<";
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3E",7u#-2c#,x_height#,0);
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ z10=(.5w,.5h);
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ currentpicture := currentpicture rotatedaround(z10,180);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3B",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+3/2c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ z8=(s,h-1/2cap_stem); z9=(w-s,h-1/2cap_stem);
+ fill z8..z9..cycle;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(hex"3A",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ fill z1..z2..cycle;
+ penlabels(1,2,3,4);
+ z3=(s,1/2cap_stem); z4=(w-s,1/2cap_stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2B",2cap_jut#+cap_stem#+2s#,x_height#,0);
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ x3=x4=.5w; y3=y2+1/2(x2-x1); y4=y2-1/2(x2-x1);
+ penpos3(1.8bar,0); penpos4(1.8bar,0);
+ penstroke z3e--z4e;
+ fill z3r..z3l..cycle; fill z4r..z4l..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2F",2s#+bar#,body_height#,body_depth#);
+ z1=(.5w,h-.5bar); z2=(.5w,-d+.5bar);
+ %pickup pencircle xscaled bar yscaled bar;
+ penpos1(bar,0); penpos2(bar,0);
+ penstroke z1e--z2e; fill z1r..z1l..cycle;
+ fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"27",cap_stem#+2s#+c#,x_height#+2.1stem#,0);
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ z6=(.5w-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"28",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"29",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"86",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"87",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"5B",2s#+3cap_bar#,body_height#,body_depth#);
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x2,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z1r..z1l..cycle; fill z6r..z6l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"5D",2s#+3cap_bar#,body_height#,body_depth#);
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x1,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z2r..z2l..cycle; fill z5r..z5l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"B9",16u#,cap_height#,0);
+ x1=x2=cap_jut+1/2cap_bar+s+cap_stem;
+ x3=w-x1-1/2cap_stem; y1c=h; y4=y5=0;
+ x4=x3r; x5=x3l; y2=12/53h; y3=h-y2;
+ x8=x2-stem; y8=0; z9=z8;
+ dl_drop(9,cap_drop_round,x8-s,1.3drop_round,cap_bar);
+ fill dl_drop_edge9; penpos8(bar,-90);
+ serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+ penpos2(bar,0); penpos3(bar,0);
+ penstroke z2e{down}..{left}z8e;
+ fill z2l--z2r--reverse serif_edge1--cycle;
+ numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+ theta1=angle(z5-z7); x10=x3+stem; y10=h; z11=z10;
+ penpos10(bar,-90); penstroke z3e{up}..{right}z10e;
+ ur_drop(11,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill ur_drop_edge11;
+ z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+ fill z6--z1h--z7--z5{down}..{up}z4--z3r--z3l--cycle;
+ unfill z1b--z1l--z1a--cycle;
+ y12=y13=2cap_bar; x12=x4+2cap_bar+s; x13=w-2s;
+ penpos12(.4stem,90); penpos13(.4stem,90);
+ penstroke z12e--z13e; y16=y11d-5cap_bar;
+ x13-x14=x14-x12; x16=x14; y14=y13+5cap_bar;
+ x17=w-s-1/4stem; x17-x16=x16-x15; y16-y15=y15-y14;
+ y17=y15; penpos17(.6stem,0); penpos16(bar,90);
+ penpos15(.6stem,180); penpos14(bar,270);
+ penstroke z17e{up}..{left}z16e{left}..{down}z15e{down}..{right}z14e{right}..{up}z17e;
+ fill z12l..tension1.2..z12r..tension1.2..cycle;
+ fill z13l..tension1.2..z13r..tension1.2..cycle;
+ penlabels(range 1 thru 17);
+endchar;
+
+beginchar(hex"24",9u#-s#,body_height#,body_height#-cap_height#);
+ x6=x7=1/2w-c; y6=y7=0;
+ dl_drop(7,cap_drop_round,x6-s,1.35cap_drop_round,cap_bar);
+ y5=10/53cap_height; x5=w-s-1/2(1.9hair);
+ y4=1/2cap_height; x4=19/38w; y3=42/53cap_height; x3=s+1/2(1.9cap_bar);
+ x2=.5w+c; y2=cap_height; z1=z2;
+ penpos6(cap_bar,-90); penpos5(1.9hair,0);
+ penpos4(1.1cap_curve,80); penpos3(1.9hair,0);
+ penpos2(cap_bar,-90);
+ penstroke z6e{right}..z5e..tension.9..z4e..tension.9..z3e..{right}z2e;
+ fill dl_drop_edge7;
+ ur_drop(1,cap_drop_round,w-s-x2,1.35cap_drop_round,cap_bar);
+ fill ur_drop_edge1;
+ z8=(.5w,h); z9=(.5w,-d);
+ penpos8(cap_bar,0); penpos9(cap_bar,0);
+ penstroke z8e--z9e;
+ fill z9r..z9l..cycle; fill z8r..z8l..cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"25",12u#,asc_height#,0);
+penpos1(vair,90); penpos2(.6curve,0);
+penpos3(vair,-90); penpos4(.6curve,-180);
+y1=.55h; y3=h; y3-y4=y4-y1; y2=y4; x2=1/4curve+s; x4=5/2curve+s;
+x4-x1=x1-x2; x3=x1;
+penstroke z1e{left}..tension.9..{up}z2e{up}..tension1.2..{right}z3e..tension.9..{down}z4e{down}..tension1.2..{left}z1e..cycle;
+penpos5(vair,90); penpos6(.6curve,0);
+penpos7(vair,-90); penpos8(.6curve,-180);
+y5=0; y7=.45h; y7-y8=y8-y5; y6=y8; x8=w-1/4curve-s; x6=w-5/2curve-s;
+x8-x5=x5-x6; x7=x5;
+penstroke z5e{left}..tension.9..{up}z6e{up}..tension1.2..{right}z7e..tension.9..{down}z8e{down}..tension1.2..{left}z5e..cycle;
+x9l=x7; y9=h; x10r=x1; y10=0;
+penpos9(1.2bar,0); penpos10(1.2bar,0);
+penstroke z9e--z10e;
+penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"26",14u#,cap_height#,0);
+x4=x8=x3+.5curve; y6=0; y2=h; x2=x3+1.3cap_curve;
+y7=13/53h; y5=9/53h; x5=x7+3.5cap_curve; x6=x7+1.8cap_curve;
+y4=y8=30/53h; y1=44/53h; y3=42/53h; x3=4s+curve;
+x1=x3+2.1cap_curve; x7=s+1/2cap_curve;
+x10=w-s; y10=9/53h; x10-x9=x9-x5; y9=1/5cap_curve;
+th:=angle(z4-z5)+5; th1:=th-11; x11h=w-s-c; y11h=y1-4s;
+A_serif(11,cap_bar,-110,cap_jut,cap_jut); z12l=z11a;
+penpos6(cap_bar,-90); penpos5(cap_stem,45);
+penpos4(cap_stem,45); penpos3(2.5hair,0);
+penpos2(cap_bar,-90); penpos1(2hair,-180);
+penpos7(cap_curve,-180); penpos8(cap_bar,-250);
+penpos9(.5cap_curve,70); penpos10(cap_bar,150);
+penpos12(cap_bar,0);
+penstroke z10e..z9e..z5e{dir th}..{dir th1}z4e..tension.9..{up}z3e{up}..tension1..z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e{dir 8}..{dir 70}z12e;
+fill z12l--z12r..reverse A_serif_edge11--cycle;
+fill z10l..tension1.3..z10r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"40",14u#,x_height#+2curve#,2curve#);
+a_width:=9u+c-2s;
+x1=2s+a_width-s-3/4stem+1.5curve; y1=x_height; y2=7/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=3s+a_width+1.5curve; y4=15/33x_height;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.2vair,270); penpos4(bar,360);
+x5=x1-1.3stem; y5=x_height; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c+1.3curve; y6=.54x_height; y8=.46x_height; z8l=whatever[z1r,z2r];
+x13=x5; y13=h-1/2bar; x14=s+1/2bar; y14=y6; y15=-d+1/2bar; x15=x7;
+x16=x4; y16=-d+3bar; penpos7(vair,270); penpos16(bar,270);
+penpos13(bar,90); penpos14(bar,180); penpos15(bar,270);
+penpos8(2bar,0); penpos5(vair,90); penpos6(curve,180);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 80}z4e..z13e{left}..z14e..{right}z15e..z16e;
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=x_height-c; z10=(x1r+c,x_height); z11=(x1l-c,x_height);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+fill z16r..z16l..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar(hex"12",2cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=s+.45cap_stem*cosd 45;
+x2=w-s+cap_bar*cosd 45; z2=z1+whatever*dir -45;
+penpos1(.9cap_stem,45); penpos2(cap_bar,45);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"13",2cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=w-s-.45cap_stem*cosd 45;
+x2=s-cap_bar*cosd 45; z2=z1+whatever*dir -135;
+penpos1(.9cap_stem,135); penpos2(cap_bar,135);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"3F",7u#+s#,cap_height#,0);
+ x1=s+4/5cap_stem; y1=1/2cap_stem;
+ penpos1(cap_stem,0);
+ fill z1r..z1l..cycle;
+ y2=cap_stem+cap_bar; x2=x1;
+ z3l=z2l+whatever*dir 96; y3l=25/53h;
+ penpos2(cap_bar,0); penpos3(cap_bar,0);
+ penstroke z2e--z3e;
+ z4l=z3l; penpos4(cap_bar,0);
+ y5=y4-2bar; x5=x4+3cap_bar; penpos7(cap_bar,-90);
+ x6=w-s-1/2cap_curve; y6=37/51h; x7=12/31w; y7=h;
+ penpos5(cap_bar,90); penpos6(cap_curve,180); z8=z7;
+ penstroke z4e{dir -69}..z5e{dir 10}..tension1..{up}z6e{up}..tension.9..{left}z7e;
+ ul_drop(8,.8cap_drop_round,x7-s,cap_curve,cap_bar);
+ fill ul_drop_edge8;.
+ fill z3r..tension1.2..z3l..tension1.2..cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"10",2jut#+stem#+2s#,x_height#,0);
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"11",5u#,x_height#,desc_depth#);
+x1h=w-s; y1c=x_height; y2=0; x2=x1;
+serif(1,stem,-90,1.5jut,0);
+penpos2(stem,0);
+fill z2l--z2r--reverse serif_edge1--cycle;
+y5=-1/4desc_depth; x5r=x2r;
+y6=-d+1/2bar; x6=x2l-.35stem;
+penpos5(.97stem,0);
+penpos6(bar,-90);
+penstroke z2e--z5e{down}..{left}z6e;
+x7e=s; y7=-d+1/2bar;
+dl_drop(7,stem,x6-x7e,drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(hex"2A",3cap_stem#+3s#,body_height#,0);
+ x1=x2=x3=x4=.5w; y1=h-1/2stem; y2=y1-cap_stem; y3=y2-bar; y4=y3-bar;
+ penpos1(stem,0); penpos2(cap_bar,0); penpos3(2cap_bar,0);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle;
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,60);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,120);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,180);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,240);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,300);
+ penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"0B",4jut#+2stem#+c#+3s#,asc_height#,0);
+w:=w+1;
+numeric dist; dist := 2jut+2stem-3c;
+x1g=x2g=s+dist; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x1; y3=x_height; x4r=x1l-.1stem; y4=x_height+1/2(asc_height-x_height);
+x5l=x4l-.05stem; y5=y4+1.5bar; x6=round (x1r+.2stem); y6=h-1/2bar;
+penpos3(stem,180);
+penpos4(.75curve,180);
+penpos5(.6curve,180);
+penpos6(bar,90);
+penstroke z3e{dir 95}...{up}z4e..z5e..{right}z6e;
+y6=y7; x7e=w-s;
+ur_drop(7,stem,x7e-x6,drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+x11g=x12g=s; y11c=x_height; y12c=0;
+serif(11,stem,-90,jut,jut);
+serif(12,stem,90,jut,jut);
+fill serif_edge12--reverse serif_edge11--cycle;
+x13=x11; y13=x_height; x14l=x13l; y14=x_height+1/2(asc_height-x_height);
+x15l=x14l; y15=y14+1.5bar; x16=x11r+.8stem; y16=h-1/2bar;
+x17r=x5l; y17=y5;
+penpos13(stem,180);
+penpos14(.75curve,180);
+penpos15(.6curve,180);
+penpos16(bar,90);
+penpos17(bar,0);
+penstroke z13e{dir 95}...{up}z14e..z15e..{right}z16e{right}..{down}z17e;
+fill z11d--z1c--z1b--z11e--cycle;
+penlabels(1,2,3,4,5,6,7,11,12,13,14,15,16,17);
+endchar;
+
+beginchar(hex"5E",6u#,body_height#,0);
+ x1=s+.45cap_bar*cosd 45; x2=w/2; y2=h-bar;
+ z1=z2+whatever*dir -135; x3=w-x1; z3=z2+whatever*dir -45;
+ penpos1(bar,135); penpos2(2bar,90); penpos3(bar,45);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"16",6u#,body_height#,0);
+ x1=s; x2=w-x1; y1=y2=h-4bar;
+ penpos1(.8bar,90); penpos2(.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7F",2stem#+4s#,x_height#+2.1stem#,0);
+ z1=(s+.5stem,h); z2=(s+.5stem,h-stem);
+ fill z1..z2..cycle;
+ z3=(w-s-.5stem,h); z4=(w-s-.5stem,h-stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+ligtable CYR_A: "A":
+ CYR_O kern -k#,
+ CYR_ES kern -k#,
+ CYR_TE kern -kk#,
+ "T" kern -kk#,
+ CYR_U kern -kk#,
+ CYR_EF kern -k#,
+ CYR_CHE kern -kk#,
+ CYR_HARD_SIGN kern -k#,
+ CYR_te kern -k#,
+ "t" kern -k#,
+ CYR_u kern -kk#,
+ CYR_ef kern -k#,
+ CYR_che kern -kk#,
+ "W" kern -kkk#,
+ "V" kern -kkk#,
+ "Y" kern -kkk#,
+ "y" kern -kk#,
+ "w" kern -kk#,
+ "v" kern -kk#;
+
+ligtable CYR_GHE: CYR_TE: "T":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_DE kern -k#,
+ CYR_EL kern -kk#,
+ CYR_a kern -kk#,
+ "a" kern -kk#,
+ CYR_de kern -k#,
+ CYR_el kern -kk#,
+ CYR_o kern -k#,
+ CYR_es kern -k#;
+
+ligtable CYR_O: CYR_E: CYR_YU:
+ CYR_U kern -k#,
+ CYR_ha kern -k#,
+ "X" kern -k#,
+ CYR_HA kern -k#;
+
+ligtable CYR_ER: "P":
+ CYR_A kern -kk#,
+ CYR_a kern -kk#,
+ CYR_el kern -k#;
+
+ligtable CYR_U:
+ CYR_A kern -kkk#,
+ "A" kern -kkk#,
+ CYR_a kern -kkk#,
+ "a" kern -kkk#,
+ CYR_O kern -k#,
+ CYR_ES kern -k#,
+ CYR_EL kern -k#,
+ CYR_el kern -kk#,
+ CYR_EF kern -k#;
+
+ligtable CYR_HA: "X":
+ CYR_O kern -k#,
+ "O" kern -k#,
+ "Q" kern -k#,
+ "C" kern -k#,
+ "G" kern -k#;
+
+ligtable CYR_a: "a":
+ CYR_O kern -k#,
+ CYR_ES kern -k#,
+ CYR_TE kern -kk#,
+ CYR_U kern -kk#,
+ CYR_EF kern -k#,
+ CYR_CHE kern -kk#,
+ CYR_HARD_SIGN kern -k#,
+ CYR_o kern -k#,
+ CYR_es kern -k#,
+ CYR_te kern -kk#,
+ CYR_u kern -kk#,
+ CYR_ef kern -k#,
+ CYR_che kern -kk#,
+ CYR_hard_sign kern -k#,
+ CYR_che kern -kk#,
+ "V" kern -kk#,
+ "W" kern -kk#,
+ "T" kern -kk#,
+ "y" kern -kk#,
+ "v" kern -kk#,
+ "w" kern -kk#,
+ "t" kern -kk#,
+ "u" kern -k#,
+ "Y" kern -kk#;
+
+ligtable CYR_ghe: CYR_te: "t":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_DE kern -k#,
+ CYR_EL kern -kk#,
+ CYR_a kern -kk#,
+ "a" kern -kk#,
+ CYR_de kern -k#,
+ CYR_el kern -kk#,
+ CYR_o kern -k#,
+ CYR_es kern -k#;
+
+ligtable CYR_o: CYR_e: CYR_yu: "o": "d":
+ CYR_u kern -k#,
+ "x" kern -k#,
+ CYR_ha kern -k#,
+ "v" kern -k#,
+ "w" kern -k#,
+ "V" kern -k#,
+ "W" kern -k#;
+
+ligtable CYR_er: "p":
+ CYR_A kern -k#,
+ "A" kern -k#,
+ "a" kern -kk#,
+ CYR_a kern -kk#,
+ CYR_el kern -k#;
+
+ligtable CYR_u:
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_a kern -kkk#,
+ "a" kern -kkk#,
+ CYR_o kern -k#,
+ CYR_es kern -k#,
+ CYR_el kern -k#,
+ CYR_ef kern -k#;
+
+ligtable CYR_ha: "x":
+ "o" kern -k#,
+ CYR_o kern -k#;
+
+ligtable "D": "O": "Q":
+ "X" kern -k#;
+
+ligtable "L": "l":
+ "T" kern -kk#,
+ "Y" kern -kk#,
+ "t" kern -kk#,
+ CYR_TE kern -kk#,
+ CYR_te kern -kk#,
+ "y" kern -kk#;
+
+ligtable "V": "W":
+ "A" kern -kkk#,
+ "a" kern -kkk#,
+ CYR_A kern -kkk#,
+ CYR_a kern -kkk#;
+
+ligtable "Y":
+ CYR_A kern -kk#,
+ CYR_a kern -kk#,
+ "a" kern -kk#,
+ "A" kern -kk#;
+
+ligtable "v": "w":
+ "A" kern -kk#,
+ CYR_A kern -kk#,
+ CYR_a kern -kk#,
+ "o" kern -k#,
+ "c" kern -k#,
+ "a" kern -kk#;
+
+ligtable hex"37":
+ CYR_A kern -kk#,
+ CYR_a kern -kk#,
+ "a" kern -kk#,
+ "A" kern -kk#;
+ligtable oct"55":
+ oct"55" =: hex"7b";
+ligtable hex"7b":
+ oct"55" =: hex"7c";
+end.
diff --git a/fonts/obnov/obnsc17.mf b/fonts/obnov/obnsc17.mf
new file mode 100644
index 0000000000..535b56761b
--- /dev/null
+++ b/fonts/obnov/obnsc17.mf
@@ -0,0 +1,3460 @@
+%written by Basil Solomykov, Russia
+%(C) Copyright 2011 LPPL (LaTeX Project Public License)
+%Font Ordinary New (Obyknovennaya novaya), Small Capitals
+
+design_size := 17.28pt#;
+o# := .7776pt#;
+u# := 32/35pt#;
+bar# := 17.28/36pt#;
+slab# := 17.28/36pt#;
+cap_bar# := 17.28/36pt#;
+vair# := 17.28/36pt#;
+hair# := 17.28/36pt#;
+jut# := 34.56/36pt#;
+cap_jut# := 44.928/36pt#;
+stem# := 51.84/36pt#;
+curve# := 53.568/36pt#;
+cap_stem# := 62.21/36pt#;
+cap_curve# := 64.28/36pt#;
+s# := 0.65pt#;
+c# := .32pt#;
+
+input obn_lcyw_code.mf;
+font_identifier "OBNSC";
+mode_setup;
+clear_pen_memory;
+
+font_size design_size*pt#;
+asc_height# := 24/36*design_size*pt#;
+cap_height# := 24/36*design_size*pt#;
+body_height# := 27/36*design_size*pt#;
+x_height# := 15.4/36*design_size*pt#;
+desc_depth# := 8/36*design_size*pt#;
+body_depth# := 9/36*design_size*pt#;
+comma_depth# := 5/36*design_size*pt#;
+x_depth# := 4/5comma_depth#;
+bar_height# := .52x_height#;
+cap_bar_height# := .52cap_height#;
+cap_bar2_height# := .45cap_height#;
+border_height# := comma_depth#;
+cap_drop_round# := 3.77*slab#;
+drop_round# := 6/8cap_drop_round#;
+A_bracket# := 1.6pt#;
+bracket# := pt#;
+
+font_x_height x_height#;
+font_normal_space 6u#;
+font_normal_stretch 4u#;
+font_normal_shrink 2u#;
+font_quad 16u#;
+font_extra_space 6u#;
+
+k# := .8u#;
+kk# := 1.5u#;
+kkk# := 3u#;
+
+serif_darkness := 1/30;
+define_pixels(bracket,cap_o_width,sss_width,css_width);
+define_pixels(c,s,cap_bar_height,cap_bar2_height);
+define_pixels(border_height,A_bracket,cap_drop_round,x_depth,drop_round);
+define_whole_blacker_pixels(stem,cap_stem,curve,cap_curve,bar,slab,cap_bar,vair,hair);
+define_whole_pixels(asc_height,cap_height,x_height,u,desc_depth,comma_depth,bar_height,body_height,body_depth,u,o,cap_jut,jut);
+%define_corrected_pixels();
+lowres_fix(stem,curve) 1.2;
+lowres_fix(cap_stem,cap_curve) 1.2;
+if jut=cap_jut: jut:=jut-1; fi
+
+def serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g if left_jut=0: -1/2slab fi +1/2slab; x$d=x$e=x$h if right_jut=0: +1/2slab fi-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def serif_edge suffix $ =
+(serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse serif_bracket($f,$r,$e)) enddef;
+
+def serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...serif_darkness[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def T_serif(suffix $)(expr slab, bord_height, direction)= %Direction: 0-left, 1-right;
+penpos$(slab,if direction=1: - fi 90);
+x$=x$a=x$g; y$g-y$=y$-y$a=1/2slab;
+x$b=x$a + if direction=0: - fi .882bord_height; y$b=y$d=y$c+1/2slab;
+x$c=x$b + if direction=0: - fi 1/2slab; y$c=y$a-bord_height;
+x$d=x$e=x$b + if direction=0: - fi slab;
+y$e=y$g-1/2slab; y$f=y$g; x$f=x$c;
+labels($a,$b,$c,$d,$e,$f,$g) enddef;
+
+def T_edge suffix $ =
+(z$a..{down}z$b..z$c..z$d--z$e{up}..z$f--z$g--cycle) enddef;
+
+def A_serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(A_bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g+1/2slab; x$d=x$e=x$h-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def A_serif_edge suffix $ =
+(A_serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse A_serif_bracket($f,$r,$e)) enddef;
+
+def A_serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...0.6[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def ur_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a= 1/2slab;
+x$e=x$a + drop_length; y$e=y$f- drop_height;
+x$d=x$e - 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e - drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d - 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ur_drop_edge suffix $ =
+(z$f{right}..tension.9..{down}z$e{down}..{left}z$d{left}..{up}z$c{up}..z$b...{left}z$a--cycle) enddef;
+
+def ul_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$f- drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d + 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ul_drop_edge suffix $ =
+(z$f{left}..tension.9..{down}z$e{down}..{right}z$d{right}..{up}z$c{up}..z$b...{right}z$a--cycle) enddef;
+
+def dl_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, -90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$a + drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e + 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d - drop_round); x$b=x$d + 1/90drop_round;
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def dl_drop_edge suffix $ =
+(z$a{left}..tension.9..{up}z$e{up}..{right}z$d{right}..{down}z$c..{dir 250}z$b{dir -80}..{right}z$f--cycle) enddef;
+
+def S_serif (suffix $)(expr serif_slab, serif_length, serif_height)=
+%penpos$(serif_slab,90);
+x$a=x$i=x$; y$i=y$+1/2serif_slab; y$a=y$-1/2serif_slab;
+x$f=x$e=x$a+serif_length; y$f=y$g-1/2serif_slab; y$e=y$c=y$d+1/2serif_slab;
+x$g=x$f-1/2serif_slab; y$g=y$i-1/2serif_slab;
+y$h=y$f-1/4serif_slab; x$h=x$g-serif_slab;
+x$c=x$e-serif_slab; x$d=x$e-1/2serif_slab; y$d=y$g-serif_height;
+x$b=x$h-6/18serif_length; y$b=y$h-1/2slab;
+labels ($a,$b,$c,$d,$e,$f,$g,$h,$i) enddef;
+
+def S_serif_edge suffix $ =
+(z$a{right}...z$b..{dir -80}z$c..z$d..z$e--z$f{up}..z$g{left}..z$h{dir 150}..{left}z$i--cycle) enddef;
+
+beginchar(CYR_A,13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar(CYR_BE,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=y5=h-1/2slab;
+y1c=h; y2c=0; x5e=w-s-1/2cap_stem;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h; x4=w-s-1/2cap_stem-border_height;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_VE,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+css_width := x8 - x2r; save css_width;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar(CYR_GHE,9u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; x3=x4+2u;
+y5=y3; x5e=w-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_DE,12u#,cap_height#,comma_depth#);
+x10e=w-s; y10c=-d;
+y4c=h; x4h=w-s-1/2slab;
+x9=x4; y9c=0;
+x3=x8=x9d; y8=y7=1/2cap_bar; y3=y2=h-y8;
+x6e=s; y6=y10; x7=border_height+s;
+y5=y9; x5g=s+.5u; y1=y4; x1=x5+1.5u;
+x2=x1c;
+A_serif(1,1.2cap_bar,-96,10/7cap_jut,cap_jut);
+A_serif(5,1.2cap_bar,81,6/7cap_jut,cap_jut);
+serif(4,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+penpos2(cap_bar,90);
+penpos3(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_bar,90);
+penstroke z7e--z8e; penstroke z2e--z3e;
+fill A_serif_edge5...reverse A_serif_edge1...cycle;
+fill serif_edge9--reverse serif_edge4--cycle;
+T_serif(6,slab,border_height,0);
+T_serif(10,slab,border_height,1);
+fill T_edge6;
+fill T_edge10;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_IE,10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_YE,10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+x12=x13=x2r; y12=h+1/4cap_stem; y13=y12+cap_stem;
+x14=x15=x12+2cap_stem; y14=y12; y15=y13;
+fill z12..z13..cycle; fill z14..z15..cycle;
+penlabels(range 1 thru 15);
+endchar;
+
+beginchar(CYR_ZHE,round (16u#+s#),cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; y7=y4=y10=y11=cap_bar_height; x4=x7-1.5u;
+x10=x8r; x11=x10+1.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+x6=s; y6=0; y4-y5=y5-y6; x4-x5=x5-x6;
+penpos7(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,90);
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z6e{right}..tension.8..{up}z5e{up}..tension.8..{right}z4e--z7e;
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+x3=x5+1/2cap_stem; y2=h; x4-x3=x3-x2; y2-y3=y3-y4;
+penpos3(hair,0);
+penpos2(cap_bar,90);
+penstroke z4e{left}..tension.8..{up}z3e{up}..tension.8..{left}z2e;
+y1=h; x1a=x2; fill z6l..z6r..cycle;
+ul_drop(1,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ul_drop_edge1; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ZE,10u#+.5s#,cap_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height;
+x4=x6-3/2cap_stem; x5=x4-3u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3c,1.4border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.5cap_drop_round,slab);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_I,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-20); penpos6(cap_bar,-20);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar(CYR_SHORT_I,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-20); penpos6(cap_bar,-20);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+x7=.5w; y7=h+cap_bar;
+ur_drop(7,.8cap_drop_round,1/2(x3l-x1r),.8cap_drop_round,1.2cap_bar);
+fill ur_drop_edge7 rotatedaround(z7,180);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_KA,12u#+s#,cap_height#,0);
+x8g=x9g=s; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+y10=y11=cap_bar_height;
+x10=x8r; x11=x10+2.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_EL,13u#+1/2s#,cap_height#,0);
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+cap_drop_round; y3=1.1cap_drop_round;
+dl_drop(1,1.1cap_drop_round,1.1cap_drop_round,1.2cap_drop_round,slab);
+fill dl_drop_edge1;
+penpos2(cap_bar,-90);
+penpos3(cap_bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-slab;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,cap_bar,theta1,1.3cap_jut,1.3cap_jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,cap_stem,-90,cap_jut,cap_jut);
+serif(8,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_EM,13u#+1.5s#,cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,.51cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 109; y7l=10/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EN,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_O,11u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+cap_o_width := x7-x3; save cap_o_width;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_PE,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ER,10u#+s#,cap_height#,0);
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_ES,10u#+s#,cap_height#,0);
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_TE,round (11u#+s#),cap_height#,0);
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_U,13u#+s#,cap_height#,0);
+x1l=s+cap_jut; y1l=.98h-cap_bar;
+x3r=w-s-.8cap_jut; y3r=.98h-cap_bar;
+x4=33/60w; y4=6/53h;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.2cap_jut,.8cap_jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=0; x6=x4-1.2cap_stem; z7l=z2;
+penpos7(cap_bar,theta2+90);
+penpos5(cap_bar,theta2+90);
+penpos6(cap_bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,cap_drop_round,2u,10/53h,cap_bar);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EF,round (14u#+s#),cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1=x2=.5w; y2c=0; y1h=h;
+y6=y7=y8=y9=1.3cap_jut; y4=y3=y11=y12=h-1.3cap_jut+1/2slab;
+x3=x7=x2l; x8=x12=x2r; x4=x6=x3-u; x11=x9=x12+u;
+x5=s+1/2cap_curve; x10-x1=x1-x5; y4-y5=y5-y6; y10=y5;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,270);
+penpos7(cap_bar,270);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+penpos10(cap_curve,0);
+penpos11(cap_bar,90);
+penpos12(cap_bar,90);
+penstroke z3e--z4e{left}..tension.8..{down}z5e{down}..tension.8..{right}z6e--z7e;
+penstroke z8e--z9e{right}..tension.8..{up}z10e{up}..tension.8..{left}z11e--z12e;
+penlabels (range 1 thru 12);
+endchar;
+
+beginchar(CYR_HA,12u#+s#,cap_height#,0);
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_TSE,12.5u#+s#,cap_height#,comma_depth#);
+x1=x2=x5=cap_jut+1/2cap_stem+s;
+x3=x4=x6=w-x1-.5u; y5=y6=y2h;
+y1c=y3c=h; y2c=y4c=0; x7e=w-s; y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e;
+T_serif(7,cap_bar,border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_CHE,12u#+s#,cap_height#,0);
+x1=cap_jut+1/2cap_stem+s;
+x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,-90,cap_jut,cap_jut);
+serif(3,cap_stem,90,cap_jut,cap_jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=cap_bar_height-1/2cap_bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-2cap_bar;
+penpos6(cap_stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SHA,16u#+s#,cap_height#,0);
+if .5w <> good.x .5w: change_width; fi
+x1=x2=good.x (cap_jut+1/2cap_stem+s);
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=good.x .5w; y5=y1; y6=y2;
+y9b=slab; x9=good.x w-x1;
+x10=x9; y10b=h-slab;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_SHCHA,16.5u#+s#,cap_height#,comma_depth#);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=slab; x9h=w-s-.5u;
+x10=x9; y10b=h-slab;
+x11e=w-s; y11=y9h;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,slab,border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_HARD_SIGN,13.5u#+c#,cap_height#,0);
+x2r=x5-css_width; x1=x2; x8e=s; y8g=h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+x7=x1d; y1c=h; y2c=0;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=round(x3+5u-cap_stem);
+y6=y7=y2h;
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(8,cap_bar,border_height,0);
+fill T_edge8;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YERU,16u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+y3=y4=cap_bar_height; x3=round x2r; x4=x6=round (x3+5u-cap_stem) - 1;
+y4-y5=y5-y6; x5=x2r+css_width; y8b=slab; x8h=w-s;
+y6=y7=y2h; x9=x8; y9b=h-slab;
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(8,cap_stem,90,cap_jut,cap_jut);
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge9--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SOFT_SIGN,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=x3+5u-cap_stem;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y6=y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_E,10u#+.5s#,cap_height#,0);
+x1=16/39w; x5=.5w; y1=0; y5=h;
+y7=.5h; x7=w-1/2cap_curve-s;
+x9e=s; y9=0;
+dl_drop(9,cap_drop_round,16/39w-s,1.7cap_drop_round,slab);
+y8=0.1h-c; y6=0.9h+c; x8=x9+9/16(x7-x9); x6=x5+9/16(x7-x5);
+penpos5(cap_bar,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+penpos1(cap_bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+y2=y5; x2=x5-c;
+S_serif(2,slab,x1+c,1.5border_height);
+x3=x7-1/2cap_stem; y3=y4=cap_bar_height; x4=x2b-x1;
+penpos3(cap_bar,90); penpos4(cap_bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YU,16u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+y3=y7=.5h; x7=w-1/2cap_curve-s; x3=x7-cap_o_width; y9=0; y5=h; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3cap_stem; y11=y12=cap_bar_height;
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_YA,11u#+s#,cap_height#,0);
+x1=x2=w-cap_jut-1/2cap_stem-s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2l;
+y1c=h; y2c=0; x6=x4=x7-2.5u; x3=x1c;
+y4-y5=y5-y6; x5=x8-1.5c; x9=s; y9=0; y6-y8=y8-y9; x7-x10=3(x10-x6); x10-x8=x8-x9;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos7(cap_bar,270);
+penpos6(cap_bar,270);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90); fill z9l..z9r..cycle;
+penstroke z3e--z4e{left}..tension.9..z5e..tension.9..{right}z6e--z7e;
+penstroke z9e{right}..tension1..{up}z8e{up}..tension1..{right}z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_a,.8(13u#+s#),.8cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+.8cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,.8*1.3cap_bar,theta4,.8cap_jut,.8*1.2cap_jut);
+serif(5,.8cap_stem,theta5,.8cap_jut,.8cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4b]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar(CYR_be,.8(11u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x3=x10=x1d; y3=y4=y5=h-1/2slab;
+y1c=h; y2c=0; x5e=w-s-.8*1/2cap_stem;
+y6=y7=.8cap_bar_height; x6=x2r; x7=x9=x6+3.6u-.8cap_stem;
+y7-y8=y8-y9; x8=w-.8*1/2cap_curve-s;
+y9=y10=y2h; x4=w-s-.8*1/2cap_stem-.8border_height;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penstroke z3e--z4e;
+T_serif(5,slab,.8border_height,1);
+fill T_edge5;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(.8cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ve,.8(11u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=.8cap_bar_height; x6=x2r; x7=x9=x6+.8*4.5u-.8cap_stem;
+y7-y8=y8-y9; x8=w-.8*1/2cap_curve-s; y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-.8*2/5cap_curve; y77=y7; x77=x4;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(.8cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(.8cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+sss_width := x8 - x2r; save sss_width;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar(CYR_ghe,.8(9u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; x3=x4+2u;
+y5=y3; x5e=w-s;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+T_serif(5,slab,.8border_height,1);
+fill T_edge5;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_de,.8*12u#,.8cap_height#,.8comma_depth#);
+x10e=w-s; y10c=-d; y4c=h; x4h=w-s-1/2slab; x9=x4; y9c=0;
+x3=x8=x9d; y8=y7=1/2cap_bar; y3=y2=h-y8;
+x6e=s; y6=y10; x7=.8border_height+s;
+y5=y9; x5g=s+.5u; y1=y4; x1=x5+u; x2=x1c;
+A_serif(1,cap_bar,-96,.8*10/7cap_jut,.8cap_jut);
+A_serif(5,cap_bar,81,.8*6/7cap_jut,.8cap_jut);
+serif(4,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(9,.8cap_stem,90,.8cap_jut,.8cap_jut);
+penpos2(cap_bar,90);
+penpos3(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_bar,90);
+penstroke z7e--z8e; penstroke z2e--z3e;
+fill A_serif_edge5...reverse A_serif_edge1...cycle;
+fill serif_edge9--reverse serif_edge4--cycle;
+T_serif(6,slab,.8border_height,0);
+T_serif(10,slab,.8border_height,1);
+fill T_edge6;
+fill T_edge10;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ie,.8(10u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-.7c;
+y6=y7=y8=.8cap_bar_height;x6=x1r; x7=x8=x6+.8u;
+T_serif(5,slab,.8border_height,1);
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a; penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8*.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,.8border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_ye,.8(10u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-.7c;
+y6=y7=y8=.8cap_bar_height;x6=x1r; x7=x8=x6+.8u;
+T_serif(5,slab,.8border_height,1);
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a; penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8*.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,.8border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+x12=x13=x2r; y12=h+.8*(1/4cap_stem); y13=y12+.8cap_stem;
+x14=x15=x12+.8*2cap_stem; y14=y12; y15=y13;
+fill z12..z13..cycle; fill z14..z15..cycle;
+penlabels(range 1 thru 15);
+endchar;
+
+beginchar(CYR_zhe,.8(16u#+s#),.8cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(9,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; y7=y4=y10=y11=.8cap_bar_height; x4=x7-.8*1.5u;
+x10=x8r; x11=x10+.8*1.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+x6=s; y6=0; y4-y5=y5-y6; x4-x5=x5-x6;
+penpos7(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8cap_curve,180);
+penpos6(cap_bar,90);
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(.8cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z6e{right}..tension.8..{up}z5e{up}..tension.8..{right}z4e--z7e;
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-.8*1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,.8cap_drop_round,.8*.9cap_drop_round,.8cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+x3=x5+.8*1/2cap_stem; y2=h; x4-x3=x3-x2; y2-y3=y3-y4;
+penpos3(hair,0);
+penpos2(cap_bar,90);
+penstroke z4e{left}..tension.8..{up}z3e{up}..tension.8..{left}z2e;
+y1=h; x1a=x2; fill z6l..z6r..cycle;
+ul_drop(1,.8cap_drop_round,.8*.9cap_drop_round,.8cap_drop_round,cap_bar);
+fill ul_drop_edge1; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ze,.8(10u#+.5s#),.8cap_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=.8cap_bar_height;
+x4=x6-.8*3/2cap_stem; x5=x4-.8*3u;
+x6=w-s-.8*1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-.8*1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(.8cap_curve,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(.8cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.9..{down}z6e{down}..tension.9..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3c,.8*1.4border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,.8cap_drop_round,18/39w-s,.8*1.5cap_drop_round,slab);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_i,.8(12u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x5=x1+.8*1/3cap_stem; x6=x4-.8*1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(4,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-20); penpos6(cap_bar,-20);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar(CYR_short_i,.8(12u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x5=x1+.8*1/3cap_stem; x6=x4-.8*1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(4,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-20); penpos6(cap_bar,-20);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+x7=.5w; y7=h+cap_bar;
+ur_drop(7,.8*.8cap_drop_round,1/2(x3l-x1r),.8*.8cap_drop_round,cap_bar);
+fill ur_drop_edge7 rotatedaround(z7,180);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_ka,.8(12u#+s#),.8cap_height#,0);
+x8g=x9g=s; y8c=h; y9c=0;
+serif(8,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(9,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+y10=y11=.8cap_bar_height;
+x10=x8r; x11=x10+.8*2.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(.8cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-.8*1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,.8cap_drop_round,.8*.9cap_drop_round,.8*cap_drop_round,cap_bar);
+fill ur_drop_edge14; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_el,.8*(13u#+1/2s#),.8cap_height#,0);
+x7h=x8h=w-s; y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.8cap_drop_round; y3=.8*1.1cap_drop_round;
+dl_drop(1,.8*cap_drop_round,.8*cap_drop_round,.8*1.1cap_drop_round,slab);
+fill dl_drop_edge1;
+penpos2(cap_bar,-90);
+penpos3(cap_bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-slab;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,cap_bar,theta1,.8*1.3cap_jut,.8*1.3cap_jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(8,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_em,.8(13u#+s#),.8cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,.8jut,.8jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,.8cap_stem,-90,.51cap_bar,.8jut);
+serif(4,.8cap_stem,90,.8jut,.8jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 106; y7l=11/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(.8cap_stem,0); penpos8(.8cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_en,.8(12u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(4,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=.8cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_o,.8(11u#+s#),.8cap_height#,0);
+penpos1(vair,90);
+penpos2(.8o,30);
+penpos3(.8cap_curve,0);
+penpos4(.8o,-30);
+penpos5(vair,-90);
+penpos6(.8o,-150);
+penpos7(.8cap_curve,-180);
+penpos8(.8o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=.8*1/2cap_curve+s; x7=w-.8*1/2cap_curve-s;
+y2=y8=.09h-c; y4=y6=.91h+c; x2=x4=x3+8/16(x5-x3); x6=x8=x5+8/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_pe,.8(12u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(4,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_er,.8(10u#+s#),.8cap_height#,0);
+x1=x2=x3=.8cap_jut+.8*1/2cap_stem+s;
+y3=y4=.8cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+.8*3u;
+y5-y4=y6-y5; x5=w-.8*1/2cap_curve-s;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(.8cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_es,.8(10u#+s#),.8cap_height#,0);
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=.8*1/2cap_curve+s;
+y2=.09h-c; y4=.91h+c; x2=x4=x3+8/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(.8o,30);
+penpos3(.8cap_curve,0);
+penpos4(.8o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-.7c-x1,.8*1.5border_height);
+S_serif(7,slab,w-s-x1,.8*1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_te,round .8(11u#+s#),.8cap_height#,0);
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,.8cap_stem,-90,.8*1.2cap_jut,.8*1.2cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round .8border_height,0);
+T_serif(4,cap_bar,round .8border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_u,.8(13u#+s#),.8cap_height#,0);
+x1l=s+.8cap_jut; y1l=.98h-cap_bar;
+x3r=w-s-.8*.8cap_jut; y3r=.98h-cap_bar;
+x4=33/60w; y4=6/53h;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,.8cap_stem,theta1,.8cap_jut,.8cap_jut);
+A_serif(3,cap_bar,theta2,.8*1.2cap_jut,.8*.8cap_jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=0; x6=x4-.8*1.2cap_stem; z7l=z2;
+penpos7(cap_bar,theta2+90);
+penpos5(cap_bar,theta2+90);
+penpos6(cap_bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,.8cap_drop_round,.8*2u,9/53h,cap_bar);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_ef,round .8(14u#+s#),.8cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1=x2=.5w; y2c=0; y1h=h;
+y6=y7=y8=y9=.8*1.3cap_jut; y4=y3=y11=y12=h-.8*1.3cap_jut+1/2slab;
+x3=x7=x2l; x8=x12=x2r; x4=x6=x3-.8u; x11=x9=x12+.8u;
+x5=s+.8*1/2cap_curve; x10-x1=x1-x5; y4-y5=y5-y6; y10=y5;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8cap_curve,180);
+penpos6(cap_bar,270);
+penpos7(cap_bar,270);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+penpos10(.8cap_curve,0);
+penpos11(cap_bar,90);
+penpos12(cap_bar,90);
+penstroke z3e--z4e{left}..tension.9..{down}z5e{down}..tension.9..{right}z6e--z7e;
+penstroke z8e--z9e{right}..tension.9..{up}z10e{up}..tension.9..{left}z11e--z12e;
+penlabels (range 1 thru 12);
+endchar;
+
+beginchar(CYR_ha,.8(12u#+s#),.8cap_height#,0);
+y3=y4=slab; x3=w-s-.8cap_jut-.8*1/2cap_stem; x4=s+.8cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+.8cap_jut+.8*1/2cap_stem+c; x2=w-s-.8*1.5c-.8cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,.8cap_stem,theta1-180,.8cap_jut,.8cap_jut);
+A_serif(2,.8*1.2cap_bar,theta2-180,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,theta1,.8cap_jut,.8cap_jut);
+A_serif(4,.8*1.2cap_bar,theta2,.8cap_jut,.8cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_tse,.8(12.5u#+s#),.8cap_height#,.8comma_depth#);
+x1=x2=x5=.8cap_jut+.8*1/2cap_stem+s;
+x3=x4=x6=w-x1-.8*.5u; y5=y6=y2h;
+y1c=y3c=h; y2c=y4c=0; x7e=w-s; y7=y2h;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(4,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e;
+T_serif(7,cap_bar,.8border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_che,.8(12u#+s#),.8cap_height#,0);
+x1=.8cap_jut+.8*1/2cap_stem+s;
+x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=.8cap_bar_height-1/2cap_bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-.7*2cap_bar;
+penpos6(.8cap_stem,180);
+penpos5(vair,270);
+penpos7(vair,270);
+penstroke z6e{down}...z7e..z5e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_sha,.8(16u#+s#),.8cap_height#,0);
+if .5w <> good.x .5w: change_width; fi
+x1=x2=good.x (.8cap_jut+.8*1/2cap_stem+s);
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=good.x .5w; y5=y1; y6=y2;
+y9b=slab; x9=good.x w-x1;
+x10=x9; y10b=h-slab;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(6,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(10,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_shcha,.8(16.5u#+s#),.8cap_height#,.8comma_depth#);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=slab; x9h=w-s-.8*.5u;
+x10=x9; y10b=h-slab;
+x11e=w-s; y11=y9h;
+serif(9,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(10,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(6,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,slab,.8border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_hard_sign,.8(13.5u#+c#),.8cap_height#,0);
+x2r=x5-sss_width; x1=x2; x8e=s; y8g=h;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+x7=x1d; y1c=h; y2c=0;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y3=y4=.8cap_bar_height; x3=x2r; x4=x6=round(x3+3.5u-.8cap_stem);
+y6=y7=y2h;
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(8,cap_bar,.8border_height,0);
+fill T_edge8;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_yeru,.8(16u#+c#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x7=x1d; y1c=h; y2c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+y3=y4=.8cap_bar_height; x3=round x2r; x4=x6=round (x3+3.5u-.8cap_stem) - 1;
+y4-y5=y5-y6; x5=x2r+sss_width; y8b=slab; x8h=w-s;
+y6=y7=y2h; x9=x8; y9b=h-slab;
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(8,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(9,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+fill serif_edge8--reverse serif_edge9--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_soft_sign,.8(11u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=.8cap_bar_height; x3=x2r; x4=x6=x3+3.5u-.8cap_stem;
+y4-y5=y5-y6; x5=w-.8*1/2cap_curve-s;
+y6=y7=y2h;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_e,.8(10u#+.5s#),.8cap_height#,0);
+x1=16/39w; x5=.5w; y1=0; y5=h;
+y7=.5h; x7=w-.8*1/2cap_curve-s;
+x9e=s; y9=0;
+dl_drop(9,.8cap_drop_round,16/39w-s,.8*1.6cap_drop_round,slab);
+y8=.09h-c; y6=.91h+c; x8=x9+8/16(x7-x9); x6=x5+8/16(x7-x5);
+penpos5(cap_bar,-90);
+penpos6(.8o,-150);
+penpos7(.8cap_curve,-180);
+penpos8(.8o,-210);
+penpos1(cap_bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+y2=y5; x2=x5-c;
+S_serif(2,slab,x1+c,.8*1.5border_height);
+x3=x7-.8*1/2cap_stem; y3=y4=.8cap_bar_height; x4=x2b-x1;
+penpos3(cap_bar,90); penpos4(cap_bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_yu,.8(16u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(.8o,30);
+penpos3(.8cap_curve,0);
+penpos4(.8o,-30);
+penpos5(vair,-90);
+penpos6(.8o,-150);
+penpos7(.8cap_curve,-180);
+penpos8(.8o,-210);
+y3=y7=.5h; x7=w-.8*1/2cap_curve-s; x3=x7-.8cap_o_width; y9=0; y5=h; x7-x5=x5-x3; x9=x5;
+y10=y8=.09h-c; y4=y6=.91h+c; x10=x4=x3+8/16(x5-x3); x6=x8=x5+8/16(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-.8*1/3cap_stem; y11=y12=.8cap_bar_height;
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ya,.8(11u#+s#),.8cap_height#,0);
+x1=x2=w-.8cap_jut-.8*1/2cap_stem-s;
+y6=y10=y7=.8cap_bar_height; y3=y4=h-1/2slab; x7=x2l;
+y1c=h; y2c=0; x6=x4=x7-2.2u; x3=x1c;
+y4-y5=y5-y6; x5=x8-1.8c; x9=s; y9=0; y6-y8=y8-y9; x7-x10=3(x10-x6); x10-x8=x8-x9;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8cap_curve,180);
+penpos7(cap_bar,270);
+penpos6(cap_bar,270);
+penpos8(.8cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{left}..tension.9..z5e..tension.9..{right}z6e--z7e;
+penstroke z9e{right}..tension1..{up}z8e{up}..tension1..{right}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("A",13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar("B",11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,1/2cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("C",10u#+s#,cap_height#,0);
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("D",12u#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(o,30);
+penpos6(cap_curve,0);
+penpos7(o,-30);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+x3=x9=x1d;
+x8=x4=.5w; y8=y9=1/2cap_bar; y4=y3=h-1/2cap_bar;
+y6=.5h; x6=w-1/2cap_curve-s;
+y7=0.1h-c+1/2cap_bar; y5=0.9h+c-1/2cap_bar; x5=x7=x4+5/8(x6-x4);
+penstroke z3e--z4e{right}..z5e..z6e..z7e..{left}z8e--z9e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("E",10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("F",10u#+.5s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("G",10u#+cap_jut#+c#+s#,cap_height#,0);
+x1=x5=23/42(w-cap_jut-c); y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=.09h-c; y4=.91h+c; x2=x4=x3+8/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(1.1cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s-cap_jut-c; y8=y1; x8=x1-.1(w-cap_jut-c);
+S_serif(6,slab,w-s-2c-x1-cap_jut,1.5border_height);
+S_serif(7,slab,w-s-x1-cap_jut+c,7/4border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+x9r=x7e; y9r=7/4border_height-1/2cap_bar;
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+x10=x9l; x11=x9r; y10=y11=3/4cap_bar;
+fill reverse serif_edge9--z10--z11--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("H",12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("I",2cap_jut#+cap_stem#+2s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+endchar;
+
+beginchar("J",7u#+s#,cap_height#,0);
+x1=x4=w-cap_jut-1/2cap_stem-s;
+y1c=h; y2=y3=y4=13/53h; x2=x1r; x3=x1l;
+y5=0; x5=x3-.6cap_stem;
+serif(1,cap_stem,-90,1.2cap_jut,cap_jut);
+fill z3--z2--reverse serif_edge1--cycle;
+penpos4(cap_stem,0);
+penpos5(cap_bar,-90);
+penstroke z4e{down}..{left}z5e;
+x6e=s; y6=0;
+dl_drop(6,cap_drop_round,x5-s,1.3drop_round,cap_bar);
+fill dl_drop_edge6;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("K",13u#-c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=cap_bar_height; x3l=w-cap_jut-.5cap_jut-cap_bar-s; y3l=h-cap_bar;
+x5=x6=x1r; y5=cap_bar_height-cap_bar; y6=y5-1.2cap_bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+A_serif(3,cap_bar,theta1,1.5cap_jut,.6cap_jut);
+x4l=w-s-1.2cap_jut-cap_stem; y4l=cap_bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,cap_stem,theta2,.8cap_jut,cap_jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("L",10u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=y5=y2h; x3=x2d; x5e=w-s;
+T_serif(5,cap_bar,border_height,1); x4=x5;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penstroke z3e--z4e;
+fill T_edge5 reflectedabout(z3,z4);
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar("M",13u#+1.5s#,cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,.51cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 109; y7l=10/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("N",12u#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_bar+s;
+x3=w-x1; y1c=y3c=h; y2c=y4=y5=0;
+x4=x3r; x5=x3l;
+serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+A_serif(2,cap_bar,90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill A_serif_edge2--reverse serif_edge1--cycle;
+numeric theta[]; y7=y1h; x7=x1h-1.1cap_stem;
+theta1=angle(z5-z7);
+z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+fill z6--z1h--z7--z5{down}..{up}z4--reverse A_serif_edge3--cycle;
+unfill z1b--z1l--z1a--cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("O",11u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("P",10u#+s#,cap_height#,0);
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Q",11u#+s#,cap_height#,comma_depth#);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x12-1.5c; x12=x7l-c; y11=y12=-comma_depth;
+y9=0; x9=x1-c; y9-y10=y10-y11; x11-x10=x10-x9;
+penpos9(cap_bar,90); penpos10(cap_curve,0);
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z9e{dir -20}..tension.8..z10e..tension.8..{right}z11e--z12e;
+fill z12r..z12l..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("R",11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2r;
+y1c=h; y2c=0; x6=x4=x7+2.5u; x3=x1d;
+y4-y5=y5-y6; x5=x8; x9=w-s-1/2cap_bar; y9=0; y6-y8=y8-y9; x10=x6; x9-x8=6/7(x8-x10);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,-90);
+penpos6(cap_bar,-90);
+penpos8(cap_curve,-180);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension1..z5e..tension1..{left}z6e--z7e;
+penstroke z9e{left}..tension.9..{up}z8e{up}..tension.9..{left}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("S",9u#+s#,cap_height#,0);
+x6=x7=1/2w; y6=y7=0;
+S_serif(7,cap_bar,x6-s,1.5border_height);
+y5=11/53h; x5=w-s-1/2(1.9hair);
+y4=28/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2(1.9cap_bar);
+x2=.5w-c; y2=h; z1=z2;
+penpos6(cap_bar,-90);
+penpos5(1.9hair,0);
+penpos4(1.1cap_curve,80);
+penpos3(1.9hair,0);
+penpos2(cap_bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-cap_bar,1.2border_height);
+fill S_serif_edge1;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("T",round (11u#+s#),cap_height#,0);
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("U",12u#+s#,cap_height#,0);
+x1=cap_jut+1/2cap_stem+s;
+x3=w-s-cap_jut-1/2cap_bar;
+y1c=y3c=h; y2=y4=y5=y6=y24=y56=16/53h; x2=x1l;
+x4=x1r; x5=x3l; x6=x3r;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill z2--z4--reverse serif_edge1--cycle;
+fill z5--z6--reverse A_serif_edge3--cycle;
+x7=x1+.5(x3-x1); y7=0; x4-x24=x24-x2; x6-x56=x56-x5;
+penpos24(cap_stem,-180); penpos7(vair,-90);
+penpos56(cap_bar,0);
+penstroke z24e{down}..tension.9..{right}z7e{right}..tension.9..{up}z56e;
+penlabels(range 1 thru 7,24,56);
+endchar;
+
+beginchar("V",12u#,cap_height#,0);
+x1l=cap_jut+s;
+x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w-1/2cap_bar; x5=.5w+1/2cap_bar;
+y4=y5=1/2cap_bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("W",17u#,cap_height#,0);
+x9l=.5w-.3cap_stem;
+x7r=w-s-cap_jut;
+y9l=y7r=y1l=h-cap_bar; x5=x9l+.5(x7r-x9l)-1/2cap_bar; x6=x9l+.5(x7r-x9l)+1/2cap_bar;
+y5=y6=y2=y3=1/2cap_bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(7,cap_bar,theta2,1.3cap_jut,cap_jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+cap_jut;
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+z2=z1l+whatever*dir theta1; x3=x2+cap_bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("X",12u#+s#,cap_height#,0);
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("Y",12u#,cap_height#,0);
+x1l=cap_jut+s;
+x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w;
+y4=8/25h;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+y5c=0; x5=.5w+.5c;
+serif(5,cap_stem,90,cap_jut,cap_jut);
+x6=x5l; x7=x5r;
+z6=z1l+whatever*dir theta1;
+z7=z3r+whatever*dir theta2;
+fill z6--serif_edge5--z7--reverse A_serif_edge3--z2--reverse serif_edge1--z6&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Z",9u#+1.5s#,cap_height#,0);
+x6=s+1/2cap_bar; y6=y7=y8=1/2cap_bar;
+x8e=w-s; x7=x8;
+T_serif(8,cap_bar,border_height,1);
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4cap_bar;
+x4r=w-s-1/4cap_bar; y4=h-cap_bar;
+penpos4(cap_stem,0);
+penpos5(cap_stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2cap_bar;
+x3=w-s-1/2cap_bar; x1e=s+c;
+T_serif(1,cap_bar,border_height,0);
+x2=x1;
+penpos3(cap_bar,90);
+penpos2(cap_bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar("a",.8(13u#+s#),.8cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+.8cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,.8*1.3cap_bar,theta4,.8cap_jut,.8*1.2cap_jut);
+serif(5,.8cap_stem,theta5,.8cap_jut,.8cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4b]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar("b",.8(11u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=.8cap_bar_height; x6=x2r; x7=x9=x6+.8*4.5u-.8cap_stem;
+y7-y8=y8-y9; x8=w-.8*1/2cap_curve-s; y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-.8*2/5cap_curve; y77=y7; x77=x4;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(.8cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(.8cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("c",.8(10u#+s#),.8cap_height#,0);
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=.8*1/2cap_curve+s;
+y2=.09h-c; y4=.91h+c; x2=x4=x3+8/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(.8o,30);
+penpos3(.8cap_curve,0);
+penpos4(.8o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-.7c-x1,.8*1.5border_height);
+S_serif(7,slab,w-s-x1,.8*1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar("d",.8*12u#,.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8o,30);
+penpos6(.8cap_curve,0);
+penpos7(.8o,-30);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+x3=x9=x1d;
+x8=x4=.5w; y8=y9=1/2cap_bar; y4=y3=h-1/2cap_bar;
+y6=.5h; x6=w-.8*1/2cap_curve-s;
+y7=.12h-c; y5=.88h+c; x5=x7=x4+4.3/8(x6-x4);
+penstroke z3e--z4e{right}..z5e..z6e..z7e..{left}z8e--z9e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("e",.8(10u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-.7c;
+y6=y7=y8=.8cap_bar_height;x6=x1r; x7=x8=x6+.8u;
+T_serif(5,slab,.8border_height,1);
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8*.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,.8border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("f",.8(10u#+.5s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; y5=y3; x5e=w-s;
+y6=y7=y8=.8*cap_bar_height;x6=x1r; x7=x8=x6+.8u;
+T_serif(5,slab,.8border_height,1);
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a; penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8*.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("g",.8(10u#+cap_jut#+c#+s#),.8cap_height#,0);
+x1=x5=23/42(w-.8cap_jut-c); y1=0; y5=h;
+y3=.5h; x3=.8*1/2cap_curve+s;
+y2=.095h-c; y4=.905h+c; x2=x4=x3+8/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(.8o,30);
+penpos3(.9cap_curve,0);
+penpos4(.8o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s-.8cap_jut; y8=y1; x8=x1-.1(w-.8cap_jut-.8c);
+S_serif(6,slab,w-s-.8*2c-x1-.8cap_jut,.8*1.5border_height);
+S_serif(7,slab,w-s-x1-.8cap_jut+.8c,.8*7/4border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+x9r=x7e; y9r=.75*7/4border_height-1/2cap_bar;
+serif(9,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+x10=x9l; x11=x9r; y10=y11=3/4cap_bar;
+fill reverse serif_edge9--z10--z11--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("h",.8(12u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(4,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=.8cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("i",.8(2cap_jut#+cap_stem#+2s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+endchar;
+
+beginchar("j",.8(7u#+s#),.8cap_height#,0);
+x1=x4=w-.8cap_jut-.8*1/2cap_stem-s;
+y1c=h; y2=y3=y4=13/53h; x2=x1r; x3=x1l;
+y5=0; x5=x3-.8*.55cap_stem;
+serif(1,.8cap_stem,-90,.8*1.2cap_jut,.8cap_jut);
+fill z3--z2--reverse serif_edge1--cycle;
+penpos4(.8cap_stem,0);
+penpos5(cap_bar,-90);
+penstroke z4e{down}..{left}z5e;
+x6e=s; y6=0;
+dl_drop(6,.8cap_drop_round,x5-s,.8*1.3drop_round,cap_bar);
+fill dl_drop_edge6;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("k",.8(13u#-c#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=.8cap_bar_height; x3l=w-.8cap_jut-.8*.5cap_jut-cap_bar-c; y3l=h-cap_bar;
+x5=x6=x1r; y5=.8cap_bar_height-cap_bar; y6=y5-1.2cap_bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+A_serif(3,cap_bar,theta1,.8*1.5cap_jut,.8*.6cap_jut);
+x4l=w-s-.8*1.2cap_jut-.8cap_stem; y4l=cap_bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,.8cap_stem,theta2,.8*.8cap_jut,.8cap_jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("l",.8(10u#+c#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=y5=y2h; x3=x2d; x5e=w-s;
+T_serif(5,cap_bar,.8border_height,1); x4=x5;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penstroke z3e--z4e;
+fill T_edge5 reflectedabout(z3,z4);
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar("m",.8(13u#+s#),.8cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,.8jut,.8jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,.8cap_stem,-90,.51cap_bar,.8jut);
+serif(4,.8cap_stem,90,.8jut,.8jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 106; y7l=11/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(.8cap_stem,0); penpos8(.8cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("n",.8*12u#,.8cap_height#,0);
+x1=x2=.8cap_jut+1/2cap_bar+s;
+x3=w-x1; y1c=y3c=h; y2c=y4=y5=0;
+x4=x3r; x5=x3l;
+serif(1,cap_bar,-90,.8cap_jut,.8*1.3cap_jut);
+A_serif(2,cap_bar,90,.8cap_jut,.8cap_jut);
+A_serif(3,cap_bar,-90,.8cap_jut,.8cap_jut);
+fill A_serif_edge2--reverse serif_edge1--cycle;
+numeric theta[]; y7=y1h; x7=x1h-.8*1.1cap_stem;
+theta1=angle(z5-z7);
+z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+fill z6--z1h--z7--z5{down}..{up}z4--reverse A_serif_edge3--cycle;
+unfill z1b--z1l--z1a--cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("o",.8(11u#+s#),.8cap_height#,0);
+penpos1(vair,90);
+penpos2(.8o,30);
+penpos3(.8cap_curve,0);
+penpos4(.8o,-30);
+penpos5(vair,-90);
+penpos6(.8o,-150);
+penpos7(.8cap_curve,-180);
+penpos8(.8o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=.8*1/2cap_curve+s; x7=w-.8*1/2cap_curve-s;
+y2=y8=.09h-c; y4=y6=.91h+c; x2=x4=x3+8/16(x5-x3); x6=x8=x5+8/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar("p",.8(10u#+s#),.8cap_height#,0);
+x1=x2=x3=.8cap_jut+.8*1/2cap_stem+s;
+y3=y4=.8cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+.8*3u;
+y5-y4=y6-y5; x5=w-.8*1/2cap_curve-s;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(.8cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("q",.8(11u#+s#),.8cap_height#,.8comma_depth#);
+penpos1(vair,90);
+penpos2(.8o,30);
+penpos3(.8cap_curve,0);
+penpos4(.8o,-30);
+penpos5(vair,-90);
+penpos6(.8o,-150);
+penpos7(.8cap_curve,-180);
+penpos8(.8o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=.8*1/2cap_curve+s; x7=w-.8*1/2cap_curve-s;
+y2=y8=.09h-c; y4=y6=.91h+c; x2=x4=x3+8/16(x5-x3); x6=x8=x5+8/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x12-1.5c; x12=x7l-c; y11=y12=-.8comma_depth;
+y9=0; x9=x1-c; y9-y10=y10-y11; x11-x10=x10-x9;
+penpos9(cap_bar,90); penpos10(.8cap_curve,0);
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z9e{dir -20}..tension.8..z10e..tension.8..{right}z11e--z12e;
+fill z12r..z12l..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("r",.8(11u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y6=y10=y7=.8cap_bar_height; y3=y4=h-1/2slab; x7=x2r;
+y1c=h; y2c=0; x6=x4=x7+1.8u; x3=x1d;
+y4-y5=y5-y6; x5=x8+.5c; x9=w-s-1/3cap_bar; y9=0; y6-y8=y8-y9; x10=x6-c; x9-x8=6/7(x8-x10);
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8cap_curve,0);
+penpos7(cap_bar,-90);
+penpos6(cap_bar,-90);
+penpos8(.8cap_curve,-180);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penstroke z9e{left}..tension.9..{up}z8e{up}..tension.8..{left}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("s",.8(9u#+s#),.8cap_height#,0);
+x6=x7=1/2w; y6=y7=0;
+S_serif(7,cap_bar,x6-s,.8*1.5border_height);
+y5=11/53h; x5=w-s-1/2(1.9hair);
+y4=28/53h; x4=18/38w; y3=40/53h; x3=s+c+1/2(1.9cap_bar);
+x2=.5w-c; y2=h; z1=z2;
+penpos6(cap_bar,-90);
+penpos5(.8*1.9hair,0);
+penpos4(.8*1.1cap_curve,80);
+penpos3(.8*1.9hair,0);
+penpos2(cap_bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.85..z4e..tension.85..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-.5cap_bar,.8*1.2border_height);
+fill S_serif_edge1;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("t",round .8(11u#+s#),.8cap_height#,0);
+x1=x2=.5w; y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,.8cap_stem,-90,.8*1.2cap_jut,.8*1.2cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round .8border_height,0);
+T_serif(4,cap_bar,round .8border_height,1);
+fill T_edge3; fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("u",.8(12u#+s#),.8cap_height#,0);
+x1=.8cap_jut+.8*1/2cap_stem+s;
+x3=w-s-.8cap_jut-1/2cap_bar;
+y1c=y3c=h; y2=y4=y5=y6=y24=y56=16/53h; x2=x1l;
+x4=x1r; x5=x3l; x6=x3r;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+A_serif(3,cap_bar,-90,.8cap_jut,.8cap_jut);
+fill z2--z4--reverse serif_edge1--cycle;
+fill z5--z6--reverse A_serif_edge3--cycle;
+x7=x1+.5(x3-x1); y7=0; x4-x24=x24-x2; x6-x56=x56-x5;
+penpos24(.8cap_stem,-180); penpos7(vair,-90);
+penpos56(cap_bar,0);
+penstroke z24e{down}..tension.9..{right}z7e{right}..tension.9..{up}z56e;
+penlabels(range 1 thru 7,24,56);
+endchar;
+
+beginchar("v",.8*12u#,.8cap_height#,0);
+x1l=.8cap_jut+s;
+x3r=w-s-.8cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w-1/2cap_bar; x5=.5w+1/2cap_bar;
+y4=y5=1/2cap_bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,.8cap_stem,theta1,.8cap_jut,.8cap_jut);
+A_serif(3,cap_bar,theta2,.8*1.3cap_jut,.8cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("w",.8*17u#,.8cap_height#,0);
+x9l=.5w-.8*.3cap_stem;
+x7r=w-s-.8cap_jut;
+y9l=y7r=y1l=h-cap_bar; x5=x9l+.5(x7r-x9l)-1/2cap_bar; x6=x9l+.5(x7r-x9l)+1/2cap_bar;
+y5=y6=y2=y3=1/2cap_bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,.8cap_stem,theta1,.8cap_jut,.8cap_jut);
+A_serif(7,cap_bar,theta2,.8*1.3cap_jut,.8cap_jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+.8cap_jut;
+serif(1,.8cap_stem,theta1,.8cap_jut,.8cap_jut);
+z2=z1l+whatever*dir theta1; x3=x2+cap_bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("x",.8(12u#+s#),.8cap_height#,0);
+y3=y4=slab; x3=w-s-.8cap_jut-.8*1/2cap_stem; x4=s+.8cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+.8cap_jut+.8*1/2cap_stem+c; x2=w-s-.8*1.5c-.8cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,.8cap_stem,theta1-180,.8cap_jut,.8cap_jut);
+A_serif(2,.8*1.2cap_bar,theta2-180,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,theta1,.8cap_jut,.8cap_jut);
+A_serif(4,.8*1.2cap_bar,theta2,.8cap_jut,.8cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("y",.8*12u#,.8cap_height#,0);
+x1l=.8cap_jut+s; x3r=w-s-.8cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w;
+y4=8/25h;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z4-z3r);
+serif(1,.8cap_stem,theta1,.8cap_jut,.8cap_jut);
+A_serif(3,cap_bar,theta2,.8*1.3cap_jut,.8cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+y5c=0; x5=.5w+.5c;
+serif(5,.8cap_stem,90,.8cap_jut,.8cap_jut);
+x6=x5l; x7=x5r;
+z6=z1l+whatever*dir theta1;
+z7=z3r+whatever*dir theta2;
+fill z6--serif_edge5--z7--reverse A_serif_edge3--z2--reverse serif_edge1--z6&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("z",.8(9u#+1.5s#),.8cap_height#,0);
+x6=s+1/2cap_bar; y6=y7=y8=1/2cap_bar; x8e=w-s; x7=x8;
+T_serif(8,cap_bar,.8border_height,1);
+penpos6(cap_bar,90); penpos7(cap_bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-.5c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4cap_bar;
+x4r=w-s-1/4cap_bar; y4=h-cap_bar;
+penpos4(.8cap_stem,0);
+penpos5(.8cap_stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2cap_bar;
+x3=w-s-1/2cap_bar; x1e=s+c;
+T_serif(1,cap_bar,.8border_height,0); x2=x1;
+penpos3(cap_bar,90); penpos2(cap_bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1; x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(hex"30",9u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.09h-c; y4=y6=0.91h+c; x2=x4=x3+8/16(x5-x3); x6=x8=x5+8/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"31",6u#+3/2c#,cap_height#,0);
+y1c=0; x1h=w-s;
+serif(1,cap_stem,90,cap_jut,cap_jut);
+x6=x1f; y5=y6=h; x5=x1; x2=x1a; y2=45/53h;
+penpos4(1.1cap_bar,theta1+45);
+penpos3(1.1cap_bar,theta1+45);
+x4l=s; y4=30/53h; numeric theta[]; theta1=angle(z5-z4l);
+z3l=z5; penstroke z3e--z4e; fill z4l..z4r..cycle;
+fill serif_edge1--z6{dir 110}..{dir 250}z5--z2--cycle;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"32",9u#,cap_height#,0);
+z4=(9/33w,14/53h); z5=(s+11/20cap_bar,0);
+z3=(w-s-.5c-7/16cap_curve,40/53h); z2=(15/33w,h);
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos4(1.1cap_bar,-45);
+penpos5(1.1cap_bar,0);
+x6=x5r; y6=y7=7/16cap_stem; y8=1/2cap_bar;
+x8e=w-s; x7=x8e;
+T_serif(8,cap_bar,3/5border_height,1);
+penpos6(7/8cap_stem,90);
+penpos7(7/8cap_stem,90);
+penstroke z6e--z7e; %fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+unfill z11{down}..z9--z10--cycle;
+penstroke z5e{up}..z4e..{up}z3e{up}..{left}z2e;
+z1=z2; ul_drop(1,cap_drop_round,15/33w-3c,1.4cap_drop_round,slab);
+fill ul_drop_edge1;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"33",9u#,cap_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height+c;
+x4=x6-3/2cap_stem; x5=x4-2u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.45w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2+.05w; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_stem,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..{down}z3e{down}..{left}z44e;
+penstroke z5e--z4e{right}..tension.9..{down}z6e{down}..tension.9..{left}z7e;
+fill z5r..z5l..cycle;
+ul_drop(1,cap_drop_round,17/39w-s-.05w,1.1cap_drop_round,slab);
+fill ul_drop_edge1;
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.3cap_drop_round,slab);
+fill dl_drop_edge8;
+penlabels(1,2,3,4,5,6,7,8,44);
+endchar;
+
+beginchar(hex"34",9u#+c#,cap_height#,0);
+y1=y2=33/53h; y4c=0; x4h=w-s;
+serif(4,7/8cap_stem,90,cap_jut,cap_jut);
+x1=x4r; x2=x1-bar;
+x3=x4l; y3=28/53h;
+numeric theta[]; theta1=angle(z2-z3);
+fill z3{dir theta1}--z2{dir theta1}..{down}z1--reverse serif_edge4--z3&cycle;
+y5=y6=15/53h; x5=x4e; x6=s+cap_bar;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e; fill z5r..z5l..cycle;
+y7=y6l; x7l=x6; z8=(6/36w, 21/53h);
+z9=(2/3w,h);
+penpos7(cap_bar,180); penpos8(cap_bar,150);
+penpos9(cap_stem,180);
+penstroke z7e{up}..z8e..{dir 70}z9e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"35",9u#,cap_height#,0);
+x7=x4=18/39w; y7=0; y5=cap_bar_height+c; y4=y5+s;
+x8e=s; y8=0; x5=x8d;
+dl_drop(8,cap_drop_round,18/39w-s,1.3cap_drop_round,slab);
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z5e..z4e{right}..tension.85..{down}z6e{down}..tension.85..{left}z7e;
+fill z5r..z5l..cycle;
+fill dl_drop_edge8;
+z3=z5; x2=x3; y2=h;
+penpos3(cap_bar,0); penpos2(cap_bar,0);
+penstroke z3e--z2e; fill z2l..tension 1.7..z2r..tension 1.7..cycle;
+y1r=h; x1=x2r; x13=x6; y13=h; 2(x12-x1)=x13-x12; y12=h-.6cap_stem;
+penpos1(7/8cap_stem,90); penpos13(1.1cap_bar,90); penpos12(3/4cap_stem,90);
+penstroke z1e..z12e..z13e; fill z13r..tension 1.7..z13l..tension 1.7..cycle;
+penlabels(1,2,3,4,5,6,7,8,12,13);
+endchar;
+
+beginchar(hex"36",9u#,cap_height#,0);
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=x9=.45w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.1h-c; y4=y6=0.9h+c; x8=x6=x7+11/32(x5-x7); x4=x10=x5+9/16(x3-x5); x2=x4-1/2c;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.1h-c; y11=y7;
+x11l=x3l; y10=y8;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e..z10e..z11e;
+z12 = z1;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+z13 = (.5w,.5h);
+currentpicture := currentpicture rotatedaround(z13,180);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"37",9u#-c#,cap_height#,0);
+x4=w-s-1/2cap_bar; y4=h-1/2cap_bar;
+penpos4(cap_bar,0);
+y3=y2=h-7/16cap_stem; y1=h-7/8cap_stem+1/2cap_bar;
+x3=x4l; x1e=s;
+T_serif(1,cap_bar,3/5border_height,0);
+x2=x1e;
+penpos3(7/8cap_stem,90);
+penpos2(7/8cap_stem,90);
+penstroke z2e--z3e;
+fill T_edge1; z44=(x4,h); fill z4r{up}..{left}z44--z3r--z4l--cycle;
+x10=s+c; x11=s; y10=y11=h;
+unfill z1d{up}..z10--z11--cycle;
+unfill z1d{up}..z10--z11--cycle;
+x5r=x3; y5=h-7/8cap_stem;
+x6=14/30w; y6=1/3cap_curve;
+penpos5(cap_bar,0); penpos6(cap_curve,0);
+penstroke z4e{dir -105}..z5e..{dir -95}z6e; fill z6l..z6r..cycle;
+penlabels(1,2,3,4,5,6,10,11,12);
+endchar;
+
+beginchar(hex"38",10u#-s#,cap_height#,0);
+x6=x4=x2=x8=1/2w; y6=0; y2=h;
+y5=11/53h; y7=13/53h; x5=w-s-1/2(1.9hair);
+y4=y8=28/53h; y3=42/53h; y1=40/53h; x3=2s+1/2(1.9cap_bar);
+x1=w-2s-1/2(1.9cap_bar); x7=w-x5;
+penpos6(cap_bar,-90);
+penpos5(2.5hair,0);
+penpos4(cap_curve,80);
+penpos3(2.5hair,0);
+penpos2(cap_bar,-90);
+penpos1(2.5hair,-180);
+penpos7(2.5hair,-180);
+penpos8(cap_bar,-270);
+penstroke z6e{right}..tension.9..z5e..tension.85..z4e..tension.85..z3e..tension.9..{right}z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"39",9u#,cap_height#,0);
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=x9=.45w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.1h-c; y4=y6=0.9h+c; x8=x6=x7+11/32(x5-x7); x4=x10=x5+9/16(x3-x5); x2=x4-1/2c;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.1h-c; y11=y7;
+x11l=x3l; y10=y8;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e..z10e..z11e;
+z12 = z1;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+beginchar(oct"56",cap_stem#+2s#,cap_stem#,0);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+endchar;
+
+beginchar(oct"54",cap_stem#+2s#+c#,cap_stem#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"60",cap_stem#+2s#+c#,asc_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(oct"41", cap_stem#+2s#,cap_height#,0); "Exclamation mark";
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+ x3=.5w-1/2cap_bar; x4=.5w+1/2cap_bar; y3=y4=3/2cap_stem;
+ x6=x1; x5=x2; y5=y6=h;
+ fill z6--z3..z4--z5{up}..z6&cycle;
+endchar;
+
+beginchar(hex"22",2cap_stem#+3s#+2c#,cap_height#,0);
+ z1=(s,h-1/2cap_stem); z2=(x1+cap_stem+c,h-1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-cap_stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"5C",2cap_stem#+3s#+2c#,cap_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(x1+cap_stem+c,1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"7b",10u#-1.5c#,x_height#,0); "En dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"3D",10u#+1.5c#,x_height#,0);
+ z1=(s+1/2bar,bar_height-3c); z2=(w-s-1/2bar,bar_height-3c);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+3c); z4=(w-s-1/2bar,bar_height+3c);
+ penpos3(bar,90); penpos4(bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"23",13u#,asc_height#,body_depth#);
+ z1=(s+1/2bar,bar_height-5c); z2=(w-s-1/2bar,bar_height-5c);
+ penpos1(1.5bar,90); penpos2(1.5bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+5c); z4=(w-s-1/2bar,bar_height+5c);
+ penpos3(1.5bar,90); penpos4(1.5bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ z5=(.5w-5c,bar_height); z6=(.5w+5c,bar_height);
+ z7=z5+whatever*dir 76; y7=h; z8=whatever[z5,z7]; y8=-d;
+ penpos7(1.5bar,0); penpos8(1.5bar,0);
+ fill z7l{up}..{down}z7r--z8r{down}..{up}z8l--z7l&cycle;
+ z9=z6+whatever*dir 76; y9=h; z10=whatever[z6,z9]; y10=-d;
+ penpos9(1.5bar,0); penpos10(1.5bar,0);
+ fill z9l{up}..{down}z9r--z10r{down}..{up}z10l--z9l&cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"7c",14u#,x_height#,0); "Em dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(oct"55",2cap_jut#+cap_stem#+2s#,x_height#,0); "hyphen";
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"5F",1.1stem#+2s#,x_height#+2.1stem#,0);
+ z1=(.5w,h); z2=(.5w,h-1.1stem);
+ fill z1..z2..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7E",7u#,body_height#,0);
+ pickup pencircle xscaled 1pt yscaled .2pt rotated 55;
+ z4=(w-s-c,h-s); x1=s+c; y1=y4-1/2cap_stem;
+ y2-y1=y4-y3=3(y4-y1); z2-z1=z4-z3=whatever * dir 55;
+ draw z1..controls z2 and z3..z4;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"3C",7u#-2c#,x_height#,0); "looks like <<";
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3E",7u#-2c#,x_height#,0);
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ z10=(.5w,.5h);
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ currentpicture := currentpicture rotatedaround(z10,180);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3B",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+3/2c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ z8=(s,h-1/2cap_stem); z9=(w-s,h-1/2cap_stem);
+ fill z8..z9..cycle;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(hex"3A",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ fill z1..z2..cycle;
+ penlabels(1,2,3,4);
+ z3=(s,1/2cap_stem); z4=(w-s,1/2cap_stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2B",2cap_jut#+cap_stem#+2s#,x_height#,0); "plus";
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ x3=x4=.5w; y3=y2+1/2(x2-x1); y4=y2-1/2(x2-x1);
+ penpos3(1.8bar,0); penpos4(1.8bar,0);
+ penstroke z3e--z4e;
+ fill z3r..z3l..cycle; fill z4r..z4l..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2F",2s#+bar#,body_height#,body_depth#);
+ z1=(.5w,h-.5bar); z2=(.5w,-d+.5bar);
+ %pickup pencircle xscaled bar yscaled bar;
+ penpos1(bar,0); penpos2(bar,0);
+ penstroke z1e--z2e; fill z1r..z1l..cycle;
+ fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"27",cap_stem#+2s#+c#,x_height#+2.1stem#,0);
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ z6=(.5w-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"28",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"29",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"86",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"87",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"5B",2s#+3cap_bar#,body_height#,body_depth#);
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x2,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z1r..z1l..cycle; fill z6r..z6l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"5D",2s#+3cap_bar#,body_height#,body_depth#);
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x1,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z2r..z2l..cycle; fill z5r..z5l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"B9",16u#,cap_height#,0);
+ x1=x2=cap_jut+1/2cap_bar+s+cap_stem;
+ x3=w-x1-1/2cap_stem; y1c=h; y4=y5=0;
+ x4=x3r; x5=x3l; y2=12/53h; y3=h-y2;
+ x8=x2-stem; y8=0; z9=z8;
+ dl_drop(9,cap_drop_round,x8-s,1.3drop_round,cap_bar);
+ fill dl_drop_edge9; penpos8(bar,-90);
+ serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+ penpos2(bar,0); penpos3(bar,0);
+ penstroke z2e{down}..{left}z8e;
+ fill z2l--z2r--reverse serif_edge1--cycle;
+ numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+ theta1=angle(z5-z7); x10=x3+stem; y10=h; z11=z10;
+ penpos10(bar,-90); penstroke z3e{up}..{right}z10e;
+ ur_drop(11,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill ur_drop_edge11;
+ z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+ fill z6--z1h--z7--z5{down}..{up}z4--z3r--z3l--cycle;
+ unfill z1b--z1l--z1a--cycle;
+ y12=y13=2cap_bar; x12=x4+2cap_bar+s; x13=w-2s;
+ penpos12(.4stem,90); penpos13(.4stem,90);
+ penstroke z12e--z13e; y16=y11d-5cap_bar;
+ x13-x14=x14-x12; x16=x14; y14=y13+5cap_bar;
+ x17=w-s-1/4stem; x17-x16=x16-x15; y16-y15=y15-y14;
+ y17=y15; penpos17(.6stem,0); penpos16(bar,90);
+ penpos15(.6stem,180); penpos14(bar,270);
+ penstroke z17e{up}..{left}z16e{left}..{down}z15e{down}..{right}z14e{right}..{up}z17e;
+ fill z12l..tension1.2..z12r..tension1.2..cycle;
+ fill z13l..tension1.2..z13r..tension1.2..cycle;
+ penlabels(range 1 thru 17);
+endchar;
+
+beginchar(hex"24",9u#-s#,body_height#,body_height#-cap_height#);
+ x6=x7=1/2w-c; y6=y7=0;
+ dl_drop(7,cap_drop_round,x6-s,1.4cap_drop_round,cap_bar);
+ y5=10/53cap_height; x5=w-s-1/2(1.9hair);
+ y4=1/2cap_height; x4=19/38w; y3=42/53cap_height; x3=s+1/2(1.9cap_bar);
+ x2=.5w+c; y2=cap_height; z1=z2;
+ penpos6(cap_bar,-90); penpos5(1.9hair,0);
+ penpos4(1.1cap_curve,80); penpos3(1.9hair,0);
+ penpos2(cap_bar,-90);
+ penstroke z6e{right}..z5e..tension.9..z4e..tension.9..z3e..{right}z2e;
+ fill dl_drop_edge7;
+ ur_drop(1,cap_drop_round,w-s-x2,1.4cap_drop_round,cap_bar);
+ fill ur_drop_edge1;
+ z8=(.5w,h); z9=(.5w,-d);
+ penpos8(cap_bar,0); penpos9(cap_bar,0);
+ penstroke z8e--z9e;
+ fill z9r..z9l..cycle; fill z8r..z8l..cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"25",12u#,asc_height#,0);
+penpos1(vair,90); penpos2(.6curve,0);
+penpos3(vair,-90); penpos4(.6curve,-180);
+y1=.55h; y3=h; y3-y4=y4-y1; y2=y4; x2=1/4curve+s; x4=5/2curve+s;
+x4-x1=x1-x2; x3=x1;
+penstroke z1e{left}..tension.9..{up}z2e{up}..tension1.2..{right}z3e..tension.9..{down}z4e{down}..tension1.2..{left}z1e..cycle;
+penpos5(vair,90); penpos6(.6curve,0);
+penpos7(vair,-90); penpos8(.6curve,-180);
+y5=0; y7=.45h; y7-y8=y8-y5; y6=y8; x8=w-1/4curve-s; x6=w-5/2curve-s;
+x8-x5=x5-x6; x7=x5;
+penstroke z5e{left}..tension.9..{up}z6e{up}..tension1.2..{right}z7e..tension.9..{down}z8e{down}..tension1.2..{left}z5e..cycle;
+x9l=x7; y9=h; x10r=x1; y10=0;
+penpos9(1.2bar,0); penpos10(1.2bar,0);
+penstroke z9e--z10e;
+penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"26",14u#,cap_height#,0);
+x4=x8=x3+.5curve; y6=0; y2=h; x2=x3+1.3cap_curve;
+y7=13/53h; y5=9/53h; x5=x7+3.5cap_curve; x6=x7+1.8cap_curve;
+y4=y8=30/53h; y1=44/53h; y3=42/53h; x3=4s+curve;
+x1=x3+2.1cap_curve; x7=s+1/2cap_curve;
+x10=w-s; y10=9/53h; x10-x9=x9-x5; y9=1/5cap_curve;
+th:=angle(z4-z5)+5; th1:=th-11; x11h=w-s-c; y11h=y1-4s;
+A_serif(11,cap_bar,-110,cap_jut,cap_jut); z12l=z11a;
+penpos6(cap_bar,-90); penpos5(cap_stem,45);
+penpos4(cap_stem,45); penpos3(2.5hair,0);
+penpos2(cap_bar,-90); penpos1(2hair,-180);
+penpos7(cap_curve,-180); penpos8(cap_bar,-250);
+penpos9(.5cap_curve,70); penpos10(cap_bar,150);
+penpos12(cap_bar,0);
+penstroke z10e..z9e..z5e{dir th}..{dir th1}z4e..tension.9..{up}z3e{up}..tension1..z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e{dir 8}..{dir 70}z12e;
+fill z12l--z12r..reverse A_serif_edge11--cycle;
+fill z10l..tension1.3..z10r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"40",14u#,x_height#+2curve#,2curve#);
+a_width:=9u+c-2s;
+x1=2s+a_width-s-3/4stem+1.5curve; y1=x_height; y2=7/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=3s+a_width+1.5curve; y4=15/33x_height;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.2vair,270); penpos4(bar,360);
+x5=x1-3/2stem; y5=x_height; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c+1.5curve; y6=.54x_height; y8=.46x_height; z8l=whatever[z1r,z2r];
+x13=x5; y13=h-1/2bar; x14=s+1/2bar; y14=y6; y15=-d+1/2bar; x15=x7;
+x16=x4; y16=-d+3bar; penpos7(vair,270); penpos16(bar,270);
+penpos13(bar,90); penpos14(bar,180); penpos15(bar,270);
+penpos8(2bar,0); penpos5(vair,90); penpos6(curve,180);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 80}z4e..z13e{left}..z14e..{right}z15e..z16e;
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=x_height-c; z10=(x1r+c,x_height); z11=(x1l-c,x_height);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+fill z16r..z16l..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar(hex"12",2cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=s+.45cap_stem*cosd 45;
+x2=w-s+cap_bar*cosd 45; z2=z1+whatever*dir -45;
+penpos1(.9cap_stem,45); penpos2(cap_bar,45);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"13",2cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=w-s-.45cap_stem*cosd 45;
+x2=s-cap_bar*cosd 45; z2=z1+whatever*dir -135;
+penpos1(.9cap_stem,135); penpos2(cap_bar,135);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"3F",7u#+.7s#,cap_height#,0);
+ x1=s+4/5cap_stem; y1=1/2cap_stem;
+ penpos1(cap_stem,0);
+ fill z1r..z1l..cycle;
+ y2=cap_stem+cap_bar; x2=x1;
+ z3l=z2l+whatever*dir 96; y3l=25/53h;
+ penpos2(cap_bar,0); penpos3(cap_bar,0);
+ penstroke z2e--z3e;
+ z4l=z3l; penpos4(cap_bar,0);
+ y5=y4-2bar; x5=x4+3cap_bar; penpos7(cap_bar,-90);
+ x6=w-s-1/2cap_curve; y6=37/51h; x7=12/31w; y7=h;
+ penpos5(cap_bar,90); penpos6(cap_curve,180); z8=z7;
+ penstroke z4e{dir -69}..z5e{dir 10}..tension1..{up}z6e{up}..tension.9..{left}z7e;
+ ul_drop(8,.8cap_drop_round,x7-s,cap_curve,cap_bar);
+ fill ul_drop_edge8;.
+ fill z3r..tension1.2..z3l..tension1.2..cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"10",2jut#+stem#+2s#,x_height#,0);
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"11",5u#,x_height#,desc_depth#);
+x1h=w-s; y1c=x_height; y2=0; x2=x1;
+serif(1,stem,-90,1.5jut,0);
+penpos2(stem,0);
+fill z2l--z2r--reverse serif_edge1--cycle;
+y5=-1/4desc_depth; x5r=x2r;
+y6=-d+1/2bar; x6=x2l-.45stem;
+penpos5(.97stem,0);
+penpos6(bar,-90);
+penstroke z2e--z5e{down}..{left}z6e;
+x7e=s; y7=-d+1/2bar;
+dl_drop(7,stem,x6-x7e,drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(hex"2A",3cap_stem#+3s#,body_height#,0);
+ x1=x2=x3=x4=.5w; y1=h-1/2stem; y2=y1-cap_stem; y3=y2-bar; y4=y3-bar;
+ penpos1(stem,0); penpos2(cap_bar,0); penpos3(2cap_bar,0);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle;
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,60);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,120);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,180);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,240);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,300);
+ penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"0B",4jut#+2stem#+2c#+3s#,asc_height#,0);
+w:=w+1;
+numeric dist; dist := 2jut+2stem-3c;
+x1g=x2g=s+dist; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x1; y3=x_height; x4r=x1l-.1stem; y4=x_height+1/2(asc_height-x_height);
+x5l=x4l-.05stem; y5=y4+1.5bar; x6=round (x1r+.2stem); y6=h-1/2bar;
+penpos3(stem,180);
+penpos4(.75curve,180);
+penpos5(.6curve,180);
+penpos6(bar,90);
+penstroke z3e{dir 95}...{up}z4e..z5e..{right}z6e;
+y6=y7; x7e=w-s;
+ur_drop(7,stem,x7e-x6,drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+x11g=x12g=s; y11c=x_height; y12c=0;
+serif(11,stem,-90,jut,jut);
+serif(12,stem,90,jut,jut);
+fill serif_edge12--reverse serif_edge11--cycle;
+x13=x11; y13=x_height; x14l=x13l; y14=x_height+1/2(asc_height-x_height);
+x15l=x14l; y15=y14+1.5bar; x16=x11r+.8stem; y16=h-1/2bar;
+x17r=x5l; y17=y5;
+penpos13(stem,180);
+penpos14(.75curve,180);
+penpos15(.6curve,180);
+penpos16(bar,90);
+penpos17(bar,0);
+penstroke z13e{dir 95}...{up}z14e..z15e..{right}z16e{right}..{down}z17e;
+fill z11d--z1c--z1b--z11e--cycle;
+penlabels(1,2,3,4,5,6,7,11,12,13,14,15,16,17);
+endchar;
+
+beginchar(hex"5E",6u#,body_height#,0);
+ x1=s+.45cap_bar*cosd 45; x2=w/2; y2=h-bar;
+ z1=z2+whatever*dir -135; x3=w-x1; z3=z2+whatever*dir -45;
+ penpos1(bar,135); penpos2(2bar,90); penpos3(bar,45);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"16",6u#,body_height#,0);
+ x1=s; x2=w-x1; y1=y2=h-4bar;
+ penpos1(.8bar,90); penpos2(.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7F",2stem#+4s#,x_height#+2.1stem#,0);
+ z1=(s+.5stem,h); z2=(s+.5stem,h-stem);
+ fill z1..z2..cycle;
+ z3=(w-s-.5stem,h); z4=(w-s-.5stem,h-stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+ligtable CYR_A: "A":
+ CYR_O kern -k#,
+ CYR_ES kern -k#,
+ CYR_TE kern -kk#,
+ "T" kern -kk#,
+ CYR_U kern -kk#,
+ CYR_EF kern -k#,
+ CYR_CHE kern -kk#,
+ CYR_HARD_SIGN kern -k#,
+ CYR_te kern -k#,
+ "t" kern -k#,
+ CYR_u kern -kk#,
+ CYR_ef kern -k#,
+ CYR_che kern -kk#,
+ "W" kern -kkk#,
+ "V" kern -kkk#,
+ "Y" kern -kkk#,
+ "y" kern -kk#,
+ "w" kern -kk#,
+ "v" kern -kk#;
+
+ligtable CYR_GHE: CYR_TE: "T":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_DE kern -k#,
+ CYR_EL kern -kk#,
+ CYR_a kern -kk#,
+ "a" kern -kk#,
+ CYR_de kern -k#,
+ CYR_el kern -kk#,
+ CYR_o kern -k#,
+ CYR_es kern -k#;
+
+ligtable CYR_O: CYR_E: CYR_YU:
+ CYR_U kern -k#,
+ CYR_ha kern -k#,
+ "X" kern -k#,
+ CYR_HA kern -k#;
+
+ligtable CYR_ER: "P":
+ CYR_A kern -kk#,
+ CYR_a kern -kk#,
+ CYR_el kern -k#;
+
+ligtable CYR_U:
+ CYR_A kern -kkk#,
+ "A" kern -kkk#,
+ CYR_a kern -kkk#,
+ "a" kern -kkk#,
+ CYR_O kern -k#,
+ CYR_ES kern -k#,
+ CYR_EL kern -k#,
+ CYR_el kern -kk#,
+ CYR_EF kern -k#;
+
+ligtable CYR_HA: "X":
+ CYR_O kern -k#,
+ "O" kern -k#,
+ "Q" kern -k#,
+ "C" kern -k#,
+ "G" kern -k#;
+
+ligtable CYR_a: "a":
+ CYR_O kern -k#,
+ CYR_ES kern -k#,
+ CYR_TE kern -kk#,
+ CYR_U kern -kk#,
+ CYR_EF kern -k#,
+ CYR_CHE kern -kk#,
+ CYR_HARD_SIGN kern -k#,
+ CYR_o kern -k#,
+ CYR_es kern -k#,
+ CYR_te kern -kk#,
+ CYR_u kern -kk#,
+ CYR_ef kern -k#,
+ CYR_che kern -kk#,
+ CYR_hard_sign kern -k#,
+ CYR_che kern -kk#,
+ "V" kern -kk#,
+ "W" kern -kk#,
+ "T" kern -kk#,
+ "y" kern -kk#,
+ "v" kern -kk#,
+ "w" kern -kk#,
+ "t" kern -kk#,
+ "u" kern -k#,
+ "Y" kern -kk#;
+
+ligtable CYR_ghe: CYR_te: "t":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_DE kern -k#,
+ CYR_EL kern -kk#,
+ CYR_a kern -kk#,
+ "a" kern -kk#,
+ CYR_de kern -k#,
+ CYR_el kern -kk#,
+ CYR_o kern -k#,
+ CYR_es kern -k#;
+
+ligtable CYR_o: CYR_e: CYR_yu: "o": "d":
+ CYR_u kern -k#,
+ "x" kern -k#,
+ CYR_ha kern -k#,
+ "v" kern -k#,
+ "w" kern -k#,
+ "V" kern -k#,
+ "W" kern -k#;
+
+ligtable CYR_er: "p":
+ CYR_A kern -k#,
+ "A" kern -k#,
+ "a" kern -kk#,
+ CYR_a kern -kk#,
+ CYR_el kern -k#;
+
+ligtable CYR_u:
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_a kern -kkk#,
+ "a" kern -kkk#,
+ CYR_o kern -k#,
+ CYR_es kern -k#,
+ CYR_el kern -k#,
+ CYR_ef kern -k#;
+
+ligtable CYR_ha: "x":
+ "o" kern -k#,
+ CYR_o kern -k#;
+
+ligtable "D": "O": "Q":
+ "X" kern -k#;
+
+ligtable "L": "l":
+ "T" kern -kk#,
+ "Y" kern -kk#,
+ "t" kern -kk#,
+ CYR_TE kern -kk#,
+ CYR_te kern -kk#,
+ "y" kern -kk#;
+
+ligtable "V": "W":
+ "A" kern -kkk#,
+ "a" kern -kkk#,
+ CYR_A kern -kkk#,
+ CYR_a kern -kkk#;
+
+ligtable "Y":
+ CYR_A kern -kk#,
+ CYR_a kern -kk#,
+ "a" kern -kk#,
+ "A" kern -kk#;
+
+ligtable "v": "w":
+ "A" kern -kk#,
+ CYR_A kern -kk#,
+ CYR_a kern -kk#,
+ "o" kern -k#,
+ "c" kern -k#,
+ "a" kern -kk#;
+
+ligtable hex"37":
+ CYR_A kern -kk#,
+ CYR_a kern -kk#,
+ "a" kern -kk#,
+ "A" kern -kk#;
+ligtable oct"55":
+ oct"55" =: hex"7b";
+ligtable hex"7b":
+ oct"55" =: hex"7c";
+end.
diff --git a/fonts/obnov/obnsc7.mf b/fonts/obnov/obnsc7.mf
new file mode 100644
index 0000000000..c106e2e673
--- /dev/null
+++ b/fonts/obnov/obnsc7.mf
@@ -0,0 +1,3462 @@
+%written by Basil Solomykov, Russia
+%(C) Copyright 2011 LPPL (LaTeX Project Public License)
+%Font Ordinary New (Obyknovennaya novaya), Small Capitals
+
+design_size := 7pt#;
+o# := .32pt#;
+u# := 15/35pt#;
+bar# := 7.5/36pt#;
+slab# := 7.5/36pt#;
+cap_bar# := 7.5/36pt#;
+vair# := 7.5/36pt#;
+hair# := 7.5/36pt#;
+jut# := 15/36pt#;
+cap_jut# := 20/36pt#;
+stem# := 23/36pt#;
+curve# := 23.7/36pt#;
+cap_stem# := 27/36pt#;
+cap_curve# := 27.6/36pt#;
+s# := .32pt#;
+c# := .16pt#;
+
+input obn_lcyw_code.mf;
+font_identifier "OBNSC";
+mode_setup;
+clear_pen_memory;
+
+font_size design_size*pt#;
+asc_height# := 24/36*design_size*pt#;
+cap_height# := 24/36*design_size*pt#;
+body_height# := 27/36*design_size*pt#;
+x_height# := 15.4/36*design_size*pt#;
+desc_depth# := 8/36*design_size*pt#;
+body_depth# := 9/36*design_size*pt#;
+comma_depth# := 5/36*design_size*pt#;
+x_depth# := 4/5comma_depth#;
+bar_height# := .52x_height#;
+cap_bar_height# := .52cap_height#;
+cap_bar2_height# := .45cap_height#;
+border_height# := comma_depth#;
+cap_drop_round# := 3.9*slab#;
+drop_round# := 6/8cap_drop_round#;
+
+bracket# := pt#;
+
+font_x_height x_height#;
+font_normal_space 6u#;
+font_normal_stretch 4u#;
+font_normal_shrink 2u#;
+font_quad 16u#;
+font_extra_space 6u#;
+
+k# := .8u#;
+kk# := 1.5u#;
+kkk# := 3u#;
+
+serif_darkness := 1/30;
+define_pixels(bracket,cap_o_width,sss_width,css_width);
+define_pixels(c,s,cap_bar_height,cap_bar2_height);
+define_pixels(border_height,A_bracket,cap_drop_round,x_depth,drop_round);
+define_whole_blacker_pixels(stem,cap_stem,curve,cap_curve,bar,slab,cap_bar,vair,hair);
+define_whole_pixels(asc_height,cap_height,x_height,u,desc_depth,comma_depth,bar_height,body_height,body_depth,u,o,cap_jut,jut);
+%define_corrected_pixels();
+lowres_fix(stem,curve) 1.2;
+lowres_fix(cap_stem,cap_curve) 1.2;
+if jut=cap_jut: jut:=jut-1; fi
+
+def serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g if left_jut=0: -1/2slab fi +1/2slab; x$d=x$e=x$h if right_jut=0: +1/2slab fi-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def serif_edge suffix $ =
+(serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse serif_bracket($f,$r,$e)) enddef;
+
+def serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...serif_darkness[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def T_serif(suffix $)(expr slab, bord_height, direction)= %Direction: 0-left, 1-right;
+penpos$(slab,if direction=1: - fi 90);
+x$=x$a=x$g; y$g-y$=y$-y$a=1/2slab;
+x$b=x$a + if direction=0: - fi .882bord_height; y$b=y$d=y$c+1/2slab;
+x$c=x$b + if direction=0: - fi 1/2slab; y$c=y$a-bord_height;
+x$d=x$e=x$b + if direction=0: - fi slab;
+y$e=y$g-1/2slab; y$f=y$g; x$f=x$c;
+labels($a,$b,$c,$d,$e,$f,$g) enddef;
+
+def T_edge suffix $ =
+(z$a..{down}z$b..z$c..z$d--z$e{up}..z$f--z$g--cycle) enddef;
+
+def A_serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g+1/2slab; x$d=x$e=x$h-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def A_serif_edge suffix $ =
+(A_serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse A_serif_bracket($f,$r,$e)) enddef;
+
+def A_serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...0.6[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def ur_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a= 1/2slab;
+x$e=x$a + drop_length; y$e=y$f- drop_height;
+x$d=x$e - 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e - drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d - 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ur_drop_edge suffix $ =
+(z$f{right}..tension.9..{down}z$e{down}..{left}z$d{left}..{up}z$c{up}..z$b...{left}z$a--cycle) enddef;
+
+def ul_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$f- drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d + 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ul_drop_edge suffix $ =
+(z$f{left}..tension.9..{down}z$e{down}..{right}z$d{right}..{up}z$c{up}..z$b...{right}z$a--cycle) enddef;
+
+def dl_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, -90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$a + drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e + 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d - drop_round); x$b=x$d + 1/90drop_round;
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def dl_drop_edge suffix $ =
+(z$a{left}..tension.9..{up}z$e{up}..{right}z$d{right}..{down}z$c..{dir 250}z$b{dir -80}..{right}z$f--cycle) enddef;
+
+def S_serif (suffix $)(expr serif_slab, serif_length, serif_height)=
+%penpos$(serif_slab,90);
+x$a=x$i=x$; y$i=y$+1/2serif_slab; y$a=y$-1/2serif_slab;
+x$f=x$e=x$a+serif_length; y$f=y$g-1/2serif_slab; y$e=y$c=y$d+1/2serif_slab;
+x$g=x$f-1/2serif_slab; y$g=y$i-1/2serif_slab;
+y$h=y$f-1/4serif_slab; x$h=x$g-serif_slab;
+x$c=x$e-serif_slab; x$d=x$e-1/2serif_slab; y$d=y$g-serif_height;
+x$b=x$h-6/18serif_length; y$b=y$h-1/2slab;
+labels ($a,$b,$c,$d,$e,$f,$g,$h,$i) enddef;
+
+def S_serif_edge suffix $ =
+(z$a{right}...z$b..{dir -80}z$c..z$d..z$e--z$f{up}..z$g{left}..z$h{dir 150}..{left}z$i--cycle) enddef;
+
+beginchar(CYR_A,13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar(CYR_BE,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=y5=h-1/2slab;
+y1c=h; y2c=0; x5e=w-s-1/2cap_stem;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h; x4=w-s-1/2cap_stem-border_height;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_VE,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+css_width := x8 - x2r; save css_width;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar(CYR_GHE,9u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; x3=x4+2u;
+y5=y3; x5e=w-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_DE,12u#,cap_height#,comma_depth#);
+x10e=w-s; y10c=-d;
+y4c=h; x4h=w-s-1/2slab;
+x9=x4; y9c=0;
+x3=x8=x9d; y8=y7=1/2cap_bar; y3=y2=h-y8;
+x6e=s; y6=y10; x7=border_height+s;
+y5=y9; x5g=s+.5u; y1=y4; x1=x5+1.5u;
+x2=x1c;
+A_serif(1,1.2cap_bar,-96,10/7cap_jut,cap_jut);
+A_serif(5,1.2cap_bar,81,6/7cap_jut,cap_jut);
+serif(4,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+penpos2(cap_bar,90);
+penpos3(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_bar,90);
+penstroke z7e--z8e; penstroke z2e--z3e;
+fill A_serif_edge5...reverse A_serif_edge1...cycle;
+fill serif_edge9--reverse serif_edge4--cycle;
+T_serif(6,slab,border_height,0);
+T_serif(10,slab,border_height,1);
+fill T_edge6;
+fill T_edge10;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_IE,10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_YE,10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+x12=x13=x2r; y12=h+1/4cap_stem; y13=y12+cap_stem;
+x14=x15=x12+2cap_stem; y14=y12; y15=y13;
+fill z12..z13..cycle; fill z14..z15..cycle;
+penlabels(range 1 thru 15);
+endchar;
+
+beginchar(CYR_ZHE,round (16u#+s#),cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; y7=y4=y10=y11=cap_bar_height; x4=x7-1.5u;
+x10=x8r; x11=x10+1.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+x6=s; y6=0; y4-y5=y5-y6; x4-x5=x5-x6;
+penpos7(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,90);
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z6e{right}..tension.8..{up}z5e{up}..tension.8..{right}z4e--z7e;
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+x3=x5+1/2cap_stem; y2=h; x4-x3=x3-x2; y2-y3=y3-y4;
+penpos3(hair,0);
+penpos2(cap_bar,90);
+penstroke z4e{left}..tension.8..{up}z3e{up}..tension.8..{left}z2e;
+y1=h; x1a=x2; fill z6l..z6r..cycle;
+ul_drop(1,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ul_drop_edge1; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ZE,10u#+.5s#,cap_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height;
+x4=x6-3/2cap_stem; x5=x4-3u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3c,1.4border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.5cap_drop_round,slab);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_I,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-20); penpos6(cap_bar,-20);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar(CYR_SHORT_I,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-20); penpos6(cap_bar,-20);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+x7=.5w; y7=h+cap_bar;
+ur_drop(7,cap_drop_round,1/2(x3l-x1r),.9cap_drop_round,1.2cap_bar);
+fill ur_drop_edge7 rotatedaround(z7,180);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_KA,12u#+s#,cap_height#,0);
+x8g=x9g=s; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+y10=y11=cap_bar_height;
+x10=x8r; x11=x10+2.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_EL,13u#+1/2s#,cap_height#,0);
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.9cap_drop_round; y3=1.1cap_drop_round;
+dl_drop(1,cap_drop_round,1.1cap_drop_round,1.1cap_drop_round,slab);
+fill dl_drop_edge1;
+penpos2(cap_bar,-90);
+penpos3(cap_bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-slab;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,cap_bar,theta1,1.2cap_jut,1.2cap_jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,cap_stem,-90,cap_jut,cap_jut);
+serif(8,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_EM,13u#,cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,1/2cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 110; y7l=11/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EN,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_O,11u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+cap_o_width := x7-x3; save cap_o_width;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_PE,12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ER,10u#+s#,cap_height#,0);
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_ES,10u#+s#,cap_height#,0);
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_TE,round (11u#+s#),cap_height#,0);
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_U,13u#+s#,cap_height#,0);
+x1l=s+cap_jut; y1l=.98h-cap_bar;
+x3r=w-s-.8cap_jut; y3r=.98h-cap_bar;
+x4=33/60w; y4=6/53h;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,1.2cap_bar,theta2,1.2cap_jut,.8cap_jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=0; x6=x4-1.2cap_stem; z7l=z2;
+penpos7(1.2cap_bar,theta2+90);
+penpos5(1.2cap_bar,theta2+90);
+penpos6(1.2cap_bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,cap_drop_round,2u, 10/53h, round 1.2cap_bar);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EF,round (14u#+s#),cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1=x2=.5w; y2c=0; y1h=h;
+y6=y7=y8=y9=1.3cap_jut; y4=y3=y11=y12=h-1.3cap_jut+1/2slab;
+x3=x7=x2l; x8=x12=x2r; x4=x6=x3-u; x11=x9=x12+u;
+x5=s+1/2cap_curve; x10-x1=x1-x5; y4-y5=y5-y6; y10=y5;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,270);
+penpos7(cap_bar,270);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+penpos10(cap_curve,0);
+penpos11(cap_bar,90);
+penpos12(cap_bar,90);
+penstroke z3e--z4e{left}..tension.8..{down}z5e{down}..tension.8..{right}z6e--z7e;
+penstroke z8e--z9e{right}..tension.8..{up}z10e{up}..tension.8..{left}z11e--z12e;
+penlabels (range 1 thru 12);
+endchar;
+
+beginchar(CYR_HA,12u#+s#,cap_height#,0);
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_TSE,12.5u#+s#,cap_height#,comma_depth#);
+x1=x2=x5=cap_jut+1/2cap_stem+s;
+x3=x4=x6=w-x1-.5u; y5=y6=y2h;
+y1c=y3c=h; y2c=y4c=0; x7e=w-s; y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e;
+T_serif(7,cap_bar,border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_CHE,12u#+s#,cap_height#,0);
+x1=cap_jut+1/2cap_stem+s;
+x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,-90,cap_jut,cap_jut);
+serif(3,cap_stem,90,cap_jut,cap_jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=cap_bar_height-1/2cap_bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-2cap_bar;
+penpos6(cap_stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SHA,16u#+s#,cap_height#,0);
+if .5w <> good.x .5w: change_width; fi
+x1=x2=good.x (cap_jut+1/2cap_stem+s);
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=good.x .5w; y5=y1; y6=y2;
+y9b=slab; x9=good.x w-x1;
+x10=x9; y10b=h-slab;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_SHCHA,16.5u#+s#,cap_height#,comma_depth#);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=slab; x9h=w-s-.5u;
+x10=x9; y10b=h-slab;
+x11e=w-s; y11=y9h;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,slab,border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_HARD_SIGN,13.5u#+c#,cap_height#,0);
+x2r=x5-css_width; x1=x2; x8e=s; y8g=h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+x7=x1d; y1c=h; y2c=0;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=round(x3+5u-cap_stem);
+y6=y7=y2h;
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(8,cap_bar,border_height,0);
+fill T_edge8;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YERU,16u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+y3=y4=cap_bar_height; x3=round x2r; x4=x6=round (x3+5u-cap_stem) - 1;
+y4-y5=y5-y6; x5=x2r+css_width; y8b=slab; x8h=w-s;
+y6=y7=y2h; x9=x8; y9b=h-slab;
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(8,cap_stem,90,cap_jut,cap_jut);
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge9--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SOFT_SIGN,11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=x3+5u-cap_stem;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y6=y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_E,10u#+.5s#,cap_height#,0);
+x1=16/39w; x5=.5w; y1=0; y5=h;
+y7=.5h; x7=w-1/2cap_curve-s;
+x9e=s; y9=0;
+dl_drop(9,cap_drop_round,16/39w-s,1.5cap_drop_round,slab);
+y8=0.1h-c; y6=0.9h+c; x8=x9+9/16(x7-x9); x6=x5+9/16(x7-x5);
+penpos5(cap_bar,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+penpos1(cap_bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+y2=y5; x2=x5-c;
+S_serif(2,slab,x1+c,1.5border_height);
+x3=x7-1/2cap_stem; y3=y4=cap_bar_height; x4=x2b-x1;
+penpos3(cap_bar,90); penpos4(cap_bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YU,16u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+y3=y7=.5h; x7=w-1/2cap_curve-s; x3=x7-cap_o_width; y9=0; y5=h; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3cap_stem; y11=y12=cap_bar_height;
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_YA,11u#+s#,cap_height#,0);
+x1=x2=w-cap_jut-1/2cap_stem-s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2l;
+y1c=h; y2c=0; x6=x4=x7-2.5u; x3=x1c;
+y4-y5=y5-y6; x5=x8-1.5c; x9=s; y9=0; y6-y8=y8-y9; x7-x10=3(x10-x6); x10-x8=x8-x9;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos7(cap_bar,270);
+penpos6(cap_bar,270);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90); fill z9l..z9r..cycle;
+penstroke z3e--z4e{left}..tension.9..z5e..tension.9..{right}z6e--z7e;
+penstroke z9e{right}..tension1..{up}z8e{up}..tension1..{right}z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_a,.8(13u#+s#),.8cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+.8cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,.8*1.3cap_bar,theta4,.8cap_jut,.8*1.2cap_jut);
+serif(5,.8cap_stem,theta5,.8cap_jut,.8cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar(CYR_be,.8(11u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x3=x10=x1d; y3=y4=y5=h-1/2slab;
+y1c=h; y2c=0; x5e=w-s-.8*1/2cap_stem;
+y6=y7=.8cap_bar_height; x6=x2r; x7=x9=x6+3.6u-.8cap_stem;
+y7-y8=y8-y9; x8=w-.8*1/2cap_curve-s;
+y9=y10=y2h; x4=w-s-.8*1/2cap_stem-.8border_height;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penstroke z3e--z4e;
+T_serif(5,slab,.8border_height,1);
+fill T_edge5;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(.8cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ve,.8(11u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=.8cap_bar_height; x6=x2r; x7=x9=x6+.8*4.5u-.8cap_stem;
+y7-y8=y8-y9; x8=w-.8*1/2cap_curve-s; y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-.8*2/5cap_curve; y77=y7; x77=x4;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(.8cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(.8cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+sss_width := x8 - x2r; save sss_width;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar(CYR_ghe,.8(9u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; x3=x4+2u;
+y5=y3; x5e=w-s;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+T_serif(5,slab,.8border_height,1);
+fill T_edge5;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_de,.8*12u#,.8cap_height#,.8comma_depth#);
+x10e=w-s; y10c=-d; y4c=h; x4h=w-s-1/2slab; x9=x4; y9c=0;
+x3=x8=x9d; y8=y7=1/2cap_bar; y3=y2=h-y8;
+x6e=s; y6=y10; x7=.8border_height+s;
+y5=y9; x5g=s+.5u; y1=y4; x1=x5+u; x2=x1c;
+A_serif(1,cap_bar,-96,.8*10/7cap_jut,.8cap_jut);
+A_serif(5,cap_bar,81,.8*6/7cap_jut,.8cap_jut);
+serif(4,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(9,.8cap_stem,90,.8cap_jut,.8cap_jut);
+penpos2(cap_bar,90);
+penpos3(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_bar,90);
+penstroke z7e--z8e; penstroke z2e--z3e;
+fill A_serif_edge5...reverse A_serif_edge1...cycle;
+fill serif_edge9--reverse serif_edge4--cycle;
+T_serif(6,slab,.8border_height,0);
+T_serif(10,slab,.8border_height,1);
+fill T_edge6;
+fill T_edge10;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ie,.8(10u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-.7c;
+y6=y7=y8=.8cap_bar_height;x6=x1r; x7=x8=x6+.8u;
+T_serif(5,slab,.8border_height,1);
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a; penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8*.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,.8border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_ye,.8(10u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-.7c;
+y6=y7=y8=.8cap_bar_height;x6=x1r; x7=x8=x6+.8u;
+T_serif(5,slab,.8border_height,1);
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a; penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8*.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,.8border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+x12=x13=x2r; y12=h+.8*(1/4cap_stem); y13=y12+.8cap_stem;
+x14=x15=x12+.8*2cap_stem; y14=y12; y15=y13;
+fill z12..z13..cycle; fill z14..z15..cycle;
+penlabels(range 1 thru 15);
+endchar;
+
+beginchar(CYR_zhe,round .8(16u#+s#),.8cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(9,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; y7=y4=y10=y11=.8cap_bar_height; x4=x7-.8*1.5u;
+x10=x8r; x11=x10+.8*1.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+x6=s; y6=0; y4-y5=y5-y6; x4-x5=x5-x6;
+penpos7(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8cap_curve,180);
+penpos6(cap_bar,90);
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(.8cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z6e{right}..tension.8..{up}z5e{up}..tension.8..{right}z4e--z7e;
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-.8*1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,.8cap_drop_round,.8*.9cap_drop_round,.8cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+x3=x5+.8*1/2cap_stem; y2=h; x4-x3=x3-x2; y2-y3=y3-y4;
+penpos3(hair,0);
+penpos2(cap_bar,90);
+penstroke z4e{left}..tension.8..{up}z3e{up}..tension.8..{left}z2e;
+y1=h; x1a=x2; fill z6l..z6r..cycle;
+ul_drop(1,.8cap_drop_round,.8*.9cap_drop_round,.8cap_drop_round,cap_bar);
+fill ul_drop_edge1; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ze,.8(10u#+.5s#),.8cap_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=.8cap_bar_height;
+x4=x6-.8*3/2cap_stem; x5=x4-.8*3u;
+x6=w-s-.8*1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-.8*1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(.8cap_curve,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(.8cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3c,.8*1.4border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,.8cap_drop_round,18/39w-s,.8*1.5cap_drop_round,slab);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_i,.8(12u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x5=x1+.8*1/3cap_stem; x6=x4-.8*1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(4,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-20); penpos6(cap_bar,-20);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar(CYR_short_i,.8(12u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x5=x1+.8*1/3cap_stem; x6=x4-.8*1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(4,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-20); penpos6(cap_bar,-20);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+x7=.5w; y7=h+cap_bar;
+ur_drop(7,.8*cap_drop_round,1/2(x3l-x1r),.8*cap_drop_round,1.2cap_bar);
+fill ur_drop_edge7 rotatedaround(z7,180);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_ka,.8(12u#+s#),.8cap_height#,0);
+x8g=x9g=s; y8c=h; y9c=0;
+serif(8,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(9,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+y10=y11=.8cap_bar_height;
+x10=x8r; x11=x10+.8*2.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(.8cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-.8*1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,.8cap_drop_round,.8*.9cap_drop_round,.8*cap_drop_round,cap_bar);
+fill ur_drop_edge14; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_el,.8*(13u#+1/2s#),.8cap_height#,0);
+x7h=x8h=w-s; y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.7cap_drop_round; y3=.8*1.1cap_drop_round;
+dl_drop(1,.8*cap_drop_round,.8*cap_drop_round,.8*1.1cap_drop_round,slab);
+fill dl_drop_edge1;
+penpos2(cap_bar,-90);
+penpos3(cap_bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-slab;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,cap_bar,theta1,.8*1.2cap_jut,.8*1.2cap_jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(8,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_em,.8(13u#+s#),.8cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,.8jut,.8jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,.8cap_stem,-90,1/2cap_bar,.8jut);
+serif(4,.8cap_stem,90,.8jut,.8jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -111; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 109; y7l=11/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(.8cap_stem,0); penpos8(.8cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_en,.8(12u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(4,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=.8cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_o,.8(11u#+s#),.8cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(.8cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(.8cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=.8*1/2cap_curve+s; x7=w-.8*1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+8/16(x5-x3); x6=x8=x5+8/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_pe,.8(12u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(4,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_er,.8(10u#+s#),.8cap_height#,0);
+x1=x2=x3=.8cap_jut+.8*1/2cap_stem+s;
+y3=y4=.8cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+.8*3u;
+y5-y4=y6-y5; x5=w-.8*1/2cap_curve-s;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(.8cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_es,.8(10u#+s#),.8cap_height#,0);
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=.8*1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(.8cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-.7c-x1,.8*1.5border_height);
+S_serif(7,slab,w-s-x1,.8*1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_te,round .8(11u#+s#),.8cap_height#,0);
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,.8cap_stem,-90,.8*1.2cap_jut,.8*1.2cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round .8border_height,0);
+T_serif(4,cap_bar,round .8border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_u,.8(13u#+s#),.8cap_height#,0);
+x1l=s+.8cap_jut; y1l=.98h-cap_bar;
+x3r=w-s-.8*.8cap_jut; y3r=.98h-cap_bar;
+x4=33/60w; y4=6/53h;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,.8cap_stem,theta1,.8cap_jut,.8cap_jut);
+A_serif(3,.8*1.2cap_bar,theta2,.8*1.2cap_jut,.8*.8cap_jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=0; x6=x4-.8*1.2cap_stem; z7l=z2;
+penpos7(cap_bar,theta2+90);
+penpos5(cap_bar,theta2+90);
+penpos6(cap_bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,.8cap_drop_round,.8*2u, 9/53h, round cap_bar);
+fill dl_drop_edge8;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_ef,round .8(14u#+s#),.8cap_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1=x2=.5w; y2c=0; y1h=h;
+y6=y7=y8=y9=.8*1.3cap_jut; y4=y3=y11=y12=h-.8*1.3cap_jut+1/2slab;
+x3=x7=x2l; x8=x12=x2r; x4=x6=x3-.8u; x11=x9=x12+.8u;
+x5=s+.8*1/2cap_curve; x10-x1=x1-x5; y4-y5=y5-y6; y10=y5;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8cap_curve,180);
+penpos6(cap_bar,270);
+penpos7(cap_bar,270);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+penpos10(.8cap_curve,0);
+penpos11(cap_bar,90);
+penpos12(cap_bar,90);
+penstroke z3e--z4e{left}..tension.9..{down}z5e{down}..tension.9..{right}z6e--z7e;
+penstroke z8e--z9e{right}..tension.9..{up}z10e{up}..tension.9..{left}z11e--z12e;
+penlabels (range 1 thru 12);
+endchar;
+
+beginchar(CYR_ha,.8(12u#+s#),.8cap_height#,0);
+y3=y4=slab; x3=w-s-.8cap_jut-.8*1/2cap_stem; x4=s+.8cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+.8cap_jut+.8*1/2cap_stem+c; x2=w-s-.8*1.5c-.8cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,.8cap_stem,theta1-180,.8cap_jut,.8cap_jut);
+A_serif(2,.8*1.2cap_bar,theta2-180,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,theta1,.8cap_jut,.8cap_jut);
+A_serif(4,.8*1.2cap_bar,theta2,.8cap_jut,.8cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_tse,.8(12.5u#+s#),.8cap_height#,.8comma_depth#);
+x1=x2=x5=.8cap_jut+.8*1/2cap_stem+s;
+x3=x4=x6=w-x1-.8*.5u; y5=y6=y2h;
+y1c=y3c=h; y2c=y4c=0; x7e=w-s; y7=y2h;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(4,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e;
+T_serif(7,cap_bar,.8border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_che,.8(12u#+s#),.8cap_height#,0);
+x1=.8cap_jut+.8*1/2cap_stem+s;
+x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=.8cap_bar_height-1/2cap_bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-.7*2cap_bar;
+penpos6(.8cap_stem,180);
+penpos5(vair,270);
+penpos7(vair,270);
+penstroke z6e{down}...z7e..z5e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_sha,.8(16u#+s#),.8cap_height#,0);
+if .5w <> good.x .5w: change_width; fi
+x1=x2=good.x (.8cap_jut+.8*1/2cap_stem+s);
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=good.x .5w; y5=y1; y6=y2;
+y9b=slab; x9=good.x w-x1;
+x10=x9; y10b=h-slab;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(6,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(10,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_shcha,.8(16.5u#+s#),.8cap_height#,.8comma_depth#);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=slab; x9h=w-s-.8*.5u;
+x10=x9; y10b=h-slab;
+x11e=w-s; y11=y9h;
+serif(9,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(10,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(6,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,slab,.8border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_hard_sign,.8(13.5u#+c#),.8cap_height#,0);
+x2r=x5-sss_width; x1=x2; x8e=s; y8g=h;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+x7=x1d; y1c=h; y2c=0;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y3=y4=.8cap_bar_height; x3=x2r; x4=x6=round(x3+3.5u-.8cap_stem);
+y6=y7=y2h;
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(8,cap_bar,.8border_height,0);
+fill T_edge8;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_yeru,.8(16u#+c#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x7=x1d; y1c=h; y2c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+y3=y4=.8cap_bar_height; x3=round x2r; x4=x6=round (x3+3.5u-.8cap_stem) - 1;
+y4-y5=y5-y6; x5=x2r+sss_width; y8b=slab; x8h=w-s;
+y6=y7=y2h; x9=x8; y9b=h-slab;
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(8,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(9,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+fill serif_edge8--reverse serif_edge9--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_soft_sign,.8(11u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=.8cap_bar_height; x3=x2r; x4=x6=x3+3.5u-.8cap_stem;
+y4-y5=y5-y6; x5=w-.8*1/2cap_curve-s;
+y6=y7=y2h;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_e,.8(10u#+.5s#),.8cap_height#,0);
+x1=16/39w; x5=.5w; y1=0; y5=h;
+y7=.5h; x7=w-.8*1/2cap_curve-s;
+x9e=s; y9=0;
+dl_drop(9,.8cap_drop_round,16/39w-s,.8*1.5cap_drop_round,slab);
+y8=0.1h-c; y6=0.9h+c; x8=x9+9/16(x7-x9); x6=x5+9/16(x7-x5);
+penpos5(cap_bar,-90);
+penpos6(o,-150);
+penpos7(.8cap_curve,-180);
+penpos8(o,-210);
+penpos1(cap_bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+y2=y5; x2=x5-c;
+S_serif(2,slab,x1+c,.8*1.5border_height);
+x3=x7-.8*1/2cap_stem; y3=y4=.8cap_bar_height; x4=x2b-x1;
+penpos3(cap_bar,90); penpos4(cap_bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_yu,.8(16u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(.8cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(.8cap_curve,-180);
+penpos8(o,-210);
+y3=y7=.5h; x7=w-.8*1/2cap_curve-s; x3=x7-.8cap_o_width; y9=0; y5=h; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+8/16(x5-x3); x6=x8=x5+8/16(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-.8*1/3cap_stem; y11=y12=.8cap_bar_height;
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ya,.8(11u#+s#),.8cap_height#,0);
+x1=x2=w-.8cap_jut-.8*1/2cap_stem-s;
+y6=y10=y7=.8cap_bar_height; y3=y4=h-1/2slab; x7=x2l;
+y1c=h; y2c=0; x6=x4=x7-2.5u; x3=x1c;
+y4-y5=y5-y6; x5=x8-1.5c; x9=s; y9=0; y6-y8=y8-y9; x7-x10=3(x10-x6); x10-x8=x8-x9;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8cap_curve,180);
+penpos7(cap_bar,270);
+penpos6(cap_bar,270);
+penpos8(.8cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{left}..tension.9..z5e..tension.9..{right}z6e--z7e;
+penstroke z9e{right}..tension1..{up}z8e{up}..tension1..{right}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("A",13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar("B",11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,1/2cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("C",10u#+s#,cap_height#,0);
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("D",12u#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(o,30);
+penpos6(cap_curve,0);
+penpos7(o,-30);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+x3=x9=x1d;
+x8=x4=.5w; y8=y9=1/2cap_bar; y4=y3=h-1/2cap_bar;
+y6=.5h; x6=w-1/2cap_curve-s;
+y7=0.1h-c+1/2cap_bar; y5=0.9h+c-1/2cap_bar; x5=x7=x4+5/8(x6-x4)-.4c;
+penstroke z3e--z4e{right}..z5e..z6e..z7e..{left}z8e--z9e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("E",10u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("F",10u#+.5s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("G",10u#+cap_jut#+c#+s#,cap_height#,0);
+x1=x5=23/42(w-cap_jut-c); y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s-cap_jut-c; y8=y1; x8=x1-.1(w-cap_jut-c);
+S_serif(6,slab,w-s-2c-x1-cap_jut,1.5border_height);
+S_serif(7,slab,w-s-x1-cap_jut+c,7/4border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+x9r=x7e; y9r=7/4border_height-1/2cap_bar;
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+x10=x9l; x11=x9r; y10=y11=3/4cap_bar;
+fill reverse serif_edge9--z10--z11--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("H",12u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("I",2cap_jut#+cap_stem#+2s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+endchar;
+
+beginchar("J",7u#+s#,cap_height#,0);
+x1=x4=w-cap_jut-1/2cap_stem-s;
+y1c=h; y2=y3=y4=13/53h; x2=x1r; x3=x1l;
+y5=0; x5=x3-2/3cap_stem;
+serif(1,cap_stem,-90,1.2cap_jut,cap_jut);
+fill z3--z2--reverse serif_edge1--cycle;
+penpos4(cap_stem,0);
+penpos5(cap_bar,-90);
+penstroke z4e{down}..{left}z5e;
+x6e=s; y6=0;
+dl_drop(6,cap_drop_round,x5-s,1.3drop_round,cap_bar);
+fill dl_drop_edge6;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("K",13u#-c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=cap_bar_height; x3l=w-cap_jut-.5cap_jut-cap_bar-s; y3l=h-cap_bar;
+x5=x6=x1r; y5=cap_bar_height-cap_bar; y6=y5-1.2cap_bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+A_serif(3,cap_bar,theta1,1.5cap_jut,.6cap_jut);
+x4l=w-s-1.2cap_jut-cap_stem; y4l=cap_bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,cap_stem,theta2,.8cap_jut,cap_jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("L",10u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=y5=y2h; x3=x2d; x5e=w-s;
+T_serif(5,cap_bar,border_height,1); x4=x5;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penstroke z3e--z4e;
+fill T_edge5 reflectedabout(z3,z4);
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar("M",13u#,cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,1/2cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 110; y7l=11/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("N",12u#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_bar+s;
+x3=w-x1; y1c=y3c=h; y2c=y4=y5=0;
+x4=x3r; x5=x3l;
+serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+A_serif(2,cap_bar,90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill A_serif_edge2--reverse serif_edge1--cycle;
+numeric theta[]; y7=y1h; x7=x1h-1.1cap_stem;
+theta1=angle(z5-z7);
+z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+fill z6--z1h--z7--z5{down}..{up}z4--reverse A_serif_edge3--cycle;
+unfill z1b--z1l--z1a--cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("O",11u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("P",10u#+s#,cap_height#,0);
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Q",11u#+s#,cap_height#,comma_depth#);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x12-1.5c; x12=x7l-c; y11=y12=-comma_depth;
+y9=0; x9=x1-c; y9-y10=y10-y11; x11-x10=x10-x9;
+penpos9(cap_bar,90); penpos10(cap_curve,0);
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z9e{dir -20}..tension.8..z10e..tension.8..{right}z11e--z12e;
+fill z12r..z12l..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("R",11u#+s#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2r;
+y1c=h; y2c=0; x6=x4=x7+2.5u; x3=x1d;
+y4-y5=y5-y6; x5=x8; x9=w-s-1/2cap_bar; y9=0; y6-y8=y8-y9; x10=x6; x9-x8=6/7(x8-x10);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,-90);
+penpos6(cap_bar,-90);
+penpos8(cap_curve,-180);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90); fill z9l..z9r..cycle;
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penstroke z9e{left}..tension.8..{up}z8e{up}..tension.8..{left}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("S",9u#+s#,cap_height#,0);
+x6=x7=1/2w; y6=y7=0;
+S_serif(7,cap_bar,x6-s,1.5border_height);
+y5=11/53h; x5=w-s-1/2(1.9hair);
+y4=28/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2(1.9cap_bar);
+x2=.5w-c; y2=h; z1=z2;
+penpos6(cap_bar,-90);
+penpos5(1.9hair,0);
+penpos4(1.1cap_curve,90);
+penpos3(1.9hair,0);
+penpos2(cap_bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-cap_bar,1.2border_height);
+fill S_serif_edge1;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("T",round (11u#+s#),cap_height#,0);
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("U",12u#+s#,cap_height#,0);
+x1=cap_jut+1/2cap_stem+s;
+x3=w-s-cap_jut-1/2cap_bar;
+y1c=y3c=h; y2=y4=y5=y6=y24=y56=16/53h; x2=x1l;
+x4=x1r; x5=x3l; x6=x3r;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill z2--z4--reverse serif_edge1--cycle;
+fill z5--z6--reverse A_serif_edge3--cycle;
+x7=x1+.5(x3-x1); y7=0; x4-x24=x24-x2; x6-x56=x56-x5;
+penpos24(cap_stem,-180); penpos7(vair,-90);
+penpos56(cap_bar,0);
+penstroke z24e{down}..tension.9..{right}z7e{right}..tension.9..{up}z56e;
+penlabels(range 1 thru 7,24,56);
+endchar;
+
+beginchar("V",12u#,cap_height#,0);
+x1l=cap_jut+s;
+x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w-1/2cap_bar; x5=.5w+1/2cap_bar;
+y4=y5=1/2cap_bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("W",17u#,cap_height#,0);
+x9l=.5w-.3cap_stem;
+x7r=w-s-cap_jut;
+y9l=y7r=y1l=h-cap_bar; x5=x9l+.5(x7r-x9l)-1/2cap_bar; x6=x9l+.5(x7r-x9l)+1/2cap_bar;
+y5=y6=y2=y3=1/2cap_bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(7,cap_bar,theta2,1.3cap_jut,cap_jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+cap_jut;
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+z2=z1l+whatever*dir theta1; x3=x2+cap_bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("X",12u#+s#,cap_height#,0);
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("Y",12u#,cap_height#,0);
+x1l=cap_jut+s;
+x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w;
+y4=8/25h;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+y5c=0; x5=.5w+.5c;
+serif(5,cap_stem,90,cap_jut,cap_jut);
+x6=x5l; x7=x5r;
+z6=z1l+whatever*dir theta1;
+z7=z3r+whatever*dir theta2;
+fill z6--serif_edge5--z7--reverse A_serif_edge3--z2--reverse serif_edge1--z6&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Z",9u#+1.5s#,cap_height#,0);
+x6=s+1/2cap_bar; y6=y7=y8=1/2cap_bar;
+x8e=w-s; x7=x8;
+T_serif(8,cap_bar,border_height,1);
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4cap_bar;
+x4r=w-s-1/4cap_bar; y4=h-cap_bar;
+penpos4(cap_stem,0);
+penpos5(cap_stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2cap_bar;
+x3=w-s-1/2cap_bar; x1e=s+c;
+T_serif(1,cap_bar,border_height,0);
+x2=x1;
+penpos3(cap_bar,90);
+penpos2(cap_bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar("a",.8(13u#+s#),.8cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+.8cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,.8*1.3cap_bar,theta4,.8cap_jut,.8*1.2cap_jut);
+serif(5,.8cap_stem,theta5,.8cap_jut,.8cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar("b",.8(11u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=.8cap_bar_height; x6=x2r; x7=x9=x6+.8*4.5u-.8cap_stem;
+y7-y8=y8-y9; x8=w-.8*1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-.8*2/5cap_curve; y77=y7; x77=x4;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(.8cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(.8cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+sss_width := x8 - x2r; save sss_width;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("c",.8(10u#+s#),.8cap_height#,0);
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=.8*1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(.8cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-.7c-x1,.8*1.5border_height);
+S_serif(7,slab,w-s-x1,.8*1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar("d",.8*12u#,.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(o,30);
+penpos6(.8cap_curve,0);
+penpos7(o,-30);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+x3=x9=x1d;
+x8=x4=.5w; y8=y9=1/2cap_bar; y4=y3=h-1/2cap_bar;
+y6=.5h; x6=w-.8*1/2cap_curve-s;
+y7=0.1h-c+1/2cap_bar; y5=0.9h+c-1/2cap_bar; x5=x7=x4+4.5/8(x6-x4);
+penstroke z3e--z4e{right}..z5e..z6e..z7e..{left}z8e--z9e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("e",.8(10u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-.7c;
+y6=y7=y8=.8cap_bar_height;x6=x1r; x7=x8=x6+.8u;
+T_serif(5,slab,.8border_height,1);
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8*.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,.8border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("f",.8(10u#+.5s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; y5=y3; x5e=w-s;
+y6=y7=y8=.8*cap_bar_height;x6=x1r; x7=x8=x6+.8u;
+T_serif(5,slab,.8border_height,1);
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a; penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8*.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("g",.8(10u#+cap_jut#+c#+s#),.8cap_height#,0);
+x1=x5=23/42(w-.8cap_jut-c); y1=0; y5=h;
+y3=.5h; x3=.8*1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(.8cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s-.8cap_jut; y8=y1; x8=x1-.1(w-.8cap_jut-.8c);
+S_serif(6,slab,w-s-.8*2c-x1-.8cap_jut,.8*1.5border_height);
+S_serif(7,slab,w-s-x1-.8cap_jut+.8c,.8*7/4border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+x9r=x7e; y9r=.75*7/4border_height-1/2cap_bar;
+serif(9,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+x10=x9l; x11=x9r; y10=y11=3/4cap_bar;
+fill reverse serif_edge9--z10--z11--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("h",.8(12u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(4,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=.8cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("i",.8(2cap_jut#+cap_stem#+2s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+endchar;
+
+beginchar("j",.8(7u#+s#),.8cap_height#,0);
+x1=x4=w-.8cap_jut-.8*1/2cap_stem-s;
+y1c=h; y2=y3=y4=13/53h; x2=x1r; x3=x1l;
+y5=0; x5=x3-.8*2/3cap_stem;
+serif(1,.8cap_stem,-90,.8*1.2cap_jut,.8cap_jut);
+fill z3--z2--reverse serif_edge1--cycle;
+penpos4(.8cap_stem,0);
+penpos5(cap_bar,-90);
+penstroke z4e{down}..{left}z5e;
+x6e=s; y6=0;
+dl_drop(6,.8cap_drop_round,x5-s,.8*1.3drop_round,cap_bar);
+fill dl_drop_edge6;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("k",.8(13u#-c#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=.8cap_bar_height; x3l=w-.8cap_jut-.8*.5cap_jut-cap_bar-c; y3l=h-cap_bar;
+x5=x6=x1r; y5=.8cap_bar_height-cap_bar; y6=y5-cap_bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+A_serif(3,.9cap_bar,theta1,.8*1.5cap_jut,.8*.6cap_jut);
+x4l=w-s-.8*1.2cap_jut-.8cap_stem; y4l=cap_bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,.8cap_stem,theta2,.8*.8cap_jut,.8cap_jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("l",.8(10u#+c#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=y5=y2h; x3=x2d; x5e=w-s;
+T_serif(5,cap_bar,.8border_height,1); x4=x5;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penstroke z3e--z4e;
+fill T_edge5 reflectedabout(z3,z4);
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar("m",.8(13u#+s#),.8cap_height#,0);
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,.8jut,.8jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,.8cap_stem,-90,1/2cap_bar,.8jut);
+serif(4,.8cap_stem,90,.8jut,.8jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -111; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 109; y7l=11/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(.8cap_stem,0); penpos8(.8cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("n",.8*12u#,.8cap_height#,0);
+x1=x2=.8cap_jut+1/2cap_bar+s;
+x3=w-x1; y1c=y3c=h; y2c=y4=y5=0;
+x4=x3r; x5=x3l;
+serif(1,cap_bar,-90,.8cap_jut,.8*1.3cap_jut);
+A_serif(2,cap_bar,90,.8cap_jut,.8cap_jut);
+A_serif(3,cap_bar,-90,.8cap_jut,.8cap_jut);
+fill A_serif_edge2--reverse serif_edge1--cycle;
+numeric theta[]; y7=y1h; x7=x1h-.8*1.1cap_stem;
+theta1=angle(z5-z7);
+z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+fill z6--z1h--z7--z5{down}..{up}z4--reverse A_serif_edge3--cycle;
+unfill z1b--z1l--z1a--cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("o",.8(11u#+s#),.8cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(.8cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(.8cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=.8*1/2cap_curve+s; x7=w-.8*1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+8/16(x5-x3); x6=x8=x5+8/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar("p",.8(10u#+s#),.8cap_height#,0);
+x1=x2=x3=.8cap_jut+.8*1/2cap_stem+s;
+y3=y4=.8cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+.8*3u;
+y5-y4=y6-y5; x5=w-.8*1/2cap_curve-s;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(.8cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("q",.8(11u#+s#),.8cap_height#,.8comma_depth#);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(.8cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(.8cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=.8*1/2cap_curve+s; x7=w-.8*1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+8/16(x5-x3); x6=x8=x5+8/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x12-1.5c; x12=x7l-c; y11=y12=-.8comma_depth;
+y9=0; x9=x1-c; y9-y10=y10-y11; x11-x10=x10-x9;
+penpos9(cap_bar,90); penpos10(.8cap_curve,0);
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z9e{dir -20}..tension.8..z10e..tension.8..{right}z11e--z12e;
+fill z12r..z12l..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("r",.8(11u#+s#),.8cap_height#,0);
+x1=x2=.8cap_jut+.8*1/2cap_stem+s;
+y6=y10=y7=.8cap_bar_height; y3=y4=h-1/2slab; x7=x2r;
+y1c=h; y2c=0; x6=x4=x7+1.8u; x3=x1d;
+y4-y5=y5-y6; x5=x8+.5c; x9=w-s-1/3cap_bar; y9=0; y6-y8=y8-y9; x10=x6-c; x9-x8=6/7(x8-x10);
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(.8cap_curve,0);
+penpos7(cap_bar,-90);
+penpos6(cap_bar,-90);
+penpos8(.8cap_curve,-180);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penstroke z9e{left}..tension.9..{up}z8e{up}..tension.8..{left}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("s",.8(9u#+s#),.8cap_height#,0);
+x6=x7=1/2w; y6=y7=0;
+S_serif(7,cap_bar,x6-s,.8*1.5border_height);
+y5=11/53h; x5=w-s-1/2(1.9hair);
+y4=28/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2(1.9cap_bar);
+x2=.5w-c; y2=h; z1=z2;
+penpos6(cap_bar,-90);
+penpos5(.8*1.9hair,0);
+penpos4(.8*1.1cap_curve,90);
+penpos3(.8*1.9hair,0);
+penpos2(cap_bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-.5cap_bar,.8*1.2border_height);
+fill S_serif_edge1;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("t",round .8(11u#+s#),.8cap_height#,0);
+x1=x2=.5w; y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,.8cap_stem,-90,.8*1.2cap_jut,.8*1.2cap_jut);
+serif(2,.8cap_stem,90,.8cap_jut,.8cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round .8border_height,0);
+T_serif(4,cap_bar,round .8border_height,1);
+fill T_edge3; fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("u",.8(12u#+s#),.8cap_height#,0);
+x1=.8cap_jut+.8*1/2cap_stem+s;
+x3=w-s-.8cap_jut-1/2cap_bar;
+y1c=y3c=h; y2=y4=y5=y6=y24=y56=16/53h; x2=x1l;
+x4=x1r; x5=x3l; x6=x3r;
+serif(1,.8cap_stem,-90,.8cap_jut,.8cap_jut);
+A_serif(3,cap_bar,-90,.8cap_jut,.8cap_jut);
+fill z2--z4--reverse serif_edge1--cycle;
+fill z5--z6--reverse A_serif_edge3--cycle;
+x7=x1+.5(x3-x1); y7=0; x4-x24=x24-x2; x6-x56=x56-x5;
+penpos24(.8cap_stem,-180); penpos7(vair,-90);
+penpos56(cap_bar,0);
+penstroke z24e{down}..tension.9..{right}z7e{right}..tension.9..{up}z56e;
+penlabels(range 1 thru 7,24,56);
+endchar;
+
+beginchar("v",.8*12u#,.8cap_height#,0);
+x1l=.8cap_jut+s;
+x3r=w-s-.8cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w-1/2cap_bar; x5=.5w+1/2cap_bar;
+y4=y5=1/2cap_bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,.8cap_stem,theta1,.8cap_jut,.8cap_jut);
+A_serif(3,cap_bar,theta2,.8*1.3cap_jut,.8cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("w",.8*17u#,.8cap_height#,0);
+x9l=.5w-.8*.3cap_stem;
+x7r=w-s-.8cap_jut;
+y9l=y7r=y1l=h-cap_bar; x5=x9l+.5(x7r-x9l)-1/2cap_bar; x6=x9l+.5(x7r-x9l)+1/2cap_bar;
+y5=y6=y2=y3=1/2cap_bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,.8cap_stem,theta1,.8cap_jut,.8cap_jut);
+A_serif(7,cap_bar,theta2,.8*1.3cap_jut,.8cap_jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+.8cap_jut;
+serif(1,.8cap_stem,theta1,.8cap_jut,.8cap_jut);
+z2=z1l+whatever*dir theta1; x3=x2+cap_bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("x",.8(12u#+s#),.8cap_height#,0);
+y3=y4=slab; x3=w-s-.8cap_jut-.8*1/2cap_stem; x4=s+.8cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+.8cap_jut+.8*1/2cap_stem+c; x2=w-s-.8*1.5c-.8cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,.8cap_stem,theta1-180,.8cap_jut,.8cap_jut);
+A_serif(2,.8*1.2cap_bar,theta2-180,.8cap_jut,.8cap_jut);
+serif(3,.8cap_stem,theta1,.8cap_jut,.8cap_jut);
+A_serif(4,.8*1.2cap_bar,theta2,.8cap_jut,.8cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("y",.8*12u#,.8cap_height#,0);
+x1l=.8cap_jut+s; x3r=w-s-.8cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w;
+y4=8/25h;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z4-z3r);
+serif(1,.8cap_stem,theta1,.8cap_jut,.8cap_jut);
+A_serif(3,cap_bar,theta2,.8*1.3cap_jut,.8cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+y5c=0; x5=.5w+.5c;
+serif(5,.8cap_stem,90,.8cap_jut,.8cap_jut);
+x6=x5l; x7=x5r;
+z6=z1l+whatever*dir theta1;
+z7=z3r+whatever*dir theta2;
+fill z6--serif_edge5--z7--reverse A_serif_edge3--z2--reverse serif_edge1--z6&cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("z",.8(9u#+1.5s#),.8cap_height#,0);
+x6=s+1/2cap_bar; y6=y7=y8=1/2cap_bar; x8e=w-s; x7=x8;
+T_serif(8,cap_bar,.8border_height,1);
+penpos6(cap_bar,90); penpos7(cap_bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-.5c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4cap_bar;
+x4r=w-s-1/4cap_bar; y4=h-cap_bar;
+penpos4(.8cap_stem,0);
+penpos5(.8cap_stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2cap_bar;
+x3=w-s-1/2cap_bar; x1e=s+c;
+T_serif(1,cap_bar,.8border_height,0); x2=x1;
+penpos3(cap_bar,90); penpos2(cap_bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1; x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(hex"30",9u#+s#,cap_height#,0);
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.08h-c; y4=y6=0.92h+c; x2=x4=x3+9/16(x5-x3); x6=x8=x5+7/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"31",6u#+1/2c#,cap_height#,0);
+y1c=0; x1h=w-s;
+serif(1,cap_stem,90,cap_jut,cap_jut);
+x6=x1f; y5=y6=h; x5=x1; x2=x1a; y2=45/53h;
+penpos4(1.1cap_bar,theta1+45);
+penpos3(1.1cap_bar,theta1+45);
+x4l=s; y4=32/53h; numeric theta[]; theta1=angle(z5-z4l);
+z3l=z5; penstroke z3e--z4e; fill z4l..z4r..cycle;
+fill serif_edge1--z6{dir 110}..{dir 250}z5--z2--cycle;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"32",9u#,cap_height#,0);
+z4=(9/33w,14/53h); z5=(s+11/20cap_bar,0);
+z3=(w-s-.5c-7/16cap_curve,40/53h); z2=(15/33w,h);
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos4(1.1cap_bar,-45);
+penpos5(1.1cap_bar,0);
+x6=x5r; y6=y7=7/16cap_stem; y8=1/2cap_bar;
+x8e=w-s; x7=x8e;
+T_serif(8,cap_bar,3/5border_height,1);
+penpos6(7/8cap_stem,90);
+penpos7(7/8cap_stem,90);
+penstroke z6e--z7e; %fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+unfill z11{down}..z9--z10--cycle;
+penstroke z5e{up}..z4e..{up}z3e{up}..{left}z2e;
+z1=z2; ul_drop(1,cap_drop_round,15/33w-3c,1.4cap_drop_round,slab);
+fill ul_drop_edge1;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"33",9u#,cap_height#,0);
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height+c;
+x4=x6-3/2cap_stem; x5=x4-1.8u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..{down}z3e{down}..{left}z44e;
+penstroke z5e--z4e{right}..tension.9..{down}z6e{down}..tension.9..{left}z7e;
+fill z5r..z5l..cycle;
+ul_drop(1,cap_drop_round,17/39w-s,1.1cap_drop_round,slab);
+fill ul_drop_edge1;
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.3cap_drop_round,slab);
+fill dl_drop_edge8;
+penlabels(1,2,3,4,5,6,7,8,44);
+endchar;
+
+beginchar(hex"34",9u#+c#,cap_height#,0);
+y1=y2=33/53h; y4c=0; x4h=w-s;
+serif(4,7/8cap_stem,90,cap_jut,cap_jut);
+x1=x4r; x2=x1-bar;
+x3=x4l; y3=28/53h;
+numeric theta[]; theta1=angle(z2-z3);
+fill z3{dir theta1}--z2{dir theta1}..{down}z1--reverse serif_edge4--z3&cycle;
+y5=y6=15/53h; x5=x4e; x6=s+cap_bar;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e; fill z5r..z5l..cycle;
+y7=y6l; x7l=x6; z8=(6/36w, 21/53h);
+z9=(2/3w,h);
+penpos7(cap_bar,180); penpos8(cap_bar,150);
+penpos9(cap_stem,180);
+penstroke z7e{up}..z8e..{dir 70}z9e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"35",9u#,cap_height#,0);
+x7=x4=18/39w; y7=0; y5=cap_bar_height+c; y4=y5+s;
+x8e=s; y8=0; x5=x8d;
+dl_drop(8,cap_drop_round,18/39w-s,1.3cap_drop_round,slab);
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z5e..z4e{right}..tension.85..{down}z6e{down}..tension.85..{left}z7e;
+fill z5r..z5l..cycle;
+fill dl_drop_edge8;
+z3=z5; x2=x3; y2=h;
+penpos3(cap_bar,0); penpos2(cap_bar,0);
+penstroke z3e--z2e; fill z2l..tension 1.7..z2r..tension 1.7..cycle;
+y1r=h; x1=x2r; x13=x6; y13=h; 2(x12-x1)=x13-x12; y12=h-.6cap_stem;
+penpos1(7/8cap_stem,90); penpos13(1.1cap_bar,90); penpos12(3/4cap_stem,90);
+penstroke z1e..z12e..z13e; fill z13r..tension 1.7..z13l..tension 1.7..cycle;
+penlabels(1,2,3,4,5,6,7,8,12,13);
+endchar;
+
+beginchar(hex"36",9u#,cap_height#,0);
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=x9=.45w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.1h-c; y4=y6=0.9h+c; x8=x6=x7+11/32(x5-x7); x4=x10=x5+9/16(x3-x5); x2=x4-1/2c;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.1h-c; y11=y7;
+x11l=x3l; y10=y8;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e..z10e..z11e;
+z12 = z1;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+z13 = (.5w,.5h);
+currentpicture := currentpicture rotatedaround(z13,180);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"37",9u#-c#,cap_height#,0);
+x4=w-s-1/2cap_bar; y4=h-1/2cap_bar;
+penpos4(cap_bar,0);
+y3=y2=h-7/16cap_stem; y1=h-7/8cap_stem+1/2cap_bar;
+x3=x4l; x1e=s;
+T_serif(1,cap_bar,3/5border_height,0);
+x2=x1e;
+penpos3(7/8cap_stem,90);
+penpos2(7/8cap_stem,90);
+penstroke z2e--z3e;
+fill T_edge1; z44=(x4,h); fill z4r{up}..{left}z44--z3r--z4l--cycle;
+x10=s+c; x11=s; y10=y11=h;
+unfill z1d{up}..z10--z11--cycle;
+unfill z1d{up}..z10--z11--cycle;
+x5r=x3; y5=h-7/8cap_stem;
+x6=14/30w; y6=1/3cap_curve;
+penpos5(cap_bar,0); penpos6(cap_curve,0);
+penstroke z4e{dir -105}..z5e..{dir -95}z6e; fill z6l..z6r..cycle;
+penlabels(1,2,3,4,5,6,10,11,12);
+endchar;
+
+beginchar(hex"38",10u#-s#,cap_height#,0);
+x6=x4=x2=x8=1/2w; y6=0; y2=h;
+y5=11/53h; y7=13/53h; x5=w-s-1/2(1.9hair);
+y4=y8=28/53h; y3=42/53h; y1=40/53h; x3=2s+1/2(1.9cap_bar);
+x1=w-2s-1/2(1.9cap_bar); x7=w-x5;
+penpos6(cap_bar,-90);
+penpos5(2.5hair,0);
+penpos4(cap_curve,90);
+penpos3(2.5hair,0);
+penpos2(cap_bar,-90);
+penpos1(2.5hair,-180);
+penpos7(2.5hair,-180);
+penpos8(cap_bar,-270);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"39",9u#,cap_height#,0);
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=x9=.45w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.1h-c; y4=y6=0.9h+c; x8=x6=x7+11/32(x5-x7); x4=x10=x5+9/16(x3-x5); x2=x4-1/2c;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.1h-c; y11=y7;
+x11l=x3l; y10=y8;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e..z10e..z11e;
+z12 = z1;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+beginchar(oct"56",cap_stem#+2s#,cap_stem#,0);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+endchar;
+
+beginchar(oct"54",cap_stem#+2s#+c#,cap_stem#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"60",cap_stem#+2s#+c#,asc_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(oct"41", cap_stem#+2s#,cap_height#,0); "Exclamation mark";
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+ x3=.5w-1/2cap_bar; x4=.5w+1/2cap_bar; y3=y4=3/2cap_stem;
+ x6=x1; x5=x2; y5=y6=h;
+ fill z6--z3..z4--z5{up}..z6&cycle;
+endchar;
+
+beginchar(hex"22",2cap_stem#+3s#+2c#,cap_height#,0);
+ z1=(s,h-1/2cap_stem); z2=(x1+cap_stem+c,h-1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-cap_stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"5C",2cap_stem#+3s#+2c#,cap_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(x1+cap_stem+c,1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"7b",10u#-1.5c#,x_height#,0); "En dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"3D",10u#+1.5c#,x_height#,0);
+ z1=(s+1/2bar,bar_height-3c); z2=(w-s-1/2bar,bar_height-3c);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+3c); z4=(w-s-1/2bar,bar_height+3c);
+ penpos3(bar,90); penpos4(bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"23",13u#,asc_height#,body_depth#);
+ z1=(s+1/2bar,bar_height-5c); z2=(w-s-1/2bar,bar_height-5c);
+ penpos1(1.5bar,90); penpos2(1.5bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+5c); z4=(w-s-1/2bar,bar_height+5c);
+ penpos3(1.5bar,90); penpos4(1.5bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ z5=(.5w-5c,bar_height); z6=(.5w+5c,bar_height);
+ z7=z5+whatever*dir 76; y7=h; z8=whatever[z5,z7]; y8=-d;
+ penpos7(1.5bar,0); penpos8(1.5bar,0);
+ fill z7l{up}..{down}z7r--z8r{down}..{up}z8l--z7l&cycle;
+ z9=z6+whatever*dir 76; y9=h; z10=whatever[z6,z9]; y10=-d;
+ penpos9(1.5bar,0); penpos10(1.5bar,0);
+ fill z9l{up}..{down}z9r--z10r{down}..{up}z10l--z9l&cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"7c",14u#,x_height#,0); "Em dash";
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(oct"55",2cap_jut#+cap_stem#+2s#,x_height#,0); "hyphen";
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"5F",1.1stem#+2s#,x_height#+2.1stem#,0);
+ z1=(.5w,h); z2=(.5w,h-1.1stem);
+ fill z1..z2..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7E",7u#,body_height#,0);
+ pickup pencircle xscaled .6pt yscaled .2pt rotated 55;
+ z4=(w-s-c,h-s); x1=s+c; y1=y4-1/2cap_stem;
+ y2-y1=y4-y3=3(y4-y1); z2-z1=z4-z3=whatever * dir 55;
+ draw z1..controls z2 and z3..z4;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"3C",7u#-2c#,x_height#,0); "looks like <<";
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3E",7u#-2c#,x_height#,0);
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ z10=(.5w,.5h);
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ currentpicture := currentpicture rotatedaround(z10,180);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3B",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+3/2c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ z8=(s,h-1/2cap_stem); z9=(w-s,h-1/2cap_stem);
+ fill z8..z9..cycle;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(hex"3A",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ fill z1..z2..cycle;
+ penlabels(1,2,3,4);
+ z3=(s,1/2cap_stem); z4=(w-s,1/2cap_stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2B",2cap_jut#+cap_stem#+2s#,x_height#,0);
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ x3=x4=.5w; y3=y2+1/2(x2-x1); y4=y2-1/2(x2-x1);
+ penpos3(1.8bar,0); penpos4(1.8bar,0);
+ penstroke z3e--z4e;
+ fill z3r..z3l..cycle; fill z4r..z4l..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2F",2s#+bar#,body_height#,body_depth#);
+ z1=(.5w,h-.5bar); z2=(.5w,-d+.5bar);
+ %pickup pencircle xscaled bar yscaled bar;
+ penpos1(bar,0); penpos2(bar,0);
+ penstroke z1e--z2e; fill z1r..z1l..cycle;
+ fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"27",cap_stem#+2s#+c#,x_height#+2.1stem#,0);
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ z6=(.5w-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"28",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"29",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"86",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"87",5u#,body_height#,body_depth#);
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"5B",2s#+3cap_bar#,body_height#,body_depth#);
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x2,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z1r..z1l..cycle; fill z6r..z6l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"5D",2s#+3cap_bar#,body_height#,body_depth#);
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x1,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z2r..z2l..cycle; fill z5r..z5l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"B9",16u#-s#,cap_height#,0);
+ x1=x2=cap_jut+1/2cap_bar+s+cap_stem;
+ x3=w-x1-1/2cap_stem; y1c=h; y4=y5=0;
+ x4=x3r; x5=x3l; y2=12/53h; y3=h-y2;
+ x8=x2-stem; y8=0; z9=z8;
+ dl_drop(9,cap_drop_round,x8-s,1.3drop_round,cap_bar);
+ fill dl_drop_edge9; penpos8(bar,-90);
+ serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+ penpos2(bar,0); penpos3(bar,0);
+ penstroke z2e{down}..{left}z8e;
+ fill z2l--z2r--reverse serif_edge1--cycle;
+ numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+ theta1=angle(z5-z7); x10=x3+stem; y10=h; z11=z10;
+ penpos10(bar,-90); penstroke z3e{up}..{right}z10e;
+ ur_drop(11,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill ur_drop_edge11;
+ z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+ fill z6--z1h--z7--z5{down}..{up}z4--z3r--z3l--cycle;
+ unfill z1b--z1l--z1a--cycle;
+ y12=y13=2cap_bar; x12=x4+2cap_bar+s; x13=w-2s;
+ penpos12(.4stem,90); penpos13(.4stem,90);
+ penstroke z12e--z13e; y16=y11d-4cap_bar;
+ x13-x14=x14-x12; x16=x14; y14=y13+4cap_bar;
+ x17=w-s-1/4stem; x17-x16=x16-x15; y16-y15=y15-y14;
+ y17=y15; penpos17(.6stem,0); penpos16(bar,90);
+ penpos15(.6stem,180); penpos14(bar,270);
+ penstroke z17e{up}..{left}z16e{left}..{down}z15e{down}..{right}z14e{right}..{up}z17e;
+ fill z12l..tension1.2..z12r..tension1.2..cycle;
+ fill z13l..tension1.2..z13r..tension1.2..cycle;
+ penlabels(range 1 thru 17);
+endchar;
+
+beginchar(hex"24",9u#-s#,body_height#,body_height#-cap_height#);
+ x6=x7=1/2w-c; y6=y7=0;
+ dl_drop(7,cap_drop_round,x6-s,1.3cap_drop_round,cap_bar);
+ y5=10/53cap_height; x5=w-s-1/2(1.9hair);
+ y4=1/2cap_height; x4=19/38w; y3=41/53cap_height; x3=s+1/2(1.9cap_bar);
+ x2=.5w+c; y2=cap_height; z1=z2;
+ penpos6(cap_bar,-90); penpos5(1.9hair,0);
+ penpos4(1.1cap_curve,90); penpos3(1.9hair,0);
+ penpos2(cap_bar,-90);
+ penstroke z6e{right}..z5e..tension.9..z4e..tension.9..z3e..{right}z2e;
+ fill dl_drop_edge7;
+ ur_drop(1,cap_drop_round,w-s-x2,1.3cap_drop_round,cap_bar);
+ fill ur_drop_edge1;
+ z8=(.5w,h); z9=(.5w,-d);
+ penpos8(cap_bar,0); penpos9(cap_bar,0);
+ penstroke z8e--z9e;
+ fill z9r..z9l..cycle; fill z8r..z8l..cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"25",11u#,asc_height#,0);
+penpos1(vair,90); penpos2(.6curve,0);
+penpos3(vair,-90); penpos4(.6curve,-180);
+y1=.55h; y3=h; y3-y4=y4-y1; y2=y4; x2=1/4curve+s; x4=2.2curve+s;
+x4-x1=x1-x2; x3=x1;
+penstroke z1e{left}..tension.9..{up}z2e{up}..tension1.2..{right}z3e..tension.9..{down}z4e{down}..tension1.2..{left}z1e..cycle;
+penpos5(vair,90); penpos6(.6curve,0);
+penpos7(vair,-90); penpos8(.6curve,-180);
+y5=0; y7=.45h; y7-y8=y8-y5; y6=y8; x8=w-1/4curve-s; x6=w-2.2curve-s;
+x8-x5=x5-x6; x7=x5;
+penstroke z5e{left}..tension.9..{up}z6e{up}..tension1.2..{right}z7e..tension.9..{down}z8e{down}..tension1.2..{left}z5e..cycle;
+x9l=x7; y9=h; x10r=x1; y10=0;
+penpos9(1.2bar,0); penpos10(1.2bar,0);
+penstroke z9e--z10e;
+penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"26",14u#,cap_height#,0);
+x4=x8=x3+.5curve; y6=0; y2=h; x2=x3+1.3cap_curve;
+y7=13/53h; y5=9/53h; x5=x7+3.5cap_curve; x6=x7+1.8cap_curve;
+y4=y8=30/53h; y1=44/53h; y3=42/53h; x3=4s+curve;
+x1=x3+2.1cap_curve; x7=s+1/2cap_curve;
+x10=w-s; y10=9/53h; x10-x9=x9-x5; y9=1/5cap_curve;
+th:=angle(z4-z5)+5; th1:=th-11; x11h=w-s-c; y11h=y1-4s;
+A_serif(11,cap_bar,-110,cap_jut,cap_jut); z12l=z11a;
+penpos6(cap_bar,-90); penpos5(cap_stem,45);
+penpos4(cap_stem,45); penpos3(2.5hair,0);
+penpos2(cap_bar,-90); penpos1(2hair,-180);
+penpos7(cap_curve,-180); penpos8(cap_bar,-250);
+penpos9(.5cap_curve,70); penpos10(cap_bar,150);
+penpos12(cap_bar,0);
+penstroke z10e..z9e..z5e{dir th}..{dir th1}z4e..tension.9..{up}z3e{up}..tension1..z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e{dir 8}..{dir 70}z12e;
+fill z12l--z12r..reverse A_serif_edge11--cycle;
+fill z10l..tension1.3..z10r..tension1.3..cycle;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"40",14u#,x_height#+2curve#,2curve#);
+a_width:=9u+c-2s;
+x1=2s+a_width-s-3/4stem+1.5curve; y1=x_height; y2=7/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=3s+a_width+1.5curve; y4=15/33x_height;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.2vair,270); penpos4(bar,360);
+x5=x1-3/2stem; y5=x_height; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c+1.5curve; y6=.54x_height; y8=.46x_height; z8l=whatever[z1r,z2r];
+x13=x5; y13=h-1/2bar; x14=s+1/2bar; y14=y6; y15=-d+1/2bar; x15=x7;
+x16=x4; y16=-d+3bar; penpos7(vair,270); penpos16(bar,270);
+penpos13(bar,90); penpos14(bar,180); penpos15(bar,270);
+penpos8(2bar,0); penpos5(vair,90); penpos6(curve,180);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 80}z4e..z13e{left}..z14e..{right}z15e..z16e;
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=x_height-c; z10=(x1r+c,x_height); z11=(x1l-c,x_height);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+fill z16r..z16l..cycle;
+penlabels(range 1 thru 66);
+endchar;
+
+beginchar(hex"12",2cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=s+.45cap_stem*cosd 45;
+x2=w-s+cap_bar*cosd 45; z2=z1+whatever*dir -45;
+penpos1(.9cap_stem,45); penpos2(cap_bar,45);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"13",2cap_stem#+s#,body_height#,0);
+y1=h-.45cap_stem*cosd 45; x1=w-s-.45cap_stem*cosd 45;
+x2=s-cap_bar*cosd 45; z2=z1+whatever*dir -135;
+penpos1(.9cap_stem,135); penpos2(cap_bar,135);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"3F",7u#,cap_height#,0);
+ x1=s+4/5cap_stem; y1=1/2cap_stem;
+ penpos1(cap_stem,0);
+ fill z1r..z1l..cycle;
+ y2=cap_stem+cap_bar; x2=x1;
+ z3l=z2l+whatever*dir 96; y3l=25/53h;
+ penpos2(cap_bar,0); penpos3(cap_bar,0);
+ penstroke z2e--z3e;
+ z4l=z3l; penpos4(cap_bar,0);
+ y5=y4-2bar; x5=x4+3cap_bar; penpos7(cap_bar,-90);
+ x6=w-s-1/2cap_curve; y6=37/51h; x7=12/31w; y7=h;
+ penpos5(cap_bar,90); penpos6(cap_curve,180); z8=z7;
+ penstroke z4e{dir -69}..z5e{dir 10}..tension1..{up}z6e{up}..tension.9..{left}z7e;
+ ul_drop(8,.8cap_drop_round,x7-s,cap_curve,cap_bar);
+ fill ul_drop_edge8;.
+ fill z3r..tension1.2..z3l..tension1.2..cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"10",2jut#+stem#+2s#,x_height#,0);
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"11",5u#,x_height#,desc_depth#);
+x1h=w-s; y1c=x_height; y2=0; x2=x1;
+serif(1,stem,-90,1.5jut,0);
+penpos2(stem,0);
+fill z2l--z2r--reverse serif_edge1--cycle;
+y5=-1/4desc_depth; x5r=x2r;
+y6=-d+1/2bar; x6=x2l-1/2stem;
+penpos5(.97stem,0);
+penpos6(bar,-90);
+penstroke z2e--z5e{down}..{left}z6e;
+x7e=s; y7=-d+1/2bar;
+dl_drop(7,stem,x6-x7e,drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(hex"2A",3cap_stem#+3s#,body_height#,0);
+ x1=x2=x3=x4=.5w; y1=h-1/2stem; y2=y1-cap_stem; y3=y2-bar; y4=y3-bar;
+ penpos1(stem,0); penpos2(cap_bar,0); penpos3(2cap_bar,0);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle;
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,60);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,120);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,180);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,240);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,300);
+ penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"5E",6u#,body_height#,0);
+ x1=s+.45cap_bar*cosd 45; x2=w/2; y2=h-bar;
+ z1=z2+whatever*dir -135; x3=w-x1; z3=z2+whatever*dir -45;
+ penpos1(bar,135); penpos2(2bar,90); penpos3(bar,45);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"16",6u#,body_height#,0);
+ x1=s; x2=w-x1; y1=y2=h-4bar;
+ penpos1(.8bar,90); penpos2(.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"0B",round (4jut#+2stem#+2c#+3s#),asc_height#,0);
+w:=w+1;
+numeric dist; dist := 2jut+2stem-3c;
+x1g=x2g=s+dist; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x1; y3=x_height; x4r=x1l-.1stem; y4=x_height+1/2(asc_height-x_height);
+x5l=x4l-.05stem; y5=y4+1.5bar; x6=round (x1r+.2stem); y6=h-1/2bar;
+penpos3(stem,180);
+penpos4(.75curve,180);
+penpos5(.6curve,180);
+penpos6(bar,90);
+penstroke z3e{dir 95}...{up}z4e..z5e..{right}z6e;
+y6=y7; x7e=w-s;
+ur_drop(7,stem,x7e-x6,drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+x11g=x12g=s; y11c=x_height; y12c=0;
+serif(11,stem,-90,jut,jut);
+serif(12,stem,90,jut,jut);
+fill serif_edge12--reverse serif_edge11--cycle;
+x13=x11; y13=x_height; x14l=x13l; y14=x_height+1/2(asc_height-x_height);
+x15l=x14l; y15=y14+1.5bar; x16=x11r+.8stem; y16=h-1/2bar;
+x17r=x5l; y17=y5;
+penpos13(stem,180);
+penpos14(.75curve,180);
+penpos15(.6curve,180);
+penpos16(bar,90);
+penpos17(bar,0);
+penstroke z13e{dir 95}...{up}z14e..z15e..{right}z16e{right}..{down}z17e;
+fill z11d--z1c--z1b--z11e--cycle;
+penlabels(1,2,3,4,5,6,7,11,12,13,14,15,16,17);
+endchar;
+
+beginchar(hex"7F",2stem#+4s#,x_height#+2.1stem#,0);
+ z1=(s+.5stem,h); z2=(s+.5stem,h-stem);
+ fill z1..z2..cycle;
+ z3=(w-s-.5stem,h); z4=(w-s-.5stem,h-stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+ligtable CYR_A: "A":
+ CYR_O kern -k#,
+ CYR_ES kern -k#,
+ CYR_TE kern -kk#,
+ "T" kern -kk#,
+ CYR_U kern -kk#,
+ CYR_EF kern -k#,
+ CYR_CHE kern -kk#,
+ CYR_HARD_SIGN kern -k#,
+ CYR_te kern -k#,
+ "t" kern -k#,
+ CYR_u kern -kk#,
+ CYR_ef kern -k#,
+ CYR_che kern -kk#,
+ "W" kern -kkk#,
+ "V" kern -kkk#,
+ "Y" kern -kkk#,
+ "y" kern -kk#,
+ "w" kern -kk#,
+ "v" kern -kk#;
+
+ligtable CYR_GHE: CYR_TE: "T":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_DE kern -k#,
+ CYR_EL kern -kk#,
+ CYR_a kern -kk#,
+ "a" kern -kk#,
+ CYR_de kern -k#,
+ CYR_el kern -kk#,
+ CYR_o kern -k#,
+ CYR_es kern -k#;
+
+ligtable CYR_O: CYR_E: CYR_YU:
+ CYR_U kern -k#,
+ CYR_ha kern -k#,
+ "X" kern -k#,
+ CYR_HA kern -k#;
+
+ligtable CYR_ER: "P":
+ CYR_A kern -kk#,
+ CYR_a kern -kk#,
+ CYR_el kern -k#;
+
+ligtable CYR_U:
+ CYR_A kern -kkk#,
+ "A" kern -kkk#,
+ CYR_a kern -kkk#,
+ "a" kern -kkk#,
+ CYR_O kern -k#,
+ CYR_ES kern -k#,
+ CYR_EL kern -k#,
+ CYR_el kern -kk#,
+ CYR_EF kern -k#;
+
+ligtable CYR_HA: "X":
+ CYR_O kern -k#,
+ "O" kern -k#,
+ "Q" kern -k#,
+ "C" kern -k#,
+ "G" kern -k#;
+
+ligtable CYR_a: "a":
+ CYR_O kern -k#,
+ CYR_ES kern -k#,
+ CYR_TE kern -kk#,
+ CYR_U kern -kk#,
+ CYR_EF kern -k#,
+ CYR_CHE kern -kk#,
+ CYR_HARD_SIGN kern -k#,
+ CYR_o kern -k#,
+ CYR_es kern -k#,
+ CYR_te kern -kk#,
+ CYR_u kern -kk#,
+ CYR_ef kern -k#,
+ CYR_che kern -kk#,
+ CYR_hard_sign kern -k#,
+ CYR_che kern -kk#,
+ "V" kern -kk#,
+ "W" kern -kk#,
+ "T" kern -kk#,
+ "y" kern -kk#,
+ "v" kern -kk#,
+ "w" kern -kk#,
+ "t" kern -kk#,
+ "u" kern -k#,
+ "Y" kern -kk#;
+
+ligtable CYR_ghe: CYR_te: "t":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_DE kern -k#,
+ CYR_EL kern -kk#,
+ CYR_a kern -kk#,
+ "a" kern -kk#,
+ CYR_de kern -k#,
+ CYR_el kern -kk#,
+ CYR_o kern -k#,
+ CYR_es kern -k#;
+
+ligtable CYR_o: CYR_e: CYR_yu: "o": "d":
+ CYR_u kern -k#,
+ "x" kern -k#,
+ CYR_ha kern -k#,
+ "v" kern -k#,
+ "w" kern -k#,
+ "V" kern -k#,
+ "W" kern -k#;
+
+ligtable CYR_er: "p":
+ CYR_A kern -k#,
+ "A" kern -k#,
+ "a" kern -kk#,
+ CYR_a kern -kk#,
+ CYR_el kern -k#;
+
+ligtable CYR_u:
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_a kern -kkk#,
+ "a" kern -kkk#,
+ CYR_o kern -k#,
+ CYR_es kern -k#,
+ CYR_el kern -k#,
+ CYR_ef kern -k#;
+
+ligtable CYR_ha: "x":
+ "o" kern -k#,
+ CYR_o kern -k#;
+
+ligtable "D": "O": "Q":
+ "X" kern -k#;
+
+ligtable "L": "l":
+ "T" kern -kk#,
+ "Y" kern -kk#,
+ "t" kern -kk#,
+ CYR_TE kern -kk#,
+ CYR_te kern -kk#,
+ "y" kern -kk#;
+
+ligtable "V": "W":
+ "A" kern -kkk#,
+ "a" kern -kkk#,
+ CYR_A kern -kkk#,
+ CYR_a kern -kkk#;
+
+ligtable "Y":
+ CYR_A kern -kk#,
+ CYR_a kern -kk#,
+ "a" kern -kk#,
+ "A" kern -kk#;
+
+ligtable "v": "w":
+ "A" kern -kk#,
+ CYR_A kern -kk#,
+ CYR_a kern -kk#,
+ "o" kern -k#,
+ "c" kern -k#,
+ "a" kern -kk#;
+
+ligtable hex"37":
+ CYR_A kern -kk#,
+ CYR_a kern -kk#,
+ "a" kern -kk#,
+ "A" kern -kk#;
+ligtable oct"55":
+ oct"55" =: hex"7b";
+ligtable hex"7b":
+ oct"55" =: hex"7c";
+end.
diff --git a/fonts/obnov/obnsl10.mf b/fonts/obnov/obnsl10.mf
new file mode 100644
index 0000000000..12f99a0feb
--- /dev/null
+++ b/fonts/obnov/obnsl10.mf
@@ -0,0 +1,3708 @@
+%written by Basil Solomykov, Russia
+%(C) Copyright 2011 LPPL (LaTeX Project Public License)
+%Font Ordinary New (Obyknovennaya novaya), Slanted
+
+design_size := 10pt#;
+o# := .45pt#;
+u# := 19/35pt#;
+bar# := 10/36pt#;
+slab# := 10/36pt#;
+cap_bar# := 10/36pt#;
+vair# := 10/36pt#;
+hair# := 10/36pt#;
+jut# := 20/36pt#;
+cap_jut# := 26/36pt#;
+stem# := 30/36pt#;
+curve# := 31/36pt#;
+cap_stem# := 36/36pt#;
+cap_curve# := 37.2/36pt#;
+s# := 0.4pt#;
+c# := .2pt#;
+
+input obn_lcyw_code.mf;
+font_identifier "OBNSL";
+mode_setup;
+clear_pen_memory;
+
+font_size design_size*pt#;
+asc_height# := 24/36*design_size*pt#;
+cap_height# := 24/36*design_size*pt#;
+body_height# := 27/36*design_size*pt#;
+x_height# := 15.4/36*design_size*pt#;
+desc_depth# := 8/36*design_size*pt#;
+body_depth# := 9/36*design_size*pt#;
+comma_depth# := 5/36*design_size*pt#;
+x_depth# := 4/5comma_depth#;
+bar_height# := .52x_height#;
+cap_bar_height# := .52cap_height#;
+cap_bar2_height# := .45cap_height#;
+border_height# := comma_depth#;
+cap_drop_round# := 3.8*slab#;
+drop_round# := 6.6/8cap_drop_round#;
+
+bracket# := pt#;
+
+font_slant sind 16;
+font_x_height x_height#;
+font_normal_space 6u#;
+font_normal_stretch 4u#;
+font_normal_shrink 2u#;
+font_quad 13u#;
+font_extra_space 6u#;
+
+k# := .8u#;
+kk# := 1.5u#;
+kkk# := 3u#;
+
+serif_darkness := 1/30;
+define_pixels(bracket,cap_o_width,sss_width,css_width);
+define_pixels(c,s,cap_bar_height,cap_bar2_height);
+define_pixels(border_height,A_bracket,cap_drop_round,x_depth,drop_round);
+define_whole_blacker_pixels(stem,cap_stem,curve,cap_curve,bar,slab,cap_bar);
+define_whole_pixels(asc_height,cap_height,x_height,u,desc_depth,comma_depth,bar_height,body_height,body_depth,u,o,cap_jut,jut);
+define_good_x_pixels(vair);
+define_good_y_pixels(hair);
+lowres_fix(stem,curve) 1.2;
+lowres_fix(cap_stem,cap_curve) 1.2;
+if jut=cap_jut: jut:=jut-1; fi
+numeric sl_parameter;
+sl_parameter := sind 18;
+currenttransform := identity slanted sl_parameter;
+
+def serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g if left_jut=0: -1/2slab fi +1/2slab; x$d=x$e=x$h if right_jut=0: +1/2slab fi-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def serif_edge suffix $ =
+(serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse serif_bracket($f,$r,$e)) enddef;
+
+def serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...serif_darkness[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def T_serif(suffix $)(expr slab, bord_height, direction)= %Direction: 0-left, 1-right;
+penpos$(slab,if direction=1: - fi 90);
+x$=x$a=x$g; y$g-y$=y$-y$a=1/2slab;
+x$b=x$a + if direction=0: - fi .882bord_height; y$b=y$d=y$c+1/2slab;
+x$c=x$b + if direction=0: - fi 1/2slab; y$c=y$a-bord_height;
+x$d=x$e=x$b + if direction=0: - fi slab;
+y$e=y$g-1/2slab; y$f=y$g; x$f=x$c;
+labels($a,$b,$c,$d,$e,$f,$g) enddef;
+
+def T_edge suffix $ =
+(z$a..{down}z$b..z$c..z$d--z$e{up}..z$f--z$g--cycle) enddef;
+
+def A_serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g+1/2slab; x$d=x$e=x$h-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def A_serif_edge suffix $ =
+(A_serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse A_serif_bracket($f,$r,$e)) enddef;
+
+def A_serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...0.6[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def ur_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a= 1/2slab;
+x$e=x$a + drop_length; y$e=y$f- drop_height;
+x$d=x$e - 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e - drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d - 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ur_drop_edge suffix $ =
+(z$f{right}..tension.9..{down}z$e{down}..{left}z$d{left}..{up}z$c{up}..z$b...{left}z$a--cycle) enddef;
+
+def ul_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$f- drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d + 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ul_drop_edge suffix $ =
+(z$f{left}..tension.9..{down}z$e{down}..{right}z$d{right}..{up}z$c{up}..z$b...{right}z$a--cycle) enddef;
+
+def dl_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, -90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$a + drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e + 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d - drop_round); x$b=x$d + 1/90drop_round;
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def dl_drop_edge suffix $ =
+(z$a{left}..tension.9..{up}z$e{up}..{right}z$d{right}..{down}z$c..{dir 250}z$b{dir -80}..{right}z$f--cycle) enddef;
+
+def S_serif (suffix $)(expr serif_slab, serif_length, serif_height)=
+%penpos$(serif_slab,90);
+x$a=x$i=x$; y$i=y$+1/2serif_slab; y$a=y$-1/2serif_slab;
+x$f=x$e=x$a+serif_length; y$f=y$g-1/2serif_slab; y$e=y$c=y$d+1/2serif_slab;
+x$g=x$f-1/2serif_slab; y$g=y$i-1/2serif_slab;
+y$h=y$f-1/4serif_slab; x$h=x$g-serif_slab;
+x$c=x$e-serif_slab; x$d=x$e-1/2serif_slab; y$d=y$g-serif_height;
+x$b=x$h-6/18serif_length; y$b=y$h-1/2slab;
+labels ($a,$b,$c,$d,$e,$f,$g,$h,$i) enddef;
+
+def S_serif_edge suffix $ =
+(z$a{right}...z$b..{dir -80}z$c..z$d..z$e--z$f{up}..z$g{left}..z$h{dir 150}..{left}z$i--cycle) enddef;
+
+beginchar(CYR_A,13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4b]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar(CYR_BE,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.7u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=y5=h-1/2slab;
+y1c=h; y2c=0; x5e=w-s-1/2cap_stem;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h; x4=w-s-1/2cap_stem-border_height;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_VE,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.2u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+css_width := x8 - x2r; save css_width;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar(CYR_GHE,9u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.77u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; x3=x4+2u;
+y5=y3; x5e=w-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_DE,12u#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-1.03u#;
+x10e=w-s; y10c=-d;
+y4c=h; x4h=w-s-1/2slab;
+x9=x4; y9c=0;
+x3=x8=x9d; y8=y7=1/2cap_bar; y3=y2=h-y8;
+x6e=s; y6=y10; x7=border_height+s;
+y5=y9; x5g=s+.5u; y1=y4; x1=x5+1.5u;
+x2=x1c;
+A_serif(1,1.2cap_bar,-96,10/7cap_jut,cap_jut);
+A_serif(5,1.2cap_bar,81,6/7cap_jut,cap_jut);
+serif(4,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+penpos2(cap_bar,90);
+penpos3(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_bar,90);
+penstroke z7e--z8e; penstroke z2e--z3e;
+fill A_serif_edge5...reverse A_serif_edge1...cycle;
+fill serif_edge9--reverse serif_edge4--cycle;
+T_serif(6,slab,border_height,0);
+T_serif(10,slab,border_height,1);
+fill T_edge6;
+fill T_edge10;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_IE,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.2u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_YE,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.2u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+x12=x13=x2r; y12=h+1/4cap_stem; y13=y12+cap_stem;
+x14=x15=x12+2cap_stem; y14=y12; y15=y13;
+fill z12..z13..cycle; fill z14..z15..cycle;
+penlabels(range 1 thru 15);
+endchar;
+
+beginchar(CYR_ZHE,round (16u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-1.1u#;
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; y7=y4=y10=y11=cap_bar_height; x4=x7-1.5u;
+x10=x8r; x11=x10+1.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+x6=s; y6=0; y4-y5=y5-y6; x4-x5=x5-x6;
+penpos7(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,90);
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z6e{right}..tension.8..{up}z5e{up}..tension.8..{right}z4e--z7e;
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+x3=x5+1/2cap_stem; y2=h; x4-x3=x3-x2; y2-y3=y3-y4;
+penpos3(hair,0);
+penpos2(cap_bar,90);
+penstroke z4e{left}..tension.8..{up}z3e{up}..tension.8..{left}z2e;
+y1=h; x1a=x2; fill z6l..z6r..cycle;
+ul_drop(1,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ul_drop_edge1; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ZE,10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.1u#;
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height;
+x4=x6-3/2cap_stem; x5=x4-3u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3c,1.4border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.5cap_drop_round,slab);
+fill dl_drop_edge8;
+%currentpicture := currentpicture shifted(-.8u,0);
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_I,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.8u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-30); penpos6(cap_bar,-30);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar(CYR_SHORT_I,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.8u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-30); penpos6(cap_bar,-30);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+x7=.5w; y7=h+cap_bar;
+ur_drop(7,.8cap_drop_round,1/2(x3l-x1r),.8cap_drop_round,1.2cap_bar);
+fill ur_drop_edge7 rotatedaround(z7,180) shifted(.1c,0);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_KA,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.15u#;
+x8g=x9g=s; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+y10=y11=cap_bar_height;
+x10=x8r; x11=x10+2.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13; fill z16l..z16r..cycle;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_EL,13u#+1/2s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+cap_drop_round; y3=1.1cap_drop_round;
+dl_drop(1,1.1cap_drop_round,1.1cap_drop_round,1.2cap_drop_round,slab);
+fill dl_drop_edge1;
+penpos2(cap_bar,-90);
+penpos3(cap_bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-slab;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,cap_bar,theta1,1.3cap_jut,1.3cap_jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,cap_stem,-90,cap_jut,cap_jut);
+serif(8,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z5e--z6e;
+%currentpicture := currentpicture shifted(-.6u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_EM,13u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,1/2cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 110; y7l=11/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EN,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_O,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.2u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+cap_o_width := x7-x3; save cap_o_width;
+%currentpicture := currentpicture shifted(-1.6u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_PE,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ER,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.55u#;
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_ES,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.15u#;
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+%currentpicture := currentpicture shifted(-1.5u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_TE,round (11u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+%currentpicture := currentpicture shifted(-2.5u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_U,13u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1l=s+cap_jut; y1l=.98h-cap_bar;
+x3r=w-s-.8cap_jut; y3r=.98h-cap_bar;
+x4=33/60w; y4=6/53h;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,1.2cap_bar,theta2,1.2cap_jut,.8cap_jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=0; x6=x4-1.2cap_stem; z7l=z2;
+penpos7(1.2cap_bar,theta2+90);
+penpos5(1.2cap_bar,theta2+90);
+penpos6(1.2cap_bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,cap_drop_round,2u, 10/53h, round 1.2cap_bar);
+fill dl_drop_edge8;
+%currentpicture := currentpicture shifted(-2.9u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EF,round (14u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-2.2u#;
+if .5w = good.x .5w: change_width; fi
+x1=x2=.5w; y2c=0; y1h=h;
+y6=y7=y8=y9=1.3cap_jut; y4=y3=y11=y12=h-1.3cap_jut+1/2slab;
+x3=x7=x2l; x8=x12=x2r; x4=x6=x3-u; x11=x9=x12+u;
+x5=s+1/2cap_curve; x10-x1=x1-x5; y4-y5=y5-y6; y10=y5;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,270);
+penpos7(cap_bar,270);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+penpos10(cap_curve,0);
+penpos11(cap_bar,90);
+penpos12(cap_bar,90);
+penstroke z3e--z4e{left}..tension.8..{down}z5e{down}..tension.8..{right}z6e--z7e;
+penstroke z8e--z9e{right}..tension.8..{up}z10e{up}..tension.8..{left}z11e--z12e;
+%currentpicture := currentpicture shifted(-1.6u,0);
+penlabels (range 1 thru 12);
+endchar;
+
+beginchar(CYR_HA,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.25u#;
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_TSE,12.5u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-1.3u#;
+x1=x2=x5=cap_jut+1/2cap_stem+s;
+x3=x4=x6=w-x1-.5u; y5=y6=y2h;
+y1c=y3c=h; y2c=y4c=0; x7e=w-s; y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e;
+T_serif(7,cap_bar,border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_CHE,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.82u#;
+x1=cap_jut+1/2cap_stem+s; x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,-90,cap_jut,cap_jut);
+serif(3,cap_stem,90,cap_jut,cap_jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=cap_bar_height-1/2cap_bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-1.5cap_bar;
+penpos6(cap_stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+%currentpicture := currentpicture shifted(-3.3u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SHA,16u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.82u#;
+if .5w <> good.x .5w: change_width; fi
+x1=x2=good.x (cap_jut+1/2cap_stem+s);
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=good.x .5w; y5=y1; y6=y2;
+y9b=slab; x9=good.x w-x1;
+x10=x9; y10b=h-slab;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_SHCHA,16.5u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-1.3u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=slab; x9h=w-s-.5u;
+x10=x9; y10b=h-slab;
+x11e=w-s; y11=y9h;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,slab,border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_HARD_SIGN,13.5u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-3.25u#;
+x2r=x5-css_width; x1=x2; x8e=0; y8g=h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+x7=x1d; y1c=h; y2c=0;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=round(x3+5u-cap_stem);
+y6=y7=y2h;
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(8,cap_bar,border_height,0);
+fill T_edge8;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+%currentpicture := currentpicture shifted(-1.3u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YERU,16u#+c#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+y3=y4=cap_bar_height; x3=round x2r; x4=x6=round (x3+5u-cap_stem) - 1;
+y4-y5=y5-y6; x5=x2r+css_width; y8b=slab; x8h=w-s;
+y6=y7=y2h; x9=x8; y9b=h-slab;
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(8,cap_stem,90,cap_jut,cap_jut);
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge9--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SOFT_SIGN,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-3.25u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=x3+5u-cap_stem;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y6=y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_E,10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.1u#;
+x1=16/39w; x5=.5w; y1=0; y5=h;
+y7=.5h; x7=w-1/2cap_curve-s;
+x9e=s; y9=0;
+dl_drop(9,cap_drop_round,16/39w-s,1.7cap_drop_round,slab);
+y8=0.1h-c; y6=0.9h+c; x8=x9+9/16(x7-x9); x6=x5+9/16(x7-x5);
+penpos5(cap_bar,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+penpos1(cap_bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+y2=y5; x2=x5-c;
+S_serif(2,slab,x1+c,1.5border_height);
+x3=x7-1/2cap_stem; y3=y4=cap_bar_height; x4=x2b-x1;
+penpos3(cap_bar,90); penpos4(cap_bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+%currentpicture := currentpicture shifted(-.7u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YU,16u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.2u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+y3=y7=.5h; x7=w-1/2cap_curve-s; x3=x7-cap_o_width; y9=0; y5=h; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3cap_stem; y11=y12=cap_bar_height;
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_YA,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=x2=w-cap_jut-1/2cap_stem-s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2l;
+y1c=h; y2c=0; x6=x4=x7-2.5u; x3=x1c;
+y4-y5=y5-y6; x5=x8-1.5c; x9=s; y9=0; y6-y8=y8-y9; x7-x10=3(x10-x6); x10-x8=x8-x9;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos7(cap_bar,270);
+penpos6(cap_bar,270);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90); fill z9l..z9r..cycle;
+penstroke z3e--z4e{left}..tension.9..z5e..tension.9..{right}z6e--z7e;
+penstroke z9e{right}..tension1..{up}z8e{up}..tension1..{right}z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_a,9u#-s#+2/7stem#,x_height#,0);
+x5=w-s-1/2bar; y5=0; y4=6/7stem; x4=x3=x5-5/7stem-1/2stem;
+y3=bar_height+2bar; y2=y1=h; x2=s+c+6/20w; x1e=s+c;
+ul_drop(1,drop_round,x2-s-c,5/4drop_round,bar);
+fill ul_drop_edge1;
+penpos2(bar,90);
+penpos3(stem,0);
+penpos4(stem,0);
+penpos5(bar,90);
+penstroke z2e{right}..{down}z3e--z4e{down}..{right}z5e;
+fill z5r..z5l..cycle;
+y6=bar_height+1/2bar; x6=x3+1/2stem; x7=s+1/2stem; y7=7/17bar_height;
+y8=0; x9=x4-1/2stem+1/2bar; x9-x8=x8-x7; y9=y4+3/2bar; x66=x8; y66=y6-c;
+numeric theta[]; theta1=angle(z66-z6);
+penpos6(vair,90);
+penpos66(vair,90);
+penpos7(curve,180);
+penpos8(vair,270);
+penpos9(bar,360);
+penstroke z6e{left}..z66e{dir theta1}..tension.8..{down}z7e{down}..tension.8..z8e{right}..{up}z9e;
+%currentpicture := currentpicture shifted(-.4u,0);
+penlabels(range 1 thru 9,66);
+endchar;
+
+beginchar(CYR_be,8u#,asc_height#,0);
+italcorr asc_height#*sind 18-.75u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2stem+s; x7=w-1/2stem-s;
+y2=y8=0.1x_height; y4=y6=0.9x_height; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+y9=y3; x9=s+1/2bar; y10=44/51h; x10=x5+c; x11=w-s-1/2bar; y11=h-1/2bar; %x11=w-1/2bar*sind 45; y11=h-1/2bar*sind 45;
+penpos9(hair,180);
+penpos10(curve,90);
+penpos11(hair,180);
+penstroke z9e{up}..{right}z10e{right}..tension1..z11e;
+fill z11r..tension2..z11l..tension2..cycle;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_ve,9u#-s#,x_height#,0);
+italcorr x_height#*sind 18-1.6u#;
+x1=x2=jut+1/2stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x9=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h; y8=y9=h-1/2bar; x8=x1d;
+y9-y10=y10-y4; x10=x5-c;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penpos8(bar,270);
+penpos9(bar,270);
+penpos10(curve,180);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penstroke z8e--z9e{right}..tension.8..z10e..tension.8..{left}z4e;
+sss_width := x5 - x2r; save sss_width;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ghe,7u#,x_height#,0);
+italcorr x_height#*sind 18-.8u#;
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; y3=y4=y5=h-1/2bar; x3=x1d; x5e=w-s;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+T_serif(5,bar,4/5border_height,1);
+x4=x5;
+fill serif_edge2--reverse serif_edge1--cycle;
+fill T_edge5;
+penpos3(bar,90);
+penpos4(bar,90);
+penstroke z3e--z4e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_de,9u#,x_height#,x_depth#);
+italcorr x_height#*sind 18-.9u#;
+x3=x4=w-jut-1/2stem-s-.1u;
+y3c=h; y4c=0;
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+x7e=s; x10e=w-s; y7=y8=y9=y10=y4h; x8=x7; x9=x4c;
+T_serif(7,bar,4/5border_height,0);
+T_serif(10,bar,4/5border_height,1);
+fill T_edge7; fill T_edge10;
+penpos8(bar,90); penpos9(bar,90);
+penstroke z8e--z9e;
+x2=s+1.3jut+1/2bar; y2=bar; x1=x2+3/2bar; y1=h-bar;
+numeric theta[]; theta1=angle(z1-z2);
+A_serif(1,bar,theta1-180,1.3jut,jut);
+A_serif(2,bar,theta1,1.3jut,.8jut);
+fill A_serif_edge2..reverse A_serif_edge1..cycle;
+y5=y6=y3h; x5=x1d; x6=x3c;
+penpos5(bar,90);
+penpos6(bar,90);
+penstroke z5e--z6e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ie,8u#,x_height#,0);
+italcorr x_height#*sind 18-1.65u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x5+5/8(x7-x5);
+x10=w-s-1/2bar; y10=y7-5/4stem;
+penstroke z10e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+%currentpicture := currentpicture shifted(-1.1u,0);
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ye,8u#,asc_height#,0);
+italcorr asc_height#*sind 18-2.05u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=x5=.5w; y1=0; y5=x_height;
+y3=.5x_height; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.1x_height; y4=y6=0.9x_height; x2=x4=x3+3/8(x5-x3); x6=x5+5/8(x7-x5);
+x10=w-s-1/2bar; y10=y7-5/4stem;
+penstroke z10e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+y12=y14=h; y11=y13=h-stem; x11=x12=x3r+c; x13=x14=x7r-c;
+fill z11..z12..cycle; fill z13..z14..cycle;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 14);
+endchar;
+
+beginchar(CYR_zhe,round (13u#+s#),x_height#,0);
+italcorr x_height#*sind 18-1.3u#;
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,stem,-90,jut,jut);
+serif(9,stem,90,jut,jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; x4=x7-u; y4=y7=y10=y11=bar_height; x10=x8r; x11=x10+u;
+x6=s+1/2bar; y6=y16=0; y4-y5=y5-y6; x4-x5=1.3(x5-x6);
+x16=w-s-1/2bar; 1.3(x16-x15)=x15-x11; y11-y15=y15-y16;
+x2=x5-c; y2=y1=h; x4-x3=x3-x2; y2-y3=y3-y4; x1e=s+c;
+y13=y14=h; x13=x15+c; x13-x12=x12-x11; y13-y12=y12-y11; x14e=w-s-c;
+penpos2(bar,90);
+penpos3(hair,0);
+penpos4(bar,90);
+penpos5(curve,180);
+penpos6(bar,90);
+penpos7(bar,90);
+penpos10(bar,90);
+penpos11(bar,90);
+penpos12(hair,180);
+penpos13(bar,90);
+penpos15(curve,0);
+penpos16(bar,90);
+penstroke z7e--z4e{left}..tension.9..{down}z5e{down}..tension.9..{left}z6e;
+fill z6r..z6l..cycle;
+penstroke z10e--z11e{right}..tension.9..{down}z15e{down}..tension.9..{right}z16e;
+fill z16r..z16l..cycle;
+penstroke z4e{left}..z3e..{left}z2e;
+penstroke z11e{right}..z12e..{right}z13e;
+ul_drop(1,7/8stem,x2-s-c,3/4drop_round,bar);
+ur_drop(14,7/8stem,x2-s-c,3/4drop_round,bar);
+fill ul_drop_edge1; fill z1e..z1c..cycle;
+fill ur_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ze,6u#+2s#,x_height#,0);
+italcorr x_height#*sind 18-1.45u#;
+x7=18/39w; y7=0; y4=y5=y44=bar_height;
+x4=x6-3/2stem; x5=x4-u;
+x6=w-s-1/2curve; y4-y6=y6-y7;
+x2=.45w; y2=h; x3=x6-1/5curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(bar,90);
+penpos3(curve,0);
+penpos44(bar,-90);
+penpos4(bar,90);
+penpos5(bar,90);
+penpos6(curve,0);
+penpos7(bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3.5c,border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,drop_round,18/39w-s,1.5drop_round,bar);
+fill dl_drop_edge8;
+%currentpicture := currentpicture shifted(-.7u,0);
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_i,9u#+s#,x_height#,0);
+italcorr x_height#*sind 18-.8u#;
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r-1/2bar; x6=x3l+1/2bar;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,-30); penpos6(bar,-30);
+y5=.1h; y6=.9h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_short_i,9u#+s#,asc_height#,0);
+italcorr x_height#*sind 18-.8u#;
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r-1/2bar; x6=x3l+1/2bar;
+y1c=y3c=x_height; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,-30); penpos6(bar,-30);
+y5=.1x_height; y6=.9x_height; penstroke z5e--z6e;
+x7=.5w; y7=h-3/2drop_round;
+ur_drop(7,drop_round,x3-.5w,1.1drop_round,1.2bar);
+fill ur_drop_edge7 rotatedaround(z7,180);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ka,9u#+.5s#,x_height#,0);
+italcorr x_height#*sind 18-1.3u#;
+x1g=x2g=s; y1c=h; y2c=y9=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=bar_height; x3=x1r; x4=x3+1.25u;
+x9=w-s-1/2bar; 1.3(x9-x8)=x8-x4; y4-y8=y8-y9;
+y6=y7=h; x6=x8+c; x6-x5=x5-x4; y6-y5=y5-y4; x7e=w-s-c;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(hair,180);
+penpos6(bar,90);
+penpos8(curve,0);
+penpos9(bar,90);
+penstroke z3e--z4e{right}..tension.9..{down}z8e{down}..tension.9..{right}z9e;
+fill z9r..z9l..cycle;
+penstroke z4e{right}..z5e..{right}z6e;
+ur_drop(7,7/8stem,w-x6-s-c,3/4drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_el,9u#+s#,x_height#,0);
+italcorr x_height#*sind 18-.75u#;
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.7drop_round; y3=1.1drop_round;
+dl_drop(1,drop_round,drop_round,drop_round,bar);
+fill dl_drop_edge1;
+fill z1c..z1e..cycle;
+penpos2(bar,-90);
+penpos3(bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-bar;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,bar,theta1,1.4jut,1.3jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,stem,-90,jut,jut);
+serif(8,stem,90,jut,jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(bar,90); penpos6(bar,90);
+penstroke z5e--z6e;
+%currentpicture := currentpicture shifted(-.5u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_em,10u#+s#,x_height#,0);
+italcorr x_height#*sind 18-.8u#;
+x1g=s; y1c=0; y2=h-bar;
+A_serif(1,bar,90,jut,jut);
+x2=x1; serif(2,bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2bar; y4c=0;
+serif(3,stem,-90,1/2bar, jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -109; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 108; y7l=7/28h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(stem,0); penpos8(stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_en,9u#+s#,x_height#,0);
+italcorr x_height#*sind 18-.8u#;
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_o,8u#+s#,x_height#,0);
+italcorr x_height#*sind 18-1.65u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2curve-s;
+y2=y8=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+%currentpicture := currentpicture shifted(-1.15u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_pe,9u#+s#,x_height#,0);
+italcorr x_height#*sind 18-.8u#;
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_er,8u#+jut#,x_height#,desc_depth#);
+italcorr x_height#*sind 18-1.6u#;
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+.2s+.6(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=y8=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=-desc_depth;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_es,8u#,x_height#,0);
+italcorr x_height#*sind 18-1.65u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=1/2curve+s;
+y2=0.1h; y4=0.9h; x2=x4=x3+3/8(x5-x3);
+x6=w-s-1/2hair; y6=y3-4/5stem;
+penstroke z6e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e;
+fill z6r..z6l..cycle;
+z7=z5;
+ur_drop(7,drop_round,7/8(x6l-x1),3/2drop_round,bar);
+fill ur_drop_edge7;
+%currentpicture := currentpicture shifted(-1.15u,0);
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(CYR_te,round (8u#-.5s#),x_height#,0);
+italcorr x_height#*sind 18-.75u#;
+if .5w = good.x .5w: change_width; fi
+x2=x3=.5w; x1e=s; x4e=w-s; y1=y4=y2h;
+y2c=h; y3c=0;
+serif(2,stem,-90,jut,jut);
+serif(3,stem,90,jut,jut);
+T_serif(1,bar,4/5border_height,0);
+T_serif(4,bar,4/5border_height,1);
+fill serif_edge3--reverse serif_edge2--cycle;
+fill T_edge1; fill T_edge4;
+%currentpicture := currentpicture shifted(-1.4u,0);
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_u,9u#+s#,x_height#,desc_depth#);
+italcorr x_height#*sind 18-.75u#;
+x1l=s+jut; y1l=h-bar;
+x3r=w-s-.8jut; y3r=h-bar;
+x4=33/60w; y4=-2/5d;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,1.2bar,theta2,1.2jut,.8jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=-d+bar; x6=x4-1.5stem; z7l=z2;
+penpos7(1.2bar,theta2+90);
+penpos5(1.2bar,theta2+90);
+penpos6(1.2bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,1.1stem,1.3u,drop_round,1.2bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(CYR_ef,12u#,asc_height#,desc_depth#);
+italcorr x_height#*sind 18-1.65u#;
+if .5w = good.x .5w: change_width; fi
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w+.5(.5w-s); y1=0; y5=x_height;
+y3=y7=y12=.5x_height; x3=.5w; x7=w-1/2curve-s;
+y2=y8=y9=y11=0.1x_height; y4=y6=y13=y15=0.9x_height;
+x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+z16=z3; x14=x10=.5w-.5(.5w-s); y10=0; y14=x_height;
+x12=s+1/2curve; x9=x15=x16-3/8(x16-x14); x11=x13=x14-5/8(x14-x12);
+penpos10(vair,90);
+penpos11(o,30);
+penpos12(curve,0);
+penpos13(o,-30);
+penpos14(vair,-90);
+penpos15(.7o,-150);
+penpos16(stem,-180);
+penpos9(.7o,-210);
+penstroke z10e..z11e..z12e..z13e..z14e..z15e..z16e..z9e..cycle;
+x99=x155=x3l; x44=x222=x3r; y99=y222=.5x_height-3/2stem; y155=y44=.5x_height+3/2stem;
+unfill z99--z155--z44--z222--cycle; penlabels(44,99,155,222);
+x20=.5w; y20=-.75d; x17=x30=x3l; x23=x24=x3r; y17=y23=-1/2d;
+x18=x19=x17-4/5stem; x21=x22=x23+4/5stem; y18=y22=-d+bar; y19=y21=-d;
+y24=y30=x_height+3/5(asc_height-x_height);x25=x22-c; x29=x18+c; y29=y25=h-1/2bar;
+y28=y26=h; x28=x29+1/2bar; x26=x25-1/2bar; x27=.5w; y27=h-bar;
+fill z30---z17{dir -100}..tension2..z18{left}..{right}z19{right}..{dir 20}z20{dir -20}..{right}z21{right}..{left}z22..tension2..{dir 100}z23---z24{dir 80}..{dir 20}z25{dir 160}..{left}z26{left}..{dir -160}z27{dir 160}..{left}z28{left}..{dir -160}z29{dir -20}..{dir -80}z30&cycle;
+%currentpicture := currentpicture shifted(-1.15u,0);
+penlabels (range 1 thru 30);
+endchar;
+
+beginchar(CYR_ha,9u#+c#,x_height#,0);
+italcorr x_height#*sind 18-1.15u#;
+y3=y4=bar; x3=w-s-jut-1/2stem; x4=s+jut+1/2bar;
+y1=y2=h-bar; x1=s+jut+1/2stem+c; x2=w-s-1.25c-jut-1/2bar;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,stem,theta1-180,jut,jut);
+A_serif(2,1.2bar,theta2-180,jut,jut);
+serif(3,stem,theta1,jut,jut);
+A_serif(4,1.2bar,theta2,jut,1.3jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_tse,9.1u#+s#,x_height#,x_depth#);
+italcorr x_height#*sind 18-.9u#;
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1-.1u; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=y2h; penstroke z5e--z6e;
+x7e=w-s; y7=y4h;
+T_serif(7,bar,4/5border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_che,9u#+s#,x_height#,0);
+italcorr x_height#*sind 18-.8u#;
+x1=jut+1/2stem+s; x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,-90,jut,jut);
+serif(3,stem,90,jut,jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=bar_height-1/2bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-.8bar;
+penpos6(stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+%currentpicture := currentpicture shifted(-2.3u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_sha,round (13u#+3/2s#),x_height#,0);
+italcorr x_height#*sind 18-.8u#;
+if .5w = good.x .5w: change_width; fi
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=.5w; y5=y1; y6=y2;
+y9b=bar; x9h=w-s;
+x10=x9; y10b=h-bar;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,stem,-90,jut,jut);
+serif(6,stem,90,jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,stem,90,jut,jut);
+serif(10,stem,-90,jut,jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos7(bar,90);
+penpos8(bar,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_shcha,13.1u#+3/2s#,x_height#,x_depth#);
+italcorr x_height#*sind 18-.9u#;
+if .5w <> good.x .5w: change_width; fi
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=bar; x9h=w-s-.1u;
+x10=x9; y10b=h-bar;
+x11e=w-s; y11=y9h;
+serif(9,stem,90,jut,jut);
+serif(10,stem,-90,jut,jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,stem,-90,jut,jut);
+serif(6,stem,90,jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos7(bar,90);
+penpos8(bar,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,bar,4/5border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_hard_sign,10u#-s#,x_height#,0);
+x2r=x5-sss_width; x1=x2;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h; x8e=0; y8g=h;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+T_serif(8,bar,4/5border_height,0);
+fill T_edge8;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+x9=c; y9=y10=h; x10=-.2c;
+unfill z8d{up}..z9--z10--cycle;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_yeru,12u#-c#,x_height#,0);
+italcorr x_height#*sind 18-.8u#;
+x1=x2=jut+1/2stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=x2r+sss_width;
+y6=y7=y2h; x8h=x9h=w-s; y8c=h; y9c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(8,stem,-90,jut,jut);
+serif(9,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge9--reverse serif_edge8--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_soft_sign,9u#-s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_e,6u#+2s#,x_height#,0);
+italcorr x_height#*sind 18-1.5u#;
+x1=16/39w; x5=.5w-c; y1=0; y5=h;
+y7=.5h; x7=w-1/2curve-s;
+x9e=s; y9=0;
+dl_drop(9,drop_round,18/39w-s,1.5drop_round,bar);
+y2=y5; x2=x5;
+S_serif(2,bar,x5-s-c,border_height);
+x3=x7-1/2stem; y3=y4=bar_height; x4=x9c-c;
+penpos3(bar,90); penpos4(bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+y8=0.1h-c; y6=0.9h+c; x8=x1+5/8(x7-x9)+.1c; x6=x2+5/8(x7-x5);
+penpos5(bar,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+penpos1(bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+%currentpicture := currentpicture shifted(-.6u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_yu,12u#+.5s#,x_height#,0);
+italcorr x_height#*sind 18-1.7u#;
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x3l=x1h+.3bar; y9=0; y5=h;
+y3=y7=.5h; x7=w-1/2curve-s; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+c+3/8(x5-x3); x6=x8=x5-c+5/8(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3stem; y11=y12=bar_height;
+penpos11(bar,90); penpos12(bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ya,8u#+s#+1/2bar#,x_height#,0);
+italcorr x_height#*sind 18-.8u#;
+x1=x2=w-jut-1/2stem-s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2l; x4=x6=x3-2.5u+stem;
+y5-y4=y6-y5; x5=1/2stem+2s;
+y6=y7=y1h; x9=s; y9=0; x4-x8=x8-x9; y4-y8=y8-y9;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,-90);
+penpos4(bar,-90);
+penpos5(curve,180);
+penpos6(bar,90);
+penpos7(bar,90);
+penpos8(curve,0);
+penpos9(bar,-90);
+penstroke z3e--z4e{left}..tension.8..z5e..tension.8..{right}z6e--z7e;
+penstroke z9e{right}..{up}z8e{up}..{right}z4e;
+fill z9r..z9l..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar("A",13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4b]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar("B",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.2u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,1/2cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("C",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.15u#;
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+%currentpicture := currentpicture shifted(-1.5u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("D",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-2.2u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(o,30);
+penpos6(cap_curve,0);
+penpos7(o,-30);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+x3=x9=x1d;
+x8=x4=.5w; y8=y9=1/2cap_bar; y4=y3=h-1/2cap_bar;
+y6=.5h; x6=w-1/2cap_curve-s;
+y7=0.1h-c+1/2cap_bar; y5=0.9h+c-1/2cap_bar; x5=x7=x4+5/8(x6-x4);
+penstroke z3e--z4e{right}..z5e..z6e..z7e..{left}z8e--z9e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("E",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.2u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("F",10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("G",10u#+cap_jut#+c#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.76u#;
+x1=x5=23/42(w-cap_jut-c); y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s-cap_jut-c; y8=y1; x8=x1-.1(w-cap_jut-c);
+S_serif(6,slab,w-s-2c-x1-cap_jut,1.5border_height);
+S_serif(7,slab,w-s-x1-cap_jut+c,7/4border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+x9r=x7e; y9r=7/4border_height-1/2cap_bar;
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+x10=x9l; x11=x9r; y10=y11=3/4cap_bar;
+fill reverse serif_edge9--z10--z11--cycle;
+%currentpicture := currentpicture shifted(-1.5u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("H",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("I",2cap_jut#+cap_stem#+2s#,cap_height#,0);
+italcorr cap_height#*sind 18-.82u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+endchar;
+
+beginchar("J",7u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.75u#;
+x1=x4=w-cap_jut-1/2cap_stem-s;
+y1c=h; y2=y3=y4=13/53h; x2=x1r; x3=x1l;
+y5=0; x5=x3-2/3cap_stem;
+serif(1,cap_stem,-90,1.2cap_jut,cap_jut);
+fill z3--z2--reverse serif_edge1--cycle;
+penpos4(cap_stem,0);
+penpos5(cap_bar,-90);
+penstroke z4e{down}..{left}z5e;
+x6e=s; y6=0;
+dl_drop(6,cap_drop_round,x5-s,1.3drop_round,cap_bar);
+fill dl_drop_edge6;
+%currentpicture := currentpicture shifted(-.5u,0);
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("K",13u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-1.9u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=cap_bar_height; x3l=w-cap_jut-.5cap_jut-cap_bar-s; y3l=h-cap_bar;
+x5=x6=x1r; y5=cap_bar_height-cap_bar; y6=y5-1.2cap_bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+A_serif(3,cap_bar,theta1,1.5cap_jut,.6cap_jut);
+x4l=w-s-1.2cap_jut-cap_stem; y4l=cap_bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,cap_stem,theta2,.8cap_jut,cap_jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("L",10u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=y5=y2h; x3=x2d; x5e=w-s;
+T_serif(5,cap_bar,border_height,1); x4=x5;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penstroke z3e--z4e;
+fill T_edge5 reflectedabout(z3,z4);
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar("M",13u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,1/2cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 110; y7l=11/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("N",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=x2=cap_jut+1/2cap_bar+s;
+x3=w-x1; y1c=y3c=h; y2c=y4=y5=0;
+x4=x3r; x5=x3l;
+serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+A_serif(2,cap_bar,90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill A_serif_edge2--reverse serif_edge1--cycle;
+numeric theta[]; y7=y1h; x7=x1h-1.1cap_stem;
+theta1=angle(z5-z7);
+z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+fill z6--z1h--z7--z5{down}..{up}z4--reverse A_serif_edge3--cycle;
+unfill z1b--z1l--z1a--cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("O",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.2u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+%currentpicture := currentpicture shifted(-1.6u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("P",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.55u#;
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Q",11u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-2.2u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x12-1.5c; x12=x7l-c; y11=y12=-comma_depth;
+y9=0; x9=x1-c; y9-y10=y10-y11; x11-x10=x10-x9;
+penpos9(cap_bar,90); penpos10(cap_curve,0);
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z9e{dir -20}..tension.8..z10e..tension.8..{right}z11e--z12e;
+fill z12r..z12l..cycle;
+%currentpicture := currentpicture shifted(-1.6u,0);
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("R",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.83u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2r;
+y1c=h; y2c=0; x6=x4=x7+2.5u; x3=x1d;
+y4-y5=y5-y6; x5=x8; x9=w-s-1/2cap_bar; y9=0; y6-y8=y8-y9; x10=x6; x9-x8=6/7(x8-x10);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,-90);
+penpos6(cap_bar,-90);
+penpos8(cap_curve,-180);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penstroke z9e{left}..tension.8..{up}z8e{up}..tension.8..{left}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("S",9u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.7u#;
+x6=x7=1/2w; y6=y7=0;
+S_serif(7,cap_bar,x6-s,1.5border_height);
+y5=11/53h; x5=w-s-1/2(1.9hair);
+y4=28/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2(1.9cap_bar);
+x2=.5w-c; y2=h; z1=z2;
+penpos6(cap_bar,-90);
+penpos5(1.9hair,0);
+penpos4(1.1cap_curve,90);
+penpos3(1.9hair,0);
+penpos2(cap_bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-cap_bar,1.2border_height);
+fill S_serif_edge1;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("T",round (11u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+%currentpicture := currentpicture shifted(-2.5u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("U",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.75u#;
+x1=cap_jut+1/2cap_stem+s;
+x3=w-s-cap_jut-1/2cap_bar;
+y1c=y3c=h; y2=y4=y5=y6=y24=y56=16/53h; x2=x1l;
+x4=x1r; x5=x3l; x6=x3r;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill z2--z4--reverse serif_edge1--cycle;
+fill z5--z6--reverse A_serif_edge3--cycle;
+x7=x1+.5(x3-x1); y7=0; x4-x24=x24-x2; x6-x56=x56-x5;
+penpos24(cap_stem,-180); penpos7(vair,-90);
+penpos56(cap_bar,0);
+penstroke z24e{down}..tension.9..{right}z7e{right}..tension.9..{up}z56e;
+%currentpicture := currentpicture shifted(-2.2u,0);
+penlabels(range 1 thru 7,24,56);
+endchar;
+
+beginchar("V",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1l=cap_jut+s; x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w-1/2cap_bar; x5=.5w+1/2cap_bar;
+y4=y5=1/2cap_bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+%currentpicture := currentpicture shifted(-3.5u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("W",17u#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x9l=.5w-.3cap_stem; x7r=w-s-cap_jut;
+y9l=y7r=y1l=h-cap_bar; x5=x9l+.5(x7r-x9l)-1/2cap_bar; x6=x9l+.5(x7r-x9l)+1/2cap_bar;
+y5=y6=y2=y3=1/2cap_bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(7,cap_bar,theta2,1.3cap_jut,cap_jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+cap_jut;
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+z2=z1l+whatever*dir theta1; x3=x2+cap_bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+%currentpicture := currentpicture shifted(-3.5u,0);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("X",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.25u#;
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("Y",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1l=cap_jut+s; x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w; y4=8/25h;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+y5c=0; x5=.5w+.5c;
+serif(5,cap_stem,90,cap_jut,cap_jut);
+x6=x5l; x7=x5r;
+z6=z1l+whatever*dir theta1;
+z7=z3r+whatever*dir theta2;
+fill z6--serif_edge5--z7--reverse A_serif_edge3--z2--reverse serif_edge1--z6&cycle;
+%currentpicture := currentpicture shifted(-3.2u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Z",9u#+1.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x6=s+1/2cap_bar; y6=y7=y8=1/2cap_bar;
+x8e=w-s; x7=x8;
+T_serif(8,cap_bar,border_height,1);
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4cap_bar;
+x4r=w-s-1/4cap_bar; y4=h-cap_bar;
+penpos4(cap_stem,0);
+penpos5(cap_stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2cap_bar;
+x3=w-s-1/2cap_bar; x1e=s+c;
+T_serif(1,cap_bar,border_height,0);
+x2=x1;
+penpos3(cap_bar,90);
+penpos2(cap_bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar("a",9u#-s#+2/7stem#,x_height#,0);
+x5=w-s-1/2bar; y5=0; y4=6/7stem; x4=x3=x5-5/7stem-1/2stem;
+y3=bar_height+2bar; y2=y1=h; x2=s+c+6/20w; x1e=s+c;
+ul_drop(1,drop_round,x2-s-c,5/4drop_round,bar);
+fill ul_drop_edge1;
+penpos2(bar,90);
+penpos3(stem,0);
+penpos4(stem,0);
+penpos5(bar,90);
+penstroke z2e{right}..{down}z3e--z4e{down}..{right}z5e;
+fill z5r..z5l..cycle;
+y6=bar_height+1/2bar; x6=x3+1/2stem; x7=s+1/2stem; y7=7/17bar_height;
+y8=0; x9=x4-1/2stem+1/2bar; x9-x8=x8-x7; y9=y4+3/2bar; x66=x8; y66=y6-c;
+numeric theta[]; theta1=angle(z66-z6);
+penpos6(vair,90);
+penpos66(vair,90);
+penpos7(curve,180);
+penpos8(vair,270);
+penpos9(bar,360);
+penstroke z6e{left}..z66e{dir theta1}..tension.8..{down}z7e{down}..tension.8..z8e{right}..{up}z9e;
+%currentpicture := currentpicture shifted(-.4u,0);
+penlabels(range 1 thru 9,66);
+endchar;
+
+beginchar("b",8u#+jut#,asc_height#,0);
+italcorr asc_height#*sind 18-3u#;
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+.2s+.6(w-jut-2s); y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=y8=0.1x_height; y4=y6=0.9x_height; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=0;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,0);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("c",8u#,x_height#,0);
+italcorr x_height#*sind 18-1.65u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=1/2curve+s;
+y2=0.1h; y4=0.9h; x2=x4=x3+3/8(x5-x3);
+x6=w-s-1/2hair; y6=y3-4/5stem;
+penstroke z6e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e;
+fill z6r..z6l..cycle; z7=z5;
+ur_drop(7,drop_round,7/8(x6l-x1),3/2drop_round,bar);
+fill ur_drop_edge7;
+%currentpicture := currentpicture shifted(-1.15u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("d",8u#+jut#,asc_height#,0);
+italcorr asc_height#*sind 18-1.7u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.7o,-150);
+penpos7(stem,-180);
+penpos8(.7o,-210);
+x1=x5=1.8s+.4(w-jut-2s); y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2curve+s; x7=w-1/2stem-s-jut;
+y2=y8=0.1x_height; y4=y6=0.9x_height; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10h=w-s; x9=x10; y9c=h; y10c=0;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,0,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("e",8u#,x_height#,0);
+italcorr x_height#*sind 18-1.65u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x5+5/8(x7-x5);
+x10=w-s-1/2bar; y10=y7-5/4stem;
+penstroke z10e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+%currentpicture := currentpicture shifted(-1.1u,0);
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("f",2jut#+stem#+2c#+2s#,asc_height#,0);
+italcorr asc_height#*sind 18-1.12u#;
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x1; y3=x_height; x4r=x1l-.1stem; y4=x_height+1/2(asc_height-x_height);
+x5l=x4l-.05stem; y5=y4+1.5bar; x6=x1r+.2stem; y6=h-1/2bar;
+penpos3(stem,180);
+penpos4(.75curve,180);
+penpos5(.6curve,180);
+penpos6(bar,90);
+penstroke z3e{dir 95}...{up}z4e..z5e..{right}z6e;
+y6=y7; x7e=w-s;
+ur_drop(7,stem,x7e-x6,drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("g",9u#+c#,x_height#,desc_depth#);
+italcorr x_height#*sind 18-u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+y3=y7=2/3h; x3=1/2curve+s+c; x7=w-3/2stem-s;
+x1=x5=x3+1/2(x7-x3); y1=3/11h; y5=h;
+y2=y8=y1+0.1(8/11h); y4=y6=y1+0.9(8/11h); x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x9=x7; y9=y7+1/2(y6-y7); y10=h; x10=x7l+c;
+x11e=w-s; y11=y10;
+ur_drop(11,.8stem,x11e-x10,drop_round,bar);
+penpos9(hair,180); penpos10(vair,90);
+penstroke z9e{up}..{right}z10e;
+fill ur_drop_edge11;
+y12=y1; x12=x1; y13=y12/2; x13=s+1/4stem+.5c;
+y14=y15=0; x14=x2r; x15=x8r; y16=y18=-d/2; x16=w-s-1/2stem;
+x18=s+.7hair; y17=-d+1/2bar; x17=s+.6bar+9/20(x16-x18); x19=x14; y19l=y14r;
+penpos12(vair,90); penpos13(1/2curve,180); penpos14(curve,270);
+z144=z14; penpos144(curve,90); penpos15(curve,90);penpos16(1/2curve,0);
+penpos17(vair,-90); penpos18(1.4hair,-180); penpos19(1.4vair,-270);
+penstroke z12e{left}..{down}z13e{down}..{right}z14e;
+penstroke z144e--z15e{right}..tension.8..{down}z16e{down}..{left}z17e{left}..{up}z18e{up}..{right}z19e;
+penlabels(range 1 thru 19);
+endchar;
+
+beginchar("h",round (10u#-1.5c#),asc_height#,0);
+w:=w+1;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6h=w-s; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33x_height;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=x_height; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("i",2jut#+stem#+2s#,x_height#+2.1stem#,0);
+italcorr asc_height#*sind 18-2.3u#;
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+z3=(x1,h); z4=(x1,h-1.1stem);
+fill z3..z4..cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("j",5u#,x_height#+2.1stem#,desc_depth#);
+italcorr (x_height#+2.1stem#)*sind 18-.95u#;
+x1h=w-s; y1c=x_height; y2=0; x2=x1;
+serif(1,stem,-90,1.5jut,0);
+penpos2(stem,0);
+fill z2l--z2r--reverse serif_edge1--cycle;
+z3=(x1-.05stem,h); z4=(x1-.05stem,h-1.1stem);
+fill z3..z4..cycle;
+y5=-1/4desc_depth; x5r=x2r;
+y6=-d+1/2bar; x6=x2l-1/2stem;
+penpos5(.97stem,0);
+penpos6(bar,-90);
+penstroke z2e--z5e{down}..{left}z6e;
+x7e=s; y7=-d+1/2bar;
+dl_drop(7,stem,x6-x7e,drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar("k",round (10u#-c#),asc_height#,0);
+italcorr asc_height#*sind 18-2.52u#;
+w:=w+1;
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=bar_height; x3l=w-jut-.7jut-s; y3l=x_height-bar;
+x5=x6=x1r; y5=bar_height-bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+y6=y5-bar/cosd (theta1+180);
+A_serif(3,.9bar,theta1,1.8jut,.8jut);
+x4l=w-s-1.2jut-stem; y4l=bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,stem,theta2,.8jut,jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("l",2.4jut#+stem#+2s#,asc_height#,0);
+italcorr asc_height#*sind 18-2u#;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,1.2jut,0);
+serif(2,stem,90,1.2jut,1.2jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penlabels(1,2);
+endchar;
+
+beginchar("m",14u#,x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6=.5w; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33h;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=h; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+x10h=w-s; y10c=0;
+serif(10,stem,90,jut,jut);
+x9=x10; y9=y5;
+penpos9(stem,0);
+fill serif_edge10--z9r--z9l--cycle;
+x8=x10g; y8=h; y7=y9-1/4bar; x7l=x6r;
+penpos8(vair,90);
+penpos7(bar,180);
+penstroke z9e{up}..{left}z8e{left}..z7e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("n",round (10u#-1.5c#),x_height#,0);
+w:=w+1;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6h=w-s; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33h;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=h; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("o",8u#+s#,x_height#,0);
+italcorr x_height#*sind 18-1.65u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2curve-s;
+y2=y8=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+%currentpicture := currentpicture shifted(-1.15u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("p",8u#+jut#,x_height#,desc_depth#);
+italcorr x_height#*sind 18-1.6u#;
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+.2s+.6(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=y8=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=-desc_depth;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("q",8u#+jut#,x_height#,desc_depth#);
+italcorr x_height#*sind 18-.75u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.7o,-150);
+penpos7(stem,-180);
+penpos8(.7o,-210);
+x1=x5=1.7s+.4(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2stem-s-jut;
+y2=y8=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10h=w-s; x9=x10; y9c=h; y10c=-d;
+serif(9,stem,-90,0,jut);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("r",7u#+c#,x_height#,0);
+italcorr x_height#*sind 18-1.05u#;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,1.2jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x4=round (x2h+1/2bar+c); y4=h; y3=23/33h-1/4bar; x3l=x2r;
+penpos4(bar,90);
+penpos3(bar,180);
+penstroke z4e{left}...{down}z3e;
+x5e=w-s; y5=h;
+ur_drop(5,1.1stem,x5e-x4,drop_round,bar);
+fill ur_drop_edge5;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar("s",7u#+c#,x_height#,0);
+italcorr x_height#*sind 18-1.28u#;
+x6=x7=1/2w; y6=y7=1/2bar;
+S_serif(7,bar,x6-s,border_height);
+y5=11/53h; x5=w-s-1/2(1.4hair);
+y4=29/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2hair;
+x2=.5w; y2=h; z1=z2;
+penpos6(bar,-90);
+penpos5(1.4hair,0);
+penpos4(1.1curve,90);
+penpos3(1.4hair,0);
+penpos2(bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-1/3bar,.9border_height);
+fill S_serif_edge1;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("t",7u#-s#,asc_height#,0);
+italcorr x_height#*sind 18-1.55u#;
+y1=y2=46/53h; y4c=x_height; x4g=s;
+serif(4,stem,-90,jut,1.4jut);
+x1=x4r; x2=x1-bar;
+y5=7/33x_height; x5=x4; x3=x4l; y3=42/53h;
+penpos5(stem,180); numeric theta[];
+theta1=angle(z3-z2);
+fill z5l--reverse serif_edge4--z5r--cycle;
+fill z4r--z1{up}..{dir theta1}z2--z3--z4l--cycle;
+y6=1/4bar; x6=x4r+.7jut; x7=w-s-1/2bar; y7=13/53h;
+penpos6(vair,270); penpos7(hair,360);
+penstroke z5e{down}..{right}z6e{right}..{up}z7e;
+fill z7r..z7l..cycle;
+%currentpicture := currentpicture shifted(-1.5u,0);
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar("u",round (10u#-1.5c#),x_height#,0);
+italcorr x_height#*sind 18-1.7u#;
+w:=w+1; x2h=w-s; y1c=h; y2c=0; x1=x2;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,0,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6g=s; y6c=h;
+serif(6,stem,-90,jut,0);
+x5=x6; y5=10/33h;
+penpos5(stem,180);
+fill serif_edge6--z5l--z5r--cycle;
+x4=x6+1/2stem+jut; y4=0; y3=y5+1/4bar; x3l=x2l;
+penpos4(vair,270);
+penpos3(bar,360);
+penstroke z5e{down}..{right}z4e{right}..z3e;
+%currentpicture := currentpicture shifted(-1.5u,0);
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar("v",10u#-1.5c#,x_height#,0);
+italcorr x_height#*sind 18-.78u#;
+x1l=jut+s; x3r=w-s-jut;
+y1l=y3r=h-bar; x4=.5w-1/2bar; x5=.5w+1/2bar;
+y4=y5=1/2bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,bar,theta2,1.3jut,jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+%currentpicture := currentpicture shifted(-2.3u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("w",13u#,x_height#,0);
+italcorr x_height#*sind 18-.78u#;
+x9l=.5w-.3stem; x7r=w-s-jut;
+y9l=y7r=y1l=h-bar; x5=x9l+.5(x7r-x9l)-1/2bar; x6=x9l+.5(x7r-x9l)+1/2bar;
+y5=y6=y2=y3=1/2bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,stem,theta1,jut,jut);
+A_serif(7,bar,theta2,1.1jut,jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+jut;
+serif(1,stem,theta1,jut,jut);
+z2=z1l+whatever*dir theta1; x3=x2+bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+%currentpicture := currentpicture shifted(-2.3u,0);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("x",9u#+c#,x_height#,0);
+italcorr x_height#*sind 18-1.15u#;
+y3=y4=bar; x3=w-s-jut-1/2stem; x4=s+jut+1/2bar;
+y1=y2=h-bar; x1=s+jut+1/2stem+c; x2=w-s-1.25c-jut-1/2bar;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,stem,theta1-180,jut,jut);
+A_serif(2,1.2bar,theta2-180,jut,jut);
+serif(3,stem,theta1,jut,jut);
+A_serif(4,1.2bar,theta2,jut,1.3jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("y",9u#+s#,x_height#,desc_depth#);
+italcorr x_height#*sind 18-.75u#;
+x1l=s+jut; y1l=h-bar;
+x3r=w-s-.8jut; y3r=h-bar;
+x4=33/60w; y4=-2/5d;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,1.2bar,theta2,1.2jut,.8jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=-d+bar; x6=x4-1.5stem; z7l=z2;
+penpos7(1.2bar,theta2+90);
+penpos5(1.2bar,theta2+90);
+penpos6(1.2bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,1.1stem,1.3u,drop_round,1.2bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("z",7u#+c#,x_height#,0);
+italcorr x_height#*sind 18-.8u#;
+x6=s+1/2bar; y6=y7=y8=1/2bar;
+x8e=w-s; x7=x8;
+T_serif(8,bar,.8border_height,1);
+penpos6(bar,90);
+penpos7(bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-.5c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4bar;
+x4r=w-s-1/4bar; y4=h-bar;
+penpos4(stem,0);
+penpos5(stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2bar;
+x3=w-s-1/2bar; x1e=s+c;
+T_serif(1,bar,.8border_height,0);
+x2=x1;
+penpos3(bar,90);
+penpos2(bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(hex"30",9u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.97u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+%currentpicture := currentpicture shifted(-1.45u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"31",6u#+3/2c#,cap_height#,0);
+italcorr cap_height#*sind 18-2.1u#;
+y1c=0; x1h=w-s;
+serif(1,cap_stem,90,cap_jut,cap_jut);
+x6=x1f; y5=y6=h; x5=x1; x2=x1a; y2=42/53h;
+penpos4(1.1cap_bar,theta1+45);
+penpos3(1.1cap_bar,theta1+45);
+x4l=s; y4=30/53h; numeric theta[]; theta1=angle(z5-z4l);
+z3l=z5; penstroke z3e--z4e; fill z4l..z4r..cycle;
+fill serif_edge1--z6{dir 110}..{dir 250}z5--z2--cycle;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"32",9u#,cap_height#,0);
+italcorr cap_height#*sind 18-1.6u#;
+z4=(9/33w,14/53h); z5=(s+11/20cap_bar,0);
+z3=(w-s-.5c-7/16cap_curve,40/53h); z2=(15/33w,h);
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos4(1.1cap_bar,-45);
+penpos5(1.1cap_bar,0);
+x6=x5r; y6=y7=7/16cap_stem; y8=1/2cap_bar;
+x8e=w-s; x7=x8e;
+T_serif(8,cap_bar,3/5border_height,1);
+penpos6(7/8cap_stem,90);
+penpos7(7/8cap_stem,90);
+penstroke z6e--z7e; %fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+unfill z11{down}..z9--z10--cycle;
+penstroke z5e{up}..z4e..{up}z3e{up}..{left}z2e;
+z1=z2; ul_drop(1,cap_drop_round,15/33w-3c,1.4cap_drop_round,slab);
+fill ul_drop_edge1;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"33",9u#,cap_height#,0);
+italcorr cap_height#*sind 18-2.05u#;
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height+c;
+x4=x6-3/2cap_stem; x5=x4-2u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_stem,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..{down}z3e{down}..{left}z44e;
+penstroke z5e--z4e{right}..tension.9..{down}z6e{down}..tension.9..{left}z7e;
+fill z5r..z5l..cycle;
+ul_drop(1,cap_drop_round,17/39w-s,cap_drop_round,slab);
+fill ul_drop_edge1;
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.3cap_drop_round,slab);
+fill dl_drop_edge8;
+%currentpicture := currentpicture shifted(-.4u,0);
+penlabels(1,2,3,4,5,6,7,8,44);
+endchar;
+
+beginchar(hex"34",9u#+c#,cap_height#,0);
+italcorr cap_height#*sind 18-2.2u#;
+y1=y2=33/53h; y4c=0; x4h=w-s;
+serif(4,7/8cap_stem,90,cap_jut,cap_jut);
+x1=x4r; x2=x1-bar;
+x3=x4l; y3=28/53h;
+numeric theta[]; theta1=angle(z2-z3);
+fill z3{dir theta1}--z2{dir theta1}..{down}z1--reverse serif_edge4--z3&cycle;
+y5=y6=15/53h; x5=x4e; x6=s+cap_bar;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e; fill z5r..z5l..cycle;
+y7=y6l; x7l=x6; z8=(6/36w, 21/53h);
+z9=(2/3w,h);
+penpos7(cap_bar,180); penpos8(cap_bar,150);
+penpos9(cap_stem,180);
+penstroke z7e{up}..z8e..{dir 70}z9e;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"35",9u#,cap_height#,0);
+italcorr cap_height#*sind 18-1.45u#;
+x7=x4=18/39w; y7=0; y5=cap_bar_height+c; y4=y5+s;
+x8e=s; y8=0; x5=x8d;
+dl_drop(8,cap_drop_round,18/39w-s,1.3cap_drop_round,slab);
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z5e..z4e{right}..tension.85..{down}z6e{down}..tension.85..{left}z7e;
+fill z5r..z5l..cycle;
+fill dl_drop_edge8;
+z3=z5; x2=x3; y2=h;
+penpos3(cap_bar,0); penpos2(cap_bar,0);
+penstroke z3e--z2e; fill z2l..tension 1.7..z2r..tension 1.7..cycle;
+y1r=h; x1=x2r; x13=x6; y13=h; 2(x12-x1)=x13-x12; y12=h-.6cap_stem;
+penpos1(7/8cap_stem,90); penpos13(1.1cap_bar,90); penpos12(3/4cap_stem,90);
+penstroke z1e..z12e..z13e; fill z13r..tension 1.7..z13l..tension 1.7..cycle;
+%currentpicture := currentpicture shifted(-.55u,0);
+penlabels(1,2,3,4,5,6,7,8,12,13);
+endchar;
+
+beginchar(hex"36",9u#,cap_height#,0);
+italcorr cap_height#*sind 18-1.8u#;
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=x9=.45w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.1h-c; y4=y6=0.9h+c; x8=x6=x7+11/32(x5-x7); x4=x10=x5+9/16(x3-x5); x2=x4-1/2c;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.1h-c; y11=y7;
+x11l=x3l; y10=y8;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e..z10e..z11e;
+z12 = z1;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+z13 = (.5w,.5h);
+currentpicture := currentpicture rotatedaround(z13,180) shifted(sl_parameter*w*1.3,0);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"37",9u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-.9u#;
+x4=w-s-1/2cap_bar; y4=h-1/2cap_bar;
+penpos4(cap_bar,0);
+y3=y2=h-7/16cap_stem; y1=h-7/8cap_stem+1/2cap_bar;
+x3=x4l; x1e=s;
+T_serif(1,cap_bar,3/5border_height,0);
+x2=x1e;
+penpos3(7/8cap_stem,90);
+penpos2(7/8cap_stem,90);
+penstroke z2e--z3e; fill T_edge1; z44=(x4,h); fill z4r{up}..{left}z44--z3r--z4l--cycle;
+x10=s+c; x11=s; y10=y11=h;
+unfill z1d{up}..z10--z11--cycle;
+unfill z1d{up}..z10--z11--cycle;
+x5r=x3; y5=h-7/8cap_stem;
+x6=14/30w; y6=1/3cap_curve;
+penpos5(cap_bar,0); penpos6(cap_curve,0);
+penstroke z4e{dir -105}..z5e..{dir -95}z6e; fill z6l..z6r..cycle;
+%currentpicture := currentpicture shifted(-2.4u,0);
+penlabels(1,2,3,4,5,6,10,11,12);
+endchar;
+
+beginchar(hex"38",10u#-s#,cap_height#,0);
+italcorr cap_height#*sind 18-2u#;
+x6=x4=x2=x8=1/2w; y6=0; y2=h;
+y5=11/53h; y7=13/53h; x5=w-s-1/2(1.9hair);
+y4=y8=28/53h; y3=42/53h; y1=40/53h; x3=2s+1/2(1.9cap_bar);
+x1=w-2s-1/2(1.9cap_bar); x7=w-x5;
+penpos6(cap_bar,-90);
+penpos5(2.5hair,0);
+penpos4(cap_curve,90);
+penpos3(2.5hair,0);
+penpos2(cap_bar,-90);
+penpos1(2.5hair,-180);
+penpos7(2.5hair,-180);
+penpos8(cap_bar,-270);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e;
+%currentpicture := currentpicture shifted(-.6u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"39",9u#,cap_height#,0);
+italcorr cap_height#*sind 18-2.05u#;
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=x9=.45w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.1h-c; y4=y6=0.9h+c; x8=x6=x7+11/32(x5-x7); x4=x10=x5+9/16(x3-x5); x2=x4-1/2c;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.1h-c; y11=y7;
+x11l=x3l; y10=y8;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e..z10e..z11e;
+z12 = z1;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+beginchar(oct"56",cap_stem#+2s#,cap_stem#,0);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+endchar;
+
+beginchar(oct"54",cap_stem#+2s#+c#,cap_stem#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"60",cap_stem#+2s#+c#,asc_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(oct"41", cap_stem#+2s#,cap_height#,0); "Exclamation mark";
+ italcorr cap_height#*sind 18-.68u#;
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+ x3=.5w-1/2cap_bar; x4=.5w+1/2cap_bar; y3=y4=3/2cap_stem;
+ x6=x1; x5=x2; y5=y6=h;
+ fill z6--z3..z4--z5{up}..z6&cycle;
+endchar;
+
+beginchar(hex"22",2cap_stem#+3s#+2c#,cap_height#,0);
+ italcorr cap_height#*sind 18-u#;
+ z1=(s,h-1/2cap_stem); z2=(x1+cap_stem+c,h-1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-cap_stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ %currentpicture := currentpicture shifted(-3.2u,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"5C",2cap_stem#+3s#+2c#,cap_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(x1+cap_stem+c,1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"7b",10u#-1.5c#,x_height#,0); "En dash";
+ italcorr x_height#*sind 18-1.9u#;
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ %currentpicture := currentpicture shifted(-1.3u,0);
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"3D",10u#+1.5c#,x_height#,0);
+ italcorr x_height#*sind 18-1.62u#;
+ z1=(s+1/2bar,bar_height-3c); z2=(w-s-1/2bar,bar_height-3c);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+3c); z4=(w-s-1/2bar,bar_height+3c);
+ penpos3(bar,90); penpos4(bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ %currentpicture := currentpicture shifted(-1.1u,0);
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"23",13u#,asc_height#,body_depth#);
+ italcorr asc_height#*sind 18-2.25u#;
+ z1=(s+1/2bar,bar_height-5c); z2=(w-s-1/2bar,bar_height-5c);
+ penpos1(1.5bar,90); penpos2(1.5bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+5c); z4=(w-s-1/2bar,bar_height+5c);
+ penpos3(1.5bar,90); penpos4(1.5bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ z5=(.5w-5c,bar_height); z6=(.5w+5c,bar_height);
+ z7=z5+whatever*dir 76; y7=h; z8=whatever[z5,z7]; y8=-d;
+ penpos7(1.5bar,0); penpos8(1.5bar,0);
+ fill z7l{up}..{down}z7r--z8r{down}..{up}z8l--z7l&cycle;
+ z9=z6+whatever*dir 76; y9=h; z10=whatever[z6,z9]; y10=-d;
+ penpos9(1.5bar,0); penpos10(1.5bar,0);
+ fill z9l{up}..{down}z9r--z10r{down}..{up}z10l--z9l&cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"7c",14u#,x_height#,0); "Em dash";
+ italcorr x_height#*sind 18-1.88u#;
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ %currentpicture := currentpicture shifted(-1.15u,0);
+ penlabels(1,2);
+endchar;
+
+beginchar(oct"55",2cap_jut#+cap_stem#+2s#,x_height#,0); "hyphen";
+ italcorr x_height#*sind 18-1.8u#;
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ %currentpicture := currentpicture shifted(-1.3u,0);
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"5F",1.1stem#+2s#,x_height#+2.1stem#,0);
+ italcorr (2.1stem#+x_height#)*sind 18-.95u#;
+ z1=(.5w,h); z2=(.5w,h-1.1stem);
+ fill z1..z2..cycle;
+ %currentpicture := currentpicture shifted(-3.1u,0);
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7E",7u#,body_height#,0);
+ italcorr body_height#*sind 18-.85u#;
+ pickup pencircle xscaled .8pt yscaled .2pt rotated 55;
+ z4=(w-s-c,h-s); x1=s+c; y1=y4-1/2cap_stem;
+ y2-y1=y4-y3=3(y4-y1); z2-z1=z4-z3=whatever * dir 55;
+ draw z1..controls z2 and z3..z4;
+ %currentpicture := currentpicture shifted(-3.8u,0);
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"3C",7u#-2c#,x_height#,0); "looks like <<";
+ italcorr x_height#*sind 18-u#;
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ %currentpicture := currentpicture shifted(-1.6u,0);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3E",7u#-2c#,x_height#,0);
+ italcorr x_height#*sind 18-u#;
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ z10=(.5w,.5h);
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ currentpicture := currentpicture rotatedaround(z10,180) shifted(3.4u,0);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3B",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ italcorr x_height#*sind 18-.85u#;
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+3/2c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ z8=(s,h-1/2cap_stem); z9=(w-s,h-1/2cap_stem);
+ fill z8..z9..cycle;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(hex"3A",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ italcorr x_height#*sind 18-.85u#;
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ fill z1..z2..cycle;
+ penlabels(1,2,3,4);
+ z3=(s,1/2cap_stem); z4=(w-s,1/2cap_stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2B",2cap_jut#+cap_stem#+2s#,x_height#,0);
+ italcorr x_height#*sind 18-1.8u#;
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ x3=x4=.5w; y3=y2+1/2(x2-x1); y4=y2-1/2(x2-x1);
+ penpos3(1.8bar,0); penpos4(1.8bar,0);
+ penstroke z3e--z4e;
+ fill z3r..z3l..cycle; fill z4r..z4l..cycle;
+ %currentpicture := currentpicture shifted(-1.4u,0);
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2F",2s#+bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-.78u#;
+ z1=(.5w,h-.5bar); z2=(.5w,-d+.5bar);
+ %pickup pencircle xscaled bar yscaled bar;
+ penpos1(bar,0); penpos2(bar,0);
+ penstroke z1e--z2e; fill z1r..z1l..cycle;
+ fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"27",cap_stem#+2s#+c#,x_height#+2.1stem#,0);
+ italcorr (2.1stem#+x_height#)*sind 18-.95u#;
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ z6=(.5w-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ %currentpicture := currentpicture shifted(-3u,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"28",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-.9u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"29",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.6u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180) shifted(4u,0);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"86",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-.9u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"87",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-2.2u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180) shifted(4u,0);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"5B",2s#+3cap_bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-.8u#;
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x2,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z1r..z1l..cycle; fill z6r..z6l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"5D",2s#+3cap_bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-.73u#;
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x1,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z2r..z2l..cycle; fill z5r..z5l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"B9",16u#,cap_height#,0);
+ italcorr cap_height#*sind 18-2u#;
+ x1=x2=cap_jut+1/2cap_bar+s+cap_stem;
+ x3=w-x1-1/2cap_stem; y1c=h; y4=y5=0;
+ x4=x3r; x5=x3l; y2=12/53h; y3=h-y2;
+ x8=x2-stem; y8=0; z9=z8;
+ dl_drop(9,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill dl_drop_edge9; penpos8(bar,-90);
+ serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+ penpos2(bar,0); penpos3(bar,0);
+ penstroke z2e{down}..{left}z8e;
+ fill z2l--z2r--reverse serif_edge1--cycle;
+ numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+ theta1=angle(z5-z7); x10=x3+stem; y10=h; z11=z10;
+ penpos10(bar,-90); penstroke z3e{up}..{right}z10e;
+ ur_drop(11,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill ur_drop_edge11;
+ z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+ fill z6--z1h--z7--z5{down}..{up}z4--z3r--z3l--cycle;
+ unfill z1b--z1l--z1a--cycle;
+ y12=y13=2cap_bar; x12=x4+2cap_bar+.5s; x13=w-1.5s;
+ penpos12(.4stem,90); penpos13(.4stem,90);
+ penstroke z12e--z13e; y16=y11d-5cap_bar;
+ x13-x14=x14-x12; x16=x14; y14=y13+5cap_bar;
+ x17=w-s-1/4stem; x17-x16=x16-x15; y16-y15=y15-y14;
+ y17=y15; penpos17(.6stem,0); penpos16(bar,90);
+ penpos15(.6stem,180); penpos14(bar,270);
+ penstroke z17e{up}..{left}z16e{left}..{down}z15e{down}..{right}z14e{right}..{up}z17e;
+ fill z12l..tension1.2..z12r..tension1.2..cycle;
+ fill z13l..tension1.2..z13r..tension1.2..cycle;
+ penlabels(range 1 thru 17);
+endchar;
+
+beginchar(hex"24",9u#-s#,body_height#,body_height#-cap_height#);
+ italcorr body_height#*sind 18-1.7u#;
+ x6=x7=1/2w-c; y6=y7=0;
+ dl_drop(7,cap_drop_round,x6-s,1.3cap_drop_round,cap_bar);
+ y5=10/53cap_height; x5=w-s-1/2(1.9hair);
+ y4=1/2cap_height; x4=19/38w; y3=42/53cap_height; x3=s+1/2(1.9cap_bar);
+ x2=.5w+c; y2=cap_height; z1=z2;
+ penpos6(cap_bar,-90); penpos5(1.9hair,0);
+ penpos4(1.1cap_curve,90); penpos3(1.9hair,0);
+ penpos2(cap_bar,-90);
+ penstroke z6e{right}..z5e..tension1..z4e..tension.9..z3e..{right}z2e;
+ fill dl_drop_edge7;
+ ur_drop(1,cap_drop_round,w-s-x2,1.3cap_drop_round,cap_bar);
+ fill ur_drop_edge1;
+ z8=(.5w,h); z9=(.5w,-d);
+ penpos8(cap_bar,0); penpos9(cap_bar,0);
+ penstroke z8e--z9e;
+ fill z9r..z9l..cycle; fill z8r..z8l..cycle;
+ %currentpicture := currentpicture shifted(-.7u,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"25",12u#,asc_height#,0);
+italcorr asc_height#*sind 18-2.3u#;
+penpos1(vair,90); penpos2(.6curve,0);
+penpos3(vair,-90); penpos4(.6curve,-180);
+y1=.55h; y3=h; y3-y4=y4-y1; y2=y4; x2=1/4curve+s; x4=5/2curve+s;
+x4-x1=x1-x2; x3=x1;
+penstroke z1e{left}..tension.9..{up}z2e{up}..tension1.2..{right}z3e..tension.9..{down}z4e{down}..tension1.2..{left}z1e..cycle;
+penpos5(vair,90); penpos6(.6curve,0);
+penpos7(vair,-90); penpos8(.6curve,-180);
+y5=0; y7=.45h; y7-y8=y8-y5; y6=y8; x8=w-1/4curve-s; x6=w-5/2curve-s;
+x8-x5=x5-x6; x7=x5;
+penstroke z5e{left}..tension.9..{up}z6e{up}..tension1.2..{right}z7e..tension.9..{down}z8e{down}..tension1.2..{left}z5e..cycle;
+x9l=x7; y9=h; x10r=x1; y10=0;
+penpos9(1.2bar,0); penpos10(1.2bar,0);
+penstroke z9e--z10e;
+%currentpicture := currentpicture shifted(-1.7u,0);
+penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"26",14u#,cap_height#,0);
+italcorr cap_height#*sind 18-2.65u#;
+x4=x8=x3+.5curve; y6=0; y2=h; x2=x3+1.3cap_curve;
+y7=13/53h; y5=9/53h; x5=x7+3.5cap_curve; x6=x7+1.8cap_curve;
+y4=y8=30/53h; y1=44/53h; y3=42/53h; x3=4s+curve;
+x1=x3+2.1cap_curve; x7=s+1/2cap_curve;
+x10=w-s; y10=9/53h; x10-x9=x9-x5; y9=1/5cap_curve;
+th:=angle(z4-z5)+5; th1:=th-11; x11h=w-s-c; y11h=y1-4s;
+A_serif(11,cap_bar,-110,cap_jut,cap_jut); z12l=z11a;
+penpos6(cap_bar,-90); penpos5(cap_stem,45);
+penpos4(cap_stem,45); penpos3(2.5hair,0);
+penpos2(cap_bar,-90); penpos1(2hair,-180);
+penpos7(cap_curve,-180); penpos8(cap_bar,-250);
+penpos9(.5cap_curve,70); penpos10(cap_bar,150);
+penpos12(cap_bar,0);
+penstroke z10e..z9e..z5e{dir th}..{dir th1}z4e..tension.9..{up}z3e{up}..tension1..z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e{dir 8}..{dir 70}z12e;
+fill z12l--z12r..reverse A_serif_edge11--cycle;
+fill z10l..tension1.3..z10r..tension1.3..cycle;
+%currentpicture := currentpicture shifted(-.7u,0);
+penlabels(range 1 thru 12);
+endchar;
+currenttransform := identity;
+
+beginchar(hex"40",14u#,x_height#+2curve#,2curve#);
+a_width:=9u+c-2s;
+x1=2s+a_width-s-3/4stem+1.5curve; y1=x_height; y2=7/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=3s+a_width+1.5curve; y4=15/33x_height;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.2vair,270); penpos4(bar,360);
+x5=x1-3/2stem; y5=x_height; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c+1.5curve; y6=.54x_height; y8=.46x_height; z8l=whatever[z1r,z2r];
+x13=x5; y13=h-1/2bar; x14=s+1/2bar; y14=y6; y15=-d+1/2bar; x15=x7;
+x16=x4; y16=-d+3bar; penpos7(vair,270); penpos16(bar,270);
+penpos13(bar,90); penpos14(bar,180); penpos15(bar,270);
+penpos8(2bar,0); penpos5(vair,90); penpos6(curve,180);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 80}z4e..z13e{left}..z14e..{right}z15e..z16e;
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=x_height-c; z10=(x1r+c,x_height); z11=(x1l-c,x_height);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+%unfill z11--z1l--z12{up}..z11..cycle;
+fill z16r..z16l..cycle;
+penlabels(range 1 thru 66);
+endchar;
+currenttransform := identity slanted sl_parameter;
+
+beginchar(hex"12",2cap_stem#+s#,body_height#,0);
+italcorr body_height#*sind 18-1.12u#;
+y1=h-.45cap_stem*cosd 45; x1=s+.45cap_stem*cosd 45;
+x2=w-s+cap_bar*cosd 45; z2=z1+whatever*dir -45;
+penpos1(.9cap_stem,45); penpos2(cap_bar,45);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+%currentpicture := currentpicture shifted(-3.6u,0);
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"13",2cap_stem#+s#,body_height#,0);
+italcorr body_height#*sind 18-.7u#;
+y1=h-.45cap_stem*cosd 45; x1=w-s-.45cap_stem*cosd 45;
+x2=s-cap_bar*cosd 45; z2=z1+whatever*dir -135;
+penpos1(.9cap_stem,135); penpos2(cap_bar,135);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+%currentpicture := currentpicture shifted(-2.7u,0);
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"3F",7u#+c#,cap_height#,0);
+ italcorr cap_height#*sind 18-1.55u#;
+ x1=s+4/5cap_stem; y1=1/2cap_stem;
+ penpos1(cap_stem,0);
+ fill z1r..z1l..cycle;
+ y2=cap_stem+cap_bar; x2=x1;
+ z3l=z2l+whatever*dir 96; y3l=25/53h;
+ penpos2(cap_bar,0); penpos3(cap_bar,0);
+ penstroke z2e--z3e;
+ z4l=z3l; penpos4(cap_bar,0);
+ y5=y4-2bar; x5=x4+3cap_bar; penpos7(cap_bar,-90);
+ x6=w-s-1/2cap_curve; y6=37/51h; x7=12/31w; y7=h;
+ penpos5(cap_bar,90); penpos6(cap_curve,180); z8=z7;
+ penstroke z4e{dir -69}..z5e{dir 10}..tension1..{up}z6e{up}..tension.9..{left}z7e;
+ ul_drop(8,.8cap_drop_round,x7-s,cap_curve,cap_bar);
+ fill ul_drop_edge8;.
+ fill z3r..tension1.2..z3l..tension1.2..cycle;
+ %currentpicture := currentpicture shifted(-.7u,0);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"10",2jut#+stem#+2s#,x_height#,0);
+italcorr x_height#*sind 18-1.75u#;
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"11",5u#,x_height#,desc_depth#);
+italcorr x_height#*sind 18-.75u#;
+x1h=w-s; y1c=x_height; y2=0; x2=x1;
+serif(1,stem,-90,1.5jut,0);
+penpos2(stem,0);
+fill z2l--z2r--reverse serif_edge1--cycle;
+y5=-1/4desc_depth; x5r=x2r;
+y6=-d+1/2bar; x6=x2l-1/2stem;
+penpos5(.97stem,0);
+penpos6(bar,-90);
+penstroke z2e--z5e{down}..{left}z6e;
+x7e=s; y7=-d+1/2bar;
+dl_drop(7,stem,x6-x7e,drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+currenttransform := identity;
+
+beginchar(hex"2A",3cap_stem#+3s#,body_height#,0);
+ x1=x2=x3=x4=.5w; y1=h-1/2stem; y2=y1-cap_stem; y3=y2-bar; y4=y3-bar;
+ penpos1(stem,0); penpos2(cap_bar,0); penpos3(2cap_bar,0);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle;
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,60);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,120);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,180);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,240);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,300);
+ penlabels(range 1 thru 12);
+endchar;
+
+currenttransform := identity slanted sl_parameter;
+
+beginchar(hex"0B",4jut#+2stem#+2c#+3s#,asc_height#,0);
+w:=w+1; italcorr asc_height#*sind 18-1.08u#;
+numeric dist; dist := 2jut+2stem-3c;
+x1g=x2g=s+dist; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x1; y3=x_height; x4r=x1l-.1stem; y4=x_height+1/2(asc_height-x_height);
+x5l=x4l-.05stem; y5=y4+1.5bar; x6=round (x1r+.2stem); y6=h-1/2bar;
+penpos3(stem,180);
+penpos4(.75curve,180);
+penpos5(.6curve,180);
+penpos6(bar,90);
+penstroke z3e{dir 95}...{up}z4e..z5e..{right}z6e;
+y6=y7; x7e=w-s;
+ur_drop(7,stem,x7e-x6,drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+x11g=x12g=s; y11c=x_height; y12c=0;
+serif(11,stem,-90,jut,jut);
+serif(12,stem,90,jut,jut);
+fill serif_edge12--reverse serif_edge11--cycle;
+x13=x11; y13=x_height; x14l=x13l; y14=x_height+1/2(asc_height-x_height);
+x15l=x14l; y15=y14+1.5bar; x16=x11r+.8stem; y16=h-1/2bar;
+x17r=x5l; y17=y5;
+penpos13(stem,180);
+penpos14(.75curve,180);
+penpos15(.6curve,180);
+penpos16(bar,90);
+penpos17(bar,0);
+penstroke z13e{dir 95}...{up}z14e..z15e..{right}z16e{right}..{down}z17e;
+fill z11d--z1c--z1b--z11e--cycle;
+penlabels(1,2,3,4,5,6,7,11,12,13,14,15,16,17);
+endchar;
+
+beginchar(hex"5E",6u#,body_height#,0);
+ italcorr body_height#*sind 18-1.4u#;
+ x1=s+.45cap_bar*cosd 45; x2=w/2; y2=h-bar;
+ z1=z2+whatever*dir -135; x3=w-x1; z3=z2+whatever*dir -45;
+ penpos1(bar,135); penpos2(2bar,90); penpos3(bar,45);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ %currentpicture := currentpicture shifted(-3.4u,0);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"16",6u#,body_height#,0);
+ italcorr body_height#*sind 18-1.15u#;
+ x1=s; x2=w-x1; y1=y2=h-4bar;
+ penpos1(.8bar,90); penpos2(.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ %currentpicture := currentpicture shifted(-3.5u,0);
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7F",2stem#+4s#,x_height#+2.1stem#,0);
+ italcorr body_height#*sind 18-1.75u#;
+ z1=(s+.5stem,h); z2=(s+.5stem,h-stem);
+ fill z1..z2..cycle;
+ z3=(w-s-.5stem,h); z4=(w-s-.5stem,h-stem);
+ fill z3..z4..cycle;
+ %currentpicture := currentpicture shifted(-3.1u,0);
+ penlabels(1,2,3,4);
+endchar;
+
+ligtable CYR_A: "A":
+ CYR_O kern -k#,
+ "O" kern -k#,
+ CYR_ES kern -k#,
+ "C" kern -k#,
+ CYR_TE kern -k#,
+ CYR_U kern -kk#,
+ CYR_EF kern -k#,
+ CYR_CHE kern -kkk#,
+ CYR_HARD_SIGN kern -k#,
+ "W" kern -kkk#,
+ "V" kern -kkk#,
+ "Y" kern -kkk#,
+ "T" kern -k#,
+ "w" kern -kk#,
+ "v" kern -kk#,
+ %CYR_o kern -k#,
+ %CYR_es kern -k#,
+ CYR_che kern -kk#;
+ %CYR_ie kern -k#,
+ %CYR_ye kern -k#;
+
+ligtable CYR_GHE: CYR_TE: "T":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_DE kern -k#,
+ CYR_EL kern -kk#,
+ CYR_o kern -k#,
+ "o" kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#;
+
+ligtable CYR_O: CYR_E: CYR_YU: "D": "O": "Q":
+ CYR_U kern -k#,
+ "X" kern -k#,
+ "V" kern -k#,
+ "W" kern -k#,
+ "Y" kern -kk#,
+ CYR_HA kern -k#;
+
+ligtable CYR_ER: "P":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_el kern -k#;
+
+ligtable CYR_U:
+ CYR_A kern -kkk#,
+ "A" kern -kkk#,
+ CYR_O kern -k#,
+ "O" kern -k#,
+ CYR_ES kern -k#,
+ "C" kern -k#,
+ CYR_el kern -kk#,
+ CYR_EL kern -k#,
+ CYR_EF kern -k#;
+
+ligtable CYR_HA: "X":
+ "O" kern -k#,
+ CYR_O kern -k#,
+ "Q" kern -k#,
+ "C" kern -k#,
+ CYR_ES kern -k#,
+ "G" kern -k#;
+
+ligtable CYR_ghe: CYR_te:
+ CYR_de kern -k#,
+ CYR_el kern -k#;
+
+ligtable CYR_o: CYR_er: CYR_e: CYR_yu: CYR_ye:
+ "V" kern -kk#,
+ "Y" kern -kk#,
+ "W" kern -kk#,
+ "x" kern -k#,
+ CYR_ha kern -k#;
+
+ligtable CYR_u: "y":
+ CYR_de kern -k#,
+ CYR_el kern -k#,
+ CYR_ie kern -k#,
+ "e" kern -k#,
+ CYR_es kern -k#,
+ "c" kern -k#,
+ CYR_ye kern -k#,
+ CYR_ef kern -k#;
+
+ligtable CYR_ha: "x":
+ CYR_ie kern -k#,
+ "d" kern -k#,
+ "e" kern -k#,
+ "o" kern -k#,
+ "q" kern -k#,
+ CYR_o kern -k#;
+
+ligtable "L":
+ "T" kern -kk#,
+ CYR_TE kern -kk#,
+ "Y" kern -kk#;
+
+ligtable "V": "W":
+ "A" kern -kkk#,
+ CYR_A kern -kkk#,
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ "d" kern -k#;
+
+ligtable "Y":
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "d" kern -k#,
+ "A" kern -kk#,
+ CYR_A kern -kk#;
+
+ligtable "a": CYR_a:
+ "V" kern -kk#,
+ "W" kern -kk#,
+ "T" kern -k#,
+ CYR_TE kern -k#,
+ "y" kern -k#,
+ CYR_u kern -k#,
+ "v" kern -kk#,
+ "u" kern -k#,
+ CYR_che kern -kk#,
+ "Y" kern -kk#;
+
+ligtable "e": CYR_ie:
+ CYR_ha kern -k#,
+ "v" kern -k#,
+ "w" kern -k#,
+ "V" kern -kk#,
+ "Y" kern -kk#,
+ "W" kern -kk#;
+
+ligtable "f":
+ "f" =: hex"0B";
+
+ligtable "k": "l":
+ CYR_o kern -k#,
+ "o" kern -k#;
+
+ligtable "m": "n":
+ "y" kern -k#,
+ CYR_u kern -k#,
+ CYR_o kern -k#,
+ "u" kern -k#,
+ "o" kern -k#;
+
+ligtable "o": "b": "p":
+ "e" kern k#,
+ CYR_ie kern k#,
+ "o" kern k#,
+ CYR_o kern k#,
+ "v" kern -k#,
+ "w" kern -k#,
+ "V" kern -kk#,
+ "W" kern -kk#,
+ "Y" kern -kk#,
+ "x" kern -k#,
+ CYR_ha kern -k#, 1:: "!" kern kk#;
+
+ligtable "v": "w":
+ "A" kern -kk#,
+ CYR_A kern -kk#,
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ "d" kern -k#;
+
+ligtable hex"37":
+ CYR_A kern -kk#,
+ "A" kern -kk#;
+ligtable oct"55":
+ oct"55" =: hex"7b";
+ligtable hex"7b":
+ oct"55" =: hex"7c";
+end
diff --git a/fonts/obnov/obnsl12.mf b/fonts/obnov/obnsl12.mf
new file mode 100644
index 0000000000..b5e13850ca
--- /dev/null
+++ b/fonts/obnov/obnsl12.mf
@@ -0,0 +1,3705 @@
+%written by Basil Solomykov, Russia
+%(C) Copyright 2011 LPPL (LaTeX Project Public License)
+%Font Ordinary New (Obyknovennaya novaya), Slanted
+
+design_size := 12pt#;
+o# := .54pt#;
+u# := 22/35pt#;
+bar# := 12/36pt#;
+slab# := 12/36pt#;
+cap_bar# := 12/36pt#;
+vair# := 12/36pt#;
+hair# := 12/36pt#;
+jut# := 24/36pt#;
+cap_jut# := 31.2/36pt#;
+stem# := 36/36pt#;
+curve# := 37.2/36pt#;
+cap_stem# := 43.2/36pt#;
+cap_curve# := 44.64/36pt#;
+s# := 0.5pt#;
+c# := .25pt#;
+
+input obn_lcyw_code.mf;
+font_identifier "OBNSL";
+mode_setup;
+clear_pen_memory;
+
+font_size design_size*pt#;
+asc_height# := 24/36*design_size*pt#;
+cap_height# := 24/36*design_size*pt#;
+body_height# := 27/36*design_size*pt#;
+x_height# := 15.4/36*design_size*pt#;
+desc_depth# := 8/36*design_size*pt#;
+body_depth# := 9/36*design_size*pt#;
+comma_depth# := 5/36*design_size*pt#;
+x_depth# := 4/5comma_depth#;
+bar_height# := .52x_height#;
+cap_bar_height# := .52cap_height#;
+cap_bar2_height# := .45cap_height#;
+border_height# := comma_depth#;
+cap_drop_round# := 3.82*slab#;
+drop_round# := 6.5/8cap_drop_round#;
+A_bracket# := 1.4pt#;
+bracket# := pt#;
+
+font_slant sind 16;
+font_x_height x_height#;
+font_normal_space 6u#;
+font_normal_stretch 4u#;
+font_normal_shrink 2u#;
+font_quad 13u#;
+font_extra_space 6u#;
+
+k# := .8u#;
+kk# := 1.5u#;
+kkk# := 3u#;
+
+serif_darkness := 1/30;
+define_pixels(bracket,cap_o_width,sss_width,css_width);
+define_pixels(c,s,cap_bar_height,cap_bar2_height);
+define_pixels(border_height,A_bracket,cap_drop_round,x_depth,drop_round);
+define_whole_blacker_pixels(stem,cap_stem,curve,cap_curve,bar,slab,cap_bar);
+define_whole_pixels(asc_height,cap_height,x_height,u,desc_depth,comma_depth,bar_height,body_height,body_depth,u,o,cap_jut,jut);
+define_good_x_pixels(vair);
+define_good_y_pixels(hair);
+lowres_fix(stem,curve) 1.2;
+lowres_fix(cap_stem,cap_curve) 1.2;
+if jut=cap_jut: jut:=jut-1; fi
+numeric sl_parameter;
+sl_parameter := sind 18;
+currenttransform := identity slanted sl_parameter;
+
+def serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g if left_jut=0: -1/2slab fi +1/2slab; x$d=x$e=x$h if right_jut=0: +1/2slab fi-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def serif_edge suffix $ =
+(serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse serif_bracket($f,$r,$e)) enddef;
+
+def serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...serif_darkness[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def T_serif(suffix $)(expr slab, bord_height, direction)= %Direction: 0-left, 1-right;
+penpos$(slab,if direction=1: - fi 90);
+x$=x$a=x$g; y$g-y$=y$-y$a=1/2slab;
+x$b=x$a + if direction=0: - fi .882bord_height; y$b=y$d=y$c+1/2slab;
+x$c=x$b + if direction=0: - fi 1/2slab; y$c=y$a-bord_height;
+x$d=x$e=x$b + if direction=0: - fi slab;
+y$e=y$g-1/2slab; y$f=y$g; x$f=x$c;
+labels($a,$b,$c,$d,$e,$f,$g) enddef;
+
+def T_edge suffix $ =
+(z$a..{down}z$b..z$c..z$d--z$e{up}..z$f--z$g--cycle) enddef;
+
+def A_serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(A_bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g+1/2slab; x$d=x$e=x$h-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def A_serif_edge suffix $ =
+(A_serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse A_serif_bracket($f,$r,$e)) enddef;
+
+def A_serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...0.6[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def ur_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a= 1/2slab;
+x$e=x$a + drop_length; y$e=y$f- drop_height;
+x$d=x$e - 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e - drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d - 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ur_drop_edge suffix $ =
+(z$f{right}..tension.9..{down}z$e{down}..{left}z$d{left}..{up}z$c{up}..z$b...{left}z$a--cycle) enddef;
+
+def ul_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$f- drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d + 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ul_drop_edge suffix $ =
+(z$f{left}..tension.9..{down}z$e{down}..{right}z$d{right}..{up}z$c{up}..z$b...{right}z$a--cycle) enddef;
+
+def dl_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, -90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$a + drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e + 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d - drop_round); x$b=x$d + 1/90drop_round;
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def dl_drop_edge suffix $ =
+(z$a{left}..tension.9..{up}z$e{up}..{right}z$d{right}..{down}z$c..{dir 250}z$b{dir -80}..{right}z$f--cycle) enddef;
+
+def S_serif (suffix $)(expr serif_slab, serif_length, serif_height)=
+%penpos$(serif_slab,90);
+x$a=x$i=x$; y$i=y$+1/2serif_slab; y$a=y$-1/2serif_slab;
+x$f=x$e=x$a+serif_length; y$f=y$g-1/2serif_slab; y$e=y$c=y$d+1/2serif_slab;
+x$g=x$f-1/2serif_slab; y$g=y$i-1/2serif_slab;
+y$h=y$f-1/4serif_slab; x$h=x$g-serif_slab;
+x$c=x$e-serif_slab; x$d=x$e-1/2serif_slab; y$d=y$g-serif_height;
+x$b=x$h-6/18serif_length; y$b=y$h-1/2slab;
+labels ($a,$b,$c,$d,$e,$f,$g,$h,$i) enddef;
+
+def S_serif_edge suffix $ =
+(z$a{right}...z$b..{dir -80}z$c..z$d..z$e--z$f{up}..z$g{left}..z$h{dir 150}..{left}z$i--cycle) enddef;
+
+beginchar(CYR_A,13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar(CYR_BE,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.75u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=y5=h-1/2slab;
+y1c=h; y2c=0; x5e=w-s-1/2cap_stem;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h; x4=w-s-1/2cap_stem-border_height;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_VE,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.3u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+css_width := x8 - x2r; save css_width;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar(CYR_GHE,9u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.85u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; x3=x4+2u;
+y5=y3; x5e=w-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_DE,12u#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-1.1u#;
+x10e=w-s; y10c=-d;
+y4c=h; x4h=w-s-1/2slab;
+x9=x4; y9c=0;
+x3=x8=x9d; y8=y7=1/2cap_bar; y3=y2=h-y8;
+x6e=s; y6=y10; x7=border_height+s;
+y5=y9; x5g=s+.5u; y1=y4; x1=x5+1.5u;
+x2=x1c;
+A_serif(1,1.2cap_bar,-96,10/7cap_jut,cap_jut);
+A_serif(5,1.2cap_bar,81,6/7cap_jut,cap_jut);
+serif(4,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+penpos2(cap_bar,90);
+penpos3(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_bar,90);
+penstroke z7e--z8e; penstroke z2e--z3e;
+fill A_serif_edge5...reverse A_serif_edge1...cycle;
+fill serif_edge9--reverse serif_edge4--cycle;
+T_serif(6,slab,border_height,0);
+T_serif(10,slab,border_height,1);
+fill T_edge6;
+fill T_edge10;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_IE,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.25u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_YE,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.25u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+x12=x13=x2r; y12=h+1/4cap_stem; y13=y12+cap_stem;
+x14=x15=x12+2cap_stem; y14=y12; y15=y13;
+fill z12..z13..cycle; fill z14..z15..cycle;
+penlabels(range 1 thru 15);
+endchar;
+
+beginchar(CYR_ZHE,round (16u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-1.2u#;
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; y7=y4=y10=y11=cap_bar_height; x4=x7-1.5u;
+x10=x8r; x11=x10+1.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+x6=s; y6=0; y4-y5=y5-y6; x4-x5=x5-x6;
+penpos7(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,90);
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z6e{right}..tension.8..{up}z5e{up}..tension.8..{right}z4e--z7e;
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+x3=x5+1/2cap_stem; y2=h; x4-x3=x3-x2; y2-y3=y3-y4;
+penpos3(hair,0);
+penpos2(cap_bar,90);
+penstroke z4e{left}..tension.8..{up}z3e{up}..tension.8..{left}z2e;
+y1=h; x1a=x2; fill z6l..z6r..cycle;
+ul_drop(1,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ul_drop_edge1; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ZE,10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.15u#;
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height;
+x4=x6-3/2cap_stem; x5=x4-3u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3c,1.4border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.5cap_drop_round,slab);
+fill dl_drop_edge8;
+%currentpicture := currentpicture shifted(-.7u,0);
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_I,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-30); penpos6(cap_bar,-30);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar(CYR_SHORT_I,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-30); penpos6(cap_bar,-30);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+x7=.5w; y7=h+cap_bar;
+ur_drop(7,.8cap_drop_round,1/2(x3l-x1r),.8cap_drop_round,1.2cap_bar);
+fill ur_drop_edge7 rotatedaround(z7,180);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_KA,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.2u#;
+x8g=x9g=s; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+y10=y11=cap_bar_height;
+x10=x8r; x11=x10+2.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13; fill z16l..z16r..cycle;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_EL,13u#+1/2s#,cap_height#,0);
+italcorr cap_height#*sind 18-.8u#;
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+cap_drop_round; y3=1.1cap_drop_round;
+dl_drop(1,1.1cap_drop_round,1.1cap_drop_round,1.2cap_drop_round,slab);
+fill dl_drop_edge1;
+penpos2(cap_bar,-90);
+penpos3(cap_bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-slab;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,cap_bar,theta1,1.3cap_jut,1.3cap_jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,cap_stem,-90,cap_jut,cap_jut);
+serif(8,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z5e--z6e;
+%currentpicture := currentpicture shifted(-.5u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_EM,13u#+1.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,.51cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 109; y7l=10/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EN,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_O,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.3u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+cap_o_width := x7-x3; save cap_o_width;
+%currentpicture := currentpicture shifted(-1.6u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_PE,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ER,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.63u#;
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_ES,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.2u#;
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+%currentpicture := currentpicture shifted(-1.5u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_TE,round (11u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+%currentpicture := currentpicture shifted(-2.4u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_U,13u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.86u#;
+x1l=s+cap_jut; y1l=.98h-cap_bar;
+x3r=w-s-.8cap_jut; y3r=.98h-cap_bar;
+x4=33/60w; y4=6/53h;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.2cap_jut,.8cap_jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=0; x6=x4-1.1cap_stem; z7l=z2;
+penpos7(cap_bar,theta2+90);
+penpos5(cap_bar,theta2+90);
+penpos6(cap_bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,cap_drop_round,2u,10/53h,cap_bar);
+fill dl_drop_edge8;
+%currentpicture := currentpicture shifted(-3u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EF,round (14u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-2.3u#;
+if .5w = good.x .5w: change_width; fi
+x1=x2=.5w; y2c=0; y1h=h;
+y6=y7=y8=y9=1.3cap_jut; y4=y3=y11=y12=h-1.3cap_jut+1/2slab;
+x3=x7=x2l; x8=x12=x2r; x4=x6=x3-u; x11=x9=x12+u;
+x5=s+1/2cap_curve; x10-x1=x1-x5; y4-y5=y5-y6; y10=y5;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,270);
+penpos7(cap_bar,270);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+penpos10(cap_curve,0);
+penpos11(cap_bar,90);
+penpos12(cap_bar,90);
+penstroke z3e--z4e{left}..tension.8..{down}z5e{down}..tension.8..{right}z6e--z7e;
+penstroke z8e--z9e{right}..tension.8..{up}z10e{up}..tension.8..{left}z11e--z12e;
+%currentpicture := currentpicture shifted(-1.6u,0);
+penlabels (range 1 thru 12);
+endchar;
+
+beginchar(CYR_HA,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.37u#;
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_TSE,12.5u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-1.37u#;
+x1=x2=x5=cap_jut+1/2cap_stem+s;
+x3=x4=x6=w-x1-.5u; y5=y6=y2h;
+y1c=y3c=h; y2c=y4c=0; x7e=w-s; y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e;
+T_serif(7,cap_bar,border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_CHE,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=cap_jut+1/2cap_stem+s; x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,-90,cap_jut,cap_jut);
+serif(3,cap_stem,90,cap_jut,cap_jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l+.1c; y5=cap_bar_height-1/2cap_bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-2cap_bar;
+penpos6(cap_stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+%currentpicture := currentpicture shifted(-3.4u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SHA,16u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.87u#;
+if .5w <> good.x .5w: change_width; fi
+x1=x2=good.x (cap_jut+1/2cap_stem+s);
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=good.x .5w; y5=y1; y6=y2;
+y9b=slab; x9=good.x w-x1;
+x10=x9; y10b=h-slab;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_SHCHA,16.5u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-1.38u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=slab; x9h=w-s-.5u;
+x10=x9; y10b=h-slab;
+x11e=w-s; y11=y9h;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,slab,border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_HARD_SIGN,13.5u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-3.4u#;
+x2r=x5-css_width; x1=x2; x8e=0; y8g=h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+x7=x1d; y1c=h; y2c=0;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y3=y4=cap_bar_height; x3=x2r-.1c;
+x4=x6=round(x3+5u-cap_stem); y6=y7=y2h;
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(8,cap_bar,border_height,0);
+fill T_edge8;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+%currentpicture := currentpicture shifted(-1.4u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YERU,16u#+c#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+y3=y4=cap_bar_height; x3=x2r-.1c;
+x4=x6=round (x3+5u-cap_stem) - 1;
+y4-y5=y5-y6; x5=x2r+css_width; y8b=slab; x8h=w-s;
+y6=y7=y2h; x9=x8; y9b=h-slab;
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(8,cap_stem,90,cap_jut,cap_jut);
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge9--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SOFT_SIGN,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-3.4u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=cap_bar_height; x3=x2r-.1c; x4=x6=x3+5u-cap_stem;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y6=y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_E,10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.2u#;
+x1=16/39w; x5=.5w; y1=0; y5=h;
+y7=.5h; x7=w-1/2cap_curve-s;
+x9e=s; y9=0;
+dl_drop(9,cap_drop_round,16/39w-s,1.7cap_drop_round,slab);
+y8=0.1h-c; y6=0.9h+c; x8=x9+9/16(x7-x9); x6=x5+9/16(x7-x5);
+penpos5(cap_bar,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+penpos1(cap_bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+y2=y5; x2=x5-c;
+S_serif(2,slab,x1+c,1.5border_height);
+x3=x7-1/2cap_stem; y3=y4=cap_bar_height; x4=x2b-x1;
+penpos3(cap_bar,90); penpos4(cap_bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+%currentpicture := currentpicture shifted(-.7u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YU,16u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.33u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+y3=y7=.5h; x7=w-1/2cap_curve-s; x3=x7-cap_o_width; y9=0; y5=h; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3cap_stem; y11=y12=cap_bar_height;
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_YA,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=w-cap_jut-1/2cap_stem-s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2l;
+y1c=h; y2c=0; x6=x4=x7-2.5u; x3=x1c;
+y4-y5=y5-y6; x5=x8-1.5c; x9=s; y9=0; y6-y8=y8-y9; x7-x10=3(x10-x6); x10-x8=x8-x9;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos7(cap_bar,270);
+penpos6(cap_bar,270);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90); fill z9l..z9r..cycle;
+penstroke z3e--z4e{left}..tension.9..z5e..tension.9..{right}z6e--z7e;
+penstroke z9e{right}..tension1..{up}z8e{up}..tension1..{right}z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_a,9u#-s#+2/7stem#,x_height#,0);
+x5=w-s-1/2bar; y5=0; y4=6/7stem; x4=x3=x5-5/7stem-1/2stem;
+y3=bar_height+2bar; y2=y1=h; x2=s+c+6/20w; x1e=s+c;
+ul_drop(1,drop_round,x2-s-c,5/4drop_round,bar);
+fill ul_drop_edge1;
+penpos2(bar,90);
+penpos3(stem,0);
+penpos4(stem,0);
+penpos5(bar,90);
+penstroke z2e{right}..{down}z3e--z4e{down}..{right}z5e;
+fill z5r..z5l..cycle;
+y6=bar_height+1/2bar; x6=x3+1/2stem; x7=s+1/2stem; y7=7/17bar_height;
+y8=0; x9=x4-1/2stem+1/2bar; x9-x8=x8-x7; y9=y4+3/2bar; x66=x8; y66=y6-c;
+numeric theta[]; theta1=angle(z66-z6);
+penpos6(vair,90);
+penpos66(vair,90);
+penpos7(curve,180);
+penpos8(vair,270);
+penpos9(bar,360);
+penstroke z6e{left}..z66e{dir theta1}..tension.8..{down}z7e{down}..tension.8..z8e{right}..{up}z9e;
+%currentpicture := currentpicture shifted(-.4u,0);
+penlabels(range 1 thru 9,66);
+endchar;
+
+beginchar(CYR_be,8u#,asc_height#,0);
+italcorr asc_height#*sind 18-.9u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2stem+s; x7=w-1/2stem-s;
+y2=y8=0.1x_height; y4=y6=0.9x_height; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+y9=y3; x9=s+1/2bar; y10=44/51h; x10=x5+c; x11=w-s-1/2bar; y11=h-1/2bar; %x11=w-1/2bar*sind 45; y11=h-1/2bar*sind 45;
+penpos9(hair,180);
+penpos10(curve,90);
+penpos11(hair,180);
+penstroke z9e{up}..{right}z10e{right}..tension1..z11e;
+fill z11l..tension2..z11r..tension2..cycle;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_ve,9u#-s#,x_height#,0);
+italcorr x_height#*sind 18-1.7u#;
+x1=x2=jut+1/2stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x9=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h; y8=y9=h-1/2bar; x8=x1d;
+y9-y10=y10-y4; x10=x5-c;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penpos8(bar,270);
+penpos9(bar,270);
+penpos10(curve,180);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penstroke z8e{right}..tension.8..z10e..tension.8..{left}z4e;
+sss_width := x5 - x2r; save sss_width;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ghe,7u#,x_height#,0);
+italcorr x_height#*sind 18-.86u#;
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; y3=y4=y5=h-1/2bar; x3=x1d; x5e=w-s;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+T_serif(5,bar,4/5border_height,1);
+x4=x5;
+fill serif_edge2--reverse serif_edge1--cycle;
+fill T_edge5;
+penpos3(bar,90);
+penpos4(bar,90);
+penstroke z3e--z4e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_de,9u#,x_height#,x_depth#);
+italcorr x_height#*sind 18-u#;
+x3=x4=w-jut-1/2stem-s-.1u;
+y3c=h; y4c=0;
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+x7e=s; x10e=w-s; y7=y8=y9=y10=y4h; x8=x7; x9=x4c;
+T_serif(7,bar,4/5border_height,0);
+T_serif(10,bar,4/5border_height,1);
+fill T_edge7; fill T_edge10;
+penpos8(bar,90); penpos9(bar,90);
+penstroke z8e--z9e;
+x2=s+1.3jut+1/2bar; y2=bar; x1=x2+3/2bar; y1=h-bar;
+numeric theta[]; theta1=angle(z1-z2);
+A_serif(1,bar,theta1-180,1.3jut,jut);
+A_serif(2,bar,theta1,1.3jut,.8jut);
+fill A_serif_edge2..reverse A_serif_edge1..cycle;
+y5=y6=y3h; x5=x1d; x6=x3c;
+penpos5(bar,90);
+penpos6(bar,90);
+penstroke z5e--z6e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ie,8u#,x_height#,0);
+italcorr x_height#*sind 18-1.7u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x5+5/8(x7-x5);
+x10=w-s-1/2bar; y10=y7-5/4stem;
+penstroke z10e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ye,8u#,asc_height#,0);
+italcorr asc_height#*sind 18-2.2u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=x5=.5w; y1=0; y5=x_height;
+y3=.5x_height; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.1x_height; y4=y6=0.9x_height; x2=x4=x3+3/8(x5-x3); x6=x5+5/8(x7-x5);
+x10=w-s-1/2bar; y10=y7-5/4stem;
+penstroke z10e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+y12=y14=h; y11=y13=h-stem; x11=x12=x3r+c; x13=x14=x7r-c;
+fill z11..z12..cycle; fill z13..z14..cycle;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 14);
+endchar;
+
+beginchar(CYR_zhe,round (13u#+s#),x_height#,0);
+italcorr x_height#*sind 18-1.42u#;
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,stem,-90,jut,jut);
+serif(9,stem,90,jut,jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; x4=x7-u; y4=y7=y10=y11=bar_height; x10=x8r; x11=x10+u;
+x6=s+1/2bar; y6=y16=0; y4-y5=y5-y6; x4-x5=1.3(x5-x6);
+x16=w-s-1/2bar; 1.3(x16-x15)=x15-x11; y11-y15=y15-y16;
+x2=x5-c; y2=y1=h; x4-x3=x3-x2; y2-y3=y3-y4; x1e=s+c;
+y13=y14=h; x13=x15+c; x13-x12=x12-x11; y13-y12=y12-y11; x14e=w-s-c;
+penpos2(bar,90);
+penpos3(hair,0);
+penpos4(bar,90);
+penpos5(curve,180);
+penpos6(bar,90);
+penpos7(bar,90);
+penpos10(bar,90);
+penpos11(bar,90);
+penpos12(hair,180);
+penpos13(bar,90);
+penpos15(curve,0);
+penpos16(bar,90);
+penstroke z7e--z4e{left}..tension.9..{down}z5e{down}..tension.9..{left}z6e;
+fill z6r..z6l..cycle;
+penstroke z10e--z11e{right}..tension.9..{down}z15e{down}..tension.9..{right}z16e;
+fill z16r..z16l..cycle;
+penstroke z4e{left}..z3e..{left}z2e;
+penstroke z11e{right}..z12e..{right}z13e;
+ul_drop(1,drop_round,x2-s-c,.9drop_round,bar);
+ur_drop(14,drop_round,x2-s-c,.9drop_round,bar);
+fill ul_drop_edge1; fill z1e..z1c..cycle;
+fill ur_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ze,6u#+2s#,x_height#,0);
+italcorr x_height#*sind 18-1.5u#;
+x7=18/39w; y7=0; y4=y5=y44=bar_height;
+x4=x6-3/2stem; x5=x4-u;
+x6=w-s-1/2curve; y4-y6=y6-y7;
+x2=.45w; y2=h; x3=x6-1/5curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(bar,90);
+penpos3(curve,0);
+penpos44(bar,-90);
+penpos4(bar,90);
+penpos5(bar,90);
+penpos6(curve,0);
+penpos7(bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3.5c,border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,drop_round,18/39w-s,1.5drop_round,bar);
+fill dl_drop_edge8;
+%currentpicture := currentpicture shifted(-.5u,0);
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_i,9u#+s#,x_height#,0);
+italcorr x_height#*sind 18-.86u#;
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r-1/2bar; x6=x3l+1/2bar;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,-30); penpos6(bar,-30);
+y5=.1h; y6=.9h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_short_i,9u#+s#,asc_height#,0);
+italcorr x_height#*sind 18-.86u#;
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r-1/2bar; x6=x3l+1/2bar;
+y1c=y3c=x_height; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,-30); penpos6(bar,-30);
+y5=.1x_height; y6=.9x_height; penstroke z5e--z6e;
+x7=.5w; y7=h-3/2drop_round;
+ur_drop(7,drop_round,x3-.5w,1.1drop_round,1.2bar);
+fill ur_drop_edge7 rotatedaround(z7,180);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ka,9u#+.5s#,x_height#,0);
+italcorr x_height#*sind 18-1.42u#;
+x1g=x2g=s; y1c=h; y2c=y9=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=bar_height; x3=x1r; x4=x3+1.25u;
+x9=w-s-1/2bar; 1.3(x9-x8)=x8-x4; y4-y8=y8-y9;
+y6=y7=h; x6=x8+c; x6-x5=x5-x4; y6-y5=y5-y4; x7e=w-s-c;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(hair,180);
+penpos6(bar,90);
+penpos8(curve,0);
+penpos9(bar,90);
+penstroke z3e--z4e{right}..tension.9..{down}z8e{down}..tension.9..{right}z9e;
+fill z9r..z9l..cycle;
+penstroke z4e{right}..z5e..{right}z6e;
+ur_drop(7,drop_round,w-x6-s,.9drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_el,9u#+s#,x_height#,0);
+italcorr x_height#*sind 18-.85u#;
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.7drop_round; y3=1.1drop_round;
+dl_drop(1,drop_round,drop_round,drop_round,bar);
+fill dl_drop_edge1;
+fill z1c..z1e..cycle;
+penpos2(bar,-90);
+penpos3(bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-bar;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,bar,theta1,1.4jut,1.3jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,stem,-90,jut,jut);
+serif(8,stem,90,jut,jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(bar,90); penpos6(bar,90);
+penstroke z5e--z6e;
+%currentpicture := currentpicture shifted(-.3u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_em,10u#+1.5s#,x_height#,0);
+italcorr x_height#*sind 18-.86u#;
+x1g=s; y1c=0; y2=h-bar;
+A_serif(1,bar,90,jut,jut);
+x2=x1; serif(2,bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2bar; y4c=0;
+serif(3,stem,-90,.51bar, jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -109; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 109; y7l=6/28h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(stem,0); penpos8(stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_en,9u#+s#,x_height#,0);
+italcorr x_height#*sind 18-.86u#;
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_o,8u#+s#,x_height#,0);
+italcorr x_height#*sind 18-1.75u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2curve-s;
+y2=y8=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+%currentpicture := currentpicture shifted(-1.1u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_pe,9u#+s#,x_height#,0);
+italcorr x_height#*sind 18-.86u#;
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_er,8u#+jut#,x_height#,desc_depth#);
+italcorr x_height#*sind 18-1.72u#;
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+.2s+.6(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=y8=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=-desc_depth;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_es,8u#,x_height#,0);
+italcorr x_height#*sind 18-1.7u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=1/2curve+s;
+y2=0.1h; y4=0.9h; x2=x4=x3+3/8(x5-x3);
+x6=w-s-1/2hair; y6=y3-4/5stem;
+penstroke z6e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e;
+fill z6r..z6l..cycle;
+z7=z5;
+ur_drop(7,drop_round,7/8(x6l-x1),3/2drop_round,bar);
+fill ur_drop_edge7;
+%currentpicture := currentpicture shifted(-1.05u,0);
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(CYR_te,round (8u#-.5s#),x_height#,0);
+italcorr x_height#*sind 18-.85u#;
+if .5w = good.x .5w: change_width; fi
+x2=x3=.5w; x1e=s; x4e=w-s; y1=y4=y2h;
+y2c=h; y3c=0;
+serif(2,stem,-90,jut,jut);
+serif(3,stem,90,jut,jut);
+T_serif(1,bar,4/5border_height,0);
+T_serif(4,bar,4/5border_height,1);
+fill serif_edge3--reverse serif_edge2--cycle;
+fill T_edge1; fill T_edge4;
+%currentpicture := currentpicture shifted(-1.35u,0);
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_u,9u#+s#,x_height#,desc_depth#);
+italcorr x_height#*sind 18-.8u#;
+x1l=s+jut; y1l=h-bar;
+x3r=w-s-.8jut; y3r=h-bar;
+x4=33/60w; y4=-2/5d;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,1.2bar,theta2,1.2jut,.8jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=-d+bar; x6=x4-1.5stem; z7l=z2;
+penpos7(1.2bar,theta2+90);
+penpos5(1.2bar,theta2+90);
+penpos6(1.2bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,1.1stem,1.3u,drop_round,1.2bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(CYR_ef,12u#,asc_height#,desc_depth#);
+italcorr x_height#*sind 18-1.7u#;
+if .5w = good.x .5w: change_width; fi
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w+.5(.5w-s)-.8c; y1=0; y5=x_height;
+y3=y7=y12=.5x_height; x3=.5w; x7=w-1/2curve-s;
+y2=y8=y9=y11=0.1x_height; y4=y6=y13=y15=0.9x_height;
+x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+z16=z3; x14=x10=.5w-.5(.5w-s)+.8c; y10=0; y14=x_height;
+x12=s+1/2curve; x9=x15=x16-3/8(x16-x14); x11=x13=x14-5/8(x14-x12);
+penpos10(vair,90);
+penpos11(o,30);
+penpos12(curve,0);
+penpos13(o,-30);
+penpos14(vair,-90);
+penpos15(.7o,-150);
+penpos16(stem,-180);
+penpos9(.7o,-210);
+penstroke z10e..z11e..z12e..z13e..z14e..z15e..z16e..z9e..cycle;
+x99=x155=x3l; x44=x222=x3r; y99=y222=.5x_height-3/2stem; y155=y44=.5x_height+3/2stem;
+unfill z99--z155--z44--z222--cycle; penlabels(44,99,155,222);
+x20=.5w; y20=-.75d; x17=x30=x3l; x23=x24=x3r; y17=y23=-1/2d;
+x18=x19=x17-4/5stem; x21=x22=x23+4/5stem; y18=y22=-d+bar; y19=y21=-d;
+y24=y30=x_height+3/5(asc_height-x_height);x25=x22-c; x29=x18+c; y29=y25=h-1/2bar;
+y28=y26=h; x28=x29+1/2bar; x26=x25-1/2bar; x27=.5w; y27=h-bar;
+fill z30---z17{dir -100}..tension2..z18{left}..{right}z19{right}..{dir 20}z20{dir -20}..{right}z21{right}..{left}z22..tension2..{dir 100}z23---z24{dir 80}..{dir 20}z25{dir 160}..{left}z26{left}..{dir -160}z27{dir 160}..{left}z28{left}..{dir -160}z29{dir -20}..{dir -80}z30&cycle;
+%currentpicture := currentpicture shifted(-.9u,0);
+penlabels (range 1 thru 30);
+endchar;
+
+beginchar(CYR_ha,9u#+c#,x_height#,0);
+italcorr x_height#*sind 18-1.25u#;
+y3=y4=bar; x3=w-s-jut-1/2stem; x4=s+jut+1/2bar;
+y1=y2=h-bar; x1=s+jut+1/2stem+c; x2=w-s-1.25c-jut-1/2bar;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,stem,theta1-180,jut,jut);
+A_serif(2,1.2bar,theta2-180,jut,jut);
+serif(3,stem,theta1,jut,jut);
+A_serif(4,1.2bar,theta2,jut,1.3jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_tse,9.1u#+s#,x_height#,x_depth#);
+italcorr x_height#*sind 18-.96u#;
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1-.1u; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=y2h; penstroke z5e--z6e;
+x7e=w-s; y7=y4h;
+T_serif(7,bar,4/5border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_che,9u#+s#,x_height#,0);
+italcorr x_height#*sind 18-.85u#;
+x1=jut+1/2stem+s; x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,-90,jut,jut);
+serif(3,stem,90,jut,jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l+.1c; y5=bar_height-1/2bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-.8bar;
+penpos6(stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+%currentpicture := currentpicture shifted(-2.3u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_sha,round (13u#+3/2s#),x_height#,0);
+italcorr x_height#*sind 18-.86u#;
+if .5w = good.x .5w: change_width; fi
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=.5w; y5=y1; y6=y2;
+y9b=bar; x9h=w-s;
+x10=x9; y10b=h-bar;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,stem,-90,jut,jut);
+serif(6,stem,90,jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,stem,90,jut,jut);
+serif(10,stem,-90,jut,jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos7(bar,90);
+penpos8(bar,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_shcha,13.1u#+3/2s#,x_height#,x_depth#);
+italcorr x_height#*sind 18-.97u#;
+if .5w <> good.x .5w: change_width; fi
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=bar; x9h=w-s-.1u;
+x10=x9; y10b=h-bar;
+x11e=w-s; y11=y9h;
+serif(9,stem,90,jut,jut);
+serif(10,stem,-90,jut,jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,stem,-90,jut,jut);
+serif(6,stem,90,jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos7(bar,90);
+penpos8(bar,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,bar,4/5border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_hard_sign,10u#-s#,x_height#,0);
+x2r=x5-sss_width; x1=x2; x7=x1d;
+y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h; x8e=0; y8g=h;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+T_serif(8,bar,4/5border_height,0);
+fill T_edge8;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+x9=c; y9=y10=h; x10=-.1c;
+unfill z8d{up}..z9--z10--cycle;
+%currentpicture := currentpicture shifted(-.95u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_yeru,12u#-c#,x_height#,0);
+italcorr x_height#*sind 18-.86u#;
+x1=x2=jut+1/2stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=x2r+sss_width;
+y6=y7=y2h; x8h=x9h=w-s; y8c=h; y9c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(8,stem,-90,jut,jut);
+serif(9,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge9--reverse serif_edge8--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_soft_sign,9u#-s#,x_height#,0);
+x1=x2=jut+1/2stem+s; x7=x1d;
+y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_e,6u#+2s#,x_height#,0);
+italcorr x_height#*sind 18-1.6u#;
+x1=16/39w; x5=.5w-c; y1=0; y5=h;
+y7=.5h; x7=w-1/2curve-s;
+x9e=s; y9=0;
+dl_drop(9,drop_round,18/39w-s,1.5drop_round,bar);
+y2=y5; x2=x5;
+S_serif(2,bar,x5-s-c,border_height);
+x3=x7-1/2stem; y3=y4=bar_height; x4=x9c-c;
+penpos3(bar,90); penpos4(bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+y8=0.1h-c; y6=0.9h+c; x8=x1+5/8(x7-x9)+.1c; x6=x2+5/8(x7-x5);
+penpos5(bar,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+penpos1(bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+%currentpicture := currentpicture shifted(-.5u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_yu,12u#+.5s#,x_height#,0);
+italcorr x_height#*sind 18-1.75u#;
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x3l=x1h+.3bar; y9=0; y5=h;
+y3=y7=.5h; x7=w-1/2curve-s; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+c+3/8(x5-x3); x6=x8=x5-c+5/8(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3stem; y11=y12=bar_height;
+penpos11(bar,90); penpos12(bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ya,8u#+s#+1/2bar#,x_height#,0);
+italcorr x_height#*sind 18-.86u#;
+x1=x2=w-jut-1/2stem-s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2l; x4=x6=x3-2.5u+stem;
+y5-y4=y6-y5; x5=1/2stem+2s;
+y6=y7=y1h; x9=s; y9=0; x4-x8=x8-x9; y4-y8=y8-y9;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,-90);
+penpos4(bar,-90);
+penpos5(curve,180);
+penpos6(bar,90);
+penpos7(bar,90);
+penpos8(curve,0);
+penpos9(bar,-90);
+penstroke z3e--z4e{left}..tension.8..z5e..tension.8..{right}z6e--z7e;
+penstroke z9e{right}..{up}z8e{up}..{right}z4e;
+fill z9r..z9l..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar("A",13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5r];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar("B",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.3u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,1/2cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("C",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.2u#;
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+%currentpicture := currentpicture shifted(-1.5u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("D",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-2.3u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(o,30);
+penpos6(cap_curve,0);
+penpos7(o,-30);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+x3=x9=x1d;
+x8=x4=.5w; y8=y9=1/2cap_bar; y4=y3=h-1/2cap_bar;
+y6=.5h; x6=w-1/2cap_curve-s;
+y7=0.1h-c+1/2cap_bar; y5=0.9h+c-1/2cap_bar; x5=x7=x4+4.5/8(x6-x4);
+penstroke z3e--z4e{right}..z5e..z6e..z7e..{left}z8e--z9e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("E",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.25u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("F",10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("G",10u#+cap_jut#+c#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.95u#;
+x1=x5=23/42(w-cap_jut-c); y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s-cap_jut-c; y8=y1; x8=x1-.1(w-cap_jut-c);
+S_serif(6,slab,w-s-2c-x1-cap_jut,1.5border_height);
+S_serif(7,slab,w-s-x1-cap_jut+c,7/4border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+x9r=x7e; y9r=7/4border_height-1/2cap_bar;
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+x10=x9l; x11=x9r; y10=y11=3/4cap_bar;
+fill reverse serif_edge9--z10--z11--cycle;
+%currentpicture := currentpicture shifted(-1.5u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("H",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("I",2cap_jut#+cap_stem#+2s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+endchar;
+
+beginchar("J",7u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.8u#;
+x1=x4=w-cap_jut-1/2cap_stem-s;
+y1c=h; y2=y3=y4=13/53h; x2=x1r; x3=x1l;
+y5=0; x5=x3-.55cap_stem;
+serif(1,cap_stem,-90,1.2cap_jut,cap_jut);
+fill z3--z2--reverse serif_edge1--cycle;
+penpos4(cap_stem,0);
+penpos5(cap_bar,-90);
+penstroke z4e{down}..{left}z5e;
+x6e=s; y6=0;
+dl_drop(6,cap_drop_round,x5-s,1.3drop_round,cap_bar);
+fill dl_drop_edge6;
+%currentpicture := currentpicture shifted(-.4u,0);
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("K",13u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-1.95u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=cap_bar_height; x3l=w-cap_jut-.5cap_jut-cap_bar-s; y3l=h-cap_bar;
+x5=x6=x1r-.1c; y5=cap_bar_height-cap_bar; y6=y5-1.2cap_bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+A_serif(3,cap_bar,theta1,1.5cap_jut,.6cap_jut);
+x4l=w-s-1.2cap_jut-cap_stem; y4l=cap_bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,cap_stem,theta2,.8cap_jut,cap_jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("L",10u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=y5=y2h; x3=x2d; x5e=w-s;
+T_serif(5,cap_bar,border_height,1); x4=x5;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penstroke z3e--z4e;
+fill T_edge5 reflectedabout(z3,z4);
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar("M",13u#+1.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,.51cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 109; y7l=10/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("N",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_bar+s;
+x3=w-x1; y1c=y3c=h; y2c=y4=y5=0;
+x4=x3r; x5=x3l;
+serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+A_serif(2,cap_bar,90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill A_serif_edge2--reverse serif_edge1--cycle;
+numeric theta[]; y7=y1h; x7=x1h-1.1cap_stem;
+theta1=angle(z5-z7);
+z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+fill z6--z1h--z7--z5{down}..{up}z4--reverse A_serif_edge3--cycle;
+unfill z1b--z1l--z1a--cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("O",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.3u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+%currentpicture := currentpicture shifted(-1.6u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("P",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.63u#;
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Q",11u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-2.3u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x12-1.5c; x12=x7l-c; y11=y12=-comma_depth;
+y9=0; x9=x1-c; y9-y10=y10-y11; x11-x10=x10-x9;
+penpos9(cap_bar,90); penpos10(cap_curve,0);
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z9e{dir -20}..tension.8..z10e..tension.8..{right}z11e--z12e;
+fill z12r..z12l..cycle;
+%currentpicture := currentpicture shifted(-1.6u,0);
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("R",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.8u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2r;
+y1c=h; y2c=0; x6=x4=x7+2.5u; x3=x1d;
+y4-y5=y5-y6; x5=x8; x9=w-s-1/2cap_bar; y9=0; y6-y8=y8-y9; x10=x6; x9-x8=6/7(x8-x10);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,-90);
+penpos6(cap_bar,-90);
+penpos8(cap_curve,-180);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penstroke z9e{left}..tension.8..{up}z8e{up}..tension.8..{left}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("S",9u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.81u#;
+x6=x7=1/2w; y6=y7=0;
+S_serif(7,cap_bar,x6-s,1.5border_height);
+y5=11/53h; x5=w-s-1/2(1.9hair);
+y4=28/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2(1.9cap_bar);
+x2=.5w-c; y2=h; z1=z2;
+penpos6(cap_bar,-90);
+penpos5(1.9hair,0);
+penpos4(1.1cap_curve,90);
+penpos3(1.9hair,0);
+penpos2(cap_bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-cap_bar,1.2border_height);
+fill S_serif_edge1;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("T",round (11u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+%currentpicture := currentpicture shifted(-2.4u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("U",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=cap_jut+1/2cap_stem+s;
+x3=w-s-cap_jut-1/2cap_bar;
+y1c=y3c=h; y2=y4=y5=y6=y24=y56=16/53h; x2=x1l;
+x4=x1r; x5=x3l; x6=x3r;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill z2--z4--reverse serif_edge1--cycle;
+fill z5--z6--reverse A_serif_edge3--cycle;
+x7=x1+.5(x3-x1); y7=0; x4-x24=x24-x2; x6-x56=x56-x5;
+penpos24(cap_stem,-180); penpos7(vair,-90);
+penpos56(cap_bar,0);
+penstroke z24e{down}..tension.9..{right}z7e{right}..tension.9..{up}z56e;
+%currentpicture := currentpicture shifted(-2.3u,0);
+penlabels(range 1 thru 7,24,56);
+endchar;
+
+beginchar("V",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1l=cap_jut+s; x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w-1/2cap_bar; x5=.5w+1/2cap_bar;
+y4=y5=1/2cap_bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+%currentpicture := currentpicture shifted(-3.7u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("W",17u#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x9l=.5w-.3cap_stem; x7r=w-s-cap_jut;
+y9l=y7r=y1l=h-cap_bar; x5=x9l+.5(x7r-x9l)-1/2cap_bar; x6=x9l+.5(x7r-x9l)+1/2cap_bar;
+y5=y6=y2=y3=1/2cap_bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(7,cap_bar,theta2,1.3cap_jut,cap_jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+cap_jut;
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+z2=z1l+whatever*dir theta1; x3=x2+cap_bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+%currentpicture := currentpicture shifted(-3.7u,0);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("X",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.37u#;
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("Y",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1l=cap_jut+s; x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w;
+y4=8/25h;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+y5c=0; x5=.5w+.5c;
+serif(5,cap_stem,90,cap_jut,cap_jut);
+x6=x5l; x7=x5r;
+z6=z1l+whatever*dir theta1;
+z7=z3r+whatever*dir theta2;
+fill z6--serif_edge5--z7--reverse A_serif_edge3--z2--reverse serif_edge1--z6&cycle;
+%currentpicture := currentpicture shifted(-3.1u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Z",9u#+1.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x6=s+1/2cap_bar; y6=y7=y8=1/2cap_bar;
+x8e=w-s; x7=x8;
+T_serif(8,cap_bar,border_height,1);
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4cap_bar;
+x4r=w-s-1/4cap_bar; y4=h-cap_bar;
+penpos4(cap_stem,0);
+penpos5(cap_stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2cap_bar;
+x3=w-s-1/2cap_bar; x1e=s+c;
+T_serif(1,cap_bar,border_height,0);
+x2=x1;
+penpos3(cap_bar,90);
+penpos2(cap_bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e-.1c; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar("a",9u#-s#+2/7stem#,x_height#,0);
+x5=w-s-1/2bar; y5=0; y4=6/7stem; x4=x3=x5-5/7stem-1/2stem;
+y3=bar_height+2bar; y2=y1=h; x2=s+c+6/20w; x1e=s+c;
+ul_drop(1,drop_round,x2-s-c,5/4drop_round,bar);
+fill ul_drop_edge1;
+penpos2(bar,90);
+penpos3(stem,0);
+penpos4(stem,0);
+penpos5(bar,90);
+penstroke z2e{right}..{down}z3e--z4e{down}..{right}z5e;
+fill z5r..z5l..cycle;
+y6=bar_height+1/2bar; x6=x3+1/2stem; x7=s+1/2stem; y7=7/17bar_height;
+y8=0; x9=x4-1/2stem+1/2bar; x9-x8=x8-x7; y9=y4+3/2bar; x66=x8; y66=y6-c;
+numeric theta[]; theta1=angle(z66-z6);
+penpos6(vair,90);
+penpos66(vair,90);
+penpos7(curve,180);
+penpos8(vair,270);
+penpos9(bar,360);
+penstroke z6e{left}..z66e{dir theta1}..tension.8..{down}z7e{down}..tension.8..z8e{right}..{up}z9e;
+%currentpicture := currentpicture shifted(-.4u,0);
+penlabels(range 1 thru 9,66);
+endchar;
+
+beginchar("b",8u#+jut#,asc_height#,0);
+italcorr asc_height#*sind 18-3.14u#;
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+.2s+.6(w-jut-2s); y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=y8=0.1x_height; y4=y6=0.9x_height; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=0;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,0);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("c",8u#,x_height#,0);
+italcorr x_height#*sind 18-1.7u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=1/2curve+s;
+y2=0.1h; y4=0.9h; x2=x4=x3+3/8(x5-x3);
+x6=w-s-1/2hair; y6=y3-4/5stem;
+penstroke z6e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e;
+fill z6r..z6l..cycle;
+z7=z5;
+ur_drop(7,drop_round,7/8(x6l-x1),3/2drop_round,bar);
+fill ur_drop_edge7;
+%currentpicture := currentpicture shifted(-1.05u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("d",8u#+jut#,asc_height#,0);
+italcorr asc_height#*sind 18-1.82u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.7o,-150);
+penpos7(stem,-180);
+penpos8(.7o,-210);
+x1=x5=1.8s+.4(w-jut-2s); y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2curve+s; x7=w-1/2stem-s-jut;
+y2=y8=0.1x_height; y4=y6=0.9x_height; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10h=w-s; x9=x10; y9c=h; y10c=0;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,0,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("e",8u#,x_height#,0);
+italcorr x_height#*sind 18-1.7u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x5+5/8(x7-x5);
+x10=w-s-1/2bar; y10=y7-5/4stem;
+penstroke z10e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("f",2jut#+stem#+2c#+2s#,asc_height#,0);
+italcorr asc_height#*sind 18-1.2u#;
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x1; y3=x_height; x4r=x1l-.1stem; y4=x_height+1/2(asc_height-x_height);
+x5l=x4l-.05stem; y5=y4+1.5bar; x6=x1r+.2stem; y6=h-1/2bar;
+penpos3(stem,180);
+penpos4(.75curve,180);
+penpos5(.6curve,180);
+penpos6(bar,90);
+penstroke z3e{dir 95}...{up}z4e..z5e..{right}z6e;
+y6=y7; x7e=w-s;
+ur_drop(7,stem,x7e-x6,drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("g",9u#+c#,x_height#,desc_depth#);
+italcorr x_height#*sind 18-1.07u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+y3=y7=2/3h; x3=1/2curve+s+c; x7=w-3/2stem-s;
+x1=x5=x3+1/2(x7-x3); y1=3/11h; y5=h;
+y2=y8=y1+0.1(8/11h); y4=y6=y1+0.9(8/11h); x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x9=x7; y9=y7+1/2(y6-y7); y10=h; x10=x7l+c;
+x11e=w-s; y11=y10;
+ur_drop(11,.8stem,x11e-x10,drop_round,bar);
+penpos9(hair,180); penpos10(vair,90);
+penstroke z9e{up}..{right}z10e;
+fill ur_drop_edge11;
+y12=y1; x12=x1; y13=y12/2; x13=s+1/4stem+.5c;
+y14=y15=0; x14=x2r; x15=x8r; y16=y18=-d/2; x16=w-s-1/2stem;
+x18=s+.7hair; y17=-d+1/2bar; x17=s+.6bar+9/20(x16-x18); x19=x14; y19l=y14r;
+penpos12(vair,90); penpos13(1/2curve,180); penpos14(curve,270);
+z144=z14; penpos144(curve,90); penpos15(curve,90);penpos16(1/2curve,0);
+penpos17(vair,-90); penpos18(1.4hair,-180); penpos19(1.4vair,-270);
+penstroke z12e{left}..{down}z13e{down}..{right}z14e;
+penstroke z144e--z15e{right}..tension.8..{down}z16e{down}..{left}z17e{left}..{up}z18e{up}..{right}z19e;
+penlabels(range 1 thru 19);
+endchar;
+
+beginchar("h",round (10u#-1.5c#),asc_height#,0);
+w:=w+1;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6h=w-s; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33x_height;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=x_height; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("i",2jut#+stem#+2s#,x_height#+2.1stem#,0);
+italcorr asc_height#*sind 18-2.43u#;
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+z3=(x1,h); z4=(x1,h-1.1stem);
+fill z3..z4..cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("j",5u#,x_height#+2.1stem#,desc_depth#);
+italcorr (x_height#+2.1stem#)*sind 18-u#;
+x1h=w-s; y1c=x_height; y2=0; x2=x1;
+serif(1,stem,-90,1.5jut,0);
+penpos2(stem,0);
+fill z2l--z2r--reverse serif_edge1--cycle;
+z3=(x1-.05stem,h); z4=(x1-.05stem,h-1.1stem);
+fill z3..z4..cycle;
+y5=-1/4desc_depth; x5r=x2r;
+y6=-d+1/2bar; x6=x2l-.4stem;
+penpos5(.97stem,0);
+penpos6(bar,-90);
+penstroke z2e--z5e{down}..{left}z6e;
+x7e=s; y7=-d+1/2bar;
+dl_drop(7,stem,x6-x7e,drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar("k",round (10u#-c#),asc_height#,0);
+italcorr asc_height#*sind 18-2.57u#;
+w:=w+1;
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=bar_height; x3l=w-jut-.7jut-s; y3l=x_height-bar;
+x5=x6=x1r-.1c; y5=bar_height-bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+y6=y5-bar/cosd (theta1+180);
+A_serif(3,bar,theta1,1.8jut,.8jut);
+x4l=w-s-1.2jut-stem; y4l=bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,stem,theta2,.8jut,jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("l",2.4jut#+stem#+2s#,asc_height#,0);
+italcorr asc_height#*sind 18-2u#;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,1.2jut,0);
+serif(2,stem,90,1.2jut,1.2jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penlabels(1,2);
+endchar;
+
+beginchar("m",14u#,x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6=.5w; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33h;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=h; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+x10h=w-s; y10c=0;
+serif(10,stem,90,jut,jut);
+x9=x10; y9=y5;
+penpos9(stem,0);
+fill serif_edge10--z9r--z9l--cycle;
+x8=x10g; y8=h; y7=y9-1/4bar; x7l=x6r;
+penpos8(vair,90);
+penpos7(bar,180);
+penstroke z9e{up}..{left}z8e{left}..z7e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("n",round (10u#-1.5c#),x_height#,0);
+w:=w+1;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6h=w-s; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33h;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=h; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("o",8u#+s#,x_height#,0);
+italcorr x_height#*sind 18-1.75u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2curve-s;
+y2=y8=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+%currentpicture := currentpicture shifted(-1.1u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("p",8u#+jut#,x_height#,desc_depth#);
+italcorr x_height#*sind 18-1.72u#;
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+.2s+.6(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=y8=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=-desc_depth;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("q",8u#+jut#,x_height#,desc_depth#);
+italcorr x_height#*sind 18-.85u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.7o,-150);
+penpos7(stem,-180);
+penpos8(.7o,-210);
+x1=x5=1.8s+.4(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2stem-s-jut;
+y2=y8=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10h=w-s; x9=x10; y9c=h; y10c=-d;
+serif(9,stem,-90,0,jut);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("r",7u#+c#,x_height#,0);
+italcorr x_height#*sind 18-1.05u#;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,1.2jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x4=round (x2h+1/2bar+c); y4=h; y3=23/33h-1/4bar; x3l=x2r;
+penpos4(bar,90);
+penpos3(bar,180);
+penstroke z4e{left}...{down}z3e;
+x5e=w-s; y5=h;
+ur_drop(5,1.1stem,x5e-x4,drop_round,bar);
+fill ur_drop_edge5;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar("s",7u#+c#,x_height#,0);
+italcorr x_height#*sind 18-1.4u#;
+x6=x7=1/2w; y6=y7=1/2bar;
+S_serif(7,bar,x6-s,border_height);
+y5=11/53h; x5=w-s-1/2(1.4hair);
+y4=29/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2hair;
+x2=.5w; y2=h; z1=z2;
+penpos6(bar,-90);
+penpos5(1.4hair,0);
+penpos4(1.1curve,90);
+penpos3(1.4hair,0);
+penpos2(bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-1/3bar,.9border_height);
+fill S_serif_edge1;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("t",7u#-s#,asc_height#,0);
+italcorr asc_height#*sind 18-2.65u#;
+y1=y2=46/53h; y4c=x_height; x4g=s;
+serif(4,stem,-90,jut,1.4jut);
+x1=x4r; x2=x1-bar;
+y5=7/33x_height; x5=x4; x3=x4l; y3=42/53h;
+penpos5(stem,180); numeric theta[];
+theta1=angle(z3-z2);
+fill z5l--reverse serif_edge4--z5r--cycle;
+fill z4r--z1{up}..{dir theta1}z2--z3--z4l--cycle;
+y6=1/4bar; x6=x4r+.7jut; x7=w-.5s-1/2bar; y7=13/53h;
+penpos6(vair,270); penpos7(hair,360);
+penstroke z5e{down}..{right}z6e{right}..{up}z7e;
+fill z7r..z7l..cycle;
+%currentpicture := currentpicture shifted(-1.5u,0);
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar("u",round (10u#-1.5c#),x_height#,0);
+italcorr x_height#*sind 18-1.85u#;
+w:=w+1; x2h=w-s; y1c=h; y2c=0; x1=x2;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,0,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6g=s; y6c=h;
+serif(6,stem,-90,jut,0);
+x5=x6; y5=10/33h;
+penpos5(stem,180);
+fill serif_edge6--z5l--z5r--cycle;
+x4=x6+1/2stem+jut; y4=0; y3=y5+1/4bar; x3l=x2l;
+penpos4(vair,270);
+penpos3(bar,360);
+penstroke z5e{down}..{right}z4e{right}..z3e;
+%currentpicture := currentpicture shifted(-1.5u,0);
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar("v",10u#-1.5c#,x_height#,0);
+italcorr x_height#*sind 18-.86u#;
+x1l=jut+s; x3r=w-s-jut;
+y1l=y3r=h-bar; x4=.5w-1/2bar; x5=.5w+1/2bar;
+y4=y5=1/2bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,bar,theta2,1.3jut,jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+%currentpicture := currentpicture shifted(-2.35u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("w",13u#,x_height#,0);
+italcorr x_height#*sind 18-.86u#;
+x9l=.5w-.3stem; x7r=w-s-jut;
+y9l=y7r=y1l=h-bar; x5=x9l+.5(x7r-x9l)-1/2bar; x6=x9l+.5(x7r-x9l)+1/2bar;
+y5=y6=y2=y3=1/2bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,stem,theta1,jut,jut);
+A_serif(7,bar,theta2,1.1jut,jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+jut;
+serif(1,stem,theta1,jut,jut);
+z2=z1l+whatever*dir theta1; x3=x2+bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+%currentpicture := currentpicture shifted(-2.35u,0);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("x",9u#+c#,x_height#,0);
+italcorr x_height#*sind 18-1.25u#;
+y3=y4=bar; x3=w-s-jut-1/2stem; x4=s+jut+1/2bar;
+y1=y2=h-bar; x1=s+jut+1/2stem+c; x2=w-s-1.25c-jut-1/2bar;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,stem,theta1-180,jut,jut);
+A_serif(2,1.2bar,theta2-180,jut,jut);
+serif(3,stem,theta1,jut,jut);
+A_serif(4,1.2bar,theta2,jut,1.3jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("y",9u#+s#,x_height#,desc_depth#);
+italcorr x_height#*sind 18-.8u#;
+x1l=s+jut; y1l=h-bar;
+x3r=w-s-.8jut; y3r=h-bar;
+x4=33/60w; y4=-2/5d;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,1.2bar,theta2,1.2jut,.8jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=-d+bar; x6=x4-1.5stem; z7l=z2;
+penpos7(1.2bar,theta2+90);
+penpos5(1.2bar,theta2+90);
+penpos6(1.2bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,1.1stem,1.3u,drop_round,1.2bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("z",7u#+c#,x_height#,0);
+italcorr x_height#*sind 18-.86u#;
+x6=s+1/2bar; y6=y7=y8=1/2bar;
+x8e=w-s; x7=x8;
+T_serif(8,bar,.8border_height,1);
+penpos6(bar,90);
+penpos7(bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-.5c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4bar;
+x4r=w-s-1/4bar; y4=h-bar;
+penpos4(stem,0);
+penpos5(stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2bar;
+x3=w-s-1/2bar; x1e=s+c;
+T_serif(1,bar,.8border_height,0);
+x2=x1;
+penpos3(bar,90);
+penpos2(bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e-.1c; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(hex"30",9u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.2u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=.09h-c; y4=y6=0.91h+c; x2=x4=x3+8/16(x5-x3); x6=x8=x5+8/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+%currentpicture := currentpicture shifted(-1.3u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"31",6u#+3/2c#,cap_height#,0);
+italcorr cap_height#*sind 18-2.12u#;
+y1c=0; x1h=w-s;
+serif(1,cap_stem,90,cap_jut,cap_jut);
+x6=x1f; y5=y6=h; x5=x1; x2=x1a; y2=42/53h;
+penpos4(1.1cap_bar,theta1+45);
+penpos3(1.1cap_bar,theta1+45);
+x4l=s; y4=30/53h; numeric theta[]; theta1=angle(z5-z4l);
+z3l=z5; penstroke z3e--z4e; fill z4l..z4r..cycle;
+fill serif_edge1--z6{dir 110}..{dir 250}z5--z2--cycle;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"32",9u#,cap_height#,0);
+italcorr cap_height#*sind 18-1.68u#;
+z4=(9/33w,14/53h); z5=(s+11/20cap_bar,0);
+z3=(w-s-.5c-7/16cap_curve,40/53h); z2=(15/33w,h);
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos4(1.1cap_bar,-45);
+penpos5(1.1cap_bar,0);
+x6=x5r; y6=y7=7/16cap_stem; y8=1/2cap_bar;
+x8e=w-s; x7=x8e;
+T_serif(8,cap_bar,3/5border_height,1);
+penpos6(7/8cap_stem,90);
+penpos7(7/8cap_stem,90);
+penstroke z6e--z7e; %fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+unfill z11{down}..z9--z10--cycle;
+penstroke z5e{up}..z4e..{up}z3e{up}..{left}z2e;
+z1=z2; ul_drop(1,cap_drop_round,15/33w-3c,1.4cap_drop_round,slab);
+fill ul_drop_edge1;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"33",9u#,cap_height#,0);
+italcorr cap_height#*sind 18-2.2u#;
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height+c;
+x4=x6-3/2cap_stem; x5=x4-2u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_stem,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..{down}z3e{down}..{left}z44e;
+penstroke z5e--z4e{right}..tension.9..{down}z6e{down}..tension.9..{left}z7e;
+fill z5r..z5l..cycle;
+ul_drop(1,cap_drop_round,17/39w-s,cap_drop_round,slab);
+fill ul_drop_edge1;
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.3cap_drop_round,slab);
+fill dl_drop_edge8;
+%currentpicture := currentpicture shifted(-.6u,0);
+penlabels(1,2,3,4,5,6,7,8,44);
+endchar;
+
+beginchar(hex"34",9u#+c#,cap_height#,0);
+italcorr cap_height#*sind 18-2.25u#;
+y1=y2=33/53h; y4c=0; x4h=w-s;
+serif(4,7/8cap_stem,90,cap_jut,cap_jut);
+x1=x4r; x2=x1-bar;
+x3=x4l; y3=28/53h;
+numeric theta[]; theta1=angle(z2-z3);
+fill z3{dir theta1}--z2{dir theta1}..{down}z1--reverse serif_edge4--z3&cycle;
+y5=y6=15/53h; x5=x4e; x6=s+cap_bar;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e; fill z5r..z5l..cycle;
+y7=y6l; x7l=x6; z8=(6/36w, 21/53h);
+z9=(2/3w,h);
+penpos7(cap_bar,180); penpos8(cap_bar,150);
+penpos9(cap_stem,180);
+penstroke z7e{up}..z8e..{dir 70}z9e;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"35",9u#,cap_height#,0);
+italcorr cap_height#*sind 18-1.5u#;
+x7=x4=18/39w; y7=0; y5=cap_bar_height+c; y4=y5+s;
+x8e=s; y8=0; x5=x8d;
+dl_drop(8,cap_drop_round,18/39w-s,1.3cap_drop_round,slab);
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z5e..z4e{right}..tension.85..{down}z6e{down}..tension.85..{left}z7e;
+fill z5r..z5l..cycle;
+fill dl_drop_edge8;
+z3=z5; x2=x3; y2=h;
+penpos3(cap_bar,0); penpos2(cap_bar,0);
+penstroke z3e--z2e; fill z2l..tension 1.7..z2r..tension 1.7..cycle;
+y1r=h; x1=x2r; x13=x6; y13=h; 2(x12-x1)=x13-x12; y12=h-.6cap_stem;
+penpos1(7/8cap_stem,90); penpos13(1.1cap_bar,90); penpos12(3/4cap_stem,90);
+penstroke z1e..z12e..z13e; fill z13r..tension 1.7..z13l..tension 1.7..cycle;
+%currentpicture := currentpicture shifted(-.6u,0);
+penlabels(1,2,3,4,5,6,7,8,12,13);
+endchar;
+
+beginchar(hex"36",9u#,cap_height#,0);
+italcorr cap_height#*sind 18-2.1u#;
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=x9=.45w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.1h-c; y4=y6=0.9h+c; x8=x6=x7+11/32(x5-x7); x4=x10=x5+9/16(x3-x5); x2=x4-1/2c;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.1h-c; y11=y7;
+x11l=x3l; y10=y8;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e..z10e..z11e;
+z12 = z1;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+z13 = (.5w,.5h);
+currentpicture := currentpicture rotatedaround(z13,180) shifted(sl_parameter*w*1.3,0);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"37",9u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-.9u#;
+x4=w-s-1/2cap_bar; y4=h-1/2cap_bar;
+penpos4(cap_bar,0);
+y3=y2=h-7/16cap_stem; y1=h-7/8cap_stem+1/2cap_bar;
+x3=x4l; x1e=s;
+T_serif(1,cap_bar,3/5border_height,0);
+x2=x1e;
+penpos3(7/8cap_stem,90);
+penpos2(7/8cap_stem,90);
+penstroke z2e--z3e; fill T_edge1; z44=(x4,h); fill z4r{up}..{left}z44--z3r--z4l--cycle;
+x10=s+c; x11=s; y10=y11=h;
+unfill z1d{up}..z10--z11--cycle;
+unfill z1d{up}..z10--z11--cycle;
+x5r=x3; y5=h-7/8cap_stem;
+x6=14/30w; y6=1/3cap_curve;
+penpos5(cap_bar,0); penpos6(cap_curve,0);
+penstroke z4e{dir -105}..z5e..{dir -95}z6e; fill z6l..z6r..cycle;
+%currentpicture := currentpicture shifted(-2.2u,0);
+penlabels(1,2,3,4,5,6,10,11,12);
+endchar;
+
+beginchar(hex"38",10u#-s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.11u#;
+x6=x4=x2=x8=1/2w; y6=0; y2=h;
+y5=11/53h; y7=13/53h; x5=w-s-1/2(1.9hair);
+y4=y8=28/53h; y3=42/53h; y1=40/53h; x3=2s+1/2(1.9cap_bar);
+x1=w-2s-1/2(1.9cap_bar); x7=w-x5;
+penpos6(cap_bar,-90);
+penpos5(2.5hair,0);
+penpos4(cap_curve,90);
+penpos3(2.5hair,0);
+penpos2(cap_bar,-90);
+penpos1(2.5hair,-180);
+penpos7(2.5hair,-180);
+penpos8(cap_bar,-270);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e;
+%currentpicture := currentpicture shifted(-.6u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"39",9u#,cap_height#,0);
+italcorr cap_height#*sind 18-2.15u#;
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=x9=.45w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.1h-c; y4=y6=0.9h+c; x8=x6=x7+11/32(x5-x7); x4=x10=x5+9/16(x3-x5); x2=x4-1/2c;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.1h-c; y11=y7;
+x11l=x3l; y10=y8;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e..z10e..z11e;
+z12 = z1;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+%currentpicture := currentpicture shifted(-.9u,0);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(oct"56",cap_stem#+2s#,cap_stem#,0);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+endchar;
+
+beginchar(oct"54",cap_stem#+2s#+c#,cap_stem#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"60",cap_stem#+2s#+c#,asc_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(oct"41", cap_stem#+2s#,cap_height#,0); "Exclamation mark";
+ italcorr cap_height#*sind 18-.78u#;
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+ x3=.5w-1/2cap_bar; x4=.5w+1/2cap_bar; y3=y4=3/2cap_stem;
+ x6=x1; x5=x2; y5=y6=h;
+ fill z6--z3..z4--z5{up}..z6&cycle;
+endchar;
+
+beginchar(hex"22",2cap_stem#+3s#+2c#,cap_height#,0);
+ italcorr cap_height#*sind 18-2.66u#;
+ z1=(s,h-1/2cap_stem); z2=(x1+cap_stem+c,h-1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-cap_stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture shifted(-1.6u,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"5C",2cap_stem#+3s#+2c#,cap_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(x1+cap_stem+c,1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"7b",10u#-1.5c#,x_height#,0); "En dash";
+ italcorr x_height#*sind 18-2u#;
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ %currentpicture := currentpicture shifted(-1.3u,0);
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"3D",10u#+1.5c#,x_height#,0);
+ italcorr x_height#*sind 18-1.7u#;
+ z1=(s+1/2bar,bar_height-3c); z2=(w-s-1/2bar,bar_height-3c);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+3c); z4=(w-s-1/2bar,bar_height+3c);
+ penpos3(bar,90); penpos4(bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ %currentpicture := currentpicture shifted(-1.3u,0);
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"23",13u#,asc_height#,body_depth#);
+ italcorr asc_height#*sind 18-2u#;
+ z1=(s+1/2bar,bar_height-5c); z2=(w-s-1/2bar,bar_height-5c);
+ penpos1(1.5bar,90); penpos2(1.5bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+5c); z4=(w-s-1/2bar,bar_height+5c);
+ penpos3(1.5bar,90); penpos4(1.5bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ z5=(.5w-5c,bar_height); z6=(.5w+5c,bar_height);
+ z7=z5+whatever*dir 76; y7=h; z8=whatever[z5,z7]; y8=-d;
+ penpos7(1.5bar,0); penpos8(1.5bar,0);
+ fill z7l{up}..{down}z7r--z8r{down}..{up}z8l--z7l&cycle;
+ z9=z6+whatever*dir 76; y9=h; z10=whatever[z6,z9]; y10=-d;
+ penpos9(1.5bar,0); penpos10(1.5bar,0);
+ fill z9l{up}..{down}z9r--z10r{down}..{up}z10l--z9l&cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"7c",14u#,x_height#,0); "Em dash";
+ italcorr x_height#*sind 18-2u#;
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ %currentpicture := currentpicture shifted(-1.3u,0);
+ penlabels(1,2);
+endchar;
+
+beginchar(oct"55",2cap_jut#+cap_stem#+2s#,x_height#,0); "hyphen";
+ italcorr x_height#*sind 18-1.9u#;
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ %currentpicture := currentpicture shifted(-1.4u,0);
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"5F",1.1stem#+2s#,x_height#+2.1stem#,0);
+ italcorr (2.1stem#+x_height#)*sind 18-u#;
+ z1=(.5w,h); z2=(.5w,h-1.1stem);
+ fill z1..z2..cycle;
+ %currentpicture := currentpicture shifted(-3.2u,0);
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7E",7u#,body_height#,0);
+ italcorr body_height#*sind 18-.99u#;
+ pickup pencircle xscaled .8pt yscaled .2pt rotated 55;
+ z4=(w-s-c,h-s); x1=s+c; y1=y4-1/2cap_stem;
+ y2-y1=y4-y3=3(y4-y1); z2-z1=z4-z3=whatever * dir 55;
+ draw z1..controls z2 and z3..z4;
+ %currentpicture := currentpicture shifted(-3.9u,0);
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"3C",7u#-2c#,x_height#,0); "looks like <<";
+ italcorr x_height#*sind 18-u#;
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ %currentpicture := currentpicture shifted(-1.8u,0);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3E",7u#-2c#,x_height#,0);
+ italcorr x_height#*sind 18-1.4u#;
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ z10=(.5w,.5h);
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ currentpicture := currentpicture rotatedaround(z10,180) shifted(3.2u,0);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3B",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ italcorr x_height#*sind 18-.9u#;
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+3/2c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ z8=(s,h-1/2cap_stem); z9=(w-s,h-1/2cap_stem);
+ fill z8..z9..cycle;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(hex"3A",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ italcorr x_height#*sind 18-.9u#;
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ fill z1..z2..cycle;
+ penlabels(1,2,3,4);
+ z3=(s,1/2cap_stem); z4=(w-s,1/2cap_stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2B",2cap_jut#+cap_stem#+2s#,x_height#,0);
+ italcorr x_height#*sind 18-1.9u#;
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ x3=x4=.5w; y3=y2+1/2(x2-x1); y4=y2-1/2(x2-x1);
+ penpos3(1.8bar,0); penpos4(1.8bar,0);
+ penstroke z3e--z4e;
+ fill z3r..z3l..cycle; fill z4r..z4l..cycle;
+ %currentpicture := currentpicture shifted(-1.4u,0);
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2F",2s#+bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-.84u#;
+ z1=(.5w,h-.5bar); z2=(.5w,-d+.5bar);
+ %pickup pencircle xscaled bar yscaled bar;
+ penpos1(bar,0); penpos2(bar,0);
+ penstroke z1e--z2e; fill z1r..z1l..cycle;
+ fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"27",cap_stem#+2s#+c#,x_height#+2.1stem#,0);
+ italcorr (2.1stem#+x_height#)*sind 18-u#;
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ z6=(.5w-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ %currentpicture := currentpicture shifted(-3u,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"28",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-.95u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"29",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.8u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180) shifted(4u,0);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"86",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"87",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-2.55u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180) shifted(4u,0);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"5B",2s#+3cap_bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-.85u#;
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x2,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z1r..z1l..cycle; fill z6r..z6l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"5D",2s#+3cap_bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-.8u#;
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x1,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z2r..z2l..cycle; fill z5r..z5l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"B9",16u#,cap_height#,0);
+ italcorr cap_height#*sind 18-2.05u#;
+ x1=x2=cap_jut+1/2cap_bar+s+cap_stem;
+ x3=w-x1-1/2cap_stem; y1c=h; y4=y5=0;
+ x4=x3r; x5=x3l; y2=12/53h; y3=h-y2;
+ x8=x2-stem; y8=0; z9=z8;
+ dl_drop(9,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill dl_drop_edge9; penpos8(bar,-90);
+ serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+ penpos2(bar,0); penpos3(bar,0);
+ penstroke z2e{down}..{left}z8e;
+ fill z2l--z2r--reverse serif_edge1--cycle;
+ numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+ theta1=angle(z5-z7); x10=x3+stem; y10=h; z11=z10;
+ penpos10(bar,-90); penstroke z3e{up}..{right}z10e;
+ ur_drop(11,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill ur_drop_edge11;
+ z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+ fill z6--z1h--z7--z5{down}..{up}z4--z3r--z3l--cycle;
+ unfill z1b--z1l--z1a--cycle;
+ y12=y13=2cap_bar; x12=x4+2cap_bar+.5s; x13=w-1.5s;
+ penpos12(.4stem,90); penpos13(.4stem,90);
+ penstroke z12e--z13e; y16=y11d-5cap_bar;
+ x13-x14=x14-x12; x16=x14; y14=y13+5cap_bar;
+ x17=w-s-1/4stem; x17-x16=x16-x15; y16-y15=y15-y14;
+ y17=y15; penpos17(.6stem,0); penpos16(bar,90);
+ penpos15(.6stem,180); penpos14(bar,270);
+ penstroke z17e{up}..{left}z16e{left}..{down}z15e{down}..{right}z14e{right}..{up}z17e;
+ fill z12l..tension1.2..z12r..tension1.2..cycle;
+ fill z13l..tension1.2..z13r..tension1.2..cycle;
+ penlabels(range 1 thru 17);
+endchar;
+
+beginchar(hex"24",9u#-s#,body_height#,body_height#-cap_height#);
+ italcorr body_height#*sind 18-1.8u#;
+ x6=x7=1/2w-c; y6=y7=0;
+ dl_drop(7,cap_drop_round,x6-s,1.3cap_drop_round,cap_bar);
+ y5=10/53cap_height; x5=w-s-1/2(1.9hair);
+ y4=1/2cap_height; x4=19/38w; y3=42/53cap_height; x3=s+1/2(1.9cap_bar);
+ x2=.5w+c; y2=cap_height; z1=z2;
+ penpos6(cap_bar,-90); penpos5(1.9hair,0);
+ penpos4(1.1cap_curve,90); penpos3(1.9hair,0);
+ penpos2(cap_bar,-90);
+ penstroke z6e{right}..z5e..tension1..z4e..tension.9..z3e..{right}z2e;
+ fill dl_drop_edge7;
+ ur_drop(1,cap_drop_round,w-s-x2,1.3cap_drop_round,cap_bar);
+ fill ur_drop_edge1;
+ z8=(.5w,h); z9=(.5w,-d);
+ penpos8(cap_bar,0); penpos9(cap_bar,0);
+ penstroke z8e--z9e;
+ fill z9r..z9l..cycle; fill z8r..z8l..cycle;
+ %currentpicture := currentpicture shifted(-.6u,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"25",12u#,asc_height#,0);
+italcorr asc_height#*sind 18-2.38u#;
+penpos1(vair,90); penpos2(.6curve,0);
+penpos3(vair,-90); penpos4(.6curve,-180);
+y1=.55h; y3=h; y3-y4=y4-y1; y2=y4; x2=1/4curve+s; x4=5/2curve+s;
+x4-x1=x1-x2; x3=x1;
+penstroke z1e{left}..tension.9..{up}z2e{up}..tension1.2..{right}z3e..tension.9..{down}z4e{down}..tension1.2..{left}z1e..cycle;
+penpos5(vair,90); penpos6(.6curve,0);
+penpos7(vair,-90); penpos8(.6curve,-180);
+y5=0; y7=.45h; y7-y8=y8-y5; y6=y8; x8=w-1/4curve-s; x6=w-5/2curve-s;
+x8-x5=x5-x6; x7=x5;
+penstroke z5e{left}..tension.9..{up}z6e{up}..tension1.2..{right}z7e..tension.9..{down}z8e{down}..tension1.2..{left}z5e..cycle;
+x9l=x7; y9=h; x10r=x1; y10=0;
+penpos9(1.2bar,0); penpos10(1.2bar,0);
+penstroke z9e--z10e;
+%currentpicture := currentpicture shifted(-1.9u,0);
+penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"26",14u#,cap_height#,0);
+italcorr cap_height#*sind 18-2.75u#;
+x4=x8=x3+.5curve; y6=0; y2=h; x2=x3+1.3cap_curve;
+y7=13/53h; y5=9/53h; x5=x7+3.5cap_curve; x6=x7+1.8cap_curve;
+y4=y8=30/53h; y1=44/53h; y3=42/53h; x3=4s+curve;
+x1=x3+2.1cap_curve; x7=s+1/2cap_curve;
+x10=w-s; y10=9/53h; x10-x9=x9-x5; y9=1/5cap_curve;
+th:=angle(z4-z5)+5; th1:=th-11; x11h=w-s-c; y11h=y1-4s;
+A_serif(11,cap_bar,-110,cap_jut,cap_jut); z12l=z11a;
+penpos6(cap_bar,-90); penpos5(cap_stem,45);
+penpos4(cap_stem,45); penpos3(2.5hair,0);
+penpos2(cap_bar,-90); penpos1(2hair,-180);
+penpos7(cap_curve,-180); penpos8(cap_bar,-250);
+penpos9(.5cap_curve,70); penpos10(cap_bar,150);
+penpos12(cap_bar,0);
+penstroke z10e..z9e..z5e{dir th}..{dir th1}z4e..tension.9..{up}z3e{up}..tension1..z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e{dir 8}..{dir 70}z12e;
+fill z12l--z12r..reverse A_serif_edge11--cycle;
+fill z10l..tension1.3..z10r..tension1.3..cycle;
+%currentpicture := currentpicture shifted(-.7u,0);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+currenttransform := identity;
+
+beginchar(hex"40",14u#,x_height#+2curve#,2curve#);
+a_width:=9u+c-2s;
+x1=2s+a_width-s-3/4stem+1.5curve; y1=x_height; y2=7/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=3s+a_width+1.5curve; y4=15/33x_height;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.2vair,270); penpos4(bar,360);
+x5=x1-1.3stem; y5=x_height; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c+1.3curve; y6=.54x_height; y8=.46x_height; z8l=whatever[z1r,z2r];
+x13=x5; y13=h-1/2bar; x14=s+1/2bar; y14=y6; y15=-d+1/2bar; x15=x7;
+x16=x4; y16=-d+3bar; penpos7(vair,270); penpos16(bar,270);
+penpos13(bar,90); penpos14(bar,180); penpos15(bar,270);
+penpos8(2bar,0); penpos5(vair,90); penpos6(curve,180);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 80}z4e..z13e{left}..z14e..{right}z15e..z16e;
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=x_height-c; z10=(x1r+c,x_height); z11=(x1l-c,x_height);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+fill z16r..z16l..cycle;
+penlabels(range 1 thru 66);
+endchar;
+currenttransform := identity slanted sl_parameter;
+
+beginchar(hex"12",2cap_stem#+s#,body_height#,0);
+italcorr body_height#*sind 18-1.1u#;
+y1=h-.45cap_stem*cosd 45; x1=s+.45cap_stem*cosd 45;
+x2=w-s+cap_bar*cosd 45; z2=z1+whatever*dir -45;
+penpos1(.9cap_stem,45); penpos2(cap_bar,45);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+%currentpicture := currentpicture shifted(-3.8u,0);
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"13",2cap_stem#+s#,body_height#,0);
+italcorr body_height#*sind 18-.8u#;
+y1=h-.45cap_stem*cosd 45; x1=w-s-.45cap_stem*cosd 45;
+x2=s-cap_bar*cosd 45; z2=z1+whatever*dir -135;
+penpos1(.9cap_stem,135); penpos2(cap_bar,135);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+%currentpicture := currentpicture shifted(-2.9u,0);
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"3F",7u#+s#,cap_height#,0);
+ italcorr cap_height#*sind 18-1.65u#;
+ x1=s+4/5cap_stem; y1=1/2cap_stem;
+ penpos1(cap_stem,0);
+ fill z1r..z1l..cycle;
+ y2=cap_stem+cap_bar; x2=x1;
+ z3l=z2l+whatever*dir 96; y3l=25/53h;
+ penpos2(cap_bar,0); penpos3(cap_bar,0);
+ penstroke z2e--z3e;
+ z4l=z3l; penpos4(cap_bar,0);
+ y5=y4-2bar; x5=x4+3cap_bar; penpos7(cap_bar,-90);
+ x6=w-s-1/2cap_curve; y6=37/51h; x7=12/31w; y7=h;
+ penpos5(cap_bar,90); penpos6(cap_curve,180); z8=z7;
+ penstroke z4e{dir -69}..z5e{dir 10}..tension1..{up}z6e{up}..tension.9..{left}z7e;
+ ul_drop(8,.8cap_drop_round,x7-s,cap_curve,cap_bar);
+ fill ul_drop_edge8;.
+ fill z3r..tension1.2..z3l..tension1.2..cycle;
+ %currentpicture := currentpicture shifted(-.7u,0);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"10",2jut#+stem#+2s#,x_height#,0);
+italcorr x_height#*sind 18-1.8u#;
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"11",5u#,x_height#,desc_depth#);
+italcorr x_height#*sind 18-.79u#;
+x1h=w-s; y1c=x_height; y2=0; x2=x1;
+serif(1,stem,-90,1.5jut,0);
+penpos2(stem,0);
+fill z2l--z2r--reverse serif_edge1--cycle;
+y5=-1/4desc_depth; x5r=x2r;
+y6=-d+1/2bar; x6=x2l-.4stem;
+penpos5(.97stem,0);
+penpos6(bar,-90);
+penstroke z2e--z5e{down}..{left}z6e;
+x7e=s; y7=-d+1/2bar;
+dl_drop(7,stem,x6-x7e,drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+currenttransform := identity;
+
+beginchar(hex"2A",3cap_stem#+3s#,body_height#,0);
+ x1=x2=x3=x4=.5w; y1=h-1/2stem; y2=y1-cap_stem; y3=y2-bar; y4=y3-bar;
+ penpos1(stem,0); penpos2(cap_bar,0); penpos3(2cap_bar,0);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle;
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,60);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,120);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,180);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,240);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,300);
+ penlabels(range 1 thru 12);
+endchar;
+currenttransform := identity slanted sl_parameter;
+
+beginchar(hex"0B",4jut#+2stem#+2c#+3s#,asc_height#,0);
+w:=w+1; italcorr asc_height#*sind 18-1.19u#;
+numeric dist; dist := 2jut+2stem-3c;
+x1g=x2g=s+dist; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x1; y3=x_height; x4r=x1l-.1stem; y4=x_height+1/2(asc_height-x_height);
+x5l=x4l-.05stem; y5=y4+1.5bar; x6=round (x1r+.2stem); y6=h-1/2bar;
+penpos3(stem,180);
+penpos4(.75curve,180);
+penpos5(.6curve,180);
+penpos6(bar,90);
+penstroke z3e{dir 95}...{up}z4e..z5e..{right}z6e;
+y6=y7; x7e=w-s;
+ur_drop(7,stem,x7e-x6,drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+x11g=x12g=s; y11c=x_height; y12c=0;
+serif(11,stem,-90,jut,jut);
+serif(12,stem,90,jut,jut);
+fill serif_edge12--reverse serif_edge11--cycle;
+x13=x11; y13=x_height; x14l=x13l; y14=x_height+1/2(asc_height-x_height);
+x15l=x14l; y15=y14+1.5bar; x16=x11r+.8stem; y16=h-1/2bar;
+x17r=x5l; y17=y5;
+penpos13(stem,180);
+penpos14(.75curve,180);
+penpos15(.6curve,180);
+penpos16(bar,90);
+penpos17(bar,0);
+penstroke z13e{dir 95}...{up}z14e..z15e..{right}z16e{right}..{down}z17e;
+fill z11d--z1c--z1b--z11e--cycle;
+penlabels(1,2,3,4,5,6,7,11,12,13,14,15,16,17);
+endchar;
+
+beginchar(hex"5E",6u#,body_height#,0);
+ italcorr body_height#*sind 18-1.4u#;
+ x1=s+.45cap_bar*cosd 45; x2=w/2; y2=h-bar;
+ z1=z2+whatever*dir -135; x3=w-x1; z3=z2+whatever*dir -45;
+ penpos1(bar,135); penpos2(2bar,90); penpos3(bar,45);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ %currentpicture := currentpicture shifted(-3.6u,0);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"16",6u#,body_height#,0);
+ italcorr body_height#*sind 18-1.25u#;
+ x1=s; x2=w-x1; y1=y2=h-4bar;
+ penpos1(.8bar,90); penpos2(.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ %currentpicture := currentpicture shifted(-3.6u,0);
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7F",2stem#+4s#,x_height#+2.1stem#,0);
+ italcorr body_height#*sind 18-1.85u#;
+ z1=(s+.5stem,h); z2=(s+.5stem,h-stem);
+ fill z1..z2..cycle;
+ z3=(w-s-.5stem,h); z4=(w-s-.5stem,h-stem);
+ fill z3..z4..cycle;
+ %currentpicture := currentpicture shifted(-3.2u,0);
+ penlabels(1,2,3,4);
+endchar;
+
+ligtable CYR_A: "A":
+ CYR_O kern -k#,
+ "O" kern -k#,
+ CYR_ES kern -k#,
+ "C" kern -k#,
+ CYR_TE kern -k#,
+ CYR_U kern -kk#,
+ CYR_EF kern -k#,
+ CYR_CHE kern -kkk#,
+ CYR_HARD_SIGN kern -k#,
+ "W" kern -kkk#,
+ "V" kern -kkk#,
+ "Y" kern -kkk#,
+ "T" kern -k#,
+ "w" kern -kk#,
+ "v" kern -kk#,
+ %CYR_o kern -k#,
+ %CYR_es kern -k#,
+ CYR_che kern -kk#;
+ %CYR_ie kern -k#,
+ %CYR_ye kern -k#;
+
+ligtable CYR_GHE: CYR_TE: "T":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_DE kern -k#,
+ CYR_EL kern -kk#,
+ CYR_o kern -k#,
+ "o" kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#;
+
+ligtable CYR_O: CYR_E: CYR_YU: "D": "O": "Q":
+ CYR_U kern -k#,
+ "X" kern -k#,
+ "V" kern -k#,
+ "W" kern -k#,
+ "Y" kern -kk#,
+ CYR_HA kern -k#;
+
+ligtable CYR_ER: "P":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_el kern -k#;
+
+ligtable CYR_U:
+ CYR_A kern -kkk#,
+ "A" kern -kkk#,
+ CYR_O kern -k#,
+ "O" kern -k#,
+ CYR_ES kern -k#,
+ "C" kern -k#,
+ CYR_el kern -kk#,
+ CYR_EL kern -k#,
+ CYR_EF kern -k#;
+
+ligtable CYR_HA: "X":
+ "O" kern -k#,
+ CYR_O kern -k#,
+ "Q" kern -k#,
+ "C" kern -k#,
+ CYR_ES kern -k#,
+ "G" kern -k#;
+
+ligtable CYR_ghe: CYR_te:
+ CYR_de kern -k#,
+ CYR_el kern -k#;
+
+ligtable CYR_o: CYR_er: CYR_e: CYR_yu: CYR_ye:
+ "V" kern -kk#,
+ "W" kern -kk#,
+ "Y" kern -kk#,
+ "x" kern -k#,
+ CYR_ha kern -k#;
+
+ligtable CYR_u: "y":
+ CYR_de kern -k#,
+ CYR_el kern -k#,
+ CYR_ie kern -k#,
+ "e" kern -k#,
+ CYR_es kern -k#,
+ "c" kern -k#,
+ CYR_ye kern -k#,
+ CYR_ef kern -k#;
+
+ligtable CYR_ha: "x":
+ CYR_ie kern -k#,
+ "d" kern -k#,
+ "e" kern -k#,
+ "o" kern -k#,
+ "q" kern -k#,
+ CYR_o kern -k#;
+
+ligtable "L":
+ "T" kern -kk#,
+ CYR_TE kern -kk#,
+ "Y" kern -kk#;
+
+ligtable "V": "W":
+ "A" kern -kkk#,
+ CYR_A kern -kkk#,
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ "d" kern -k#;
+
+ligtable "Y":
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "d" kern -k#,
+ "A" kern -kk#,
+ CYR_A kern -kk#;
+
+ligtable "a": CYR_a:
+ "V" kern -kk#,
+ "W" kern -kk#,
+ "T" kern -k#,
+ CYR_TE kern -k#,
+ "y" kern -k#,
+ CYR_u kern -k#,
+ "v" kern -kk#,
+ "u" kern -k#,
+ CYR_che kern -kk#,
+ "Y" kern -kk#;
+
+ligtable "e": CYR_ie:
+ CYR_ha kern -k#,
+ "v" kern -k#,
+ "w" kern -k#,
+ "V" kern -kk#,
+ "W" kern -kk#,
+ "Y" kern -kk#;
+
+ligtable "f":
+ "f" =: hex"0B";
+
+ligtable "k": "l":
+ CYR_o kern -k#,
+ "o" kern -k#;
+
+ligtable "m": "n":
+ "y" kern -k#,
+ CYR_u kern -k#,
+ CYR_o kern -k#,
+ "u" kern -k#,
+ "o" kern -k#;
+
+ligtable "o": "b": "p":
+ "e" kern k#,
+ CYR_ie kern k#,
+ "o" kern k#,
+ CYR_o kern k#,
+ "v" kern -k#,
+ "w" kern -k#,
+ "V" kern -kk#,
+ "W" kern -kk#,
+ "Y" kern -kk#,
+ "x" kern -k#,
+ CYR_ha kern -k#, 1:: "!" kern kk#;
+
+ligtable "v": "w":
+ "A" kern -kk#,
+ CYR_A kern -kk#,
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ "d" kern -k#;
+
+ligtable hex"37":
+ CYR_A kern -kk#,
+ "A" kern -kk#;
+ligtable oct"55":
+ oct"55" =: hex"7b";
+ligtable hex"7b":
+ oct"55" =: hex"7c";
+end
diff --git a/fonts/obnov/obnsl17.mf b/fonts/obnov/obnsl17.mf
new file mode 100644
index 0000000000..313c48ca88
--- /dev/null
+++ b/fonts/obnov/obnsl17.mf
@@ -0,0 +1,3703 @@
+%written by Basil Solomykov, Russia
+%(C) Copyright 2011 LPPL (LaTeX Project Public License)
+%Font Ordinary New (Obyknovennaya novaya), Slanted
+
+design_size := 17.28pt#;
+o# := .7776pt#;
+u# := 32/35pt#;
+bar# := 17.28/36pt#;
+slab# := 17.28/36pt#;
+cap_bar# := 17.28/36pt#;
+vair# := 17.28/36pt#;
+hair# := 17.28/36pt#;
+jut# := 34.56/36pt#;
+cap_jut# := 44.928/36pt#;
+stem# := 51.84/36pt#;
+curve# := 53.568/36pt#;
+cap_stem# := 62.21/36pt#;
+cap_curve# := 64.28/36pt#;
+s# := 0.65pt#;
+c# := .32pt#;
+
+input obn_lcyw_code.mf;
+font_identifier "OBNSL";
+mode_setup;
+clear_pen_memory;
+
+font_size design_size*pt#;
+asc_height# := 24/36*design_size*pt#;
+cap_height# := 24/36*design_size*pt#;
+body_height# := 27/36*design_size*pt#;
+x_height# := 15.4/36*design_size*pt#;
+desc_depth# := 8/36*design_size*pt#;
+body_depth# := 9/36*design_size*pt#;
+comma_depth# := 5/36*design_size*pt#;
+x_depth# := 4/5comma_depth#;
+bar_height# := .52x_height#;
+cap_bar_height# := .52cap_height#;
+cap_bar2_height# := .45cap_height#;
+border_height# := comma_depth#;
+cap_drop_round# := 3.8*slab#;
+drop_round# := 6.65/8cap_drop_round#;
+A_bracket# := 1.6pt#;
+bracket# := pt#;
+
+font_slant sind 16;
+font_x_height x_height#;
+font_normal_space 6u#;
+font_normal_stretch 4u#;
+font_normal_shrink 2u#;
+font_quad 13u#;
+font_extra_space 6u#;
+
+k# := .8u#;
+kk# := 1.5u#;
+kkk# := 3u#;
+
+serif_darkness := 1/30;
+define_pixels(bracket,cap_o_width,sss_width,css_width);
+define_pixels(c,s,cap_bar_height,cap_bar2_height);
+define_pixels(border_height,A_bracket,cap_drop_round,x_depth,drop_round);
+define_whole_blacker_pixels(stem,cap_stem,curve,cap_curve,bar,slab,cap_bar);
+define_whole_pixels(asc_height,cap_height,x_height,u,desc_depth,comma_depth,bar_height,body_height,body_depth,u,o,cap_jut,jut);
+define_good_x_pixels(vair);
+define_good_y_pixels(hair);
+lowres_fix(stem,curve) 1.2;
+lowres_fix(cap_stem,cap_curve) 1.2;
+if jut=cap_jut: jut:=jut-1; fi
+numeric sl_parameter;
+sl_parameter := sind 18;
+currenttransform := identity slanted sl_parameter;
+
+def serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g if left_jut=0: -1/2slab fi +1/2slab; x$d=x$e=x$h if right_jut=0: +1/2slab fi-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def serif_edge suffix $ =
+(serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse serif_bracket($f,$r,$e)) enddef;
+
+def serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...serif_darkness[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def T_serif(suffix $)(expr slab, bord_height, direction)= %Direction: 0-left, 1-right;
+penpos$(slab,if direction=1: - fi 90);
+x$=x$a=x$g; y$g-y$=y$-y$a=1/2slab;
+x$b=x$a + if direction=0: - fi .882bord_height; y$b=y$d=y$c+1/2slab;
+x$c=x$b + if direction=0: - fi 1/2slab; y$c=y$a-bord_height;
+x$d=x$e=x$b + if direction=0: - fi slab;
+y$e=y$g-1/2slab; y$f=y$g; x$f=x$c;
+labels($a,$b,$c,$d,$e,$f,$g) enddef;
+
+def T_edge suffix $ =
+(z$a..{down}z$b..z$c..z$d--z$e{up}..z$f--z$g--cycle) enddef;
+
+def A_serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(A_bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g+1/2slab; x$d=x$e=x$h-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def A_serif_edge suffix $ =
+(A_serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse A_serif_bracket($f,$r,$e)) enddef;
+
+def A_serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...0.6[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def ur_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a= 1/2slab;
+x$e=x$a + drop_length; y$e=y$f- drop_height;
+x$d=x$e - 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e - drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d - 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ur_drop_edge suffix $ =
+(z$f{right}..tension.9..{down}z$e{down}..{left}z$d{left}..{up}z$c{up}..z$b...{left}z$a--cycle) enddef;
+
+def ul_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$f- drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d + 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ul_drop_edge suffix $ =
+(z$f{left}..tension.9..{down}z$e{down}..{right}z$d{right}..{up}z$c{up}..z$b...{right}z$a--cycle) enddef;
+
+def dl_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, -90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$a + drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e + 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d - drop_round); x$b=x$d + 1/90drop_round;
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def dl_drop_edge suffix $ =
+(z$a{left}..tension.9..{up}z$e{up}..{right}z$d{right}..{down}z$c..{dir 250}z$b{dir -80}..{right}z$f--cycle) enddef;
+
+def S_serif (suffix $)(expr serif_slab, serif_length, serif_height)=
+%penpos$(serif_slab,90);
+x$a=x$i=x$; y$i=y$+1/2serif_slab; y$a=y$-1/2serif_slab;
+x$f=x$e=x$a+serif_length; y$f=y$g-1/2serif_slab; y$e=y$c=y$d+1/2serif_slab;
+x$g=x$f-1/2serif_slab; y$g=y$i-1/2serif_slab;
+y$h=y$f-1/4serif_slab; x$h=x$g-serif_slab;
+x$c=x$e-serif_slab; x$d=x$e-1/2serif_slab; y$d=y$g-serif_height;
+x$b=x$h-6/18serif_length; y$b=y$h-1/2slab;
+labels ($a,$b,$c,$d,$e,$f,$g,$h,$i) enddef;
+
+def S_serif_edge suffix $ =
+(z$a{right}...z$b..{dir -80}z$c..z$d..z$e--z$f{up}..z$g{left}..z$h{dir 150}..{left}z$i--cycle) enddef;
+
+beginchar(CYR_A,13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5e];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar(CYR_BE,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.6u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=y5=h-1/2slab;
+y1c=h; y2c=0; x5e=w-s-1/2cap_stem;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h; x4=w-s-1/2cap_stem-border_height;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_VE,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.17u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+css_width := x8 - x2r; save css_width;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar(CYR_GHE,9u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.77u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; x3=x4+2u;
+y5=y3; x5e=w-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_DE,12u#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-.99u#;
+x10e=w-s; y10c=-d;
+y4c=h; x4h=w-s-1/2slab;
+x9=x4; y9c=0;
+x3=x8=x9d; y8=y7=1/2cap_bar; y3=y2=h-y8;
+x6e=s; y6=y10; x7=border_height+s;
+y5=y9; x5g=s+.5u; y1=y4; x1=x5+1.5u;
+x2=x1c;
+A_serif(1,1.2cap_bar,-96,10/7cap_jut,cap_jut);
+A_serif(5,1.2cap_bar,81,6/7cap_jut,cap_jut);
+serif(4,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+penpos2(cap_bar,90);
+penpos3(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_bar,90);
+penstroke z7e--z8e; penstroke z2e--z3e;
+fill A_serif_edge5...reverse A_serif_edge1...cycle;
+fill serif_edge9--reverse serif_edge4--cycle;
+T_serif(6,slab,border_height,0);
+T_serif(10,slab,border_height,1);
+fill T_edge6;
+fill T_edge10;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_IE,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.1u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_YE,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.1u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+x12=x13=x2r; y12=h+1/4cap_stem; y13=y12+cap_stem;
+x14=x15=x12+2cap_stem; y14=y12; y15=y13;
+fill z12..z13..cycle; fill z14..z15..cycle;
+penlabels(range 1 thru 15);
+endchar;
+
+beginchar(CYR_ZHE,round (16u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-1.2u#;
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; y7=y4=y10=y11=cap_bar_height; x4=x7-1.5u;
+x10=x8r; x11=x10+1.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+x6=s; y6=0; y4-y5=y5-y6; x4-x5=x5-x6;
+penpos7(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,90);
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z6e{right}..tension.8..{up}z5e{up}..tension.8..{right}z4e--z7e;
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+x3=x5+1/2cap_stem; y2=h; x4-x3=x3-x2; y2-y3=y3-y4;
+penpos3(hair,0);
+penpos2(cap_bar,90);
+penstroke z4e{left}..tension.8..{up}z3e{up}..tension.8..{left}z2e;
+y1=h; x1a=x2; fill z6l..z6r..cycle;
+ul_drop(1,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ul_drop_edge1; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ZE,10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-2u#;
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height;
+x4=x6-3/2cap_stem; x5=x4-3u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3c,1.4border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.5cap_drop_round,slab);
+fill dl_drop_edge8;
+%currentpicture := currentpicture shifted(-.7u,0);
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_I,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.76u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-30); penpos6(cap_bar,-30);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar(CYR_SHORT_I,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.76u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-30); penpos6(cap_bar,-30);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+x7=.5w; y7=h+cap_bar;
+ur_drop(7,.8cap_drop_round,1/2(x3l-x1r),.8cap_drop_round,1.2cap_bar);
+fill ur_drop_edge7 rotatedaround(z7,180) shifted(.05c,0);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_KA,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.17u#;
+x8g=x9g=s; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+y10=y11=cap_bar_height;
+x10=x8r; x11=x10+2.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13; fill z16l..z16r..cycle;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_EL,13u#+1/2s#,cap_height#,0);
+italcorr cap_height#*sind 18-.75u#;
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+cap_drop_round; y3=1.1cap_drop_round;
+dl_drop(1,1.1cap_drop_round,1.1cap_drop_round,1.2cap_drop_round,slab);
+fill dl_drop_edge1;
+penpos2(cap_bar,-90);
+penpos3(cap_bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-slab;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,cap_bar,theta1,1.3cap_jut,1.3cap_jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,cap_stem,-90,cap_jut,cap_jut);
+serif(8,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z5e--z6e;
+%currentpicture := currentpicture shifted(-.5u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_EM,13u#+1.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,1/2cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 110; y7l=10/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EN,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_O,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.2u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+cap_o_width := x7-x3; save cap_o_width;
+%currentpicture := currentpicture shifted(-1.5u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_PE,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ER,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.56u#;
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_ES,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.1u#;
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+%currentpicture := currentpicture shifted(-1.5u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_TE,round (11u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-.7u#;
+x1=x2=.5w;
+y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+%currentpicture := currentpicture shifted(-2.9u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_U,13u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.8u#;
+x1l=s+cap_jut; y1l=.98h-cap_bar;
+x3r=w-s-.8cap_jut; y3r=.98h-cap_bar;
+x4=33/60w; y4=6/53h;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.2cap_jut,.8cap_jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=0; x6=x4-1.2cap_stem; z7l=z2;
+penpos7(cap_bar,theta2+90);
+penpos5(cap_bar,theta2+90);
+penpos6(cap_bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,cap_drop_round,2u,10/53h,cap_bar);
+fill dl_drop_edge8;
+%currentpicture := currentpicture shifted(-2.95u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EF,round (14u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-2.2u#;
+if .5w = good.x .5w: change_width; fi
+x1=x2=.5w; y2c=0; y1h=h;
+y6=y7=y8=y9=1.3cap_jut; y4=y3=y11=y12=h-1.3cap_jut+1/2slab;
+x3=x7=x2l; x8=x12=x2r; x4=x6=x3-u; x11=x9=x12+u;
+x5=s+1/2cap_curve; x10-x1=x1-x5; y4-y5=y5-y6; y10=y5;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,270);
+penpos7(cap_bar,270);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+penpos10(cap_curve,0);
+penpos11(cap_bar,90);
+penpos12(cap_bar,90);
+penstroke z3e--z4e{left}..tension.8..{down}z5e{down}..tension.8..{right}z6e--z7e;
+penstroke z8e--z9e{right}..tension.8..{up}z10e{up}..tension.8..{left}z11e--z12e;
+%currentpicture := currentpicture shifted(-1.55u,0);
+penlabels (range 1 thru 12);
+endchar;
+
+beginchar(CYR_HA,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.2u#;
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_TSE,12.5u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-1.26u#;
+x1=x2=x5=cap_jut+1/2cap_stem+s;
+x3=x4=x6=w-x1-.5u; y5=y6=y2h;
+y1c=y3c=h; y2c=y4c=0; x7e=w-s; y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e;
+T_serif(7,cap_bar,border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_CHE,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=cap_jut+1/2cap_stem+s; x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,-90,cap_jut,cap_jut);
+serif(3,cap_stem,90,cap_jut,cap_jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l+.1c; y5=cap_bar_height-1/2cap_bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-2cap_bar;
+penpos6(cap_stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+%currentpicture := currentpicture shifted(-3.5u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SHA,16u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+if .5w <> good.x .5w: change_width; fi
+x1=x2=good.x (cap_jut+1/2cap_stem+s);
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=good.x .5w; y5=y1; y6=y2;
+y9b=slab; x9=good.x w-x1;
+x10=x9; y10b=h-slab;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_SHCHA,16.5u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-1.25u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=slab; x9h=w-s-.5u;
+x10=x9; y10b=h-slab;
+x11e=w-s; y11=y9h;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,slab,border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_HARD_SIGN,13.5u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-3.32u#;
+x2r=x5-css_width; x1=x2; x8e=0; y8g=h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+x7=x1d; y1c=h; y2c=0;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y3=y4=cap_bar_height; x3=x2r-.1c; x4=x6=round(x3+5u-cap_stem);
+y6=y7=y2h;
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(8,cap_bar,border_height,0);
+fill T_edge8;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+%currentpicture := currentpicture shifted(-1.4u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YERU,16u#+c#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+y3=y4=cap_bar_height; x3=round x2r; x4=x6=round (x3+5u-cap_stem) - 1;
+y4-y5=y5-y6; x5=x2r+css_width; y8b=slab; x8h=w-s;
+y6=y7=y2h; x9=x8; y9b=h-slab;
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(8,cap_stem,90,cap_jut,cap_jut);
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge9--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SOFT_SIGN,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-3.32u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=x3+5u-cap_stem;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y6=y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_E,10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.15u#;
+x1=16/39w; x5=.5w; y1=0; y5=h;
+y7=.5h; x7=w-1/2cap_curve-s;
+x9e=s; y9=0;
+dl_drop(9,cap_drop_round,16/39w-s,1.7cap_drop_round,slab);
+y8=0.1h-c; y6=0.9h+c; x8=x9+9/16(x7-x9); x6=x5+9/16(x7-x5);
+penpos5(cap_bar,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+penpos1(cap_bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+y2=y5; x2=x5-c;
+S_serif(2,slab,x1+c,1.5border_height);
+x3=x7-1/2cap_stem; y3=y4=cap_bar_height; x4=x2b-x1;
+penpos3(cap_bar,90); penpos4(cap_bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+%currentpicture := currentpicture shifted(-.8u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YU,16u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.25u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+y3=y7=.5h; x7=w-1/2cap_curve-s; x3=x7-cap_o_width; y9=0; y5=h; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3cap_stem; y11=y12=cap_bar_height;
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_YA,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=x2=w-cap_jut-1/2cap_stem-s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2l;
+y1c=h; y2c=0; x6=x4=x7-2.5u; x3=x1c;
+y4-y5=y5-y6; x5=x8-1.5c; x9=s; y9=0; y6-y8=y8-y9; x7-x10=3(x10-x6); x10-x8=x8-x9;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos7(cap_bar,270);
+penpos6(cap_bar,270);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90); fill z9l..z9r..cycle;
+penstroke z3e--z4e{left}..tension.9..z5e..tension.9..{right}z6e--z7e;
+penstroke z9e{right}..tension1..{up}z8e{up}..tension1..{right}z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_a,9u#-s#+2/7stem#,x_height#,0);
+x5=w-s-1/2bar; y5=0; y4=6/7stem; x4=x3=x5-5/7stem-1/2stem;
+y3=bar_height+2bar; y2=y1=h; x2=s+c+6/20w; x1e=s+c;
+ul_drop(1,drop_round,x2-s-c,5/4drop_round,bar);
+fill ul_drop_edge1;
+penpos2(bar,90);
+penpos3(stem,0);
+penpos4(stem,0);
+penpos5(bar,90);
+penstroke z2e{right}..{down}z3e--z4e{down}..{right}z5e;
+fill z5r..z5l..cycle;
+y6=bar_height+1/2bar; x6=x3+1/2stem; x7=s+1/2stem; y7=7/17bar_height;
+y8=0; x9=x4-1/2stem+1/2bar; x9-x8=x8-x7; y9=y4+3/2bar; x66=x8; y66=y6-c;
+numeric theta[]; theta1=angle(z66-z6);
+penpos6(vair,90);
+penpos66(vair,90);
+penpos7(curve,180);
+penpos8(vair,270);
+penpos9(bar,360);
+penstroke z6e{left}..z66e{dir theta1}..tension.8..{down}z7e{down}..tension.8..z8e{right}..{up}z9e;
+%currentpicture := currentpicture shifted(-.4u,0);
+penlabels(range 1 thru 9,66);
+endchar;
+
+beginchar(CYR_be,8u#,asc_height#,0);
+italcorr asc_height#*sind 18-.75u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2stem+s; x7=w-1/2stem-s;
+y2=y8=0.1x_height; y4=y6=0.9x_height; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+y9=y3; x9=s+1/2bar; y10=44/51h; x10=x5+c; x11=w-s-1/2bar; y11=h-1/2bar; %x11=w-1/2bar*sind 45; y11=h-1/2bar*sind 45;
+penpos9(hair,180);
+penpos10(curve,90);
+penpos11(hair,180);
+penstroke z9e{up}..{right}z10e{right}..tension1..z11e;
+fill z11l..tension2..z11r..tension2..cycle;
+%currentpicture := currentpicture shifted(-.95u,0);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_ve,9u#-s#,x_height#,0);
+italcorr x_height#*sind 18-1.57u#;
+x1=x2=jut+1/2stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x9=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h; y8=y9=h-1/2bar; x8=x1d;
+y9-y10=y10-y4; x10=x5-c;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penpos8(bar,270);
+penpos9(bar,270);
+penpos10(curve,180);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penstroke z8e--z9e{right}..tension.8..z10e..tension.8..{left}z4e;
+sss_width := x5 - x2r; save sss_width;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ghe,7u#,x_height#,0);
+italcorr x_height#*sind 18-.77u#;
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; y3=y4=y5=h-1/2bar; x3=x1d; x5e=w-s;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+T_serif(5,bar,4/5border_height,1);
+x4=x5;
+fill serif_edge2--reverse serif_edge1--cycle;
+fill T_edge5;
+penpos3(bar,90);
+penpos4(bar,90);
+penstroke z3e--z4e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_de,9u#,x_height#,x_depth#);
+italcorr x_height#*sind 18-.86u#;
+x3=x4=w-jut-1/2stem-s-.1u;
+y3c=h; y4c=0;
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+x7e=s; x10e=w-s; y7=y8=y9=y10=y4h; x8=x7; x9=x4c;
+T_serif(7,bar,4/5border_height,0);
+T_serif(10,bar,4/5border_height,1);
+fill T_edge7; fill T_edge10;
+penpos8(bar,90); penpos9(bar,90);
+penstroke z8e--z9e;
+x2=s+1.3jut+1/2bar; y2=bar; x1=x2+3/2bar; y1=h-bar;
+numeric theta[]; theta1=angle(z1-z2);
+A_serif(1,bar,theta1-180,1.3jut,jut);
+A_serif(2,bar,theta1,1.3jut,.8jut);
+fill A_serif_edge2..reverse A_serif_edge1..cycle;
+y5=y6=y3h; x5=x1d; x6=x3c;
+penpos5(bar,90);
+penpos6(bar,90);
+penstroke z5e--z6e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ie,8u#,x_height#,0);
+italcorr x_height#*sind 18-1.62u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x5+5/8(x7-x5);
+x10=w-s-1/2bar; y10=y7-5/4stem;
+penstroke z10e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e; fill z10r..z10l..cycle;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ye,8u#,asc_height#,0);
+italcorr asc_height#*sind 18-2.05u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=x5=.5w; y1=0; y5=x_height;
+y3=.5x_height; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.1x_height; y4=y6=0.9x_height; x2=x4=x3+3/8(x5-x3); x6=x5+5/8(x7-x5);
+x10=w-s-1/2bar; y10=y7-5/4stem;
+penstroke z10e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+y12=y14=h; y11=y13=h-stem; x11=x12=x3r+c; x13=x14=x7r-c;
+fill z11..z12..cycle; fill z13..z14..cycle;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 14);
+endchar;
+
+beginchar(CYR_zhe,round (13u#+s#),x_height#,0);
+italcorr x_height#*sind 18-1.26u#;
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,stem,-90,jut,jut);
+serif(9,stem,90,jut,jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; x4=x7-u; y4=y7=y10=y11=bar_height; x10=x8r; x11=x10+u;
+x6=s+1/2bar; y6=y16=0; y4-y5=y5-y6; x4-x5=1.3(x5-x6);
+x16=w-s-1/2bar; 1.3(x16-x15)=x15-x11; y11-y15=y15-y16;
+x2=x5-c; y2=y1=h; x4-x3=x3-x2; y2-y3=y3-y4; x1e=s+c;
+y13=y14=h; x13=x15+c; x13-x12=x12-x11; y13-y12=y12-y11; x14e=w-s-c;
+penpos2(bar,90);
+penpos3(hair,0);
+penpos4(bar,90);
+penpos5(curve,180);
+penpos6(bar,90);
+penpos7(bar,90);
+penpos10(bar,90);
+penpos11(bar,90);
+penpos12(hair,180);
+penpos13(bar,90);
+penpos15(curve,0);
+penpos16(bar,90);
+penstroke z7e--z4e{left}..tension.9..{down}z5e{down}..tension.9..{left}z6e;
+fill z6r..z6l..cycle;
+penstroke z10e--z11e{right}..tension.9..{down}z15e{down}..tension.9..{right}z16e;
+fill z16r..z16l..cycle;
+penstroke z4e{left}..z3e..{left}z2e;
+penstroke z11e{right}..z12e..{right}z13e;
+ul_drop(1,drop_round,x2-s-c,.9drop_round,bar);
+ur_drop(14,drop_round,x2-s-c,.9drop_round,bar);
+fill ul_drop_edge1; fill z1e..z1c..cycle;
+fill ur_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ze,6u#+2s#,x_height#,0);
+italcorr x_height#*sind 18-1.45u#;
+x7=18/39w; y7=0; y4=y5=y44=bar_height;
+x4=x6-3/2stem; x5=x4-u;
+x6=w-s-1/2curve; y4-y6=y6-y7;
+x2=.45w; y2=h; x3=x6-1/5curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(bar,90);
+penpos3(curve,0);
+penpos44(bar,-90);
+penpos4(bar,90);
+penpos5(bar,90);
+penpos6(curve,0);
+penpos7(bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3.5c,border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,drop_round,18/39w-s,1.5drop_round,bar);
+fill dl_drop_edge8;
+%currentpicture := currentpicture shifted(-.5u,0);
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_i,9u#+s#,x_height#,0);
+italcorr x_height#*sind 18-.77u#;
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r-1/2bar; x6=x3l+1/2bar;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,-30); penpos6(bar,-30);
+y5=.1h; y6=.9h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_short_i,9u#+s#,asc_height#,0);
+italcorr x_height#*sind 18-.77u#;
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r-1/2bar; x6=x3l+1/2bar;
+y1c=y3c=x_height; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,-30); penpos6(bar,-30);
+y5=.1x_height; y6=.9x_height; penstroke z5e--z6e;
+x7=.5w; y7=h-3/2drop_round;
+ur_drop(7,drop_round,x3-.5w,1.1drop_round,1.2bar);
+fill ur_drop_edge7 rotatedaround(z7,180);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ka,9u#+.5s#,x_height#,0);
+italcorr x_height#*sind 18-1.26u#;
+x1g=x2g=s; y1c=h; y2c=y9=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=bar_height; x3=x1r; x4=x3+1.25u;
+x9=w-s-1/2bar; 1.3(x9-x8)=x8-x4; y4-y8=y8-y9;
+y6=y7=h; x6=x8+c; x6-x5=x5-x4; y6-y5=y5-y4; x7e=w-s-c;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(hair,180);
+penpos6(bar,90);
+penpos8(curve,0);
+penpos9(bar,90);
+penstroke z3e--z4e{right}..tension.9..{down}z8e{down}..tension.9..{right}z9e;
+fill z9r..z9l..cycle;
+penstroke z4e{right}..z5e..{right}z6e;
+ur_drop(7,drop_round,w-x6-s,.9drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_el,9u#+s#,x_height#,0);
+italcorr x_height#*sind 18-.75u#;
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.7drop_round; y3=1.1drop_round;
+dl_drop(1,drop_round,drop_round,drop_round,bar);
+fill dl_drop_edge1;
+fill z1c..z1e..cycle;
+penpos2(bar,-90);
+penpos3(bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-bar;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,bar,theta1,1.4jut,1.3jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,stem,-90,jut,jut);
+serif(8,stem,90,jut,jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(bar,90); penpos6(bar,90);
+penstroke z5e--z6e;
+%currentpicture := currentpicture shifted(-.4u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_em,10u#+1.5s#,x_height#,0);
+italcorr x_height#*sind 18-.77u#;
+x1g=s; y1c=0; y2=h-bar;
+A_serif(1,bar,90,jut,jut);
+x2=x1; serif(2,bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2bar; y4c=0;
+serif(3,stem,-90,1/2bar, jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -110; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 110; y7l=6/28h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(stem,0); penpos8(stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_en,9u#+s#,x_height#,0);
+italcorr x_height#*sind 18-.77u#;
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_o,8u#+s#,x_height#,0);
+italcorr x_height#*sind 18-1.7u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2curve-s;
+y2=y8=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_pe,9u#+s#,x_height#,0);
+italcorr x_height#*sind 18-.77u#;
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_er,8u#+jut#,x_height#,desc_depth#);
+italcorr x_height#*sind 18-1.65u#;
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+.2s+.6(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=y8=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=-desc_depth;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_es,8u#,x_height#,0);
+italcorr x_height#*sind 18-1.7u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=1/2curve+s;
+y2=0.1h; y4=0.9h; x2=x4=x3+3/8(x5-x3);
+x6=w-s-1/2hair; y6=y3-4/5stem;
+penstroke z6e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e;
+fill z6r..z6l..cycle;
+z7=z5;
+ur_drop(7,drop_round,7/8(x6l-x1),3/2drop_round,bar);
+fill ur_drop_edge7;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(CYR_te,round (8u#-.5s#),x_height#,0);
+italcorr x_height#*sind 18-.75u#;
+if .5w = good.x .5w: change_width; fi
+x2=x3=.5w; x1e=s; x4e=w-s; y1=y4=y2h;
+y2c=h; y3c=0;
+serif(2,stem,-90,jut,jut);
+serif(3,stem,90,jut,jut);
+T_serif(1,bar,4/5border_height,0);
+T_serif(4,bar,4/5border_height,1);
+fill serif_edge3--reverse serif_edge2--cycle;
+fill T_edge1; fill T_edge4;
+%currentpicture := currentpicture shifted(-1.4u,0);
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_u,9u#+s#,x_height#,desc_depth#);
+italcorr x_height#*sind 18-.7u#;
+x1l=s+jut; y1l=h-bar;
+x3r=w-s-.8jut; y3r=h-bar;
+x4=33/60w; y4=-2/5d;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,1.2bar,theta2,1.2jut,.8jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=-d+bar; x6=x4-1.5stem; z7l=z2;
+penpos7(1.2bar,theta2+90);
+penpos5(1.2bar,theta2+90);
+penpos6(1.2bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,1.1stem,1.3u,drop_round,1.2bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(CYR_ef,12u#,asc_height#,desc_depth#);
+italcorr x_height#*sind 18-1.7u#;
+if .5w = good.x .5w: change_width; fi
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w+.5(.5w-s)-c; y1=0; y5=x_height;
+y3=y7=y12=.5x_height; x3=.5w; x7=w-1/2curve-s;
+y2=y8=y9=y11=0.1x_height; y4=y6=y13=y15=0.9x_height;
+x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+z16=z3; x14=x10=.5w-.5(.5w-s)+c; y10=0; y14=x_height;
+x12=s+1/2curve; x9=x15=x16-3/8(x16-x14); x11=x13=x14-5/8(x14-x12);
+penpos10(vair,90);
+penpos11(o,30);
+penpos12(curve,0);
+penpos13(o,-30);
+penpos14(vair,-90);
+penpos15(.7o,-150);
+penpos16(stem,-180);
+penpos9(.7o,-210);
+penstroke z10e..z11e..z12e..z13e..z14e..z15e..z16e..z9e..cycle;
+x99=x155=x3l; x44=x222=x3r; y99=y222=.5x_height-3/2stem; y155=y44=.5x_height+3/2stem;
+unfill z99--z155--z44--z222--cycle; penlabels(44,99,155,222);
+x20=.5w; y20=-.75d; x17=x30=x3l; x23=x24=x3r; y17=y23=-1/2d;
+x18=x19=x17-4/5stem; x21=x22=x23+4/5stem; y18=y22=-d+bar; y19=y21=-d;
+y24=y30=x_height+3/5(asc_height-x_height);x25=x22-c; x29=x18+c; y29=y25=h-1/2bar;
+y28=y26=h; x28=x29+1/2bar; x26=x25-1/2bar; x27=.5w; y27=h-bar;
+fill z30---z17{dir -100}..tension2..z18{left}..{right}z19{right}..{dir 20}z20{dir -20}..{right}z21{right}..{left}z22..tension2..{dir 100}z23---z24{dir 80}..{dir 20}z25{dir 160}..{left}z26{left}..{dir -160}z27{dir 160}..{left}z28{left}..{dir -160}z29{dir -20}..{dir -80}z30&cycle;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels (range 1 thru 30);
+endchar;
+
+beginchar(CYR_ha,9u#+c#,x_height#,0);
+italcorr x_height#*sind 18-1.12u#;
+y3=y4=bar; x3=w-s-jut-1/2stem; x4=s+jut+1/2bar;
+y1=y2=h-bar; x1=s+jut+1/2stem+c; x2=w-s-1.25c-jut-1/2bar;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,stem,theta1-180,jut,jut);
+A_serif(2,1.2bar,theta2-180,jut,jut);
+serif(3,stem,theta1,jut,jut);
+A_serif(4,1.2bar,theta2,jut,1.3jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_tse,9.1u#+s#,x_height#,x_depth#);
+italcorr x_height#*sind 18-.87u#;
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1-.1u; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=y2h; penstroke z5e--z6e;
+x7e=w-s; y7=y4h;
+T_serif(7,bar,4/5border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_che,9u#+s#,x_height#,0);
+italcorr x_height#*sind 18-.77u#;
+x1=jut+1/2stem+s; x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,-90,jut,jut);
+serif(3,stem,90,jut,jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l+.1c; y5=bar_height-1/2bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-.8bar;
+penpos6(stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+%currentpicture := currentpicture shifted(-2.4u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_sha,round (13u#+3/2s#),x_height#,0);
+italcorr x_height#*sind 18-.77u#;
+if .5w = good.x .5w: change_width; fi
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=.5w; y5=y1; y6=y2;
+y9b=bar; x9h=w-s;
+x10=x9; y10b=h-bar;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,stem,-90,jut,jut);
+serif(6,stem,90,jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,stem,90,jut,jut);
+serif(10,stem,-90,jut,jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos7(bar,90);
+penpos8(bar,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_shcha,13.1u#+3/2s#,x_height#,x_depth#);
+italcorr x_height#*sind 18-.87u#;
+if .5w <> good.x .5w: change_width; fi
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=bar; x9h=w-s-.1u;
+x10=x9; y10b=h-bar;
+x11e=w-s; y11=y9h;
+serif(9,stem,90,jut,jut);
+serif(10,stem,-90,jut,jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,stem,-90,jut,jut);
+serif(6,stem,90,jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos7(bar,90);
+penpos8(bar,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,bar,4/5border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_hard_sign,10u#-s#,x_height#,0);
+x2r=x5-sss_width; x1=x2;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r-.1c; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h; x8e=0; y8g=h;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+T_serif(8,bar,4/5border_height,0);
+fill T_edge8;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+x9=c; y9=y10=h; x10=-.1c;
+unfill z8d{up}..z9--z10--cycle;
+%currentpicture := currentpicture shifted(-.95u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_yeru,12u#-c#,x_height#,0);
+italcorr x_height#*sind 18-.77u#;
+x1=x2=jut+1/2stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r-.1c; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=x2r+sss_width;
+y6=y7=y2h; x8h=x9h=w-s; y8c=h; y9c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(8,stem,-90,jut,jut);
+serif(9,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge9--reverse serif_edge8--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_soft_sign,9u#-s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r-.1c; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_e,6u#+2s#,x_height#,0);
+italcorr x_height#*sind 18-1.5u#;
+x1=16/39w; x5=.5w-c; y1=0; y5=h;
+y7=.5h; x7=w-1/2curve-s;
+x9e=s; y9=0;
+dl_drop(9,drop_round,18/39w-s,1.5drop_round,bar);
+y2=y5; x2=x5;
+S_serif(2,bar,x5-s-c,border_height);
+x3=x7-1/2stem; y3=y4=bar_height; x4=x9c-c;
+penpos3(bar,90); penpos4(bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+y8=0.1h-c; y6=0.9h+c; x8=x1+5/8(x7-x9)+.1c; x6=x2+5/8(x7-x5);
+penpos5(bar,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+penpos1(bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+%currentpicture := currentpicture shifted(-.5u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_yu,12u#+.5s#,x_height#,0);
+italcorr x_height#*sind 18-1.72u#;
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x3l=x1h+.3bar; y9=0; y5=h;
+y3=y7=.5h; x7=w-1/2curve-s; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+c+3/8(x5-x3); x6=x8=x5-c+5/8(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3stem; y11=y12=bar_height;
+penpos11(bar,90); penpos12(bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ya,8u#+s#+1/2bar#,x_height#,0);
+italcorr x_height#*sind 18-.77u#;
+x1=x2=w-jut-1/2stem-s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2l; x4=x6=x3-2.5u+stem;
+y5-y4=y6-y5; x5=1/2stem+2s;
+y6=y7=y1h; x9=s; y9=0; x4-x8=x8-x9; y4-y8=y8-y9;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,-90);
+penpos4(bar,-90);
+penpos5(curve,180);
+penpos6(bar,90);
+penpos7(bar,90);
+penpos8(curve,0);
+penpos9(bar,-90);
+penstroke z3e--z4e{left}..tension.8..z5e..tension.8..{right}z6e--z7e;
+penstroke z9e{right}..{up}z8e{up}..{right}z4e;
+fill z9r..z9l..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar("A",13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5e];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar("B",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.17u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,1/2cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("C",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.1u#;
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+%currentpicture := currentpicture shifted(-1.5u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("D",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-2.23u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(o,30);
+penpos6(cap_curve,0);
+penpos7(o,-30);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+x3=x9=x1d;
+x8=x4=.5w; y8=y9=1/2cap_bar; y4=y3=h-1/2cap_bar;
+y6=.5h; x6=w-1/2cap_curve-s;
+y7=.09h-c+1/2cap_bar; y5=0.91h+c-1/2cap_bar; x5=x7=x4+4.5/8(x6-x4);
+penstroke z3e--z4e{right}..z5e..z6e..z7e..{left}z8e--z9e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("E",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.1u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("F",10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("G",10u#+cap_jut#+c#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.78u#;
+x1=x5=23/42(w-cap_jut-c); y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s-cap_jut-c; y8=y1; x8=x1-.1(w-cap_jut-c);
+S_serif(6,slab,w-s-2c-x1-cap_jut,1.5border_height);
+S_serif(7,slab,w-s-x1-cap_jut+c,7/4border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+x9r=x7e; y9r=7/4border_height-1/2cap_bar;
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+x10=x9l; x11=x9r; y10=y11=3/4cap_bar;
+fill reverse serif_edge9--z10--z11--cycle;
+%currentpicture := currentpicture shifted(-1.6u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("H",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("I",2cap_jut#+cap_stem#+2s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+endchar;
+
+beginchar("J",7u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.75u#;
+x1=x4=w-cap_jut-1/2cap_stem-s;
+y1c=h; y2=y3=y4=13/53h; x2=x1r; x3=x1l;
+y5=0; x5=x3-.55cap_stem;
+serif(1,cap_stem,-90,1.2cap_jut,cap_jut);
+fill z3--z2--reverse serif_edge1--cycle;
+penpos4(cap_stem,0);
+penpos5(cap_bar,-90);
+penstroke z4e{down}..{left}z5e;
+x6e=s; y6=0;
+dl_drop(6,cap_drop_round,x5-s,1.3drop_round,cap_bar);
+fill dl_drop_edge6;
+%currentpicture := currentpicture shifted(-.4u,0);
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("K",13u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-1.8u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=cap_bar_height; x3l=w-cap_jut-.5cap_jut-cap_bar-s; y3l=h-cap_bar;
+x5=x6=x1r-.1c; y5=cap_bar_height-cap_bar; y6=y5-1.2cap_bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+A_serif(3,cap_bar,theta1,1.5cap_jut,.6cap_jut);
+x4l=w-s-1.2cap_jut-cap_stem; y4l=cap_bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,cap_stem,theta2,.8cap_jut,cap_jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("L",10u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=y5=y2h; x3=x2d; x5e=w-s;
+T_serif(5,cap_bar,border_height,1); x4=x5;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penstroke z3e--z4e;
+fill T_edge5 reflectedabout(z3,z4);
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar("M",13u#+1.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,1/2cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 110; y7l=10/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("N",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=x2=cap_jut+1/2cap_bar+s;
+x3=w-x1; y1c=y3c=h; y2c=y4=y5=0;
+x4=x3r; x5=x3l;
+serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+A_serif(2,cap_bar,90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill A_serif_edge2--reverse serif_edge1--cycle;
+numeric theta[]; y7=y1h; x7=x1h-1.1cap_stem;
+theta1=angle(z5-z7);
+z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+fill z6--z1h--z7--z5{down}..{up}z4--reverse A_serif_edge3--cycle;
+unfill z1b--z1l--z1a--cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("O",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.2u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+%currentpicture := currentpicture shifted(-1.5u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("P",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.56u#;
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Q",11u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-2.2u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x12-1.5c; x12=x7l-c; y11=y12=-comma_depth;
+y9=0; x9=x1-c; y9-y10=y10-y11; x11-x10=x10-x9;
+penpos9(cap_bar,90); penpos10(cap_curve,0);
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z9e{dir -20}..tension.8..z10e..tension.8..{right}z11e--z12e;
+fill z12r..z12l..cycle;
+%currentpicture := currentpicture shifted(-1.5u,0);
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("R",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.7u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2r;
+y1c=h; y2c=0; x6=x4=x7+2.5u; x3=x1d;
+y4-y5=y5-y6; x5=x8; x9=w-s-1/2cap_bar; y9=0; y6-y8=y8-y9; x10=x6; x9-x8=6/7(x8-x10);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,-90);
+penpos6(cap_bar,-90);
+penpos8(cap_curve,-180);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penstroke z9e{left}..tension.8..{up}z8e{up}..tension.8..{left}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("S",9u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.7u#;
+x6=x7=1/2w; y6=y7=0;
+S_serif(7,cap_bar,x6-s,1.5border_height);
+y5=11/53h; x5=w-s-1/2(1.9hair);
+y4=28/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2(1.9cap_bar);
+x2=.5w-c; y2=h; z1=z2;
+penpos6(cap_bar,-90);
+penpos5(1.9hair,0);
+penpos4(1.1cap_curve,90);
+penpos3(1.9hair,0);
+penpos2(cap_bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-cap_bar,1.2border_height);
+fill S_serif_edge1;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("T",round (11u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-.7u#;
+x1=x2=.5w; y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+%currentpicture := currentpicture shifted(-2.9u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("U",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1=cap_jut+1/2cap_stem+s;
+x3=w-s-cap_jut-1/2cap_bar;
+y1c=y3c=h; y2=y4=y5=y6=y24=y56=16/53h; x2=x1l;
+x4=x1r; x5=x3l; x6=x3r;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill z2--z4--reverse serif_edge1--cycle;
+fill z5--z6--reverse A_serif_edge3--cycle;
+x7=x1+.5(x3-x1); y7=0; x4-x24=x24-x2; x6-x56=x56-x5;
+penpos24(cap_stem,-180); penpos7(vair,-90);
+penpos56(cap_bar,0);
+penstroke z24e{down}..tension.9..{right}z7e{right}..tension.9..{up}z56e;
+%currentpicture := currentpicture shifted(-2.3u,0);
+penlabels(range 1 thru 7,24,56);
+endchar;
+
+beginchar("V",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1l=cap_jut+s; x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w-1/2cap_bar; x5=.5w+1/2cap_bar;
+y4=y5=1/2cap_bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+%currentpicture := currentpicture shifted(-3.8u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("W",17u#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x9l=.5w-.3cap_stem; x7r=w-s-cap_jut;
+y9l=y7r=y1l=h-cap_bar; x5=x9l+.5(x7r-x9l)-1/2cap_bar; x6=x9l+.5(x7r-x9l)+1/2cap_bar;
+y5=y6=y2=y3=1/2cap_bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(7,cap_bar,theta2,1.3cap_jut,cap_jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+cap_jut;
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+z2=z1l+whatever*dir theta1; x3=x2+cap_bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+%currentpicture := currentpicture shifted(-3.8u,0);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("X",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.2u#;
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("Y",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x1l=cap_jut+s;
+x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w;
+y4=8/25h;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+y5c=0; x5=.5w+.5c;
+serif(5,cap_stem,90,cap_jut,cap_jut);
+x6=x5l; x7=x5r;
+z6=z1l+whatever*dir theta1;
+z7=z3r+whatever*dir theta2;
+fill z6--serif_edge5--z7--reverse A_serif_edge3--z2--reverse serif_edge1--z6&cycle;
+%currentpicture := currentpicture shifted(-3.3u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Z",9u#+1.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-.78u#;
+x6=s+1/2cap_bar; y6=y7=y8=1/2cap_bar;
+x8e=w-s; x7=x8;
+T_serif(8,cap_bar,border_height,1);
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4cap_bar;
+x4r=w-s-1/4cap_bar; y4=h-cap_bar;
+penpos4(cap_stem,0);
+penpos5(cap_stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2cap_bar;
+x3=w-s-1/2cap_bar; x1e=s+c;
+T_serif(1,cap_bar,border_height,0);
+x2=x1;
+penpos3(cap_bar,90);
+penpos2(cap_bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e-.1c; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar("a",9u#-s#+2/7stem#,x_height#,0);
+x5=w-s-1/2bar; y5=0; y4=6/7stem; x4=x3=x5-5/7stem-1/2stem;
+y3=bar_height+2bar; y2=y1=h; x2=s+c+6/20w; x1e=s+c;
+ul_drop(1,drop_round,x2-s-c,5/4drop_round,bar);
+fill ul_drop_edge1;
+penpos2(bar,90);
+penpos3(stem,0);
+penpos4(stem,0);
+penpos5(bar,90);
+penstroke z2e{right}..{down}z3e--z4e{down}..{right}z5e;
+fill z5r..z5l..cycle;
+y6=bar_height+1/2bar; x6=x3+1/2stem; x7=s+1/2stem; y7=7/17bar_height;
+y8=0; x9=x4-1/2stem+1/2bar; x9-x8=x8-x7; y9=y4+3/2bar; x66=x8; y66=y6-c;
+numeric theta[]; theta1=angle(z66-z6);
+penpos6(vair,90);
+penpos66(vair,90);
+penpos7(curve,180);
+penpos8(vair,270);
+penpos9(bar,360);
+penstroke z6e{left}..z66e{dir theta1}..tension.8..{down}z7e{down}..tension.8..z8e{right}..{up}z9e;
+%currentpicture := currentpicture shifted(-.4u,0);
+penlabels(range 1 thru 9,66);
+endchar;
+
+beginchar("b",8u#+jut#,asc_height#,0);
+italcorr asc_height#*sind 18-3.04u#;
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+.2s+.6(w-jut-2s); y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=y8=0.1x_height; y4=y6=0.9x_height; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=0;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,0);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("c",8u#,x_height#,0);
+italcorr x_height#*sind 18-1.7u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=1/2curve+s;
+y2=0.1h; y4=0.9h; x2=x4=x3+3/8(x5-x3);
+x6=w-s-1/2hair; y6=y3-4/5stem;
+penstroke z6e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e;
+fill z6r..z6l..cycle;
+z7=z5;
+ur_drop(7,drop_round,7/8(x6l-x1),3/2drop_round,bar);
+fill ur_drop_edge7;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("d",8u#+jut#,asc_height#,0);
+italcorr asc_height#*sind 18-1.76u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.7o,-150);
+penpos7(stem,-180);
+penpos8(.7o,-210);
+x1=x5=1.8s+.4(w-jut-2s); y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2curve+s; x7=w-1/2stem-s-jut;
+y2=y8=0.1x_height; y4=y6=0.9x_height; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10h=w-s; x9=x10; y9c=h; y10c=0;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,0,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("e",8u#,x_height#,0);
+italcorr x_height#*sind 18-1.62u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x5+5/8(x7-x5);
+x10=w-s-1/2bar; y10=y7-5/4stem;
+penstroke z10e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e; fill z10r..z10l..cycle;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("f",2jut#+stem#+2c#+2s#,asc_height#,0);
+italcorr asc_height#*sind 18-1.08u#;
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x1; y3=x_height; x4r=x1l-.1stem; y4=x_height+1/2(asc_height-x_height);
+x5l=x4l-.05stem; y5=y4+1.5bar; x6=x1r+.2stem; y6=h-1/2bar;
+penpos3(stem,180);
+penpos4(.75curve,180);
+penpos5(.6curve,180);
+penpos6(bar,90);
+penstroke z3e{dir 95}...{up}z4e..z5e..{right}z6e;
+y6=y7; x7e=w-s;
+ur_drop(7,stem,x7e-x6,drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("g",9u#+c#,x_height#,desc_depth#);
+italcorr x_height#*sind 18-.96u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+y3=y7=2/3h; x3=1/2curve+s+c; x7=w-3/2stem-s;
+x1=x5=x3+1/2(x7-x3); y1=3/11h; y5=h;
+y2=y8=y1+0.1(8/11h); y4=y6=y1+0.9(8/11h); x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x9=x7; y9=y7+1/2(y6-y7); y10=h; x10=x7l+c;
+x11e=w-s; y11=y10;
+ur_drop(11,.8stem,x11e-x10,drop_round,bar);
+penpos9(hair,180); penpos10(vair,90);
+penstroke z9e{up}..{right}z10e;
+fill ur_drop_edge11;
+y12=y1; x12=x1; y13=y12/2; x13=s+1/4stem+.5c;
+y14=y15=0; x14=x2r; x15=x8r; y16=y18=-d/2; x16=w-s-1/2stem;
+x18=s+.7hair; y17=-d+1/2bar; x17=s+.6bar+9/20(x16-x18); x19=x14; y19l=y14r;
+penpos12(vair,90); penpos13(1/2curve,180); penpos14(curve,270);
+z144=z14; penpos144(curve,90); penpos15(curve,90);penpos16(1/2curve,0);
+penpos17(vair,-90); penpos18(1.4hair,-180); penpos19(1.4vair,-270);
+penstroke z12e{left}..{down}z13e{down}..{right}z14e;
+penstroke z144e--z15e{right}..tension.8..{down}z16e{down}..{left}z17e{left}..{up}z18e{up}..{right}z19e;
+penlabels(range 1 thru 19);
+endchar;
+
+beginchar("h",round (10u#-1.5c#),asc_height#,0);
+w:=w+1;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6h=w-s; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33x_height;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=x_height; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("i",2jut#+stem#+2s#,x_height#+2.1stem#,0);
+italcorr asc_height#*sind 18-2.25u#;
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+z3=(x1,h); z4=(x1,h-1.1stem);
+fill z3..z4..cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("j",5u#,x_height#+2.1stem#,desc_depth#);
+italcorr (x_height#+2.1stem#)*sind 18-.9u#;
+x1h=w-s; y1c=x_height; y2=0; x2=x1;
+serif(1,stem,-90,1.5jut,0);
+penpos2(stem,0);
+fill z2l--z2r--reverse serif_edge1--cycle;
+z3=(x1-.05stem,h); z4=(x1-.05stem,h-1.1stem);
+fill z3..z4..cycle;
+y5=-1/4desc_depth; x5r=x2r;
+y6=-d+1/2bar; x6=x2l-.4stem;
+penpos5(.97stem,0);
+penpos6(bar,-90);
+penstroke z2e--z5e{down}..{left}z6e;
+x7e=s; y7=-d+1/2bar;
+dl_drop(7,stem,x6-x7e,drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar("k",round (10u#-c#),asc_height#,0);
+w:=w+1; italcorr asc_height#*sind 18-2.4u#;
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=bar_height; x3l=w-jut-.7jut-s; y3l=x_height-bar;
+x5=x6=x1r-.1c; y5=bar_height-bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+y6=y5-bar/cosd (theta1+180);
+A_serif(3,bar,theta1,1.8jut,.8jut);
+x4l=w-s-1.2jut-stem; y4l=bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,stem,theta2,.8jut,jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("l",2.4jut#+stem#+2s#,asc_height#,0);
+italcorr asc_height#*sind 18-1.93u#;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,1.2jut,0);
+serif(2,stem,90,1.2jut,1.2jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penlabels(1,2);
+endchar;
+
+beginchar("m",14u#,x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6=.5w; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33h;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=h; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+x10h=w-s; y10c=0;
+serif(10,stem,90,jut,jut);
+x9=x10; y9=y5;
+penpos9(stem,0);
+fill serif_edge10--z9r--z9l--cycle;
+x8=x10g; y8=h; y7=y9-1/4bar; x7l=x6r;
+penpos8(vair,90);
+penpos7(bar,180);
+penstroke z9e{up}..{left}z8e{left}..z7e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("n",round (10u#-1.5c#),x_height#,0);
+w:=w+1;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6h=w-s; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33h;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=h; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("o",8u#+s#,x_height#,0);
+italcorr x_height#*sind 18-1.7u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2curve-s;
+y2=y8=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("p",8u#+jut#,x_height#,desc_depth#);
+italcorr x_height#*sind 18-1.65u#;
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+.2s+.6(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=y8=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=-desc_depth;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("q",8u#+jut#,x_height#,desc_depth#);
+italcorr x_height#*sind 18-.7u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.7o,-150);
+penpos7(stem,-180);
+penpos8(.7o,-210);
+x1=x5=1.8s+.4(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2stem-s-jut;
+y2=y8=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10h=w-s; x9=x10; y9c=h; y10c=-d;
+serif(9,stem,-90,0,jut);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("r",7u#+c#,x_height#,0);
+italcorr x_height#*sind 18-1.02u#;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,1.2jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x4=round (x2h+1/2bar+c); y4=h; y3=23/33h-1/4bar; x3l=x2r;
+penpos4(bar,90);
+penpos3(bar,180);
+penstroke z4e{left}...{down}z3e;
+x5e=w-s; y5=h;
+ur_drop(5,1.1stem,x5e-x4,drop_round,bar);
+fill ur_drop_edge5;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar("s",7u#+c#,x_height#,0);
+italcorr x_height#*sind 18-1.21u#;
+x6=x7=1/2w; y6=y7=1/2bar;
+S_serif(7,bar,x6-s,border_height);
+y5=11/53h; x5=w-s-1/2(1.4hair);
+y4=29/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2hair;
+x2=.5w; y2=h; z1=z2;
+penpos6(bar,-90);
+penpos5(1.4hair,0);
+penpos4(1.1curve,90);
+penpos3(1.4hair,0);
+penpos2(bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-1/3bar,.9border_height);
+fill S_serif_edge1;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("t",7u#-s#,asc_height#,0);
+italcorr asc_height#*sind 18-2.9u#;
+y1=y2=46/53h; y4c=x_height; x4g=s;
+serif(4,stem,-90,jut,1.4jut);
+x1=x4r; x2=x1-bar;
+y5=7/33x_height; x5=x4; x3=x4l; y3=42/53h;
+penpos5(stem,180); numeric theta[];
+theta1=angle(z3-z2);
+fill z5l--reverse serif_edge4--z5r--cycle;
+fill z4r--z1{up}..{dir theta1}z2--z3--z4l--cycle;
+y6=1/4bar; x6=x4r+.7jut; x7=w-.5s-1/2bar; y7=13/53h;
+penpos6(vair,270); penpos7(hair,360);
+penstroke z5e{down}..{right}z6e{right}..{up}z7e;
+fill z7r..z7l..cycle;
+%currentpicture := currentpicture shifted(-1.5u,0);
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar("u",round (10u#-1.5c#),x_height#,0);
+italcorr x_height#*sind 18-1.8u#;
+w:=w+1; x2h=w-s; y1c=h; y2c=0; x1=x2;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,0,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6g=s; y6c=h;
+serif(6,stem,-90,jut,0);
+x5=x6; y5=10/33h;
+penpos5(stem,180);
+fill serif_edge6--z5l--z5r--cycle;
+x4=x6+1/2stem+jut; y4=0; y3=y5+1/4bar; x3l=x2l;
+penpos4(vair,270);
+penpos3(bar,360);
+penstroke z5e{down}..{right}z4e{right}..z3e;
+%currentpicture := currentpicture shifted(-1.6u,0);
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar("v",10u#-1.5c#,x_height#,0);
+italcorr x_height#*sind 18-.78u#;
+x1l=jut+s; x3r=w-s-jut;
+y1l=y3r=h-bar; x4=.5w-1/2bar; x5=.5w+1/2bar;
+y4=y5=1/2bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,bar,theta2,1.3jut,jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+%currentpicture := currentpicture shifted(-2.4u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("w",13u#,x_height#,0);
+italcorr x_height#*sind 18-.78u#;
+x9l=.5w-.3stem; x7r=w-s-jut;
+y9l=y7r=y1l=h-bar; x5=x9l+.5(x7r-x9l)-1/2bar; x6=x9l+.5(x7r-x9l)+1/2bar;
+y5=y6=y2=y3=1/2bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,stem,theta1,jut,jut);
+A_serif(7,bar,theta2,1.1jut,jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+jut;
+serif(1,stem,theta1,jut,jut);
+z2=z1l+whatever*dir theta1; x3=x2+bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+%currentpicture := currentpicture shifted(-2.4u,0);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("x",9u#+c#,x_height#,0);
+italcorr x_height#*sind 18-1.1u#;
+y3=y4=bar; x3=w-s-jut-1/2stem; x4=s+jut+1/2bar;
+y1=y2=h-bar; x1=s+jut+1/2stem+c; x2=w-s-1.25c-jut-1/2bar;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,stem,theta1-180,jut,jut);
+A_serif(2,1.2bar,theta2-180,jut,jut);
+serif(3,stem,theta1,jut,jut);
+A_serif(4,1.2bar,theta2,jut,1.3jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("y",9u#+s#,x_height#,desc_depth#);
+italcorr x_height#*sind 18-.7u#;
+x1l=s+jut; y1l=h-bar;
+x3r=w-s-.8jut; y3r=h-bar;
+x4=33/60w; y4=-2/5d;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,1.2bar,theta2,1.2jut,.8jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=-d+bar; x6=x4-1.5stem; z7l=z2;
+penpos7(1.2bar,theta2+90);
+penpos5(1.2bar,theta2+90);
+penpos6(1.2bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,1.1stem,1.3u,drop_round,1.2bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("z",7u#+c#,x_height#,0);
+italcorr x_height#*sind 18-.77u#;
+x6=s+1/2bar; y6=y7=y8=1/2bar;
+x8e=w-s; x7=x8;
+T_serif(8,bar,.8border_height,1);
+penpos6(bar,90);
+penpos7(bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-.5c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4bar;
+x4r=w-s-1/4bar; y4=h-bar;
+penpos4(stem,0);
+penpos5(stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2bar;
+x3=w-s-1/2bar; x1e=s+c;
+T_serif(1,bar,.8border_height,0);
+x2=x1;
+penpos3(bar,90);
+penpos2(bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(hex"30",9u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.1u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+%currentpicture := currentpicture shifted(-1.4u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"31",6u#+3/2c#,cap_height#,0);
+y1c=0; x1h=w-s; italcorr cap_height#*sind 18-2u#;
+serif(1,cap_stem,90,cap_jut,cap_jut);
+x6=x1f; y5=y6=h; x5=x1; x2=x1a; y2=42/53h;
+penpos4(1.1cap_bar,theta1+45);
+penpos3(1.1cap_bar,theta1+45);
+x4l=s; y4=30/53h; numeric theta[]; theta1=angle(z5-z4l);
+z3l=z5; penstroke z3e--z4e; fill z4l..z4r..cycle;
+fill serif_edge1--z6{dir 110}..{dir 250}z5--z2--cycle;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"32",9u#,cap_height#,0);
+italcorr cap_height#*sind 18-1.6u#;
+z4=(9/33w,14/53h); z5=(s+11/20cap_bar,0);
+z3=(w-s-.5c-7/16cap_curve,40/53h); z2=(15/33w,h);
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos4(1.1cap_bar,-45);
+penpos5(1.1cap_bar,0);
+x6=x5r; y6=y7=7/16cap_stem; y8=1/2cap_bar;
+x8e=w-s; x7=x8e;
+T_serif(8,cap_bar,3/5border_height,1);
+penpos6(7/8cap_stem,90);
+penpos7(7/8cap_stem,90);
+penstroke z6e--z7e; %fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+unfill z11{down}..z9--z10--cycle;
+penstroke z5e{up}..z4e..{up}z3e{up}..{left}z2e;
+z1=z2; ul_drop(1,cap_drop_round,15/33w-3c,1.4cap_drop_round,slab);
+fill ul_drop_edge1;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"33",9u#,cap_height#,0);
+italcorr cap_height#*sind 18-2.05u#;
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height+c;
+x4=x6-3/2cap_stem; x5=x4-2u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_stem,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..{down}z3e{down}..{left}z44e;
+penstroke z5e--z4e{right}..tension.9..{down}z6e{down}..tension.9..{left}z7e;
+fill z5r..z5l..cycle;
+ul_drop(1,cap_drop_round,17/39w-s,1.1cap_drop_round,slab);
+fill ul_drop_edge1;
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.3cap_drop_round,slab);
+fill dl_drop_edge8;
+%currentpicture := currentpicture shifted(-.6u,0);
+penlabels(1,2,3,4,5,6,7,8,44);
+endchar;
+
+beginchar(hex"34",9u#+c#,cap_height#,0);
+italcorr cap_height#*sind 18-2.15u#;
+y1=y2=33/53h; y4c=0; x4h=w-s;
+serif(4,7/8cap_stem,90,cap_jut,cap_jut);
+x1=x4r; x2=x1-bar;
+x3=x4l; y3=28/53h;
+numeric theta[]; theta1=angle(z2-z3);
+fill z3{dir theta1}--z2{dir theta1}..{down}z1--reverse serif_edge4--z3&cycle;
+y5=y6=15/53h; x5=x4e; x6=s+cap_bar;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e; fill z5r..z5l..cycle;
+y7=y6l; x7l=x6; z8=(6/36w, 21/53h);
+z9=(2/3w,h);
+penpos7(cap_bar,180); penpos8(cap_bar,150);
+penpos9(cap_stem,180);
+penstroke z7e{up}..z8e..{dir 70}z9e;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"35",9u#,cap_height#,0);
+italcorr cap_height#*sind 18-1.45u#;
+x7=x4=18/39w; y7=0; y5=cap_bar_height+c; y4=y5+s;
+x8e=s; y8=0; x5=x8d;
+dl_drop(8,cap_drop_round,18/39w-s,1.3cap_drop_round,slab);
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z5e..z4e{right}..tension.85..{down}z6e{down}..tension.85..{left}z7e;
+fill z5r..z5l..cycle;
+fill dl_drop_edge8;
+z3=z5; x2=x3; y2=h;
+penpos3(cap_bar,0); penpos2(cap_bar,0);
+penstroke z3e--z2e; fill z2l..tension 1.7..z2r..tension 1.7..cycle;
+y1r=h; x1=x2r; x13=x6; y13=h; 2(x12-x1)=x13-x12; y12=h-.6cap_stem;
+penpos1(7/8cap_stem,90); penpos13(1.1cap_bar,90); penpos12(3/4cap_stem,90);
+penstroke z1e..z12e..z13e; fill z13r..tension 1.7..z13l..tension 1.7..cycle;
+%currentpicture := currentpicture shifted(-.6u,0);
+penlabels(1,2,3,4,5,6,7,8,12,13);
+endchar;
+
+beginchar(hex"36",9u#,cap_height#,0);
+italcorr cap_height#*sind 18-1.85u#;
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=x9=.45w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.1h-c; y4=y6=0.9h+c; x8=x6=x7+11/32(x5-x7); x4=x10=x5+9/16(x3-x5); x2=x4-1/2c;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.1h-c; y11=y7;
+x11l=x3l; y10=y8;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e..z10e..z11e;
+z12 = z1;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+z13 = (.5w,.5h);
+currentpicture := currentpicture rotatedaround(z13,180) shifted(sl_parameter*w*1.3,0);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"37",9u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-.7u#;
+x4=w-s-1/2cap_bar; y4=h-1/2cap_bar;
+penpos4(cap_bar,0);
+y3=y2=h-7/16cap_stem; y1=h-7/8cap_stem+1/2cap_bar;
+x3=x4l; x1e=s;
+T_serif(1,cap_bar,3/5border_height,0);
+x2=x1e;
+penpos3(7/8cap_stem,90);
+penpos2(7/8cap_stem,90);
+penstroke z2e--z3e; fill T_edge1; z44=(x4,h); fill z4r{up}..{left}z44--z3r--z4l--cycle;
+x10=s+c; x11=.95s; y10=y11=h;
+unfill z1d{up}..z10--z11--cycle;
+unfill z1d{up}..z10--z11--cycle;
+x5r=x3; y5=h-7/8cap_stem;
+x6=14/30w; y6=1/3cap_curve;
+penpos5(cap_bar,0); penpos6(cap_curve,0);
+penstroke z4e{dir -105}..z5e..{dir -95}z6e; fill z6l..z6r..cycle;
+%currentpicture := currentpicture shifted(-2.4u,0);
+penlabels(1,2,3,4,5,6,10,11,12);
+endchar;
+
+beginchar(hex"38",10u#-s#,cap_height#,0);
+italcorr cap_height#*sind 18-2u#;
+x6=x4=x2=x8=1/2w; y6=0; y2=h;
+y5=11/53h; y7=13/53h; x5=w-s-1/2(1.9hair);
+y4=y8=28/53h; y3=42/53h; y1=40/53h; x3=2s+1/2(1.9cap_bar);
+x1=w-2s-1/2(1.9cap_bar); x7=w-x5;
+penpos6(cap_bar,-90);
+penpos5(2.5hair,0);
+penpos4(cap_curve,90);
+penpos3(2.5hair,0);
+penpos2(cap_bar,-90);
+penpos1(2.5hair,-180);
+penpos7(2.5hair,-180);
+penpos8(cap_bar,-270);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e;
+%currentpicture := currentpicture shifted(-.6u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"39",9u#,cap_height#,0);
+italcorr cap_height#*sind 18-2.1u#;
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=x9=.45w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.1h-c; y4=y6=0.9h+c; x8=x6=x7+11/32(x5-x7); x4=x10=x5+9/16(x3-x5); x2=x4-1/2c;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.1h-c; y11=y7;
+x11l=x3l; y10=y8;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e..z10e..z11e;
+z12 = z1;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+%currentpicture := currentpicture shifted(-.8u,0);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(oct"56",cap_stem#+2s#,cap_stem#,0);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+endchar;
+
+beginchar(oct"54",cap_stem#+2s#+c#,cap_stem#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"60",cap_stem#+2s#+c#,asc_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(oct"41", cap_stem#+2s#,cap_height#,0); "Exclamation mark";
+ italcorr cap_height#*sind 18-.64u#;
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+ x3=.5w-1/2cap_bar; x4=.5w+1/2cap_bar; y3=y4=3/2cap_stem;
+ x6=x1; x5=x2; y5=y6=h;
+ fill z6--z3..z4--z5{up}..z6&cycle;
+endchar;
+
+beginchar(hex"22",2cap_stem#+3s#+2c#,cap_height#,0);
+ italcorr cap_height#*sind 18-2.6u#;
+ z1=(s,h-1/2cap_stem); z2=(x1+cap_stem+c,h-1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-cap_stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture shifted(-1.7u,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"5C",2cap_stem#+3s#+2c#,cap_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(x1+cap_stem+c,1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"7b",10u#-1.5c#,x_height#,0); "En dash";
+ italcorr x_height#*sind 18-1.9u#;
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ %currentpicture := currentpicture shifted(-1.3u,0);
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"3D",10u#+1.5c#,x_height#,0);
+ italcorr x_height#*sind 18-1.6u#;
+ z1=(s+1/2bar,bar_height-3c); z2=(w-s-1/2bar,bar_height-3c);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+3c); z4=(w-s-1/2bar,bar_height+3c);
+ penpos3(bar,90); penpos4(bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ %currentpicture := currentpicture shifted(-1.2u,0);
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"23",13u#,asc_height#,body_depth#);
+ italcorr asc_height#*sind 18-2.31u#;
+ z1=(s+1/2bar,bar_height-5c); z2=(w-s-1/2bar,bar_height-5c);
+ penpos1(1.5bar,90); penpos2(1.5bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+5c); z4=(w-s-1/2bar,bar_height+5c);
+ penpos3(1.5bar,90); penpos4(1.5bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ z5=(.5w-5c,bar_height); z6=(.5w+5c,bar_height);
+ z7=z5+whatever*dir 76; y7=h; z8=whatever[z5,z7]; y8=-d;
+ penpos7(1.5bar,0); penpos8(1.5bar,0);
+ fill z7l{up}..{down}z7r--z8r{down}..{up}z8l--z7l&cycle;
+ z9=z6+whatever*dir 76; y9=h; z10=whatever[z6,z9]; y10=-d;
+ penpos9(1.5bar,0); penpos10(1.5bar,0);
+ fill z9l{up}..{down}z9r--z10r{down}..{up}z10l--z9l&cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"7c",14u#,x_height#,0); "Em dash";
+ italcorr x_height#*sind 18-1.9u#;
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ %currentpicture := currentpicture shifted(-1.3u,0);
+ penlabels(1,2);
+endchar;
+
+beginchar(oct"55",2cap_jut#+cap_stem#+2s#,x_height#,0); "hyphen";
+ italcorr x_height#*sind 18-1.7u#;
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ %currentpicture := currentpicture shifted(-1.45u,0);
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"5F",1.1stem#+2s#,x_height#+2.1stem#,0);
+ italcorr (2.1stem#+x_height#)*sind 18-.97u#;
+ z1=(.5w,h); z2=(.5w,h-1.1stem);
+ fill z1..z2..cycle;
+ %currentpicture := currentpicture shifted(-3.2u,0);
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7E",7u#,body_height#,0);
+ italcorr body_height#*sind 18-.95u#;
+ pickup pencircle xscaled .9pt yscaled .2pt rotated 55;
+ z4=(w-s-c,h-s); x1=s+c; y1=y4-1/2cap_stem;
+ y2-y1=y4-y3=3(y4-y1); z2-z1=z4-z3=whatever * dir 55;
+ draw z1..controls z2 and z3..z4;
+ %currentpicture := currentpicture shifted(-4u,0);
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"3C",7u#-2c#,x_height#,0); "looks like <<";
+ italcorr x_height#*sind 18-u#;
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ %currentpicture := currentpicture shifted(-1.8u,0);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3E",7u#-2c#,x_height#,0);
+ italcorr x_height#*sind 18-u#;
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ z10=(.5w,.5h);
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ currentpicture := currentpicture rotatedaround(z10,180) shifted(3.6u,0);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3B",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ italcorr x_height#*sind 18-.8u#;
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+3/2c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ z8=(s,h-1/2cap_stem); z9=(w-s,h-1/2cap_stem);
+ fill z8..z9..cycle;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(hex"3A",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ italcorr x_height#*sind 18-.8u#;
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ fill z1..z2..cycle;
+ penlabels(1,2,3,4);
+ z3=(s,1/2cap_stem); z4=(w-s,1/2cap_stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2B",2cap_jut#+cap_stem#+2s#,x_height#,0);
+ italcorr x_height#*sind 18-1.75u#;
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ x3=x4=.5w; y3=y2+1/2(x2-x1); y4=y2-1/2(x2-x1);
+ penpos3(1.8bar,0); penpos4(1.8bar,0);
+ penstroke z3e--z4e;
+ fill z3r..z3l..cycle; fill z4r..z4l..cycle;
+ %currentpicture := currentpicture shifted(-1.4u,0);
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2F",2s#+bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-.78u#;
+ z1=(.5w,h-.5bar); z2=(.5w,-d+.5bar);
+ %pickup pencircle xscaled bar yscaled bar;
+ penpos1(bar,0); penpos2(bar,0);
+ penstroke z1e--z2e; fill z1r..z1l..cycle;
+ fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"27",cap_stem#+2s#+c#,x_height#+2.1stem#,0);
+ italcorr (2.1stem#+x_height#)*sind 18-u#;
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ z6=(.5w-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ %currentpicture := currentpicture shifted(-3u,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"28",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-.85u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"29",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.8u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180) shifted(4u,0);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"86",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-.85u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"87",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-2.56u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180) shifted(4u,0);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"5B",2s#+3cap_bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-.77u#;
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x2,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z1r..z1l..cycle; fill z6r..z6l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"5D",2s#+3cap_bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-.73u#;
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x1,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z2r..z2l..cycle; fill z5r..z5l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"B9",16u#,cap_height#,0);
+ italcorr cap_height#*sind 18-1.86u#;
+ x1=x2=cap_jut+1/2cap_bar+s+cap_stem;
+ x3=w-x1-1/2cap_stem; y1c=h; y4=y5=0;
+ x4=x3r; x5=x3l; y2=12/53h; y3=h-y2;
+ x8=x2-stem; y8=0; z9=z8;
+ dl_drop(9,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill dl_drop_edge9; penpos8(bar,-90);
+ serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+ penpos2(bar,0); penpos3(bar,0);
+ penstroke z2e{down}..{left}z8e;
+ fill z2l--z2r--reverse serif_edge1--cycle;
+ numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+ theta1=angle(z5-z7); x10=x3+stem; y10=h; z11=z10;
+ penpos10(bar,-90); penstroke z3e{up}..{right}z10e;
+ ur_drop(11,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill ur_drop_edge11;
+ z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+ fill z6--z1h--z7--z5{down}..{up}z4--z3r--z3l--cycle;
+ unfill z1b--z1l--z1a--cycle;
+ y12=y13=2cap_bar; x12=x4+2cap_bar+.5s; x13=w-1.5s;
+ penpos12(.4stem,90); penpos13(.4stem,90);
+ penstroke z12e--z13e; y16=y11d-5cap_bar;
+ x13-x14=x14-x12; x16=x14; y14=y13+5cap_bar;
+ x17=w-s-1/4stem; x17-x16=x16-x15; y16-y15=y15-y14;
+ y17=y15; penpos17(.6stem,0); penpos16(bar,90);
+ penpos15(.6stem,180); penpos14(bar,270);
+ penstroke z17e{up}..{left}z16e{left}..{down}z15e{down}..{right}z14e{right}..{up}z17e;
+ fill z12l..tension1.2..z12r..tension1.2..cycle;
+ fill z13l..tension1.2..z13r..tension1.2..cycle;
+ penlabels(range 1 thru 17);
+endchar;
+
+beginchar(hex"24",9u#-s#,body_height#,body_height#-cap_height#);
+ italcorr body_height#*sind 18-1.72u#;
+ x6=x7=1/2w-c; y6=y7=0;
+ dl_drop(7,cap_drop_round,x6-s,1.3cap_drop_round,cap_bar);
+ y5=10/53cap_height; x5=w-s-1/2(1.9hair);
+ y4=1/2cap_height; x4=19/38w; y3=42/53cap_height; x3=s+1/2(1.9cap_bar);
+ x2=.5w+c; y2=cap_height; z1=z2;
+ penpos6(cap_bar,-90); penpos5(1.9hair,0);
+ penpos4(1.1cap_curve,90); penpos3(1.9hair,0);
+ penpos2(cap_bar,-90);
+ penstroke z6e{right}..z5e..tension1..z4e..tension.9..z3e..{right}z2e;
+ fill dl_drop_edge7;
+ ur_drop(1,cap_drop_round,w-s-x2,1.3cap_drop_round,cap_bar);
+ fill ur_drop_edge1;
+ z8=(.5w,h); z9=(.5w,-d);
+ penpos8(cap_bar,0); penpos9(cap_bar,0);
+ penstroke z8e--z9e;
+ fill z9r..z9l..cycle; fill z8r..z8l..cycle;
+ %currentpicture := currentpicture shifted(-.6u,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"25",12u#,asc_height#,0);
+italcorr asc_height#*sind 18-2.31u#;
+penpos1(vair,90); penpos2(.6curve,0);
+penpos3(vair,-90); penpos4(.6curve,-180);
+y1=.55h; y3=h; y3-y4=y4-y1; y2=y4; x2=1/4curve+s; x4=5/2curve+s;
+x4-x1=x1-x2; x3=x1;
+penstroke z1e{left}..tension.9..{up}z2e{up}..tension1.2..{right}z3e..tension.9..{down}z4e{down}..tension1.2..{left}z1e..cycle;
+penpos5(vair,90); penpos6(.6curve,0);
+penpos7(vair,-90); penpos8(.6curve,-180);
+y5=0; y7=.45h; y7-y8=y8-y5; y6=y8; x8=w-1/4curve-s; x6=w-5/2curve-s;
+x8-x5=x5-x6; x7=x5;
+penstroke z5e{left}..tension.9..{up}z6e{up}..tension1.2..{right}z7e..tension.9..{down}z8e{down}..tension1.2..{left}z5e..cycle;
+x9l=x7; y9=h; x10r=x1; y10=0;
+penpos9(1.2bar,0); penpos10(1.2bar,0);
+penstroke z9e--z10e;
+%currentpicture := currentpicture shifted(-1.9u,0);
+penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"26",14u#,cap_height#,0);
+italcorr cap_height#*sind 18-2.57u#;
+x4=x8=x3+.5curve; y6=0; y2=h; x2=x3+1.3cap_curve;
+y7=13/53h; y5=9/53h; x5=x7+3.5cap_curve; x6=x7+1.8cap_curve;
+y4=y8=30/53h; y1=44/53h; y3=42/53h; x3=4s+curve;
+x1=x3+2.1cap_curve; x7=s+1/2cap_curve;
+x10=w-s; y10=9/53h; x10-x9=x9-x5; y9=1/5cap_curve;
+th:=angle(z4-z5)+5; th1:=th-11; x11h=w-s-c; y11h=y1-4s;
+A_serif(11,cap_bar,-110,cap_jut,cap_jut); z12l=z11a;
+penpos6(cap_bar,-90); penpos5(cap_stem,45);
+penpos4(cap_stem,45); penpos3(2.5hair,0);
+penpos2(cap_bar,-90); penpos1(2hair,-180);
+penpos7(cap_curve,-180); penpos8(cap_bar,-250);
+penpos9(.5cap_curve,70); penpos10(cap_bar,150);
+penpos12(cap_bar,0);
+penstroke z10e..z9e..z5e{dir th}..{dir th1}z4e..tension.9..{up}z3e{up}..tension1..z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e{dir 8}..{dir 70}z12e;
+fill z12l--z12r..reverse A_serif_edge11--cycle;
+fill z10l..tension1.3..z10r..tension1.3..cycle;
+%currentpicture := currentpicture shifted(-.7u,0);
+penlabels(range 1 thru 12);
+endchar;
+currenttransform := identity;
+
+beginchar(hex"40",14u#,x_height#+2curve#,2curve#);
+a_width:=9u+c-2s;
+x1=2s+a_width-s-3/4stem+1.5curve; y1=x_height; y2=7/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=3s+a_width+1.5curve; y4=15/33x_height;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.2vair,270); penpos4(bar,360);
+x5=x1-3/2stem; y5=x_height; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c+1.5curve; y6=.54x_height; y8=.46x_height; z8l=whatever[z1r,z2r];
+x13=x5; y13=h-1/2bar; x14=s+1/2bar; y14=y6; y15=-d+1/2bar; x15=x7;
+x16=x4; y16=-d+3bar; penpos7(vair,270); penpos16(bar,270);
+penpos13(bar,90); penpos14(bar,180); penpos15(bar,270);
+penpos8(2bar,0); penpos5(vair,90); penpos6(curve,180);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 80}z4e..z13e{left}..z14e..{right}z15e..z16e;
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=x_height-c; z10=(x1r+c,x_height); z11=(x1l-c,x_height);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+fill z16r..z16l..cycle;
+penlabels(range 1 thru 66);
+endchar;
+currenttransform := identity slanted sl_parameter;
+
+beginchar(hex"12",2cap_stem#+s#,body_height#,0);
+italcorr body_height#*sind 18-1.1u#;
+y1=h-.45cap_stem*cosd 45; x1=s+.45cap_stem*cosd 45;
+x2=w-s+cap_bar*cosd 45; z2=z1+whatever*dir -45;
+penpos1(.9cap_stem,45); penpos2(cap_bar,45);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+%currentpicture := currentpicture shifted(-3.9u,0);
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"13",2cap_stem#+s#,body_height#,0);
+italcorr body_height#*sind 18-.7u#;
+y1=h-.45cap_stem*cosd 45; x1=w-s-.45cap_stem*cosd 45;
+x2=s-cap_bar*cosd 45; z2=z1+whatever*dir -135;
+penpos1(.9cap_stem,135); penpos2(cap_bar,135);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+%currentpicture := currentpicture shifted(-2.7u,0);
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"3F",7u#+s#,cap_height#,0);
+ italcorr cap_height#*sind 18-1.5u#;
+ x1=s+4/5cap_stem; y1=1/2cap_stem;
+ penpos1(cap_stem,0);
+ fill z1r..z1l..cycle;
+ y2=cap_stem+cap_bar; x2=x1;
+ z3l=z2l+whatever*dir 96; y3l=25/53h;
+ penpos2(cap_bar,0); penpos3(cap_bar,0);
+ penstroke z2e--z3e;
+ z4l=z3l; penpos4(cap_bar,0);
+ y5=y4-2bar; x5=x4+3cap_bar; penpos7(cap_bar,-90);
+ x6=w-s-1/2cap_curve; y6=37/51h; x7=12/31w; y7=h;
+ penpos5(cap_bar,90); penpos6(cap_curve,180); z8=z7;
+ penstroke z4e{dir -69}..z5e{dir 10}..tension1..{up}z6e{up}..tension.9..{left}z7e;
+ ul_drop(8,.8cap_drop_round,x7-s,cap_curve,cap_bar);
+ fill ul_drop_edge8;.
+ fill z3r..tension1.2..z3l..tension1.2..cycle;
+ %currentpicture := currentpicture shifted(-.7u,0);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"10",2jut#+stem#+2s#,x_height#,0);
+italcorr x_height#*sind 18-1.75u#;
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"11",5u#,x_height#,desc_depth#);
+italcorr x_height#*sind 18-.72u#;
+x1h=w-s; y1c=x_height; y2=0; x2=x1;
+serif(1,stem,-90,1.5jut,0);
+penpos2(stem,0);
+fill z2l--z2r--reverse serif_edge1--cycle;
+y5=-1/4desc_depth; x5r=x2r;
+y6=-d+1/2bar; x6=x2l-.4stem;
+penpos5(.97stem,0);
+penpos6(bar,-90);
+penstroke z2e--z5e{down}..{left}z6e;
+x7e=s; y7=-d+1/2bar;
+dl_drop(7,stem,x6-x7e,drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+currenttransform := identity;
+
+beginchar(hex"2A",3cap_stem#+3s#,body_height#,0);
+ x1=x2=x3=x4=.5w; y1=h-1/2stem; y2=y1-cap_stem; y3=y2-bar; y4=y3-bar;
+ penpos1(stem,0); penpos2(cap_bar,0); penpos3(2cap_bar,0);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle;
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,60);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,120);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,180);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,240);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,300);
+ penlabels(range 1 thru 12);
+endchar;
+currenttransform := identity slanted sl_parameter;
+
+beginchar(hex"0B",4jut#+2stem#+2c#+3s#,asc_height#,0);
+w:=w+1; italcorr asc_height#*sind 18-1.08u#;
+numeric dist; dist := 2jut+2stem-3c;
+x1g=x2g=s+dist; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x1; y3=x_height; x4r=x1l-.1stem; y4=x_height+1/2(asc_height-x_height);
+x5l=x4l-.05stem; y5=y4+1.5bar; x6=round (x1r+.2stem); y6=h-1/2bar;
+penpos3(stem,180);
+penpos4(.75curve,180);
+penpos5(.6curve,180);
+penpos6(bar,90);
+penstroke z3e{dir 95}...{up}z4e..z5e..{right}z6e;
+y6=y7; x7e=w-s;
+ur_drop(7,stem,x7e-x6,drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+x11g=x12g=s; y11c=x_height; y12c=0;
+serif(11,stem,-90,jut,jut);
+serif(12,stem,90,jut,jut);
+fill serif_edge12--reverse serif_edge11--cycle;
+x13=x11; y13=x_height; x14l=x13l; y14=x_height+1/2(asc_height-x_height);
+x15l=x14l; y15=y14+1.5bar; x16=x11r+.8stem; y16=h-1/2bar;
+x17r=x5l; y17=y5;
+penpos13(stem,180);
+penpos14(.75curve,180);
+penpos15(.6curve,180);
+penpos16(bar,90);
+penpos17(bar,0);
+penstroke z13e{dir 95}...{up}z14e..z15e..{right}z16e{right}..{down}z17e;
+fill z11d--z1c--z1b--z11e--cycle;
+penlabels(1,2,3,4,5,6,7,11,12,13,14,15,16,17);
+endchar;
+
+beginchar(hex"5E",6u#,body_height#,0);
+ italcorr body_height#*sind 18-1.4u#;
+ x1=s+.45cap_bar*cosd 45; x2=w/2; y2=h-bar;
+ z1=z2+whatever*dir -135; x3=w-x1; z3=z2+whatever*dir -45;
+ penpos1(bar,135); penpos2(2bar,90); penpos3(bar,45);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ %currentpicture := currentpicture shifted(-3.55u,0);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"16",6u#,body_height#,0);
+ italcorr body_height#*sind 18-1.1u#;
+ x1=s; x2=w-x1; y1=y2=h-4bar;
+ penpos1(.8bar,90); penpos2(.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ %currentpicture := currentpicture shifted(-3.75u,0);
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7F",2stem#+4s#,x_height#+2.1stem#,0);
+ italcorr body_height#*sind 18-1.71u#;
+ z1=(s+.5stem,h); z2=(s+.5stem,h-stem);
+ fill z1..z2..cycle;
+ z3=(w-s-.5stem,h); z4=(w-s-.5stem,h-stem);
+ fill z3..z4..cycle;
+ %currentpicture := currentpicture shifted(-3.2u,0);
+ penlabels(1,2,3,4);
+endchar;
+
+ligtable CYR_A: "A":
+ CYR_O kern -k#,
+ "O" kern -k#,
+ CYR_ES kern -k#,
+ "C" kern -k#,
+ CYR_TE kern -k#,
+ CYR_U kern -kk#,
+ CYR_EF kern -k#,
+ CYR_CHE kern -kkk#,
+ CYR_HARD_SIGN kern -k#,
+ "W" kern -kkk#,
+ "V" kern -kkk#,
+ "Y" kern -kkk#,
+ "T" kern -k#,
+ "w" kern -kk#,
+ "v" kern -kk#,
+ %CYR_o kern -k#,
+ %CYR_es kern -k#,
+ CYR_che kern -kk#;
+ %CYR_ie kern -k#,
+ %CYR_ye kern -k#;
+
+ligtable CYR_GHE: CYR_TE: "T":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_DE kern -k#,
+ CYR_EL kern -kk#,
+ CYR_o kern -k#,
+ "o" kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#;
+
+ligtable CYR_O: CYR_E: CYR_YU: "D": "O": "Q":
+ CYR_U kern -k#,
+ "X" kern -k#,
+ "V" kern -k#,
+ "W" kern -k#,
+ "Y" kern -kk#,
+ CYR_HA kern -k#;
+
+ligtable CYR_ER: "P":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_el kern -k#;
+
+ligtable CYR_U:
+ CYR_A kern -kkk#,
+ "A" kern -kkk#,
+ CYR_O kern -k#,
+ "O" kern -k#,
+ CYR_ES kern -k#,
+ "C" kern -k#,
+ CYR_EL kern -k#,
+ CYR_el kern -kk#,
+ CYR_EF kern -k#;
+
+ligtable CYR_HA: "X":
+ "O" kern -k#,
+ CYR_O kern -k#,
+ "Q" kern -k#,
+ "C" kern -k#,
+ CYR_ES kern -k#,
+ "G" kern -k#;
+
+ligtable CYR_ghe: CYR_te:
+ CYR_de kern -k#,
+ CYR_el kern -k#;
+
+ligtable CYR_o: CYR_er: CYR_e: CYR_yu: CYR_ye:
+ "V" kern -kk#,
+ "W" kern -kk#,
+ "Y" kern -kk#,
+ "x" kern -k#,
+ CYR_ha kern -k#;
+
+ligtable CYR_u: "y":
+ CYR_de kern -k#,
+ CYR_el kern -k#,
+ CYR_ie kern -k#,
+ "e" kern -k#,
+ CYR_es kern -k#,
+ "c" kern -k#,
+ CYR_ye kern -k#,
+ CYR_ef kern -k#;
+
+ligtable CYR_ha: "x":
+ CYR_ie kern -k#,
+ "d" kern -k#,
+ "e" kern -k#,
+ "o" kern -k#,
+ "q" kern -k#,
+ CYR_o kern -k#;
+
+ligtable "L":
+ "T" kern -kk#,
+ CYR_TE kern -kk#,
+ "Y" kern -kk#;
+
+ligtable "V": "W":
+ "A" kern -kkk#,
+ CYR_A kern -kkk#,
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ "d" kern -k#;
+
+ligtable "Y":
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "d" kern -k#,
+ "A" kern -kk#,
+ CYR_A kern -kk#;
+
+ligtable "a": CYR_a:
+ "V" kern -kk#,
+ "W" kern -kk#,
+ "T" kern -k#,
+ CYR_TE kern -k#,
+ "y" kern -k#,
+ CYR_u kern -k#,
+ "v" kern -kk#,
+ "u" kern -k#,
+ CYR_che kern -kk#,
+ "Y" kern -kk#;
+
+ligtable "e": CYR_ie:
+ CYR_ha kern -k#,
+ "v" kern -k#,
+ "w" kern -k#,
+ "V" kern -kk#,
+ "W" kern -kk#,
+ "Y" kern -kk#;
+
+ligtable "f":
+ "f" =: hex"0B";
+
+ligtable "k": "l":
+ CYR_o kern -k#,
+ "o" kern -k#;
+
+ligtable "m": "n":
+ "y" kern -k#,
+ CYR_u kern -k#,
+ CYR_o kern -k#,
+ "u" kern -k#,
+ "o" kern -k#;
+
+ligtable "o": "b": "p":
+ "e" kern k#,
+ CYR_ie kern k#,
+ "o" kern k#,
+ CYR_o kern k#,
+ "v" kern -k#,
+ "w" kern -k#,
+ "V" kern -kk#,
+ "W" kern -kk#,
+ "Y" kern -kk#,
+ "x" kern -k#,
+ CYR_ha kern -k#, 1:: "!" kern kk#;
+
+ligtable "v": "w":
+ "A" kern -kk#,
+ CYR_A kern -kk#,
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ "d" kern -k#;
+
+ligtable hex"37":
+ CYR_A kern -kk#,
+ "A" kern -kk#;
+ligtable oct"55":
+ oct"55" =: hex"7b";
+ligtable hex"7b":
+ oct"55" =: hex"7c";
+end
diff --git a/fonts/obnov/obnsl7.mf b/fonts/obnov/obnsl7.mf
new file mode 100644
index 0000000000..69616dec44
--- /dev/null
+++ b/fonts/obnov/obnsl7.mf
@@ -0,0 +1,3703 @@
+%written by Basil Solomykov, Russia
+%(C) Copyright 2011 LPPL (LaTeX Project Public License)
+%Font Ordinary New (Obyknovennaya novaya), Slanted
+
+design_size := 7pt#;
+o# := .32pt#;
+u# := 15/35pt#;
+bar# := 7.5/36pt#;
+slab# := 7.5/36pt#;
+cap_bar# := 7.5/36pt#;
+vair# := 7.5/36pt#;
+hair# := 7.5/36pt#;
+jut# := 15/36pt#;
+cap_jut# := 20/36pt#;
+stem# := 23/36pt#;
+curve# := 23.7/36pt#;
+cap_stem# := 27/36pt#;
+cap_curve# := 27.5/36pt#;
+s# := .32pt#;
+c# := .16pt#;
+
+input obn_lcyw_code.mf;
+font_identifier "OBNSL";
+mode_setup;
+clear_pen_memory;
+
+font_size design_size*pt#;
+asc_height# := 24/36*design_size*pt#;
+cap_height# := 24/36*design_size*pt#;
+body_height# := 27/36*design_size*pt#;
+x_height# := 15.4/36*design_size*pt#;
+desc_depth# := 8/36*design_size*pt#;
+body_depth# := 9/36*design_size*pt#;
+comma_depth# := 5/36*design_size*pt#;
+x_depth# := 4/5comma_depth#;
+bar_height# := .52x_height#;
+cap_bar_height# := .52cap_height#;
+cap_bar2_height# := .45cap_height#;
+border_height# := comma_depth#;
+cap_drop_round# := 3.7*slab#;
+drop_round# := 6.9/8cap_drop_round#;
+
+bracket# := pt#;
+
+font_slant sind 16;
+font_x_height x_height#;
+font_normal_space 6u#;
+font_normal_stretch 4u#;
+font_normal_shrink 2u#;
+font_quad 13.5u#;
+font_extra_space 6u#;
+
+k# := .8u#;
+kk# := 1.5u#;
+kkk# := 3u#;
+
+serif_darkness := 1/30;
+define_pixels(bracket,cap_o_width,sss_width,css_width);
+define_pixels(c,s,cap_bar_height,cap_bar2_height);
+define_pixels(border_height,A_bracket,cap_drop_round,x_depth,drop_round);
+define_whole_blacker_pixels(stem,cap_stem,curve,cap_curve,bar,slab,cap_bar);
+define_whole_pixels(asc_height,cap_height,x_height,u,desc_depth,comma_depth,bar_height,body_height,body_depth,u,o,cap_jut,jut);
+define_good_x_pixels(vair);
+define_good_y_pixels(hair);
+lowres_fix(stem,curve) 1.2;
+lowres_fix(cap_stem,cap_curve) 1.2;
+if jut=cap_jut: jut:=jut-1; fi
+numeric sl_parameter;
+sl_parameter := sind 18;
+currenttransform := identity slanted sl_parameter;
+
+def serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g if left_jut=0: -1/2slab fi +1/2slab; x$d=x$e=x$h if right_jut=0: +1/2slab fi-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def serif_edge suffix $ =
+(serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse serif_bracket($f,$r,$e)) enddef;
+
+def serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...serif_darkness[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def T_serif(suffix $)(expr slab, bord_height, direction)= %Direction: 0-left, 1-right;
+penpos$(slab,if direction=1: - fi 90);
+x$=x$a=x$g; y$g-y$=y$-y$a=1/2slab;
+x$b=x$a + if direction=0: - fi .882bord_height; y$b=y$d=y$c+1/2slab;
+x$c=x$b + if direction=0: - fi 1/2slab; y$c=y$a-bord_height;
+x$d=x$e=x$b + if direction=0: - fi slab;
+y$e=y$g-1/2slab; y$f=y$g; x$f=x$c;
+labels($a,$b,$c,$d,$e,$f,$g) enddef;
+
+def T_edge suffix $ =
+(z$a..{down}z$b..z$c..z$d--z$e{up}..z$f--z$g--cycle) enddef;
+
+def A_serif(suffix $)(expr breadth, theta, left_jut, right_jut)=
+penpos$(breadth/abs sind theta, 0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta < 0: -fi slab;
+x$b=x$c=x$g+1/2slab; x$d=x$e=x$h-1/2slab;
+x$g=x$l-left_jut; x$h=x$r+right_jut;
+y$g=y$h; y$-y$g=y$g-y$c;
+labels($a,$b,$c,$d,$e,$f,$g,$h) enddef;
+
+def A_serif_edge suffix $ =
+(A_serif_bracket($a,$l,$b)..z$g..z$c--z$d..z$h..reverse A_serif_bracket($f,$r,$e)) enddef;
+
+def A_serif_bracket (suffix i,j,k) =
+(z.i{z.j-z.i}...0.6[z.j, .5[z.i, z.k]]{z.k-z.i}...z.k{z.k-z.j}) enddef;
+
+def ur_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a= 1/2slab;
+x$e=x$a + drop_length; y$e=y$f- drop_height;
+x$d=x$e - 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e - drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d - 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ur_drop_edge suffix $ =
+(z$f{right}..tension.9..{down}z$e{down}..{left}z$d{left}..{up}z$c{up}..z$b...{left}z$a--cycle) enddef;
+
+def ul_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, 90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$f- drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e - 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d + drop_round); x$b=round (x$d + 1/5drop_round);
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def ul_drop_edge suffix $ =
+(z$f{left}..tension.9..{down}z$e{down}..{right}z$d{right}..{up}z$c{up}..z$b...{right}z$a--cycle) enddef;
+
+def dl_drop(suffix $)(expr drop_round, drop_length, drop_height, slab)=
+penpos$(round slab, -90);
+x$=x$a=x$f; y$f-y$=y$-y$a=1/2slab;
+x$e=x$a - drop_length; y$e=y$a + drop_height;
+x$d=x$e + 1/2drop_round; y$d=y$e + 1/2drop_round;
+x$c=x$e + drop_round; y$c=y$e;
+y$b=round (y$d - drop_round); x$b=x$d + 1/90drop_round;
+labels($a,$b,$c,$d,$e,$f) enddef;
+
+def dl_drop_edge suffix $ =
+(z$a{left}..tension.9..{up}z$e{up}..{right}z$d{right}..{down}z$c..{dir 250}z$b{dir -80}..{right}z$f--cycle) enddef;
+
+def S_serif (suffix $)(expr serif_slab, serif_length, serif_height)=
+%penpos$(serif_slab,90);
+x$a=x$i=x$; y$i=y$+1/2serif_slab; y$a=y$-1/2serif_slab;
+x$f=x$e=x$a+serif_length; y$f=y$g-1/2serif_slab; y$e=y$c=y$d+1/2serif_slab;
+x$g=x$f-1/2serif_slab; y$g=y$i-1/2serif_slab;
+y$h=y$f-1/4serif_slab; x$h=x$g-serif_slab;
+x$c=x$e-serif_slab; x$d=x$e-1/2serif_slab; y$d=y$g-serif_height;
+x$b=x$h-6/18serif_length; y$b=y$h-1/2slab;
+labels ($a,$b,$c,$d,$e,$f,$g,$h,$i) enddef;
+
+def S_serif_edge suffix $ =
+(z$a{right}...z$b..{dir -80}z$c..z$d..z$e--z$f{up}..z$g{left}..z$h{dir 150}..{left}z$i--cycle) enddef;
+
+beginchar(CYR_A,13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5e];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar(CYR_BE,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.65u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=y5=h-1/2slab;
+y1c=h; y2c=0; x5e=w-s-1/2cap_stem;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h; x4=w-s-1/2cap_stem-border_height;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_VE,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.12u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+css_width := x8 - x2r; save css_width;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar(CYR_GHE,9u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.85u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0; x3=x4+2u;
+y5=y3; x5e=w-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+T_serif(5,slab,border_height,1);
+fill T_edge5;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(CYR_DE,12u#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-1.05u#;
+x10e=w-s; y10c=-d;
+y4c=h; x4h=w-s-1/2slab;
+x9=x4; y9c=0;
+x3=x8=x9d; y8=y7=1/2cap_bar; y3=y2=h-y8;
+x6e=s; y6=y10; x7=border_height+s;
+y5=y9; x5g=s+.5u; y1=y4; x1=x5+1.5u;
+x2=x1c;
+A_serif(1,1.2cap_bar,-96,10/7cap_jut,cap_jut);
+A_serif(5,1.2cap_bar,81,6/7cap_jut,cap_jut);
+serif(4,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+penpos2(cap_bar,90);
+penpos3(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_bar,90);
+penstroke z7e--z8e; penstroke z2e--z3e;
+fill A_serif_edge5...reverse A_serif_edge1...cycle;
+fill serif_edge9--reverse serif_edge4--cycle;
+T_serif(6,slab,border_height,0);
+T_serif(10,slab,border_height,1);
+fill T_edge6;
+fill T_edge10;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_IE,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.19u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_YE,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.19u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+x12=x13=x2r; y12=h+1/4cap_stem; y13=y12+cap_stem;
+x14=x15=x12+2cap_stem; y14=y12; y15=y13;
+fill z12..z13..cycle; fill z14..z15..cycle;
+penlabels(range 1 thru 15);
+endchar;
+
+beginchar(CYR_ZHE,round (16u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-1.2u#;
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; y7=y4=y10=y11=cap_bar_height; x4=x7-1.5u;
+x10=x8r; x11=x10+1.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+x6=s; y6=0; y4-y5=y5-y6; x4-x5=x5-x6;
+penpos7(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,90);
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z6e{right}..tension.8..{up}z5e{up}..tension.8..{right}z4e--z7e;
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+x3=x5+1/2cap_stem; y2=h; x4-x3=x3-x2; y2-y3=y3-y4;
+penpos3(hair,0);
+penpos2(cap_bar,90);
+penstroke z4e{left}..tension.8..{up}z3e{up}..tension.8..{left}z2e;
+y1=h; x1a=x2; fill z6l..z6r..cycle;
+ul_drop(1,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ul_drop_edge1; fill z16l..z16r..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ZE,10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-2u#;
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height;
+x4=x6-3/2cap_stem; x5=x4-3u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3c,1.4border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.5cap_drop_round,slab);
+fill dl_drop_edge8;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_I,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-30); penpos6(cap_bar,-30);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar(CYR_SHORT_I,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x5=x1+1/3cap_stem; x6=x4-1/3cap_stem;
+x3=x4=w-x1;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,-30); penpos6(cap_bar,-30);
+y5=.05h; y6=.95h; penstroke z5e--z6e;
+x7=.5w; y7=h+cap_bar;
+ur_drop(7,.8cap_drop_round,1/2(x3l-x1r),.8cap_drop_round,1.2cap_bar);
+fill ur_drop_edge7 rotatedaround(z7,180);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_KA,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.2u#;
+x8g=x9g=s; y8c=h; y9c=0;
+serif(8,cap_stem,-90,cap_jut,cap_jut);
+serif(9,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+y10=y11=cap_bar_height;
+x10=x8r; x11=x10+2.5u; x16=w-s; y16=0; x16-x15=x15-x11; y11-y15=y15-y16;
+penpos10(cap_bar,90);
+penpos11(cap_bar,90);
+penpos15(cap_curve,0);
+penpos16(cap_bar,90);
+penstroke z16e{left}..tension.8..{up}z15e{up}..tension.8..{left}z11e--z10e;
+x12=x15-1/2cap_stem; y13=h; x13-x12=x12-x11; y13-y12=y12-y11;
+penpos12(hair,180);
+penpos13(cap_bar,90);
+penstroke z11e{right}..tension.8..{up}z12e{up}..tension.8..{right}z13e;
+y14=h; x14a=x13; fill z16l..z16r..cycle;
+ur_drop(14,cap_drop_round,.9cap_drop_round,cap_drop_round,cap_bar);
+fill ur_drop_edge14;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_EL,13u#+1/2s#,cap_height#,0);
+italcorr cap_height#*sind 18-.8u#;
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+cap_drop_round; y3=1.1cap_drop_round;
+dl_drop(1,1.1cap_drop_round,1.1cap_drop_round,1.2cap_drop_round,slab);
+fill dl_drop_edge1;
+penpos2(cap_bar,-90);
+penpos3(cap_bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-slab;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,cap_bar,theta1,1.2cap_jut,1.2cap_jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,cap_stem,-90,cap_jut,cap_jut);
+serif(8,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z5e--z6e;
+%currentpicture := currentpicture shifted(-.5u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_EM,13u#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,1/2cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 110; y7l=11/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EN,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_O,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+cap_o_width := x7-x3; save cap_o_width;
+%currentpicture := currentpicture shifted(-1.6u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_PE,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ER,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.5u#;
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_ES,10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.13u#;
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+%currentpicture := currentpicture shifted(-1.5u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_TE,round (11u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=.5w; y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+%currentpicture := currentpicture shifted(-2.9u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_U,13u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1l=s+cap_jut; y1l=.98h-cap_bar;
+x3r=w-s-.8cap_jut; y3r=.98h-cap_bar;
+x4=33/60w; y4=6/53h;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,1.2cap_bar,theta2,1.2cap_jut,.8cap_jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=0; x6=x4-1.2cap_stem; z7l=z2;
+penpos7(1.2cap_bar,theta2+90);
+penpos5(1.2cap_bar,theta2+90);
+penpos6(1.2cap_bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,cap_drop_round,2u, 10/53h, round 1.2cap_bar);
+fill dl_drop_edge8;
+%currentpicture := currentpicture shifted(-3.2u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_EF,round (14u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-2u#;
+if .5w = good.x .5w: change_width; fi
+x1=x2=.5w; y2c=0; y1h=h;
+y6=y7=y8=y9=1.3cap_jut; y4=y3=y11=y12=h-1.3cap_jut+1/2slab;
+x3=x7=x2l; x8=x12=x2r; x4=x6=x3-u; x11=x9=x12+u;
+x5=s+1/2cap_curve; x10-x1=x1-x5; y4-y5=y5-y6; y10=y5;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos6(cap_bar,270);
+penpos7(cap_bar,270);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+penpos10(cap_curve,0);
+penpos11(cap_bar,90);
+penpos12(cap_bar,90);
+penstroke z3e--z4e{left}..tension.8..{down}z5e{down}..tension.8..{right}z6e--z7e;
+penstroke z8e--z9e{right}..tension.8..{up}z10e{up}..tension.8..{left}z11e--z12e;
+penlabels (range 1 thru 12);
+%currentpicture := currentpicture shifted(-1.7u,0);
+endchar;
+
+beginchar(CYR_HA,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.25u#;
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_TSE,12.5u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-1.3u#;
+x1=x2=x5=cap_jut+1/2cap_stem+s;
+x3=x4=x6=w-x1-.5u; y5=y6=y2h;
+y1c=y3c=h; y2c=y4c=0; x7e=w-s; y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e;
+T_serif(7,cap_bar,border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_CHE,12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=cap_jut+1/2cap_stem+s;
+x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,-90,cap_jut,cap_jut);
+serif(3,cap_stem,90,cap_jut,cap_jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=cap_bar_height-1/2cap_bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-2cap_bar;
+penpos6(cap_stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+%currentpicture := currentpicture shifted(-3.2u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SHA,16u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+if .5w <> good.x .5w: change_width; fi
+x1=x2=good.x (cap_jut+1/2cap_stem+s);
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=good.x .5w; y5=y1; y6=y2;
+y9b=slab; x9=good.x w-x1;
+x10=x9; y10b=h-slab;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_SHCHA,16.5u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-1.3u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=slab; x9h=w-s-.5u;
+x10=x9; y10b=h-slab;
+x11e=w-s; y11=y9h;
+serif(9,cap_stem,90,cap_jut,cap_jut);
+serif(10,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,cap_stem,-90,cap_jut,cap_jut);
+serif(6,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(slab,90);
+penpos4(slab,90);
+penpos7(slab,90);
+penpos8(slab,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,slab,border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_HARD_SIGN,13.5u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-3u#;
+x2r=x5-css_width; x1=x2; x8e=0; y8g=h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+x7=x1d; y1c=h; y2c=0;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=round(x3+5u-cap_stem);
+y6=y7=y2h;
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(8,cap_bar,border_height,0);
+fill T_edge8;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+%currentpicture := currentpicture shifted(-1.4u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YERU,16u#+c#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+y3=y4=cap_bar_height; x3=round x2r; x4=x6=round (x3+5u-cap_stem) - 1;
+y4-y5=y5-y6; x5=x2r+css_width; y8b=slab; x8h=w-s;
+y6=y7=y2h; x9=x8; y9b=h-slab;
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(8,cap_stem,90,cap_jut,cap_jut);
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+fill serif_edge8--reverse serif_edge9--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_SOFT_SIGN,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-3u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=cap_bar_height; x3=x2r; x4=x6=x3+5u-cap_stem;
+y4-y5=y5-y6; x5=w-1/2cap_curve-s;
+y6=y7=y2h;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos6(cap_bar,-90);
+penpos7(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_E,10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.95u#;
+x1=16/39w; x5=.5w; y1=0; y5=h;
+y7=.5h; x7=w-1/2cap_curve-s;
+x9e=s; y9=0;
+dl_drop(9,cap_drop_round,16/39w-s,1.7cap_drop_round,slab);
+y8=0.1h-c; y6=0.9h+c; x8=x9+9/16(x7-x9); x6=x5+9/16(x7-x5);
+penpos5(cap_bar,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+penpos1(cap_bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+y2=y5; x2=x5-c;
+S_serif(2,slab,x1+c,1.5border_height);
+x3=x7-1/2cap_stem; y3=y4=cap_bar_height; x4=x2b-x1;
+penpos3(cap_bar,90); penpos4(cap_bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+%currentpicture := currentpicture shifted(-.7u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(CYR_YU,16u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.08u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+y3=y7=.5h; x7=w-1/2cap_curve-s; x3=x7-cap_o_width; y9=0; y5=h; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3cap_stem; y11=y12=cap_bar_height;
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_YA,11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=w-cap_jut-1/2cap_stem-s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2l;
+y1c=h; y2c=0; x6=x4=x7-2.5u; x3=x1c;
+y4-y5=y5-y6; x5=x8-1.5c; x9=s; y9=0; y6-y8=y8-y9; x7-x10=3(x10-x6); x10-x8=x8-x9;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,180);
+penpos7(cap_bar,270);
+penpos6(cap_bar,270);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90); fill z9l..z9r..cycle;
+penstroke z3e--z4e{left}..tension.9..z5e..tension.9..{right}z6e--z7e;
+penstroke z9e{right}..tension1..{up}z8e{up}..tension1..{right}z10e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_a,9u#-s#+2/7stem#,x_height#,0);
+x5=w-s-1/2bar; y5=0; y4=6/7stem; x4=x3=x5-5/7stem-1/2stem;
+y3=bar_height+2bar; y2=y1=h; x2=s+c+6/20w; x1e=s+c;
+ul_drop(1,drop_round,x2-s-c,5/4drop_round,bar);
+fill ul_drop_edge1;
+penpos2(bar,90);
+penpos3(stem,0);
+penpos4(stem,0);
+penpos5(bar,90);
+penstroke z2e{right}..{down}z3e--z4e{down}..{right}z5e;
+fill z5r..z5l..cycle;
+y6=bar_height+1/2bar; x6=x3+1/2stem; x7=s+1/2stem; y7=7/17bar_height;
+y8=0; x9=x4-1/2stem+1/2bar; x9-x8=x8-x7; y9=y4+3/2bar; x66=x8; y66=y6-c;
+numeric theta[]; theta1=angle(z66-z6);
+penpos6(vair,90);
+penpos66(vair,90);
+penpos7(curve,180);
+penpos8(vair,270);
+penpos9(bar,360);
+penstroke z6e{left}..z66e{dir theta1}..tension.8..{down}z7e{down}..tension.8..z8e{right}..{up}z9e;
+%currentpicture := currentpicture shifted(-.2u,0);
+penlabels(range 1 thru 9,66);
+endchar;
+
+beginchar(CYR_be,8u#,asc_height#,0);
+italcorr asc_height#*sind 18-.82u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2stem+s; x7=w-1/2stem-s;
+y2=y8=0.1x_height; y4=y6=0.9x_height; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+y9=y3; x9=s+1/2bar; y10=44/51h; x10=x5+c; x11=w-s-1/2bar; y11=h-1/2bar; %x11=w-1/2bar*sind 45; y11=h-1/2bar*sind 45;
+penpos9(hair,180);
+penpos10(curve,90);
+penpos11(hair,180);
+penstroke z9e{up}..{right}z10e{right}..tension1..z11e;
+fill z11r..tension2..z11l..tension2..cycle;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar(CYR_ve,9u#-s#,x_height#,0);
+italcorr x_height#*sind 18-1.6u#;
+x1=x2=jut+1/2stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x9=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h; y8=y9=h-1/2bar; x8=x1d;
+y9-y10=y10-y4; x10=x5-c;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penpos8(bar,270);
+penpos9(bar,270);
+penpos10(curve,180);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penstroke z8e--z9e{right}..tension.8..z10e..tension.8..{left}z4e;
+sss_width := x5 - x2r; save sss_width;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ghe,7u#,x_height#,0);
+italcorr x_height#*sind 18-.8u#;
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; y3=y4=y5=h-1/2bar; x3=x1d; x5e=w-s;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+T_serif(5,bar,4/5border_height,1);
+x4=x5;
+fill serif_edge2--reverse serif_edge1--cycle;
+fill T_edge5;
+penpos3(bar,90);
+penpos4(bar,90);
+penstroke z3e--z4e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_de,9u#,x_height#,x_depth#);
+italcorr x_height#*sind 18-.9u#;
+x3=x4=w-jut-1/2stem-s-.1u;
+y3c=h; y4c=0;
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+x7e=s; x10e=w-s; y7=y8=y9=y10=y4h; x8=x7; x9=x4c;
+T_serif(7,bar,4/5border_height,0);
+T_serif(10,bar,4/5border_height,1);
+fill T_edge7; fill T_edge10;
+penpos8(bar,90); penpos9(bar,90);
+penstroke z8e--z9e;
+x2=s+1.3jut+1/2bar; y2=bar; x1=x2+3/2bar; y1=h-bar;
+numeric theta[]; theta1=angle(z1-z2);
+A_serif(1,bar,theta1-180,1.3jut,jut);
+A_serif(2,bar,theta1,1.3jut,.8jut);
+fill A_serif_edge2..reverse A_serif_edge1..cycle;
+y5=y6=y3h; x5=x1d; x6=x3c;
+penpos5(bar,90);
+penpos6(bar,90);
+penstroke z5e--z6e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ie,8u#,x_height#,0);
+italcorr x_height#*sind 18-1.57u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x5+5/8(x7-x5);
+x10=w-s-1/2bar; y10=y7-5/4stem;
+penstroke z10e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+%currentpicture := currentpicture shifted(-1.2u,0);
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_ye,8u#,asc_height#,0);
+italcorr asc_height#*sind 18-2.1u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=x5=.5w; y1=0; y5=x_height;
+y3=.5x_height; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.1x_height; y4=y6=0.9x_height; x2=x4=x3+3/8(x5-x3); x6=x5+5/8(x7-x5);
+x10=w-s-1/2bar; y10=y7-5/4stem;
+penstroke z10e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+y12=y14=h; y11=y13=h-stem; x11=x12=x3r+c; x13=x14=x7r-c;
+fill z11..z12..cycle; fill z13..z14..cycle;
+%currentpicture := currentpicture shifted(-1.2u,0);
+penlabels(range 1 thru 14);
+endchar;
+
+beginchar(CYR_zhe,round (13u#+s#),x_height#,0);
+italcorr x_height#*sind 18-1.38u#;
+if .5w = good.x .5w: change_width; fi
+x8=x9=.5w; y8c=h; y9c=0;
+serif(8,stem,-90,jut,jut);
+serif(9,stem,90,jut,jut);
+fill serif_edge9--reverse serif_edge8--cycle;
+x7=x8l; x4=x7-u; y4=y7=y10=y11=bar_height; x10=x8r; x11=x10+u;
+x6=s+1/2bar; y6=y16=0; y4-y5=y5-y6; x4-x5=1.3(x5-x6);
+x16=w-s-1/2bar; 1.3(x16-x15)=x15-x11; y11-y15=y15-y16;
+x2=x5-c; y2=y1=h; x4-x3=x3-x2; y2-y3=y3-y4; x1e=s+c;
+y13=y14=h; x13=x15+c; x13-x12=x12-x11; y13-y12=y12-y11; x14e=w-s-c;
+penpos2(bar,90);
+penpos3(hair,0);
+penpos4(bar,90);
+penpos5(curve,180);
+penpos6(bar,90);
+penpos7(bar,90);
+penpos10(bar,90);
+penpos11(bar,90);
+penpos12(hair,180);
+penpos13(bar,90);
+penpos15(curve,0);
+penpos16(bar,90);
+penstroke z7e--z4e{left}..tension.9..{down}z5e{down}..tension.9..{left}z6e;
+fill z6r..z6l..cycle;
+penstroke z10e--z11e{right}..tension.9..{down}z15e{down}..tension.9..{right}z16e;
+fill z16r..z16l..cycle;
+penstroke z4e{left}..z3e..{left}z2e;
+penstroke z11e{right}..z12e..{right}z13e;
+ul_drop(1,drop_round,x2-s-c,.9drop_round,bar);
+ur_drop(14,drop_round,x2-s-c,.9drop_round,bar);
+fill ul_drop_edge1; fill z1e..z1c..cycle;
+fill ur_drop_edge14; fill z14e..z14c..cycle;
+penlabels(range 1 thru 16);
+endchar;
+
+beginchar(CYR_ze,6u#+2s#,x_height#,0);
+italcorr x_height#*sind 18-1.4u#;
+x7=18/39w; y7=0; y4=y5=y44=bar_height;
+x4=x6-3/2stem; x5=x4-u;
+x6=w-s-1/2curve; y4-y6=y6-y7;
+x2=.45w; y2=h; x3=x6-1/5curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(bar,90);
+penpos3(curve,0);
+penpos44(bar,-90);
+penpos4(bar,90);
+penpos5(bar,90);
+penpos6(curve,0);
+penpos7(bar,-90);
+penstroke z2e{right}..tension.9..{down}z3e{down}..tension.9..{left}z44e;
+penstroke z5e--z4e{right}..tension.8..{down}z6e{down}..tension.8..{left}z7e;
+fill z5r..z5l..cycle;
+S_serif(1,slab,.5w-3.5c,border_height);
+fill S_serif_edge1 reflectedabout(z2r,z2l);
+x8e=s; y8=0;
+dl_drop(8,drop_round,18/39w-s,1.4drop_round,bar);
+fill dl_drop_edge8;
+%currentpicture := currentpicture shifted(-.7u,0);
+penlabels(range 1 thru 8,44);
+endchar;
+
+beginchar(CYR_i,9u#+s#,x_height#,0);
+italcorr x_height#*sind 18-.8u#;
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r-1/2bar; x6=x3l+1/2bar;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,-30); penpos6(bar,-30);
+y5=.1h; y6=.9h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_short_i,9u#+s#,asc_height#,0);
+italcorr x_height#*sind 18-.8u#;
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r-1/2bar; x6=x3l+1/2bar;
+y1c=y3c=x_height; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,-30); penpos6(bar,-30);
+y5=.1x_height; y6=.9x_height; penstroke z5e--z6e;
+x7=.5w; y7=h-3/2drop_round;
+ur_drop(7,drop_round,x3-.5w,1.1drop_round,1.2bar);
+fill ur_drop_edge7 rotatedaround(z7,180);
+fill ur_drop_edge7 reflectedabout(z7a,z7f) rotatedaround(z7,180);
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_ka,9u#+.5s#,x_height#,0);
+italcorr x_height#*sind 18-1.38u#;
+x1g=x2g=s; y1c=h; y2c=y9=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=bar_height; x3=x1r; x4=x3+1.25u;
+x9=w-s-1/2bar; 1.3(x9-x8)=x8-x4; y4-y8=y8-y9;
+y6=y7=h; x6=x8+c; x6-x5=x5-x4; y6-y5=y5-y4; x7e=w-s-c;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(hair,180);
+penpos6(bar,90);
+penpos8(curve,0);
+penpos9(bar,90);
+penstroke z3e--z4e{right}..tension.9..{down}z8e{down}..tension.9..{right}z9e;
+fill z9r..z9l..cycle;
+penstroke z4e{right}..z5e..{right}z6e;
+ur_drop(7,drop_round,w-x6-s-c,.9drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_el,9u#+s#,x_height#,0);
+italcorr x_height#*sind 18-.8u#;
+x7h=x8h=w-s;
+y7c=h; y8c=0;
+y1=0; x1e=s; z2=z1; x3=x2+.7drop_round; y3=1.1drop_round;
+dl_drop(1,drop_round,drop_round,drop_round,bar);
+fill dl_drop_edge1;
+fill z1c..z1e..cycle;
+penpos2(bar,-90);
+penpos3(bar,0);
+penstroke z2e{right}..{up}z3e;
+x4=x3r; y4=h-bar;
+numeric theta[];
+theta1=angle(z3-z4);
+A_serif(4,bar,theta1,1.4jut,1.3jut);
+fill A_serif_edge4..z3r--z3l..cycle;
+serif(7,stem,-90,jut,jut);
+serif(8,stem,90,jut,jut);
+fill serif_edge8--reverse serif_edge7--cycle;
+x5=x4d; y5=y6=y7h; x6=x7c;
+penpos5(bar,90);
+penpos6(bar,90);
+penstroke z5e--z6e;
+%currentpicture := currentpicture shifted(-.5u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_em,10u#+c#,x_height#,0);
+italcorr x_height#*sind 18-.8u#;
+x1g=s; y1c=0; y2=h-bar;
+A_serif(1,bar,90,jut,jut);
+x2=x1; serif(2,bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2bar; y4c=0;
+serif(3,stem,-90,1/2bar, jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -110; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 110; y7l=7/28h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(stem,0); penpos8(stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_en,9u#+s#,x_height#,0);
+italcorr x_height#*sind 18-.8u#;
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_o,8u#+s#,x_height#,0);
+italcorr x_height#*sind 18-1.6u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2curve-s;
+y2=y8=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+%currentpicture := currentpicture shifted(-1.1u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_pe,9u#+s#,x_height#,0);
+italcorr x_height#*sind 18-.8u#;
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=y1h; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(CYR_er,8u#+jut#,x_height#,desc_depth#);
+italcorr x_height#*sind 18-1.6u#;
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+.3s+.6(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=y8=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=-desc_depth;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_es,8u#,x_height#,0);
+italcorr x_height#*sind 18-1.6u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=1/2curve+s;
+y2=0.1h; y4=0.9h; x2=x4=x3+3/8(x5-x3);
+x6=w-s-1/2hair; y6=y3-4/5stem;
+penstroke z6e{down}..tension1.1..z1e{left}..z2e..z3e..z4e..z5e;
+fill z6r..z6l..cycle;
+z7=z5;
+ur_drop(7,drop_round,7/8(x6l-x1),1.4drop_round,bar);
+fill ur_drop_edge7;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(CYR_te,round (8u#-.5s#),x_height#,0);
+italcorr x_height#*sind 18-.7u#;
+if .5w = good.x .5w: change_width; fi
+x2=x3=.5w; x1e=s; x4e=w-s; y1=y4=y2h;
+y2c=h; y3c=0;
+serif(2,stem,-90,jut,jut);
+serif(3,stem,90,jut,jut);
+T_serif(1,bar,4/5border_height,0);
+T_serif(4,bar,4/5border_height,1);
+fill serif_edge3--reverse serif_edge2--cycle;
+fill T_edge1; fill T_edge4;
+%currentpicture := currentpicture shifted(-1.4u,0);
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_u,9u#+s#,x_height#,desc_depth#);
+italcorr x_height#*sind 18-.8u#;
+x1l=s+jut; y1l=h-bar;
+x3r=w-s-.8jut; y3r=h-bar;
+x4=33/60w; y4=-2/5d;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,1.2bar,theta2,1.2jut,.8jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=-d+bar; x6=x4-1.5stem; z7l=z2;
+penpos7(1.2bar,theta2+90);
+penpos5(1.2bar,theta2+90);
+penpos6(1.2bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,1.1stem,1.3u,drop_round,1.2bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar(CYR_ef,12u#,asc_height#,desc_depth#);
+italcorr x_height#*sind 18-1.6u#;
+if .5w = good.x .5w: change_width; fi
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w+.4(.5w-s); y1=0; y5=x_height;
+y3=y7=y12=.5x_height; x3=.5w; x7=w-1/2curve-s;
+y2=y8=y9=y11=0.1x_height; y4=y6=y13=y15=0.9x_height;
+x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+z16=z3; x14=x10=.5w-.4(.5w-s); y10=0; y14=x_height;
+x12=s+1/2curve; x9=x15=x16-3/8(x16-x14); x11=x13=x14-5/8(x14-x12);
+penpos10(vair,90);
+penpos11(o,30);
+penpos12(curve,0);
+penpos13(o,-30);
+penpos14(vair,-90);
+penpos15(.7o,-150);
+penpos16(stem,-180);
+penpos9(.7o,-210);
+penstroke z10e..z11e..z12e..z13e..z14e..z15e..z16e..z9e..cycle;
+x99=x155=x3l; x44=x222=x3r; y99=y222=.5x_height-3/2stem; y155=y44=.5x_height+3/2stem;
+unfill z99--z155--z44--z222--cycle; penlabels(44,99,155,222);
+x20=.5w; y20=-.75d; x17=x30=x3l; x23=x24=x3r; y17=y23=-1/2d;
+x18=x19=x17-4/5stem; x21=x22=x23+4/5stem; y18=y22=-d+bar; y19=y21=-d;
+y24=y30=x_height+3/5(asc_height-x_height);x25=x22-c; x29=x18+c; y29=y25=h-1/2bar;
+y28=y26=h; x28=x29+1/2bar; x26=x25-1/2bar; x27=.5w; y27=h-bar;
+fill z30---z17{dir -100}..tension2..z18{left}..{right}z19{right}..{dir 20}z20{dir -20}..{right}z21{right}..{left}z22..tension2..{dir 100}z23---z24{dir 80}..{dir 20}z25{dir 160}..{left}z26{left}..{dir -160}z27{dir 160}..{left}z28{left}..{dir -160}z29{dir -20}..{dir -80}z30&cycle;
+%currentpicture := currentpicture shifted(-1.1u,0);
+penlabels (range 1 thru 30);
+endchar;
+
+beginchar(CYR_ha,9u#+c#,x_height#,0);
+italcorr x_height#*sind 18-1.15u#;
+y3=y4=bar; x3=w-s-jut-1/2stem; x4=s+jut+1/2bar;
+y1=y2=h-bar; x1=s+jut+1/2stem+c; x2=w-s-1.25c-jut-1/2bar;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,stem,theta1-180,jut,jut);
+A_serif(2,1.2bar,theta2-180,jut,jut);
+serif(3,stem,theta1,jut,jut);
+A_serif(4,1.2bar,theta2,jut,1.3jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(CYR_tse,9.1u#+s#,x_height#,x_depth#);
+italcorr x_height#*sind 18-.9u#;
+x1=x2=jut+1/2stem+s;
+x3=x4=w-x1-.1u; x5=x1d; x6=x3c;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(3,stem,-90,jut,jut);
+serif(4,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(bar,90); penpos6(bar,90);
+y5=y6=y2h; penstroke z5e--z6e;
+x7e=w-s; y7=y4h;
+T_serif(7,bar,4/5border_height,1);
+fill T_edge7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_che,9u#+s#,x_height#,0);
+italcorr x_height#*sind 18-.8u#;
+x1=jut+1/2stem+s; x2=x3=w-x1;
+y1c=y2c=h; y3c=0; y4=y4r=y4l=30/52h; x4=x1; x4r=x1r; x4l=x1l;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,-90,jut,jut);
+serif(3,stem,90,jut,jut);
+fill z4r--reverse serif_edge1--z4l--cycle;
+fill serif_edge3--reverse serif_edge2--cycle;
+x5=x2l; y5=bar_height-1/2bar; z6=z4;
+x5-x7=x7-x4r; y7=y5-.8bar;
+penpos6(stem,180);
+penpos5(1.2vair,270);
+penpos7(1.2vair,270);
+penstroke z6e{down}...z7e..z5e;
+%currentpicture := currentpicture shifted(-2.15u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_sha,round (13u#+3/2s#),x_height#,0);
+italcorr x_height#*sind 18-.8u#;
+if .5w = good.x .5w: change_width; fi
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+x5=x6=.5w; y5=y1; y6=y2;
+y9b=bar; x9h=w-s;
+x10=x9; y10b=h-bar;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+serif(5,stem,-90,jut,jut);
+serif(6,stem,90,jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+serif(9,stem,90,jut,jut);
+serif(10,stem,-90,jut,jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos7(bar,90);
+penpos8(bar,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_shcha,13.1u#+3/2s#,x_height#,x_depth#);
+italcorr x_height#*sind 18-.9u#;
+if .5w <> good.x .5w: change_width; fi
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0; x3=x2e; y3=y4=y7=y8=y2h;
+x4=x6c; x7=x6d; x8=x9c;
+y9b=bar; x9h=w-s-.1u;
+x10=x9; y10b=h-bar;
+x11e=w-s; y11=y9h;
+serif(9,stem,90,jut,jut);
+serif(10,stem,-90,jut,jut);
+fill serif_edge9--reverse serif_edge10--cycle;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x5=x6=x1+(x10-x1)/2; y5=y1; y6=y2;
+serif(5,stem,-90,jut,jut);
+serif(6,stem,90,jut,jut);
+fill serif_edge6--reverse serif_edge5--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos7(bar,90);
+penpos8(bar,90);
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+T_serif(11,bar,4/5border_height,1);
+fill T_edge11;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar(CYR_hard_sign,10u#-s#,x_height#,0);
+x2r=x5-sss_width; x1=x2;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h; x8e=0; y8g=h;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+T_serif(8,bar,4/5border_height,0);
+fill T_edge8;
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+x9=c; y9=y10=h; x10=-.2c;
+unfill z8d{up}..z9--z10--cycle;
+%currentpicture := currentpicture shifted(-.8u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_yeru,12u#-c#,x_height#,0);
+italcorr x_height#*sind 18-.8u#;
+x1=x2=jut+1/2stem+s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=x2r+sss_width;
+y6=y7=y2h; x8h=x9h=w-s; y8c=h; y9c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+serif(8,stem,-90,jut,jut);
+serif(9,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge9--reverse serif_edge8--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar(CYR_soft_sign,9u#-s#,x_height#,0);
+x1=x2=jut+1/2stem+s;
+x7=x1d;
+y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2r; x4=x6=x3+2.5u-stem;
+y4-y5=y5-y6; x5=w-1/2curve-s;
+y6=y7=y2h;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,90);
+penpos4(bar,90);
+penpos5(curve,0);
+penpos6(bar,-90);
+penpos7(bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(CYR_e,6u#+2s#,x_height#,0);
+italcorr x_height#*sind 18-1.4u#;
+x1=16/39w; x5=.5w-c; y1=0; y5=h;
+y7=.5h; x7=w-1/2curve-s;
+x9e=s; y9=0;
+dl_drop(9,drop_round,18/39w-s,1.5drop_round,bar);
+y2=y5; x2=x5;
+S_serif(2,bar,x5-s-c,border_height);
+x3=x7-1/2stem; y3=y4=bar_height; x4=x9c-c;
+penpos3(bar,90); penpos4(bar,90);
+penstroke z3e--z4e; fill z4r..z4l..cycle;
+y8=0.1h-c; y6=0.9h+c; x8=x1+5/8(x7-x9)+.1c; x6=x2+5/8(x7-x5);
+penpos5(bar,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+penpos1(bar,-270);
+penstroke z5e{right}..z6e..{down}z7e{down}..z8e..{left}z1e;
+fill S_serif_edge2 reflectedabout(z5r,z5l);
+fill dl_drop_edge9;
+%currentpicture := currentpicture shifted(-.6u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar(CYR_yu,12u#+.5s#,x_height#,0);
+italcorr x_height#*sind 18-1.58u#;
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos9(vair,90);
+penpos10(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x3l=x1h+.3bar; y9=0; y5=h;
+y3=y7=.5h; x7=w-1/2curve-s; x7-x5=x5-x3; x9=x5;
+y10=y8=0.1h-c; y4=y6=0.9h+c; x10=x4=x3+c+3/8(x5-x3); x6=x8=x5-c+5/8(x7-x5);
+penstroke z9e..z10e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x1r; x12=x3-1/3stem; y11=y12=bar_height;
+penpos11(bar,90); penpos12(bar,90);
+penstroke z11e--z12e;
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(CYR_ya,8u#+s#+1/2bar#,x_height#,0);
+italcorr x_height#*sind 18-.8u#;
+x1=x2=w-jut-1/2stem-s;
+x7=x1d; y1c=h; y2c=0;
+y3=y4=bar_height; x3=x2l; x4=x6=x3-2.5u+stem;
+y5-y4=y6-y5; x5=1/2stem+2s;
+y6=y7=y1h; x9=s; y9=0; x4-x8=x8-x9; y4-y8=y8-y9;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(bar,-90);
+penpos4(bar,-90);
+penpos5(curve,180);
+penpos6(bar,90);
+penpos7(bar,90);
+penpos8(curve,0);
+penpos9(bar,-90);
+penstroke z3e--z4e{left}..tension.8..z5e..tension.8..{right}z6e--z7e;
+penstroke z9e{right}..{up}z8e{up}..{right}z4e;
+fill z9r..z9l..cycle;
+penlabels(range 1 thru 9);
+endchar;
+
+beginchar("A",13u#+s#,cap_height#,0);
+z1=(.5w,h+1/13h);
+x4l=w-x5r=s+cap_jut; y4l=y5r=slab;
+numeric theta[];
+theta4=angle(z1-z4l);
+theta5=angle(z1-z5r);
+A_serif(4,1.3cap_bar,theta4,cap_jut,1.2cap_jut);
+serif(5,cap_stem,theta5,cap_jut,cap_jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--A_serif_edge4--z0&z0--serif_edge5--z1&cycle;
+penpos2(whatever,theta4);
+penpos3(whatever,theta5);
+y2r=y3r=20/52h;
+y2l=y3l=y2r-cap_bar;
+z2=whatever[z1,z4r];
+z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+y6=y7=h; z6=whatever[z1,z4l]; z7=whatever[z1,z5e];
+unfill z1..z6--z7..z1&cycle;
+unfill z1..z6--z7..z1&cycle;
+penlabels(range 0 thru 7);
+endchar;
+
+beginchar("B",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.12u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x10=x1d; y3=y4=h-1/2slab; x4=x3+u;
+y1c=h; y2c=0;
+y6=y7=cap_bar_height; x6=x2r; x7=x9=x6+4.5u-cap_stem;
+y7-y8=y8-y9; x8=w-1/2cap_curve-s;
+y9=y10=y2h;
+y4-y5=y5-y7; x5=x8-2/5cap_curve; y77=y7; x77=x4;
+serif(1,cap_stem,-90,1/2cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+penpos3(slab,90);
+penpos4(slab,90);
+penpos5(cap_curve,0);
+penpos77(slab,-90);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penpos8(cap_curve,0);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z77e;
+penstroke z6e--z7e{right}..tension.8..z8e..tension.8..{left}z9e--z10e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("C",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.13u#;
+x1=x5=23/42w; y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s; y8=y1; x8=x1-.1w;
+S_serif(6,slab,w-s-c-x1,1.5border_height);
+S_serif(7,slab,w-s-x1,1.5border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+%currentpicture := currentpicture shifted(-1.5u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("D",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-2.08u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(o,30);
+penpos6(cap_curve,0);
+penpos7(o,-30);
+penpos8(cap_bar,-90);
+penpos9(cap_bar,-90);
+x3=x9=x1d;
+x8=x4=.5w; y8=y9=1/2cap_bar; y4=y3=h-1/2cap_bar;
+y6=.5h; x6=w-1/2cap_curve-s;
+y7=0.1h-c+1/2cap_bar; y5=0.9h+c-1/2cap_bar; x5=x7=x4+4.5/8(x6-x4);
+penstroke z3e--z4e{right}..z5e..z6e..z7e..{left}z8e--z9e;
+penlabels(range 1 thru 10,77);
+endchar;
+
+beginchar("E",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.19u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s-c;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+y9=y10=y11=y2h; x9=x2d; x11e=w-s;
+T_serif(11,cap_bar,border_height,1); x10=x11;
+penpos9(cap_bar,90);
+penpos10(cap_bar,90);
+penstroke z9e--z10e;
+fill T_edge11 reflectedabout(z9,z10);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("F",10u#+.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y4=y3=h-1/2slab; x4=x1d;
+y1c=h; y2c=0;
+y5=y3; x5e=w-s;
+y6=y7=y8=cap_bar_height;x6=x1r; x7=x8=x6+u;
+T_serif(5,slab,border_height,1);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x5a;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penstroke z3e--z4e;
+fill T_edge5;
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e;
+T_serif(8,cap_bar,.8border_height,1);
+fill T_edge8;
+fill T_edge8 reflectedabout(z6,z7);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("G",10u#+cap_jut#+c#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2.8u#;
+x1=x5=23/42(w-cap_jut-c); y1=0; y5=h;
+y3=.5h; x3=1/2cap_curve+s;
+y2=0.1h-c; y4=0.9h+c; x2=x4=x3+7/16(x1-x3);
+penpos1(cap_bar,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(cap_bar,-90);
+penstroke z1e{left}..z2e..z3e..z4e..{right}z5e;
+z6=z5; y7=y1; x7e=w-s-cap_jut-c; y8=y1; x8=x1-.1(w-cap_jut-c);
+S_serif(6,slab,w-s-2c-x1-cap_jut,1.5border_height);
+S_serif(7,slab,w-s-x1-cap_jut+c,7/4border_height);
+fill S_serif_edge6; fill S_serif_edge7 reflectedabout(z1,z8);
+x9r=x7e; y9r=7/4border_height-1/2cap_bar;
+serif(9,cap_stem,-90,cap_jut,cap_jut);
+x10=x9l; x11=x9r; y10=y11=3/4cap_bar;
+fill reverse serif_edge9--z10--z11--cycle;
+%currentpicture := currentpicture shifted(-1.3u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("H",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+x3=x4=w-x1; x5=x1r; x6=x3l;
+y1c=y3c=h; y2c=y4c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+serif(3,cap_stem,-90,cap_jut,cap_jut);
+serif(4,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+fill serif_edge4--reverse serif_edge3--cycle;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+y5=y6=cap_bar_height; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("I",2cap_jut#+cap_stem#+2s#,cap_height#,0);
+italcorr cap_height#*sind 18-.82u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+endchar;
+
+beginchar("J",7u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.85u#;
+x1=x4=w-cap_jut-1/2cap_stem-s;
+y1c=h; y2=y3=y4=13/53h; x2=x1r; x3=x1l;
+y5=0; x5=x3-2/3cap_stem;
+serif(1,cap_stem,-90,1.2cap_jut,cap_jut);
+fill z3--z2--reverse serif_edge1--cycle;
+penpos4(cap_stem,0);
+penpos5(cap_bar,-90);
+penstroke z4e{down}..{left}z5e;
+x6e=s; y6=0;
+dl_drop(6,cap_drop_round,x5-s,1.3drop_round,cap_bar);
+fill dl_drop_edge6;
+%currentpicture := currentpicture shifted(-.4u,0);
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("K",13u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-1.84u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=cap_bar_height; x3l=w-cap_jut-.5cap_jut-cap_bar-s; y3l=h-cap_bar;
+x5=x6=x1r; y5=cap_bar_height-cap_bar; y6=y5-1.2cap_bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+A_serif(3,cap_bar,theta1,1.5cap_jut,.6cap_jut);
+x4l=w-s-1.2cap_jut-cap_stem; y4l=cap_bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,cap_stem,theta2,.8cap_jut,cap_jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("L",10u#+c#,cap_height#,0);
+x1=x2=cap_jut+1/2cap_stem+s;
+y1c=h; y2c=0;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y3=y4=y5=y2h; x3=x2d; x5e=w-s;
+T_serif(5,cap_bar,border_height,1); x4=x5;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penstroke z3e--z4e;
+fill T_edge5 reflectedabout(z3,z4);
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar("M",13u#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1g=s; y1c=0; y2=h-cap_bar;
+A_serif(1,cap_bar,90,jut,jut);
+x2=x1; serif(2,cap_bar,-90,jut,jut);
+fill A_serif_edge1--reverse serif_edge2--cycle;
+x3h=x4h=w-s; y3g=h-1/2cap_bar; y4c=0;
+serif(3,cap_stem,-90,1/2cap_bar, jut);
+serif(4,cap_stem,90,jut,jut);
+fill serif_edge4--reverse serif_edge3--cycle;
+z5l=z3g; penpos5(bar,0); penpos6(bar,0);
+z6=z5+whatever*dir -108; y6=0;
+penstroke z5e--z6e;
+z7l=z6l+whatever*dir 110; y7l=11/54h;
+z8l=whatever[z6l,z7l]; y8l=h;
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penstroke z7e--z8e; fill z6l--z7l--z7r--cycle;
+fill z6l..tension1.3..z6r..tension1.3..cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("N",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=cap_jut+1/2cap_bar+s;
+x3=w-x1; y1c=y3c=h; y2c=y4=y5=0;
+x4=x3r; x5=x3l;
+serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+A_serif(2,cap_bar,90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill A_serif_edge2--reverse serif_edge1--cycle;
+numeric theta[]; y7=y1h; x7=x1h-1.1cap_stem;
+theta1=angle(z5-z7);
+z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+fill z6--z1h--z7--z5{down}..{up}z4--reverse A_serif_edge3--cycle;
+unfill z1b--z1l--z1a--cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("O",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-2u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+%currentpicture := currentpicture shifted(-1.6u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("P",10u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.5u#;
+x1=x2=x3=cap_jut+1/2cap_stem+s;
+y3=y4=cap_bar2_height; y7=y6=h-1/2slab; x7=x3+c;
+y1c=h; y2c=0; x6=x4=x3+3u;
+y5-y4=y6-y5; x5=w-1/2cap_curve-s;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,-90);
+penpos4(cap_bar,-90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,90);
+penpos6(cap_bar,90);
+penstroke z3e--z4e{right}..tension.8..z5e..tension.8..{left}z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Q",11u#+s#,cap_height#,comma_depth#);
+italcorr cap_height#*sind 18-2u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x11=x12-1.5c; x12=x7l-c; y11=y12=-comma_depth;
+y9=0; x9=x1-c; y9-y10=y10-y11; x11-x10=x10-x9;
+penpos9(cap_bar,90); penpos10(cap_curve,0);
+penpos11(cap_bar,90); penpos12(cap_bar,90);
+penstroke z9e{dir -20}..tension.8..z10e..tension.8..{right}z11e--z12e;
+fill z12r..z12l..cycle;
+%currentpicture := currentpicture shifted(-1.6u,0);
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar("R",11u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-3.04u#;
+x1=x2=cap_jut+1/2cap_stem+s;
+y6=y10=y7=cap_bar_height; y3=y4=h-1/2slab; x7=x2r;
+y1c=h; y2c=0; x6=x4=x7+2.5u; x3=x1d;
+y4-y5=y5-y6; x5=x8; x9=w-s-1/2cap_bar; y9=0; y6-y8=y8-y9; x10=x6; x9-x8=6/7(x8-x10);
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penpos3(cap_bar,90);
+penpos4(cap_bar,90);
+penpos5(cap_curve,0);
+penpos7(cap_bar,-90);
+penpos6(cap_bar,-90);
+penpos8(cap_curve,-180);
+penpos9(cap_bar,-90);
+penpos10(cap_bar,-90);
+penstroke z3e--z4e{right}..tension.9..z5e..tension.9..{left}z6e--z7e;
+penstroke z9e{left}..tension.8..{up}z8e{up}..tension.8..{left}z10e;
+fill z9l..z9r..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("S",9u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.7u#;
+x6=x7=1/2w; y6=y7=0;
+S_serif(7,cap_bar,x6-s,1.5border_height);
+y5=11/53h; x5=w-s-1/2(1.9hair);
+y4=28/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2(1.9cap_bar);
+x2=.5w-c; y2=h; z1=z2;
+penpos6(cap_bar,-90);
+penpos5(1.9hair,0);
+penpos4(1.1cap_curve,90);
+penpos3(1.9hair,0);
+penpos2(cap_bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-cap_bar,1.2border_height);
+fill S_serif_edge1;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("T",round (11u#+s#),cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1=x2=.5w; y1c=h; y2c=0;
+y3=y4=h-1/2slab; x3e=s; x1-x3e=x4e-x1;
+serif(1,cap_stem,-90,1.2cap_jut,1.2cap_jut);
+serif(2,cap_stem,90,cap_jut,cap_jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+T_serif(3,cap_bar,round border_height,0);
+T_serif(4,cap_bar,round border_height,1);
+fill T_edge3;
+fill T_edge4;
+if x1c>x3: y5=y6=y7=y8=h-1/2cap_bar; x5=x3a; x6=x1c; x7=x1e; x8=x4a;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+penstroke z5e--z6e;
+penstroke z7e--z8e; fi
+%currentpicture := currentpicture shifted(-2.9u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("U",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-.8u#;
+x1=cap_jut+1/2cap_stem+s;
+x3=w-s-cap_jut-1/2cap_bar;
+y1c=y3c=h; y2=y4=y5=y6=y24=y56=16/53h; x2=x1l;
+x4=x1r; x5=x3l; x6=x3r;
+serif(1,cap_stem,-90,cap_jut,cap_jut);
+A_serif(3,cap_bar,-90,cap_jut,cap_jut);
+fill z2--z4--reverse serif_edge1--cycle;
+fill z5--z6--reverse A_serif_edge3--cycle;
+x7=x1+.5(x3-x1); y7=0; x4-x24=x24-x2; x6-x56=x56-x5;
+penpos24(cap_stem,-180); penpos7(vair,-90);
+penpos56(cap_bar,0);
+penstroke z24e{down}..tension.9..{right}z7e{right}..tension.9..{up}z56e;
+%currentpicture := currentpicture shifted(-2.1u,0);
+penlabels(range 1 thru 7,24,56);
+endchar;
+
+beginchar("V",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1l=cap_jut+s; x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w-1/2cap_bar; x5=.5w+1/2cap_bar;
+y4=y5=1/2cap_bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+%currentpicture := currentpicture shifted(-3.3u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("W",17u#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x9l=.5w-.3cap_stem; x7r=w-s-cap_jut;
+y9l=y7r=y1l=h-cap_bar; x5=x9l+.5(x7r-x9l)-1/2cap_bar; x6=x9l+.5(x7r-x9l)+1/2cap_bar;
+y5=y6=y2=y3=1/2cap_bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(7,cap_bar,theta2,1.3cap_jut,cap_jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+cap_jut;
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+z2=z1l+whatever*dir theta1; x3=x2+cap_bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+%currentpicture := currentpicture shifted(-3.3u,0);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("X",12u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.25u#;
+y3=y4=slab; x3=w-s-cap_jut-1/2cap_stem; x4=s+cap_jut+1/2slab;
+y1=y2=h-slab; x1=s+cap_jut+1/2cap_stem+c; x2=w-s-1.5c-cap_jut-1/2slab;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,cap_stem,theta1-180,cap_jut,cap_jut);
+A_serif(2,1.2cap_bar,theta2-180,cap_jut,cap_jut);
+serif(3,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(4,1.2cap_bar,theta2,cap_jut,cap_jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("Y",12u#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x1l=cap_jut+s; x3r=w-s-cap_jut;
+y1l=y3r=h-cap_bar; x4=.5w; y4=8/25h;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z4-z3r);
+serif(1,cap_stem,theta1,cap_jut,cap_jut);
+A_serif(3,cap_bar,theta2,1.3cap_jut,cap_jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+y5c=0; x5=.5w+.5c;
+serif(5,cap_stem,90,cap_jut,cap_jut);
+x6=x5l; x7=x5r;
+z6=z1l+whatever*dir theta1;
+z7=z3r+whatever*dir theta2;
+fill z6--serif_edge5--z7--reverse A_serif_edge3--z2--reverse serif_edge1--z6&cycle;
+%currentpicture := currentpicture shifted(-3.3u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("Z",9u#+1.5s#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x6=s+1/2cap_bar; y6=y7=y8=1/2cap_bar;
+x8e=w-s; x7=x8;
+T_serif(8,cap_bar,border_height,1);
+penpos6(cap_bar,90);
+penpos7(cap_bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4cap_bar;
+x4r=w-s-1/4cap_bar; y4=h-cap_bar;
+penpos4(cap_stem,0);
+penpos5(cap_stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2cap_bar;
+x3=w-s-1/2cap_bar; x1e=s+c;
+T_serif(1,cap_bar,border_height,0);
+x2=x1;
+penpos3(cap_bar,90);
+penpos2(cap_bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar("a",9u#-s#+2/7stem#,x_height#,0);
+x5=w-s-1/2bar; y5=0; y4=6/7stem; x4=x3=x5-5/7stem-1/2stem;
+y3=bar_height+2bar; y2=y1=h; x2=s+c+6/20w; x1e=s+c;
+ul_drop(1,drop_round,x2-s-c,5/4drop_round,bar);
+fill ul_drop_edge1;
+penpos2(bar,90);
+penpos3(stem,0);
+penpos4(stem,0);
+penpos5(bar,90);
+penstroke z2e{right}..{down}z3e--z4e{down}..{right}z5e;
+fill z5r..z5l..cycle;
+y6=bar_height+1/2bar; x6=x3+1/2stem; x7=s+1/2stem; y7=7/17bar_height;
+y8=0; x9=x4-1/2stem+1/2bar; x9-x8=x8-x7; y9=y4+3/2bar; x66=x8; y66=y6-c;
+numeric theta[]; theta1=angle(z66-z6);
+penpos6(vair,90);
+penpos66(vair,90);
+penpos7(curve,180);
+penpos8(vair,270);
+penpos9(bar,360);
+penstroke z6e{left}..z66e{dir theta1}..tension.8..{down}z7e{down}..tension.8..z8e{right}..{up}z9e;
+penlabels(range 1 thru 9,66);
+endchar;
+
+beginchar("b",8u#+jut#,asc_height#,0);
+italcorr asc_height#*sind 18-2.77u#;
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+.3s+.6(w-jut-2s); y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=y8=0.1x_height; y4=y6=0.9x_height; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=0;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,0);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("c",8u#,x_height#,0);
+italcorr x_height#*sind 18-1.6u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=1/2curve+s;
+y2=0.1h; y4=0.9h; x2=x4=x3+3/8(x5-x3);
+x6=w-s-1/2hair; y6=y3-4/5stem;
+penstroke z6e{down}..tension1.1..z1e{left}..z2e..z3e..z4e..z5e;
+fill z6r..z6l..cycle;
+z7=z5;
+ur_drop(7,drop_round,7/8(x6l-x1),1.4drop_round,bar);
+fill ur_drop_edge7;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("d",8u#+jut#,asc_height#,0);
+italcorr asc_height#*sind 18-1.75u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.7o,-150);
+penpos7(stem,-180);
+penpos8(.7o,-210);
+x1=x5=1.7s+.4(w-jut-2s); y1=0; y5=x_height;
+y3=y7=.5x_height; x3=1/2curve+s; x7=w-1/2stem-s-jut;
+y2=y8=0.1x_height; y4=y6=0.9x_height; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10h=w-s; x9=x10; y9c=h; y10c=0;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,0,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("e",8u#,x_height#,0);
+italcorr x_height#*sind 18-1.57u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(bar,90);
+penpos9(bar,90);
+penpos10(.9hair,180);
+x1=x5=.5w; y1=0; y5=h;
+y3=.5h; x3=x9=1/2curve+s; x7=w-1/2curve-s; x8=w-s; y8=y9=bar_height; y7=y8r;
+y2=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x5+5/8(x7-x5);
+x10=w-s-1/2bar; y10=y7-5/4stem;
+penstroke z10e{down}..tension1.1..z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e;
+penstroke z9e--z8e;
+fill z10r..z10l..cycle;
+%currentpicture := currentpicture shifted(-1.2u,0);
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("f",2jut#+stem#+2c#+2s#,asc_height#,0);
+italcorr asc_height#*sind 18-1.15u#;
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x1; y3=x_height; x4r=x1l-.1stem; y4=x_height+1/2(asc_height-x_height);
+x5l=x4l-.05stem; y5=y4+1.5bar; x6=x1r+.2stem; y6=h-1/2bar;
+penpos3(stem,180);
+penpos4(.75curve,180);
+penpos5(.6curve,180);
+penpos6(bar,90);
+penstroke z3e{dir 95}...{up}z4e..z5e..{right}z6e;
+y6=y7; x7e=w-s;
+ur_drop(7,stem,x7e-x6,drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("g",9u#+c#,x_height#,desc_depth#);
+italcorr x_height#*sind 18-1.07u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+y3=y7=2/3h; x3=1/2curve+s+c; x7=w-3/2stem-s;
+x1=x5=x3+1/2(x7-x3); y1=3/11h; y5=h;
+y2=y8=y1+0.1(8/11h); y4=y6=y1+0.9(8/11h); x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x9=x7; y9=y7+1/2(y6-y7); y10=h; x10=x7l+c;
+x11e=w-s; y11=y10;
+ur_drop(11,.8stem,x11e-x10,drop_round,bar);
+penpos9(hair,180); penpos10(vair,90);
+penstroke z9e{up}..{right}z10e;
+fill ur_drop_edge11;
+y12=y1; x12=x1; y13=y12/2; x13=s+1/4stem+.5c;
+y14=y15=0; x14=x2r; x15=x8r; y16=y18=-d/2; x16=w-s-1/2stem;
+x18=s+.7hair; y17=-d+1/2bar; x17=s+.6bar+9/20(x16-x18); x19=x14; y19l=y14r;
+penpos12(vair,90); penpos13(1/2curve,180); penpos14(curve,270);
+z144=z14; penpos144(curve,90); penpos15(curve,90);penpos16(1/2curve,0);
+penpos17(vair,-90); penpos18(1.4hair,-180); penpos19(1.4vair,-270);
+penstroke z12e{left}..{down}z13e{down}..{right}z14e;
+penstroke z144e--z15e{right}..tension.8..{down}z16e{down}..{left}z17e{left}..{up}z18e{up}..{right}z19e;
+penlabels(range 1 thru 19);
+endchar;
+
+beginchar("h",round (10u#-1.5c#),asc_height#,0);
+w:=w+1;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6h=w-s; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33x_height;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=x_height; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("i",2jut#+stem#+2s#,x_height#+2.1stem#,0);
+italcorr asc_height#*sind 18-2.08u#;
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+z3=(x1,h); z4=(x1,h-1.1stem);
+fill z3..z4..cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("j",5u#,x_height#+2.1stem#,desc_depth#);
+italcorr (x_height#+2.1stem#)*sind 18-.99u#;
+x1h=w-s; y1c=x_height; y2=0; x2=x1;
+serif(1,stem,-90,1.5jut,0);
+penpos2(stem,0);
+fill z2l--z2r--reverse serif_edge1--cycle;
+z3=(x1-.05stem,h); z4=(x1-.05stem,h-1.1stem);
+fill z3..z4..cycle;
+y5=-1/4desc_depth; x5r=x2r;
+y6=-d+1/2bar; x6=x2l-1/2stem;
+penpos5(.97stem,0);
+penpos6(bar,-90);
+penstroke z2e--z5e{down}..{left}z6e;
+x7e=s; y7=-d+1/2bar;
+dl_drop(7,stem,x6-x7e,drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar("k",round (10u#-c#),asc_height#,0);
+w:=w+1; italcorr asc_height#*sind 18-2.22u#;
+x1=x2=jut+1/2stem+s;
+y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+y7=bar_height; x3l=w-jut-.7jut-s; y3l=x_height-bar;
+x5=x6=x1r; y5=bar_height-bar;
+numeric theta[];
+theta1=angle(z5-z3l);
+y6=y5-1.2bar/cosd (theta1+180);
+A_serif(3,bar,theta1,1.8jut,.8jut);
+x4l=w-s-1.2jut-stem; y4l=bar;
+z7=z3r+whatever*dir theta1;
+theta2=angle(z7-z4l);
+serif(4,stem,theta2,.8jut,jut);
+z8=z3r+whatever*dir theta1=z4r+whatever*dir theta2;
+fill z5--z6--z7--serif_edge4--z8--reverse A_serif_edge3--cycle;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("l",2.4jut#+stem#+2s#,asc_height#,0);
+italcorr asc_height#*sind 18-1.92u#;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,1.2jut,0);
+serif(2,stem,90,1.2jut,1.2jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penlabels(1,2);
+endchar;
+
+beginchar("m",14u#,x_height#,0);
+if .5w = good.x .5w: change_width; fi
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6=.5w; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33h;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=h; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+x10h=w-s; y10c=0;
+serif(10,stem,90,jut,jut);
+x9=x10; y9=y5;
+penpos9(stem,0);
+fill serif_edge10--z9r--z9l--cycle;
+x8=x10g; y8=h; y7=y9-1/4bar; x7l=x6r;
+penpos8(vair,90);
+penpos7(bar,180);
+penstroke z9e{up}..{left}z8e{left}..z7e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("n",round (10u#-1.5c#),x_height#,0);
+w:=w+1;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6h=w-s; y6c=0;
+serif(6,stem,90,jut,jut);
+x5=x6; y5=23/33h;
+penpos5(stem,0);
+fill serif_edge6--z5r--z5l--cycle;
+x4=x6g; y4=h; y3=y5-1/4bar; x3l=x2r;
+penpos4(vair,90);
+penpos3(bar,180);
+penstroke z5e{up}..{left}z4e{left}..z3e;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("o",8u#+s#,x_height#,0);
+italcorr x_height#*sind 18-1.6u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2curve-s;
+y2=y8=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+%currentpicture := currentpicture shifted(-1.1u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("p",8u#+jut#,x_height#,desc_depth#);
+italcorr x_height#*sind 18-1.6u#;
+penpos1(vair,90);
+penpos2(.7o,30);
+penpos3(stem,0);
+penpos4(.7o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(curve,-180);
+penpos8(o,-210);
+x1=x5=jut+.3s+.6(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2stem+s+jut; x7=w-1/2curve-s;
+y2=y8=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10g=x9g=s; y9c=h; y10c=-desc_depth;
+serif(9,stem,-90,jut,0);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("q",8u#+jut#,x_height#,desc_depth#);
+italcorr x_height#*sind 18-.8u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(.7o,-150);
+penpos7(stem,-180);
+penpos8(.7o,-210);
+x1=x5=1.7s+.4(w-jut-2s); y1=0; y5=h;
+y3=y7=.5h; x3=1/2curve+s; x7=w-1/2stem-s-jut;
+y2=y8=0.1h; y4=y6=0.9h; x2=x4=x3+3/8(x5-x3); x6=x8=x5+5/8(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+x10h=w-s; x9=x10; y9c=h; y10c=-d;
+serif(9,stem,-90,0,jut);
+serif(10,stem,90,jut,jut);
+fill serif_edge10--reverse serif_edge9--cycle;
+%currentpicture := currentpicture shifted(-.9u,0);
+penlabels(range 1 thru 10);
+endchar;
+
+beginchar("r",7u#+c#,x_height#,0);
+italcorr x_height#*sind 18-1.05u#;
+x1g=x2g=s; y1c=h; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,1.2jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x4=round (x2h+1/2bar+c); y4=h; y3=23/33h-1/4bar; x3l=x2r;
+penpos4(bar,90);
+penpos3(bar,180);
+penstroke z4e{left}...{down}z3e;
+x5e=w-s; y5=h;
+ur_drop(5,1.1stem,x5e-x4,drop_round,bar);
+fill ur_drop_edge5;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar("s",7u#+c#,x_height#,0);
+italcorr x_height#*sind 18-1.28u#;
+x6=x7=1/2w; y6=y7=1/2bar;
+S_serif(7,bar,x6-s,border_height);
+y5=11/53h; x5=w-s-1/2(1.4hair);
+y4=29/53h; x4=18/38w; y3=42/53h; x3=s+c+1/2hair;
+x2=.5w; y2=h; z1=z2;
+penpos6(bar,-90);
+penpos5(1.4hair,0);
+penpos4(1.1curve,90);
+penpos3(1.4hair,0);
+penpos2(bar,-90);
+penstroke z6e{right}..tension.9..z5e..tension1..z4e..tension.9..z3e..tension.9..{right}z2e;
+fill S_serif_edge7 rotatedaround(z6,180);
+S_serif(1,cap_bar,x5-x2-1/3bar,.9border_height);
+fill S_serif_edge1;
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("t",7u#-s#,asc_height#,0);
+italcorr x_height#*sind 18-1.7u#;
+y1=y2=46/53h; y4c=x_height; x4g=s;
+serif(4,stem,-90,jut,1.4jut);
+x1=x4r; x2=x1-bar;
+y5=7/33x_height; x5=x4; x3=x4l; y3=42/53h;
+penpos5(stem,180); numeric theta[];
+theta1=angle(z3-z2);
+fill z5l--reverse serif_edge4--z5r--cycle;
+fill z4r--z1{up}..{dir theta1}z2--z3--z4l--cycle;
+y6=1/4bar; x6=x4r+.7jut; x7=w-s-1/2bar; y7=13/53h;
+penpos6(vair,270); penpos7(hair,360);
+penstroke z5e{down}..{right}z6e{right}..{up}z7e;
+fill z7r..z7l..cycle;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 7);
+endchar;
+
+beginchar("u",round (10u#-1.5c#),x_height#,0);
+italcorr x_height#*sind 18-1.7u#;
+w:=w+1; x2h=w-s; y1c=h; y2c=0; x1=x2;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,0,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x6g=s; y6c=h;
+serif(6,stem,-90,jut,0);
+x5=x6; y5=10/33h;
+penpos5(stem,180);
+fill serif_edge6--z5l--z5r--cycle;
+x4=x6+1/2stem+jut; y4=0; y3=y5+1/4bar; x3l=x2l;
+penpos4(vair,270);
+penpos3(bar,360);
+penstroke z5e{down}..{right}z4e{right}..z3e;
+%currentpicture := currentpicture shifted(-1.5u,0);
+penlabels(range 1 thru 6);
+endchar;
+
+beginchar("v",10u#-1.5c#,x_height#,0);
+italcorr x_height#*sind 18-.84u#;
+x1l=jut+s; x3r=w-s-jut;
+y1l=y3r=h-bar; x4=.5w-1/2bar; x5=.5w+1/2bar;
+y4=y5=1/2bar;
+numeric theta[];
+theta1=angle(z4-z1l);
+theta2=angle(z5-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,bar,theta2,1.3jut,jut);
+z2=z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4{down}..{up}z5--reverse A_serif_edge3--z2--reverse serif_edge1--z4&cycle;
+%currentpicture := currentpicture shifted(-2.1u,0);
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("w",13u#,x_height#,0);
+italcorr x_height#*sind 18-.84u#;
+x9l=.5w-.3stem; x7r=w-s-jut;
+y9l=y7r=y1l=h-bar; x5=x9l+.5(x7r-x9l)-1/2bar; x6=x9l+.5(x7r-x9l)+1/2bar;
+y5=y6=y2=y3=1/2bar;
+numeric theta[];
+theta1=angle(z5-z9l);
+theta2=angle(z6-z7r);
+serif(9,stem,theta1,jut,jut);
+A_serif(7,bar,theta2,1.1jut,jut);
+z8=z9r+whatever*dir theta1=z7l+whatever*dir theta2;
+x1l=s+jut;
+serif(1,stem,theta1,jut,jut);
+z2=z1l+whatever*dir theta1; x3=x2+bar;
+z4=z3+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+y11=y8; z11=z1r+whatever*dir theta1;
+z10=z11+whatever*dir (theta2-180)=z9l+whatever*dir theta1;
+fill z5{down}..{up}z6--reverse A_serif_edge7--z8--reverse serif_edge9--z10--z11--reverse serif_edge1--z2{down}..{up}z3--z4--z5&cycle;
+%currentpicture := currentpicture shifted(-2.1u,0);
+penlabels(range 1 thru 11);
+endchar;
+
+beginchar("x",9u#+c#,x_height#,0);
+italcorr x_height#*sind 18-1.15u#;
+y3=y4=bar; x3=w-s-jut-1/2stem; x4=s+jut+1/2bar;
+y1=y2=h-bar; x1=s+jut+1/2stem+c; x2=w-s-1.25c-jut-1/2bar;
+numeric theta[];
+theta1 = angle(z1-z3);
+theta2 = angle(z2-z4);
+serif(1,stem,theta1-180,jut,jut);
+A_serif(2,1.2bar,theta2-180,jut,jut);
+serif(3,stem,theta1,jut,jut);
+A_serif(4,1.2bar,theta2,jut,1.3jut);
+fill serif_edge3--reverse serif_edge1--cycle;
+fill A_serif_edge4--reverse A_serif_edge2--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("y",9u#+s#,x_height#,desc_depth#);
+italcorr x_height#*sind 18-.8u#;
+x1l=s+jut; y1l=h-bar;
+x3r=w-s-.8jut; y3r=h-bar;
+x4=33/60w; y4=-2/5d;
+numeric theta[];
+theta1 = angle(z4-z1l);
+theta2 = angle(z4-z3r);
+serif(1,stem,theta1,jut,jut);
+A_serif(3,1.2bar,theta2,1.2jut,.8jut);
+z2 = z1r+whatever*dir theta1=z3l+whatever*dir theta2;
+fill z4--serif_edge1--z2&z2--A_serif_edge3--z4&cycle;
+z5r=z4; y6=-d+bar; x6=x4-1.5stem; z7l=z2;
+penpos7(1.2bar,theta2+90);
+penpos5(1.2bar,theta2+90);
+penpos6(1.2bar,-90);
+penstroke z7e--z5e{dir theta2}...{left}z6e;
+z8=z6;
+dl_drop(8,1.1stem,1.3u,drop_round,1.2bar);
+fill dl_drop_edge8; fill z8e..z8c..cycle;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(range 1 thru 8);
+endchar;
+
+beginchar("z",7u#+c#,x_height#,0);
+italcorr x_height#*sind 18-.8u#;
+x6=s+1/2bar; y6=y7=y8=1/2bar;
+x8e=w-s; x7=x8;
+T_serif(8,bar,.8border_height,1);
+penpos6(bar,90);
+penpos7(bar,90);
+penstroke z6e--z7e; fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-.5c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+y5l=y6r; x5l=x6r-1/4bar;
+x4r=w-s-1/4bar; y4=h-bar;
+penpos4(stem,0);
+penpos5(stem,0);
+penstroke z4e--z5e;
+y3=y2=y1=h-1/2bar;
+x3=w-s-1/2bar; x1e=s+c;
+T_serif(1,bar,.8border_height,0);
+x2=x1;
+penpos3(bar,90);
+penpos2(bar,90);
+penstroke z2e--z3e; fill z3l..z3r..cycle;
+fill T_edge1;
+x12=x1e; y12=y13=h; x13=x1e+.5c;
+unfill z1d{up}..z13--z12--cycle;
+penlabels(range 1 thru 13);
+endchar;
+
+beginchar(hex"30",9u#+s#,cap_height#,0);
+italcorr cap_height#*sind 18-1.9u#;
+penpos1(vair,90);
+penpos2(o,30);
+penpos3(cap_curve,0);
+penpos4(o,-30);
+penpos5(vair,-90);
+penpos6(o,-150);
+penpos7(cap_curve,-180);
+penpos8(o,-210);
+x1=x5=.5w; y1=0; y5=h;
+y3=y7=.5h; x3=1/2cap_curve+s; x7=w-1/2cap_curve-s;
+y2=y8=0.1h-c; y4=y6=0.9h+c; x2=x4=x3+7/16(x5-x3); x6=x8=x5+9/16(x7-x5);
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+%currentpicture := currentpicture shifted(-1.3u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"31",6u#+3/2c#,cap_height#,0);
+italcorr cap_height#*sind 18-2.03u#;
+y1c=0; x1h=w-s;
+serif(1,cap_stem,90,cap_jut,cap_jut);
+x6=x1f; y5=y6=h; x5=x1; x2=x1a; y2=42/53h;
+penpos4(1.1cap_bar,theta1+45);
+penpos3(1.1cap_bar,theta1+45);
+x4l=s; y4=30/53h; numeric theta[]; theta1=angle(z5-z4l);
+z3l=z5; penstroke z3e--z4e; fill z4l..z4r..cycle;
+fill serif_edge1--z6{dir 110}..{dir 250}z5--z2--cycle;
+%currentpicture := currentpicture shifted(-.7u,0);
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"32",9u#,cap_height#,0);
+italcorr cap_height#*sind 18-1.57u#;
+z4=(9/33w,14/53h); z5=(s+11/20cap_bar,0);
+z3=(w-s-.5c-7/16cap_curve,40/53h); z2=(15/33w,h);
+penpos2(cap_bar,90);
+penpos3(cap_curve,0);
+penpos4(1.1cap_bar,-45);
+penpos5(1.1cap_bar,0);
+x6=x5r; y6=y7=7/16cap_stem; y8=1/2cap_bar;
+x8e=w-s; x7=x8e;
+T_serif(8,cap_bar,3/5border_height,1);
+penpos6(7/8cap_stem,90);
+penpos7(7/8cap_stem,90);
+penstroke z6e--z7e; %fill z6r..z6l..cycle;
+fill T_edge8 reflectedabout(z6,z7);
+x9=w-s-c; y9=y10=0; x10=w-s; z11=z8d reflectedabout(z6,z7);
+unfill z11{down}..z9--z10--cycle;
+unfill z11{down}..z9--z10--cycle;
+penstroke z5e{up}..z4e..{up}z3e{up}..{left}z2e;
+z1=z2; ul_drop(1,cap_drop_round,15/33w-3c,1.4cap_drop_round,slab);
+fill ul_drop_edge1;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"33",9u#,cap_height#,0);
+italcorr cap_height#*sind 18-1.9u#;
+x7=18/39w; y7=0; y4=y5=y44=cap_bar_height+c;
+x4=x6-3/2cap_stem; x5=x4-2u;
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+x2=.5w; y2=h; x3=x6-1/3cap_curve; y2-y3=y3-y4;
+x44=x2; z1=z2;
+penpos2(cap_bar,90);
+penpos3(cap_stem,0);
+penpos44(cap_bar,-90);
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z2e{right}..{down}z3e{down}..{left}z44e;
+penstroke z5e--z4e{right}..tension.9..{down}z6e{down}..tension.9..{left}z7e;
+fill z5r..z5l..cycle;
+ul_drop(1,cap_drop_round,17/39w-s,cap_drop_round,slab);
+fill ul_drop_edge1;
+x8e=s; y8=0;
+dl_drop(8,cap_drop_round,18/39w-s,1.3cap_drop_round,slab);
+fill dl_drop_edge8;
+%currentpicture := currentpicture shifted(-.6u,0);
+penlabels(1,2,3,4,5,6,7,8,44);
+endchar;
+
+beginchar(hex"34",9u#+c#,cap_height#,0);
+italcorr cap_height#*sind 18-2.2u#;
+y1=y2=33/53h; y4c=0; x4h=w-s;
+serif(4,7/8cap_stem,90,cap_jut,cap_jut);
+x1=x4r; x2=x1-bar;
+x3=x4l; y3=28/53h;
+numeric theta[]; theta1=angle(z2-z3);
+fill z3{dir theta1}--z2{dir theta1}..{down}z1--reverse serif_edge4--z3&cycle;
+y5=y6=15/53h; x5=x4e; x6=s+cap_bar;
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+penstroke z5e--z6e; fill z5r..z5l..cycle;
+y7=y6l; x7l=x6; z8=(6/36w, 21/53h);
+z9=(2/3w,h);
+penpos7(cap_bar,180); penpos8(cap_bar,150);
+penpos9(cap_stem,180);
+penstroke z7e{up}..z8e..{dir 70}z9e;
+%currentpicture := currentpicture shifted(-.9u,0);
+penlabels(range 1 thru 12);
+endchar;
+
+beginchar(hex"35",9u#,cap_height#,0);
+italcorr cap_height#*sind 18-1.39u#;
+x7=x4=18/39w; y7=0; y5=cap_bar_height+c; y4=y5+s;
+x8e=s; y8=0; x5=x8d;
+dl_drop(8,cap_drop_round,18/39w-s,1.3cap_drop_round,slab);
+x6=w-s-1/2cap_curve; y4-y6=y6-y7;
+penpos4(cap_bar,90);
+penpos5(cap_bar,90);
+penpos6(cap_curve,0);
+penpos7(cap_bar,-90);
+penstroke z5e..z4e{right}..tension.85..{down}z6e{down}..tension.85..{left}z7e;
+fill z5r..z5l..cycle;
+fill dl_drop_edge8;
+z3=z5; x2=x3; y2=h;
+penpos3(cap_bar,0); penpos2(cap_bar,0);
+penstroke z3e--z2e; fill z2l..tension 1.7..z2r..tension 1.7..cycle;
+y1r=h; x1=x2r; x13=x6; y13=h; 2(x12-x1)=x13-x12; y12=h-.6cap_stem;
+penpos1(7/8cap_stem,90); penpos13(1.1cap_bar,90); penpos12(3/4cap_stem,90);
+penstroke z1e..z12e..z13e; fill z13r..tension 1.7..z13l..tension 1.7..cycle;
+%currentpicture := currentpicture shifted(-.6u,0);
+penlabels(1,2,3,4,5,6,7,8,12,13);
+endchar;
+
+beginchar(hex"36",9u#,cap_height#,0);
+italcorr cap_height#*sind 18-1.35u#;
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=x9=.45w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.1h-c; y4=y6=0.9h+c; x8=x6=x7+11/32(x5-x7); x4=x10=x5+10/16(x3-x5); x2=x4-1/2c;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.1h-c; y11=y7;
+x11l=x3l; y10=y8;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e..z10e..z11e;
+z12 = z1;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+z13 = (.5w,.5h);
+currentpicture := currentpicture rotatedaround(z13,180) shifted(sl_parameter*w*1.3,0);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(hex"37",9u#-c#,cap_height#,0);
+italcorr cap_height#*sind 18-.84u#;
+x4=w-s-1/2cap_bar; y4=h-1/2cap_bar;
+penpos4(cap_bar,0);
+y3=y2=h-7/16cap_stem; y1=h-7/8cap_stem+1/2cap_bar;
+x3=x4l; x1e=s;
+T_serif(1,cap_bar,3/5border_height,0);
+x2=x1e;
+penpos3(7/8cap_stem,90);
+penpos2(7/8cap_stem,90);
+penstroke z2e--z3e; fill T_edge1; z44=(x4,h); fill z4r{up}..{left}z44--z3r--z4l--cycle;
+x10=s+c; x11=s; y10=y11=h;
+unfill z1d{up}..z10--z11--cycle;
+unfill z1d{up}..z10--z11--cycle;
+x5r=x3; y5=h-7/8cap_stem;
+x6=14/30w; y6=1/3cap_curve;
+penpos5(cap_bar,0); penpos6(cap_curve,0);
+penstroke z4e{dir -105}..z5e..{dir -95}z6e; fill z6l..z6r..cycle;
+%currentpicture := currentpicture shifted(-2.7u,0);
+penlabels(1,2,3,4,5,6,10,11,12);
+endchar;
+
+beginchar(hex"38",10u#-s#,cap_height#,0);
+italcorr cap_height#*sind 18-2u#;
+x6=x4=x2=x8=1/2w; y6=0; y2=h;
+y5=11/53h; y7=13/53h; x5=w-s-1/2(1.9hair);
+y4=y8=28/53h; y3=42/53h; y1=40/53h; x3=2s+1/2(1.9cap_bar);
+x1=w-2s-1/2(1.9cap_bar); x7=w-x5;
+penpos6(cap_bar,-90);
+penpos5(2.5hair,0);
+penpos4(cap_curve,90);
+penpos3(2.5hair,0);
+penpos2(cap_bar,-90);
+penpos1(2.5hair,-180);
+penpos7(2.5hair,-180);
+penpos8(cap_bar,-270);
+penstroke z6e{right}..tension.9..z5e..tension.9..z4e..tension.9..z3e..tension.9..{right}z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e;
+%currentpicture := currentpicture shifted(-.6u,0);
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"39",9u#,cap_height#,0);
+italcorr cap_height#*sind 18-1.9u#;
+penpos1(vair,-90);
+penpos2(o,-30);
+penpos3(cap_stem,0);
+penpos4(o,30);
+penpos5(vair,90);
+penpos6(o,150);
+penpos7(.9cap_stem,180);
+penpos8(o,210);
+penpos9(vair,270);
+penpos10(.7o,330);
+penpos11(hair,360);
+x1=.42w; x5=x9=.45w; y1=0; y5=h;
+y3=.5h; x3=w-1/2cap_stem-s; x7=9/20cap_stem+s;
+y2=0.1h-c; y4=y6=0.9h+c; x8=x6=x7+11/32(x5-x7); x4=x10=x5+10/16(x3-x5); x2=x4-1/2c;
+y9=20/53h; y5-y7=y7-y9; y8=y9+.1h-c; y11=y7;
+x11l=x3l; y10=y8;
+penstroke z1e..z2e..z3e..z4e..z5e..z6e..{down}z7e{down}..z8e..z9e..z10e..z11e;
+z12 = z1;
+dl_drop(12,cap_drop_round,.45w-4c,1.1cap_drop_round,slab);
+fill dl_drop_edge12;
+%currentpicture := currentpicture shifted(-u,0);
+penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+beginchar(oct"56",cap_stem#+2s#,cap_stem#,0);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+endchar;
+
+beginchar(oct"54",cap_stem#+2s#+c#,cap_stem#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"60",cap_stem#+2s#+c#,asc_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(oct"41", cap_stem#+2s#,cap_height#,0); "Exclamation mark";
+ italcorr cap_height#*sind 18-.68u#;
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ fill z1..z2..cycle;
+ x3=.5w-1/2cap_bar; x4=.5w+1/2cap_bar; y3=y4=3/2cap_stem;
+ x6=x1; x5=x2; y5=y6=h;
+ fill z6--z3..z4--z5{up}..z6&cycle;
+endchar;
+
+beginchar(hex"22",2cap_stem#+3s#+2c#,cap_height#,0);
+ z1=(s,h-1/2cap_stem); z2=(x1+cap_stem+c,h-1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-cap_stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ %currentpicture := currentpicture shifted(-3u,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"5C",2cap_stem#+3s#+2c#,cap_height#,comma_depth#);
+ z1=(s,1/2cap_stem); z2=(x1+cap_stem+c,1/2cap_stem);
+ z6=(s+.5(x2-x1)-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(s+1/2cap_stem-.5c,cap_stem); z8=(.5w,.5h-1/2d+1/2c);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle shifted(cap_stem+3c,0);
+ currentpicture := currentpicture rotatedaround(z8,180);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"7b",10u#-1.5c#,x_height#,0); "En dash";
+ italcorr x_height#*sind 18-1.8u#;
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ %currentpicture := currentpicture shifted(-1.1u,0);
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"3D",10u#+1.5c#,x_height#,0);
+ italcorr x_height#*sind 18-1.5u#;
+ z1=(s+1/2bar,bar_height-3c); z2=(w-s-1/2bar,bar_height-3c);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+3c); z4=(w-s-1/2bar,bar_height+3c);
+ penpos3(bar,90); penpos4(bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ %currentpicture := currentpicture shifted(-1.1u,0);
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"23",13u#,asc_height#,body_depth#);
+ italcorr asc_height#*sind 18-2.25u#;
+ z1=(s+1/2bar,bar_height-5c); z2=(w-s-1/2bar,bar_height-5c);
+ penpos1(1.5bar,90); penpos2(1.5bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ z3=(s+1/2bar,bar_height+5c); z4=(w-s-1/2bar,bar_height+5c);
+ penpos3(1.5bar,90); penpos4(1.5bar,90);
+ fill z3l{left}..{right}z3r--z4r{right}..{left}z4l--z3l&cycle;
+ z5=(.5w-5c,bar_height); z6=(.5w+5c,bar_height);
+ z7=z5+whatever*dir 76; y7=h; z8=whatever[z5,z7]; y8=-d;
+ penpos7(1.5bar,0); penpos8(1.5bar,0);
+ fill z7l{up}..{down}z7r--z8r{down}..{up}z8l--z7l&cycle;
+ z9=z6+whatever*dir 76; y9=h; z10=whatever[z6,z9]; y10=-d;
+ penpos9(1.5bar,0); penpos10(1.5bar,0);
+ fill z9l{up}..{down}z9r--z10r{down}..{up}z10l--z9l&cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"7c",14u#,x_height#,0); "Em dash";
+ italcorr x_height#*sind 18-1.7u#;
+ z1=(s+1/2bar,bar_height); z2=(w-s-1/2bar,bar_height);
+ penpos1(bar,90); penpos2(bar,90);
+ fill z1l{left}..{right}z1r--z2r{right}..{left}z2l--z1l&cycle;
+ %currentpicture := currentpicture shifted(-1.1u,0);
+ penlabels(1,2);
+endchar;
+
+beginchar(oct"55",2cap_jut#+cap_stem#+2s#,x_height#,0); "hyphen";
+ italcorr x_height#*sind 18-1.7u#;
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ %currentpicture := currentpicture shifted(-1.1u,0);
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"5F",1.1stem#+2s#,x_height#+2.1stem#,0);
+ italcorr (x_height#+2.1stem#)*sind 18-.9u#;
+ z1=(.5w,h); z2=(.5w,h-1.1stem);
+ fill z1..z2..cycle;
+ %currentpicture := currentpicture shifted(-2.9u,0);
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7E",7u#,body_height#,0);
+ italcorr body_height#*sind 18-.9u#;
+ pickup pencircle xscaled .6pt yscaled .2pt rotated 55;
+ z4=(w-s-c,h-s); x1=s+c; y1=y4-1/2cap_stem;
+ y2-y1=y4-y3=3(y4-y1); z2-z1=z4-z3=whatever * dir 55;
+ draw z1..controls z2 and z3..z4;
+ %currentpicture := currentpicture shifted(-3.3u,0);
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"3C",7u#-2c#,x_height#,0); "looks like <<";
+ italcorr x_height#*sind 18-u#;
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ %currentpicture := currentpicture shifted(-1.6u,0);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3E",7u#-2c#,x_height#,0);
+ italcorr x_height#*sind 18-u#;
+ x2l=x3l=s+1/2bar; y2l=.5h+1/2bar; y3l=.5h-1/2bar;
+ x1l=x4l=.5w; y1l=h-1/2bar; y4l=1/2bar;
+ penpos1(bar,0); penpos2(stem,0);
+ penpos3(stem,0); penpos4(bar,0);
+ numeric theta[];
+ theta1=angle(z2l-z1l); theta2=angle(z4l-z3l);
+ theta3=theta1+180; theta4=theta2+180;
+ fill z1r{up}..{dir theta1}z1l--z2l{dir theta1}..{dir theta2}z3l--z4l{dir theta2}..{up}z4r--z3r{dir theta4}..{dir theta3}z2r--z1r&cycle;
+ x5r=x8r=w-s; y5r=h-2bar; y8r=2bar; x6r=x7r=w-s-.6stem;
+ y6r=y2l; y7r=y3l;
+ penpos5(bar,0); penpos6(.8stem,0);
+ penpos7(.8stem,0); penpos8(bar,0);
+ theta5=angle(z6r-z5r); theta6=angle(z8r-z7r);
+ theta7=theta5+180; theta8=theta6+180;
+ z10=(.5w,.5h);
+ fill z5r{up}..{dir theta5}z5l--z6l{dir theta5}..{dir theta6}z7l--z8l{dir theta6}..{up}z8r--z7r{dir theta8}..{dir theta7}z6r--z5r&cycle;
+ currentpicture := currentpicture rotatedaround(z10,180) shifted(3.2u,0);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"3B",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ italcorr x_height#*sind 18-.81u#;
+ z1=(s,1/2cap_stem); z2=(w-s,1/2cap_stem);
+ z6=(.5w-.5c,0); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=-d+3/2c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,cap_stem);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ z8=(s,h-1/2cap_stem); z9=(w-s,h-1/2cap_stem);
+ fill z8..z9..cycle;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(hex"3A",cap_stem#+2s#+c#,x_height#+c#,comma_depth#);
+ italcorr x_height#*sind 18-.81u#;
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ fill z1..z2..cycle;
+ penlabels(1,2,3,4);
+ z3=(s,1/2cap_stem); z4=(w-s,1/2cap_stem);
+ fill z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2B",2cap_jut#+cap_stem#+2s#,x_height#,0);
+ italcorr x_height#*sind 18-1.7u#;
+ x1=s+.9cap_bar; x2=w-s-.9cap_bar;
+ y1l=y2l=17/33h;
+ penpos1(1.8bar,90); penpos2(1.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ x3=x4=.5w; y3=y2+1/2(x2-x1); y4=y2-1/2(x2-x1);
+ penpos3(1.8bar,0); penpos4(1.8bar,0);
+ penstroke z3e--z4e;
+ fill z3r..z3l..cycle; fill z4r..z4l..cycle;
+ %currentpicture := currentpicture shifted(-1.3u,0);
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"2F",2s#+bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-.8u#;
+ z1=(.5w,h-.5bar); z2=(.5w,-d+.5bar);
+ %pickup pencircle xscaled bar yscaled bar;
+ penpos1(bar,0); penpos2(bar,0);
+ penstroke z1e--z2e; fill z1r..z1l..cycle;
+ fill z2r..z2l..cycle;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"27",cap_stem#+2s#+c#,x_height#+2.1stem#,0);
+ italcorr (x_height#+2.1stem#)*sind 18-u#;
+ z1=(s,h-1/2cap_stem); z2=(w-s,h-1/2cap_stem);
+ z6=(.5w-.5c,h-cap_stem); x5=x6+1/2bar+.5c; y5=y6-1/2bar;
+ x3=x6; y3=h-stem-comma_depth+c; x4=x3-bar*sind 45; y4=y3+bar*sind 45;
+ z7=(.5w-.5c,h);
+ fill z1..z7..z2{down}..{dir -135}z3..z4{dir 45}...{up}z5{up}..{left}z6{left}..z1&cycle;
+ %currentpicture := currentpicture shifted(-2.7u,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"28",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-.87u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"29",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.35u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2stem; y2=-d+1/2(h+d);
+ penpos1(bar,150); penpos2(curve,180);
+ penpos3(bar,210);
+ penstroke z1e..z2e..z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180) shifted(4u,0);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"86",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-.87u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"87",5u#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-1.92u#;
+ x1=x3=w-s-bar*sind 45; y1=h-bar*sind 30; y3=-d+bar*sind 30;
+ x2=s+1/2bar; y2=-d+1/2(h+d);
+ penpos1(bar,0); penpos2(bar,0);
+ penpos3(bar,0);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ z4=(.5w,-d+1/2(h+d));
+ currentpicture := currentpicture rotatedaround(z4,180) shifted(4u,0);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"5B",2s#+3cap_bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-.8u#;
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x2,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z1r..z1l..cycle; fill z6r..z6l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"5D",2s#+3cap_bar#,body_height#,body_depth#);
+ italcorr body_height#*sind 18-.8u#;
+ z1=(w-s-1/2cap_bar,h-1/2bar); z2=(s+1/2cap_bar,h-1/2cap_bar);
+ z3=(x1,h); z4=(x3,-d); z5=(x2,-d+1/2bar);
+ z6=(x1,y5); penpos1(bar,90); penpos2(bar,90);
+ penpos3(bar,0); penpos4(bar,0);
+ penpos5(bar,90); penpos6(bar,90);
+ penstroke z1e--z2e; penstroke z3e--z4e; penstroke z5e--z6e;
+ fill z2r..z2l..cycle; fill z5r..z5l..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(hex"B9",16u#,cap_height#,0);
+ italcorr cap_height#*sind 18-1.92u#;
+ x1=x2=cap_jut+1/2cap_bar+s+cap_stem;
+ x3=w-x1-1/2cap_stem; y1c=h; y4=y5=0;
+ x4=x3r; x5=x3l; y2=12/53h; y3=h-y2;
+ x8=x2-stem; y8=0; z9=z8;
+ dl_drop(9,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill dl_drop_edge9; penpos8(bar,-90);
+ serif(1,cap_bar,-90,cap_jut,1.3cap_jut);
+ penpos2(bar,0); penpos3(bar,0);
+ penstroke z2e{down}..{left}z8e;
+ fill z2l--z2r--reverse serif_edge1--cycle;
+ numeric theta[]; y7=y1h; x7=x1h-cap_stem;
+ theta1=angle(z5-z7); x10=x3+stem; y10=h; z11=z10;
+ penpos10(bar,-90); penstroke z3e{up}..{right}z10e;
+ ur_drop(11,cap_drop_round,x8-s,1.1drop_round,cap_bar);
+ fill ur_drop_edge11;
+ z6=z3l+whatever*dir -90=z1h+whatever*dir theta1;
+ fill z6--z1h--z7--z5{down}..{up}z4--z3r--z3l--cycle;
+ unfill z1b--z1l--z1a--cycle;
+ y12=y13=2cap_bar; x12=x4+2cap_bar+.5s; x13=w-1.5s;
+ penpos12(.4stem,90); penpos13(.4stem,90);
+ penstroke z12e--z13e; y16=y11d-5cap_bar;
+ x13-x14=x14-x12; x16=x14; y14=y13+5cap_bar;
+ x17=w-s-1/4stem; x17-x16=x16-x15; y16-y15=y15-y14;
+ y17=y15; penpos17(.6stem,0); penpos16(bar,90);
+ penpos15(.6stem,180); penpos14(bar,270);
+ penstroke z17e{up}..{left}z16e{left}..{down}z15e{down}..{right}z14e{right}..{up}z17e;
+ fill z12l..tension1.2..z12r..tension1.2..cycle;
+ fill z13l..tension1.2..z13r..tension1.2..cycle;
+ penlabels(range 1 thru 17);
+endchar;
+
+beginchar(hex"24",9u#-s#,body_height#,body_height#-cap_height#);
+ italcorr body_height#*sind 18-1.68u#;
+ x6=x7=1/2w-c; y6=y7=0;
+ dl_drop(7,cap_drop_round,x6-s,1.3cap_drop_round,cap_bar);
+ y5=10/53cap_height; x5=w-s-1/2(1.9hair);
+ y4=1/2cap_height; x4=19/38w; y3=42/53cap_height; x3=s+1/2(1.9cap_bar);
+ x2=.5w+c; y2=cap_height; z1=z2;
+ penpos6(cap_bar,-90); penpos5(1.9hair,0);
+ penpos4(1.1cap_curve,90); penpos3(1.9hair,0);
+ penpos2(cap_bar,-90);
+ penstroke z6e{right}..z5e..tension1..z4e..tension.8..z3e..{right}z2e;
+ fill dl_drop_edge7;
+ ur_drop(1,cap_drop_round,w-s-x2,1.3cap_drop_round,cap_bar);
+ fill ur_drop_edge1;
+ z8=(.5w,h); z9=(.5w,-d);
+ penpos8(cap_bar,0); penpos9(cap_bar,0);
+ penstroke z8e--z9e;
+ fill z9r..z9l..cycle; fill z8r..z8l..cycle;
+ %currentpicture := currentpicture shifted(-.7u,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(hex"25",12u#,asc_height#,0);
+italcorr asc_height#*sind 18-2.5u#;
+penpos1(vair,90); penpos2(.6curve,0);
+penpos3(vair,-90); penpos4(.6curve,-180);
+y1=.55h; y3=h; y3-y4=y4-y1; y2=y4; x2=1/4curve+s; x4=5/2curve+s;
+x4-x1=x1-x2; x3=x1;
+penstroke z1e{left}..tension.9..{up}z2e{up}..tension1.2..{right}z3e..tension.9..{down}z4e{down}..tension1.2..{left}z1e..cycle;
+penpos5(vair,90); penpos6(.6curve,0);
+penpos7(vair,-90); penpos8(.6curve,-180);
+y5=0; y7=.45h; y7-y8=y8-y5; y6=y8; x8=w-1/4curve-s; x6=w-5/2curve-s;
+x8-x5=x5-x6; x7=x5;
+penstroke z5e{left}..tension.9..{up}z6e{up}..tension1.2..{right}z7e..tension.9..{down}z8e{down}..tension1.2..{left}z5e..cycle;
+x9l=x7; y9=h; x10r=x1; y10=0;
+penpos9(1.2bar,0); penpos10(1.2bar,0);
+penstroke z9e--z10e;
+%currentpicture := currentpicture shifted(-1.6u,0);
+penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(hex"26",14u#,cap_height#,0);
+italcorr cap_height#*sind 18-2.6u#;
+x4=x8=x3+.5curve; y6=0; y2=h; x2=x3+1.3cap_curve;
+y7=13/53h; y5=9/53h; x5=x7+3.5cap_curve; x6=x7+1.8cap_curve;
+y4=y8=30/53h; y1=44/53h; y3=42/53h; x3=4s+curve;
+x1=x3+2.1cap_curve; x7=s+1/2cap_curve;
+x10=w-s; y10=9/53h; x10-x9=x9-x5; y9=1/5cap_curve;
+th:=angle(z4-z5)+5; th1:=th-11; x11h=w-s-c; y11h=y1-4s;
+A_serif(11,cap_bar,-110,cap_jut,cap_jut); z12l=z11a;
+penpos6(cap_bar,-90); penpos5(cap_stem,45);
+penpos4(cap_stem,45); penpos3(2.5hair,0);
+penpos2(cap_bar,-90); penpos1(2hair,-180);
+penpos7(cap_curve,-180); penpos8(cap_bar,-250);
+penpos9(.5cap_curve,70); penpos10(cap_bar,150);
+penpos12(cap_bar,0);
+penstroke z10e..z9e..z5e{dir th}..{dir th1}z4e..tension.9..{up}z3e{up}..tension1..z2e{right}..tension.9..z1e{down}..tension.9..z8e..tension.9..{down}z7e..tension.9..{right}z6e{dir 8}..{dir 70}z12e;
+fill z12l--z12r..reverse A_serif_edge11--cycle;
+fill z10l..tension1.3..z10r..tension1.3..cycle;
+%currentpicture := currentpicture shifted(-.6u,0);
+penlabels(range 1 thru 12);
+endchar;
+currenttransform := identity;
+
+beginchar(hex"40",14u#,x_height#+2curve#,2curve#);
+a_width:=9u+c-2s;
+x1=2s+a_width-s-3/4stem+1.5curve; y1=x_height; y2=7/33x_height; z2=z1+whatever*dir -104;
+x3=x2+1/2stem+c; y3=2epsilon; x4=3s+a_width+1.5curve; y4=15/33x_height;
+penpos1(stem,180); penpos2(stem,180);
+penpos3(1.2vair,270); penpos4(bar,360);
+x5=x1-3/2stem; y5=x_height; z7=z5+whatever*dir -104; y7=-2epsilon;
+x6=s+1/2curve+c+1.5curve; y6=.54x_height; y8=.46x_height; z8l=whatever[z1r,z2r];
+x13=x5; y13=h-1/2bar; x14=s+1/2bar; y14=y6; y15=-d+1/2bar; x15=x7;
+x16=x4; y16=-d+3bar; penpos7(vair,270); penpos16(bar,270);
+penpos13(bar,90); penpos14(bar,180); penpos15(bar,270);
+penpos8(2bar,0); penpos5(vair,90); penpos6(curve,180);
+penstroke z1e--z2e{down}..{right}z3e{right}..tension1.2..{dir 80}z4e..z13e{left}..z14e..{right}z15e..z16e;
+penstroke z5e{left}..tension1.1..{dir 256}z6e{dir 256}..tension.9..{right}z7e..tension1.3..{dir 76}z8e{dir 76}..tension1..{dir 166}z5e..cycle;
+z9=whatever[z1r,z2r]; y9=y12=x_height-c; z10=(x1r+c,x_height); z11=(x1l-c,x_height);
+z12=whatever[z1l,z2l];
+unfill z9{up}..z10--z1r--z9..cycle;
+unfill z11--z1l--z12{up}..z11..cycle;
+fill z16r..z16l..cycle;
+penlabels(range 1 thru 66);
+endchar;
+currenttransform := identity slanted sl_parameter;
+
+beginchar(hex"12",2cap_stem#+s#,body_height#,0);
+italcorr body_height#*sind 18-1.15u#;
+y1=h-.45cap_stem*cosd 45; x1=s+.45cap_stem*cosd 45;
+x2=w-s+cap_bar*cosd 45; z2=z1+whatever*dir -45;
+penpos1(.9cap_stem,45); penpos2(cap_bar,45);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"13",2cap_stem#+s#,body_height#,0);
+italcorr body_height#*sind 18-.75u#;
+y1=h-.45cap_stem*cosd 45; x1=w-s-.45cap_stem*cosd 45;
+x2=s-cap_bar*cosd 45; z2=z1+whatever*dir -135;
+penpos1(.9cap_stem,135); penpos2(cap_bar,135);
+penstroke z1e--z2e;
+fill z1r..tension1.2..z1l..tension1.2..cycle;
+fill z2r..tension1.2..z2l..tension1.2..cycle;
+penlabels(range 1 thru 5);
+endchar;
+
+beginchar(hex"3F",7u#,cap_height#,0);
+ italcorr cap_height#*sind 18-2.15u#;
+ x1=s+4/5cap_stem; y1=1/2cap_stem;
+ penpos1(cap_stem,0);
+ fill z1r..z1l..cycle;
+ y2=cap_stem+cap_bar; x2=x1;
+ z3l=z2l+whatever*dir 96; y3l=25/53h;
+ penpos2(cap_bar,0); penpos3(cap_bar,0);
+ penstroke z2e--z3e;
+ z4l=z3l; penpos4(cap_bar,0);
+ y5=y4-2bar; x5=x4+3cap_bar; penpos7(cap_bar,-90);
+ x6=w-s-1/2cap_curve; y6=37/51h; x7=12/31w; y7=h;
+ penpos5(cap_bar,90); penpos6(cap_curve,180); z8=z7;
+ penstroke z4e{dir -69}..z5e{dir 10}..tension1..{up}z6e{up}..tension.9..{left}z7e;
+ ul_drop(8,.8cap_drop_round,x7-s,cap_curve,cap_bar);
+ fill ul_drop_edge8;.
+ fill z3r..tension1.2..z3l..tension1.2..cycle;
+ currentpicture := currentpicture shifted(-.7u,0);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(hex"10",2jut#+stem#+2s#,x_height#,0);
+italcorr x_height#*sind 18-1.75u#;
+x1g=x2g=s; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,0);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(hex"11",5u#,x_height#,desc_depth#);
+italcorr x_height#*sind 18-.75u#;
+x1h=w-s; y1c=x_height; y2=0; x2=x1;
+serif(1,stem,-90,1.5jut,0);
+penpos2(stem,0);
+fill z2l--z2r--reverse serif_edge1--cycle;
+y5=-1/4desc_depth; x5r=x2r;
+y6=-d+1/2bar; x6=x2l-1/2stem;
+penpos5(.97stem,0);
+penpos6(bar,-90);
+penstroke z2e--z5e{down}..{left}z6e;
+x7e=s; y7=-d+1/2bar;
+dl_drop(7,stem,x6-x7e,drop_round,bar);
+fill dl_drop_edge7; fill z7e..z7c..cycle;
+penlabels(range 1 thru 7);
+endchar;
+currenttransform := identity;
+
+beginchar(hex"2A",3cap_stem#+3s#,body_height#,0);
+ x1=x2=x3=x4=.5w; y1=h-1/2stem; y2=y1-cap_stem; y3=y2-bar; y4=y3-bar;
+ penpos1(stem,0); penpos2(cap_bar,0); penpos3(2cap_bar,0);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle;
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,60);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,120);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,180);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,240);
+ fill z1l{down}..z2l{down}..z3l--z4--z3r..{up}z2r..{up}z1r{up}..{down}z1l..cycle rotatedaround(z4,300);
+ penlabels(range 1 thru 12);
+endchar;
+currenttransform := identity slanted sl_parameter;
+
+beginchar(hex"0B",round (4jut#+2stem#+2c#+3s#),asc_height#,0);
+w:=w+1; italcorr asc_height#*sind 18-1.16u#;
+numeric dist; dist := 2jut+2stem-3c;
+x1g=x2g=s+dist; y1c=x_height; y2c=0;
+serif(1,stem,-90,jut,jut);
+serif(2,stem,90,jut,jut);
+fill serif_edge2--reverse serif_edge1--cycle;
+x3=x1; y3=x_height; x4r=x1l-.1stem; y4=x_height+1/2(asc_height-x_height);
+x5l=x4l-.05stem; y5=y4+1.5bar; x6=round (x1r+.2stem); y6=h-1/2bar;
+penpos3(stem,180);
+penpos4(.75curve,180);
+penpos5(.6curve,180);
+penpos6(bar,90);
+penstroke z3e{dir 95}...{up}z4e..z5e..{right}z6e;
+y6=y7; x7e=w-s;
+ur_drop(7,stem,x7e-x6,drop_round,bar);
+fill ur_drop_edge7; fill z7e..z7c..cycle;
+x11g=x12g=s; y11c=x_height; y12c=0;
+serif(11,stem,-90,jut,jut);
+serif(12,stem,90,jut,jut);
+fill serif_edge12--reverse serif_edge11--cycle;
+x13=x11; y13=x_height; x14l=x13l; y14=x_height+1/2(asc_height-x_height);
+x15l=x14l; y15=y14+1.5bar; x16=x11r+.8stem; y16=h-1/2bar;
+x17r=x5l; y17=y5;
+penpos13(stem,180);
+penpos14(.75curve,180);
+penpos15(.6curve,180);
+penpos16(bar,90);
+penpos17(bar,0);
+penstroke z13e{dir 95}...{up}z14e..z15e..{right}z16e{right}..{down}z17e;
+fill z11d--z1c--z1b--z11e--cycle;
+penlabels(range 1 thru 17);
+endchar;
+
+beginchar(hex"5E",6u#,body_height#,0);
+ italcorr body_height#*sind 18-1.4u#;
+ x1=s+.45cap_bar*cosd 45; x2=w/2; y2=h-bar;
+ z1=z2+whatever*dir -135; x3=w-x1; z3=z2+whatever*dir -45;
+ penpos1(bar,135); penpos2(2bar,90); penpos3(bar,45);
+ penstroke z1e--z2e--z3e;
+ fill z1r..z1l..cycle; fill z3r..z3l..cycle;
+ %currentpicture := currentpicture shifted(-3.1u,0);
+ penlabels(1,2,3);
+endchar;
+
+beginchar(hex"16",6u#,body_height#,0);
+ italcorr body_height#*sind 18-1.1u#;
+ x1=s; x2=w-x1; y1=y2=h-4bar;
+ penpos1(.8bar,90); penpos2(.8bar,90);
+ penstroke z1e--z2e;
+ fill z1r..z1l..cycle; fill z2r..z2l..cycle;
+ %currentpicture := currentpicture shifted(-3.2u,0);
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"7F",2stem#+4s#,x_height#+2.1stem#,0);
+ italcorr body_height#*sind 18-1.6u#;
+ z1=(s+.5stem,h); z2=(s+.5stem,h-stem);
+ fill z1..z2..cycle;
+ z3=(w-s-.5stem,h); z4=(w-s-.5stem,h-stem);
+ fill z3..z4..cycle;
+ %currentpicture := currentpicture shifted(-3u,0);
+ penlabels(1,2,3,4);
+endchar;
+
+ligtable CYR_A: "A":
+ CYR_O kern -k#,
+ "O" kern -k#,
+ CYR_ES kern -k#,
+ "C" kern -k#,
+ CYR_TE kern -k#,
+ CYR_U kern -kk#,
+ CYR_EF kern -k#,
+ CYR_CHE kern -kkk#,
+ CYR_HARD_SIGN kern -k#,
+ "W" kern -kkk#,
+ "V" kern -kkk#,
+ "Y" kern -kkk#,
+ "T" kern -k#,
+ "w" kern -kk#,
+ "v" kern -kk#,
+ %CYR_o kern -k#,
+ %CYR_es kern -k#,
+ CYR_che kern -kk#;
+ %CYR_ie kern -k#,
+ %CYR_ye kern -k#;
+
+ligtable CYR_GHE: CYR_TE: "T":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_DE kern -k#,
+ CYR_EL kern -kk#,
+ CYR_o kern -k#,
+ "o" kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#;
+
+ligtable CYR_O: CYR_E: CYR_YU: "D": "O": "Q":
+ CYR_U kern -k#,
+ "X" kern -k#,
+ "V" kern -k#,
+ "W" kern -k#,
+ "Y" kern -kk#,
+ CYR_HA kern -k#;
+
+ligtable CYR_ER: "P":
+ CYR_A kern -kk#,
+ "A" kern -kk#,
+ CYR_el kern -k#;
+
+ligtable CYR_U:
+ CYR_A kern -kkk#,
+ "A" kern -kkk#,
+ CYR_O kern -k#,
+ "O" kern -k#,
+ CYR_ES kern -k#,
+ "C" kern -k#,
+ CYR_EL kern -k#,
+ CYR_el kern -kk#,
+ CYR_EF kern -k#;
+
+ligtable CYR_HA: "X":
+ "O" kern -k#,
+ CYR_O kern -k#,
+ "Q" kern -k#,
+ "C" kern -k#,
+ CYR_ES kern -k#,
+ "G" kern -k#;
+
+ligtable CYR_ghe: CYR_te:
+ CYR_de kern -k#,
+ CYR_el kern -k#;
+
+ligtable CYR_o: CYR_er: CYR_e: CYR_yu: CYR_ye:
+ "V" kern -kk#,
+ "Y" kern -kk#,
+ "W" kern -kk#,
+ "x" kern -k#,
+ CYR_ha kern -k#;
+
+ligtable CYR_u: "y":
+ CYR_de kern -k#,
+ CYR_el kern -k#,
+ CYR_ie kern -k#,
+ "e" kern -k#,
+ CYR_es kern -k#,
+ "c" kern -k#,
+ CYR_ye kern -k#,
+ CYR_ef kern -k#;
+
+ligtable CYR_ha: "x":
+ CYR_ie kern -k#,
+ "d" kern -k#,
+ "e" kern -k#,
+ "o" kern -k#,
+ "q" kern -k#,
+ CYR_o kern -k#;
+
+ligtable "L":
+ "T" kern -kk#,
+ CYR_TE kern -kk#,
+ "Y" kern -kk#;
+
+ligtable "V": "W":
+ "A" kern -kkk#,
+ CYR_A kern -kkk#,
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ "d" kern -k#;
+
+ligtable "Y":
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "d" kern -k#,
+ "A" kern -kk#,
+ CYR_A kern -kk#;
+
+ligtable "a": CYR_a:
+ "V" kern -kk#,
+ "W" kern -kk#,
+ "T" kern -k#,
+ CYR_TE kern -k#,
+ "y" kern -k#,
+ CYR_u kern -k#,
+ "v" kern -kk#,
+ "u" kern -k#,
+ CYR_che kern -kk#,
+ "Y" kern -kk#;
+
+ligtable "e": CYR_ie:
+ CYR_ha kern -k#,
+ "v" kern -k#,
+ "w" kern -k#,
+ "V" kern -kk#,
+ "Y" kern -kk#,
+ "W" kern -kk#;
+
+ligtable "f":
+ "f" =: hex"0B";
+
+ligtable "k": "l":
+ CYR_o kern -k#,
+ "o" kern -k#;
+
+ligtable "m": "n":
+ "y" kern -k#,
+ CYR_u kern -k#,
+ CYR_o kern -k#,
+ "u" kern -k#,
+ "o" kern -k#;
+
+ligtable "o": "b": "p":
+ "e" kern k#,
+ CYR_ie kern k#,
+ "o" kern k#,
+ CYR_o kern k#,
+ "v" kern -k#,
+ "w" kern -k#,
+ "V" kern -kk#,
+ "Y" kern -kk#,
+ "W" kern -kk#,
+ "x" kern -k#,
+ CYR_ha kern -k#, 1:: "!" kern kk#;
+
+ligtable "v": "w":
+ "A" kern -kk#,
+ CYR_A kern -kk#,
+ "o" kern -k#,
+ CYR_o kern -k#,
+ "c" kern -k#,
+ CYR_es kern -k#,
+ "e" kern -k#,
+ CYR_ie kern -k#,
+ "a" kern -k#,
+ CYR_a kern -k#,
+ "d" kern -k#;
+
+ligtable hex"37":
+ CYR_A kern -kk#,
+ "A" kern -kk#;
+ligtable oct"55":
+ oct"55" =: hex"7b";
+ligtable hex"7b":
+ oct"55" =: hex"7c";
+end