summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-07-14 20:48:21 +0000
committerKarl Berry <karl@freefriends.org>2019-07-14 20:48:21 +0000
commit43f963c6e7c57e4278ebb7644cef82b408d66f95 (patch)
tree72aeaeb7f63e0998db6f7e49c6da7c3926212b21 /Master
parentbadaed21f7141a96f6f45926f52fbee0d695260c (diff)
pseudo (14jul19)
git-svn-id: svn://tug.org/texlive/trunk@51641 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/latex/pseudo/Makefile21
-rw-r--r--Master/texmf-dist/doc/latex/pseudo/README.md94
-rw-r--r--Master/texmf-dist/doc/latex/pseudo/VERSION2
-rw-r--r--Master/texmf-dist/doc/latex/pseudo/doc/fig/hilitefig.tex2
-rw-r--r--Master/texmf-dist/doc/latex/pseudo/doc/fig/kwfig.tex28
-rw-r--r--Master/texmf-dist/doc/latex/pseudo/doc/fig/pausefig.tex2
-rw-r--r--Master/texmf-dist/doc/latex/pseudo/doc/fig/readmecode.tex15
-rw-r--r--Master/texmf-dist/doc/latex/pseudo/doc/fig/readmefig.svg411
-rw-r--r--Master/texmf-dist/doc/latex/pseudo/doc/fig/readmefig.tex16
-rw-r--r--Master/texmf-dist/doc/latex/pseudo/doc/pseudo.pdfbin528156 -> 555540 bytes
-rw-r--r--Master/texmf-dist/doc/latex/pseudo/doc/pseudo.tex113
-rw-r--r--Master/texmf-dist/tex/latex/pseudo/pseudo.sty22
12 files changed, 717 insertions, 9 deletions
diff --git a/Master/texmf-dist/doc/latex/pseudo/Makefile b/Master/texmf-dist/doc/latex/pseudo/Makefile
index 8b649a353f4..388a7bea2f9 100644
--- a/Master/texmf-dist/doc/latex/pseudo/Makefile
+++ b/Master/texmf-dist/doc/latex/pseudo/Makefile
@@ -1,5 +1,9 @@
+TARGETS=doc/pseudo.pdf doc/fig/readmefig.svg
+
LATEX=latexmk -norc -pdf -auxdir=build -outdir=build
-FIGS=build/hilitefig.pdf build/pausefig.pdf
+FIGS=build/hilitefig.pdf build/pausefig.pdf build/kwfig.pdf
+
+all: $(TARGETS)
doc/pseudo.pdf: build/pseudo.pdf
cp $< $@
@@ -16,6 +20,9 @@ build/hilitefig.pdf: doc/fig/hilitefig.tex pseudo.sty
build/pausefig.pdf: doc/fig/pausefig.tex pseudo.sty
$(LATEX) $<
+build/kwfig.pdf: doc/fig/kwfig.tex pseudo.sty
+ $(LATEX) $<
+
pseudo.sty: VERSION LICENSE doc/pseudo.tex
cat LICENSE | sed -e "s/^/% /" | sed -e "s/^% \$$/%/" > pseudo.sty
echo "%" >> pseudo.sty
@@ -31,3 +38,15 @@ pseudo.sty: VERSION LICENSE doc/pseudo.tex
-e "/^\$$/d" \
-e "p" \
-e "}" >> pseudo.sty
+
+build/readmecode.tex: doc/fig/readmecode.tex
+ cp $< $@
+
+build/readmefig.pdf: doc/fig/readmefig.tex build/readmecode.tex
+ $(LATEX) $<
+
+doc/fig/readmefig.svg: build/readmefig.pdf
+ pdf2svg $< $@
+
+doc/fig/readmecode.tex: README.md
+ cat $< | sed -n -e "/\\begin{pseudo}\\*$$/,/\\end{pseudo}/p" > $@
diff --git a/Master/texmf-dist/doc/latex/pseudo/README.md b/Master/texmf-dist/doc/latex/pseudo/README.md
index 5c175168fb7..90df5792f4e 100644
--- a/Master/texmf-dist/doc/latex/pseudo/README.md
+++ b/Master/texmf-dist/doc/latex/pseudo/README.md
@@ -1,3 +1,5 @@
+# pseudo.sty
+
The **pseudo** package permits writing pseudocode without much fuss and with
quite a bit of configurability. Its main environment combines aspects of
`enumeration`, `tabbing` and `tabular` for nonintrusive line numbering,
@@ -6,3 +8,95 @@ common syntactic elements such as keywords, identifiers and comments.
The package is written by [Magnus Lie Hetland](mailto:mlh@ntnu.no) and
released under the [MIT license](LICENSE).
+
+## Using pseudo
+
+You can find more detailed instructions in [the
+documentation](doc/pseudo.pdf), but it's really quite simple to get started.
+The package is [available via CTAN](https://ctan.org/pkg/pseudo), and so is
+part of several TeX distributions. If the newest version isn't in yours, try
+to run an update. In TeX Live, for example, you could run use the [TeX Live
+Utility](http://amaxwell.github.io/tlutility/) (part of distributions such as
+[MacTeX](https://tug.org/mactex/)). Alternatively, you can just download the
+[pseudo.sty](pseudo.sty) file and drop it where your `latex` can find it
+(possibly just in the same directory as your document).
+
+Assuming you want numbered lines (the default) and have most text set as
+keywords (set by the `kw` switch), you simply import **pseudo** using
+
+```tex
+\usepackage[kw]{pseudo}
+```
+
+and then set your pseudocode in a `pseudo` environment. Lines are terminated
+by the normal `\\` command, which may be extended with one or more pluses or
+minuses to indicate a change in indentation level. You suppress the automatic
+numbering of the following line using a star (i.e., either `\\*`, or
+`\begin{pseudo}*`), and can typeset a procedure header using `\hd{Name}(...)`.
+For [example](https://mipmip.org/tidbits/pasa.pdf):
+
+```tex
+\begin{pseudo}*
+
+ \hd{Backward}(V, E, v, i) \\
+
+ $v.\id{label} = i$ \\
+
+ for $(u,v)\in E$ \\+
+ if $0 < v.\id{label} < i$ \\+
+ \pr{Backward}(V, E, u, i) \\--
+
+ for $(u,v)\in E$ \\+
+ if $u.\id{label} \== 0$ \\+
+ \pr{Backward}(V, E, u, i+1)
+
+\end{pseudo}
+```
+
+This produces:
+
+<img src="doc/fig/readmefig.svg"/>
+
+There is also a starred version of the environment (`pseudo*`), which
+is unnumbered.
+
+The commands `\pr` and `\id` indicate procedure calls and identifiers.
+If we hadn't used the `kw` option, the main text would not be set as keywords,
+but as plain text. We could then use `\kw` to mark up keywords. Some of these
+may be used a lot, so I might want to declare a shortcut. For example, if
+I use
+
+```tex
+\DeclarePseudoKeyword \While {while}
+```
+
+I'd be able to use `\While` rather than `\kw{while}` later. Several such
+formatting and declaration commands exist:
+
+| Type of text | Command | Declaration |
+| ------------ | ------------------- | ----------------------------------------------- |
+| Keywords | `\kw{while}` | `\DeclarePseudoKeyword \While {while}` |
+| Constants | `\cn{false}` | `\DeclarePseudoConstant \False {false}` |
+| Identifiers | `\id{rank}` | `\DeclarePseudoIdentifier \Rank {rank}` |
+| Strings | `\st{Hello!}` | `\DeclarePseudoString \Hello {Hello!}` |
+| Procedures | `\pr{Euclid}(a, b)` | `\DeclarePseudoProcedure \Euclid {Euclid}` |
+| Functions | `\fn{length}(A)` | `\DeclarePseudoFunction \Length {length}` |
+| Comments | `\ct{Important!}` | `\DeclarePseudoComment \Important {Important!}` |
+
+For normal text (e.g., when using the `kw` switch), there is also `\tn` (along
+with `\DeclarePseudoNormal`).
+
+Since the short names of these commands are prone to collisions with other
+packages, **pseudo** won't insist on using them. If you import **pseudo**
+*after* some other package that already uses, say, `\id`, then **pseudo**
+won't define it. All of these are still available with the `pseudo` prefix,
+however (e.g., `\pseudoid`), and the declaration commands still work.
+
+Beyond the styling of text, there are also the `\==` and `\..` commands
+(also written `\eqs` and `\dts`) for typesetting double equals sign and double
+dots.
+
+This covers most of the core functionality, but there are also more obscure
+features (such as dimming or highlighting lines) and a host of configuration
+keys for getting the pseudocode looking more like you'd want it to. For
+details, consult [the documentation](doc/pseudo.pdf).
diff --git a/Master/texmf-dist/doc/latex/pseudo/VERSION b/Master/texmf-dist/doc/latex/pseudo/VERSION
index 524cb55242b..45a1b3f4452 100644
--- a/Master/texmf-dist/doc/latex/pseudo/VERSION
+++ b/Master/texmf-dist/doc/latex/pseudo/VERSION
@@ -1 +1 @@
-1.1.1
+1.1.2
diff --git a/Master/texmf-dist/doc/latex/pseudo/doc/fig/hilitefig.tex b/Master/texmf-dist/doc/latex/pseudo/doc/fig/hilitefig.tex
index 8cffae23a43..b0e9cf7780d 100644
--- a/Master/texmf-dist/doc/latex/pseudo/doc/fig/hilitefig.tex
+++ b/Master/texmf-dist/doc/latex/pseudo/doc/fig/hilitefig.tex
@@ -1,6 +1,6 @@
\documentclass[beamer,preview,multi]{standalone}
\usepackage{pseudo}
-\pseudoset{hpad, compact}
+\pseudoset{hpad, compact, kwfont=\bfseries}
\standaloneenv{myenv}
diff --git a/Master/texmf-dist/doc/latex/pseudo/doc/fig/kwfig.tex b/Master/texmf-dist/doc/latex/pseudo/doc/fig/kwfig.tex
new file mode 100644
index 00000000000..8d25a73a492
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/pseudo/doc/fig/kwfig.tex
@@ -0,0 +1,28 @@
+\documentclass[beamer,preview,multi, border={-.14pt .14pt 0pt .03pt}]{standalone}
+
+% To silence the warning from the first execution of \kwfont, in this case:
+\usepackage{silence}
+\WarningFilter{latexfont}{Font shape}
+\WarningFilter{latexfont}{Some font shapes}
+
+\usepackage{varwidth}
+
+\usepackage{pseudo}
+\pseudoset{compact}
+
+\standaloneenv{myenv}
+
+\begin{document}
+
+% Contents duplicated from pseudo.doc:
+\begin{standaloneframe}
+\begin{myenv}
+\begin{varwidth}{\linewidth}
+\textbf{while}\\ % Extended
+\kw{while}\\ % Keyword
+{\fontseries{b}\selectfont while} % Non-extended
+\end{varwidth}
+\end{myenv}
+\end{standaloneframe}
+
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/pseudo/doc/fig/pausefig.tex b/Master/texmf-dist/doc/latex/pseudo/doc/fig/pausefig.tex
index bbc7ee91fd2..0e2645724d7 100644
--- a/Master/texmf-dist/doc/latex/pseudo/doc/fig/pausefig.tex
+++ b/Master/texmf-dist/doc/latex/pseudo/doc/fig/pausefig.tex
@@ -1,6 +1,6 @@
\documentclass[beamer,preview,multi]{standalone}
\usepackage{pseudo}
-\pseudoset{compact}
+\pseudoset{compact, kwfont=\bfseries}
\setbeamercovered{transparent}
\standaloneenv{myenv}
diff --git a/Master/texmf-dist/doc/latex/pseudo/doc/fig/readmecode.tex b/Master/texmf-dist/doc/latex/pseudo/doc/fig/readmecode.tex
new file mode 100644
index 00000000000..9ad11a0aa91
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/pseudo/doc/fig/readmecode.tex
@@ -0,0 +1,15 @@
+\begin{pseudo}*
+
+ \hd{Backward}(V, E, v, i) \\
+
+ $v.\id{label} = i$ \\
+
+ for $(u,v)\in E$ \\+
+ if $0 < v.\id{label} < i$ \\+
+ \pr{Backward}(V, E, u, i) \\--
+
+ for $(u,v)\in E$ \\+
+ if $u.\id{label} \== 0$ \\+
+ \pr{Backward}(V, E, u, i+1)
+
+\end{pseudo}
diff --git a/Master/texmf-dist/doc/latex/pseudo/doc/fig/readmefig.svg b/Master/texmf-dist/doc/latex/pseudo/doc/fig/readmefig.svg
new file mode 100644
index 00000000000..0fc3a645a30
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/pseudo/doc/fig/readmefig.svg
@@ -0,0 +1,411 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="249.005pt" height="144.458pt" viewBox="0 0 249.005 144.458" version="1.1">
+<defs>
+<g>
+<symbol overflow="visible" id="glyph0-0">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph0-1">
+<path style="stroke:none;" d="M 7.421875 -5.34375 C 8.828125 -5.59375 10 -6.53125 10 -7.671875 C 10 -9 8.515625 -10.203125 6.515625 -10.203125 L 0.859375 -10.203125 L 0.859375 -9.734375 L 1.21875 -9.734375 C 2.375 -9.734375 2.40625 -9.578125 2.40625 -9.03125 L 2.40625 -1.171875 C 2.40625 -0.625 2.375 -0.46875 1.21875 -0.46875 L 0.859375 -0.46875 L 0.859375 0 L 6.9375 0 C 9 0 10.421875 -1.328125 10.421875 -2.734375 C 10.421875 -3.984375 9.21875 -5.140625 7.421875 -5.328125 Z M 3.640625 -9.140625 C 3.640625 -9.640625 3.671875 -9.734375 4.375 -9.734375 L 6.40625 -9.734375 C 7.9375 -9.734375 8.546875 -8.515625 8.546875 -7.671875 C 8.546875 -6.625 7.65625 -5.46875 5.96875 -5.46875 L 3.640625 -5.46875 Z M 6.640625 -5.140625 C 8.1875 -5.140625 8.9375 -3.8125 8.9375 -2.75 C 8.9375 -1.640625 8.03125 -0.46875 6.4375 -0.46875 L 4.375 -0.46875 C 3.671875 -0.46875 3.640625 -0.5625 3.640625 -1.0625 L 3.640625 -5.140625 Z M 6.640625 -5.140625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-2">
+<path style="stroke:none;" d="M 4.921875 -7.609375 C 4.828125 -7.84375 4.75 -7.9375 4.578125 -7.9375 C 4.375 -7.9375 4.34375 -7.84375 4.265625 -7.640625 L 1.859375 -1.484375 C 1.703125 -1.078125 1.453125 -0.40625 0.515625 -0.375 L 0.515625 0 C 0.84375 -0.03125 1.265625 -0.046875 1.59375 -0.046875 C 1.859375 -0.046875 2.546875 -0.015625 2.84375 0 L 2.84375 -0.375 C 2.203125 -0.40625 2.171875 -0.90625 2.171875 -1.046875 C 2.171875 -1.171875 2.171875 -1.1875 2.671875 -2.53125 L 5.765625 -2.53125 L 6.09375 -1.6875 C 6.21875 -1.390625 6.40625 -0.875 6.40625 -0.796875 C 6.40625 -0.375 5.875 -0.375 5.609375 -0.375 L 5.609375 0 C 6.015625 -0.015625 6.90625 -0.046875 7.203125 -0.046875 C 7.703125 -0.046875 8.296875 -0.015625 8.65625 0 L 8.65625 -0.375 C 7.8125 -0.375 7.671875 -0.453125 7.484375 -0.96875 Z M 5.609375 -2.890625 L 2.828125 -2.890625 L 4.234375 -6.5 Z M 5.609375 -2.890625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-3">
+<path style="stroke:none;" d="M 7.109375 -6.953125 C 6.796875 -7.28125 6.0625 -7.890625 4.9375 -7.890625 C 2.6875 -7.890625 0.765625 -6.109375 0.765625 -3.84375 C 0.765625 -1.5625 2.6875 0.203125 4.9375 0.203125 C 6.890625 0.203125 8.0625 -1.34375 8.0625 -2.640625 C 8.0625 -2.78125 8.0625 -2.890625 7.875 -2.890625 C 7.703125 -2.890625 7.703125 -2.796875 7.6875 -2.640625 C 7.59375 -1.0625 6.296875 -0.171875 5.046875 -0.171875 C 4.296875 -0.171875 2.046875 -0.5625 2.046875 -3.84375 C 2.046875 -7.15625 4.359375 -7.515625 5.03125 -7.515625 C 6.125 -7.515625 7.390625 -6.734375 7.671875 -4.84375 C 7.703125 -4.734375 7.71875 -4.640625 7.875 -4.640625 C 8.0625 -4.640625 8.0625 -4.71875 8.0625 -5 L 8.0625 -7.53125 C 8.0625 -7.765625 8.0625 -7.890625 7.921875 -7.890625 C 7.828125 -7.890625 7.8125 -7.859375 7.6875 -7.703125 Z M 7.109375 -6.953125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-4">
+<path style="stroke:none;" d="M 2.796875 -3.28125 L 2.796875 -6.609375 C 2.796875 -7.21875 2.875 -7.296875 3.875 -7.296875 L 3.875 -7.671875 C 3.4375 -7.65625 2.578125 -7.640625 2.25 -7.640625 C 1.921875 -7.640625 1.09375 -7.65625 0.640625 -7.671875 L 0.640625 -7.296875 C 1.640625 -7.296875 1.71875 -7.21875 1.71875 -6.609375 L 1.71875 -1.078125 C 1.71875 -0.46875 1.640625 -0.375 0.640625 -0.375 L 0.640625 0 C 1.078125 -0.015625 1.921875 -0.046875 2.25 -0.046875 C 2.578125 -0.046875 3.421875 -0.015625 3.875 0 L 3.875 -0.375 C 2.875 -0.375 2.796875 -0.46875 2.796875 -1.078125 L 2.796875 -2.78125 L 4.234375 -4.046875 L 6.21875 -1.375 C 6.359375 -1.1875 6.546875 -0.890625 6.546875 -0.6875 C 6.546875 -0.40625 6.1875 -0.375 6.0625 -0.375 L 6.0625 0 C 6.359375 -0.015625 7.34375 -0.046875 7.625 -0.046875 C 8.015625 -0.046875 8.484375 -0.03125 8.890625 0 L 8.890625 -0.375 C 8.390625 -0.375 8.078125 -0.421875 7.53125 -1.1875 L 4.9375 -4.671875 C 7.765625 -7.25 8.078125 -7.265625 8.71875 -7.296875 L 8.71875 -7.671875 C 8.375 -7.640625 8.15625 -7.640625 7.78125 -7.640625 C 7.375 -7.640625 6.609375 -7.65625 6.390625 -7.671875 L 6.390625 -7.296875 C 6.5625 -7.28125 6.640625 -7.1875 6.640625 -7.015625 C 6.640625 -6.75 6.390625 -6.4375 6.15625 -6.234375 Z M 2.796875 -3.28125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-5">
+<path style="stroke:none;" d="M 7 -6.5625 C 6.9375 -6.75 6.9375 -6.78125 6.9375 -6.875 C 6.9375 -7.296875 7.453125 -7.296875 7.734375 -7.296875 L 7.734375 -7.671875 C 7.296875 -7.65625 6.546875 -7.640625 6.171875 -7.640625 C 5.890625 -7.640625 5.234375 -7.640625 4.828125 -7.671875 L 4.828125 -7.296875 C 5.390625 -7.296875 5.5625 -7.265625 5.703125 -7.015625 C 5.828125 -6.859375 6.03125 -6.203125 6.03125 -6.171875 C 6.03125 -6.15625 6.03125 -6.125 5.96875 -5.96875 L 4.34375 -1.390625 L 2.515625 -6.59375 C 2.5 -6.640625 2.4375 -6.78125 2.4375 -6.875 C 2.4375 -7.296875 3 -7.296875 3.25 -7.296875 L 3.25 -7.671875 C 2.8125 -7.65625 2.0625 -7.640625 1.6875 -7.640625 C 1.40625 -7.640625 0.75 -7.640625 0.34375 -7.671875 L 0.34375 -7.296875 C 0.984375 -7.296875 1.171875 -7.25 1.328125 -6.796875 L 3.703125 -0.125 C 3.765625 0.046875 3.8125 0.171875 4 0.171875 C 4.203125 0.171875 4.25 0.03125 4.296875 -0.125 L 6.25 -5.59375 L 8.171875 -0.171875 C 8.25 0.046875 8.296875 0.171875 8.484375 0.171875 C 8.671875 0.171875 8.703125 0.078125 8.78125 -0.140625 L 10.953125 -6.234375 C 11.234375 -7.03125 11.625 -7.28125 12.140625 -7.296875 L 12.140625 -7.671875 C 11.828125 -7.640625 11.4375 -7.640625 11.125 -7.640625 C 10.78125 -7.640625 10.09375 -7.65625 9.828125 -7.671875 L 9.828125 -7.296875 C 10.484375 -7.28125 10.625 -6.828125 10.625 -6.578125 C 10.625 -6.40625 10.5625 -6.25 10.546875 -6.203125 L 8.84375 -1.390625 Z M 7 -6.5625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-6">
+<path style="stroke:none;" d="M 2.78125 -6.65625 C 2.78125 -7.03125 2.8125 -7.1875 2.953125 -7.265625 C 3.0625 -7.296875 3.46875 -7.296875 3.734375 -7.296875 C 4.84375 -7.296875 6.109375 -7.265625 6.109375 -5.65625 C 6.109375 -5.078125 6.03125 -4 4.09375 -4 L 2.78125 -4 Z M 5.421875 -3.8125 C 6.46875 -4.078125 7.390625 -4.75 7.390625 -5.65625 C 7.390625 -6.703125 6.0625 -7.671875 4.25 -7.671875 L 0.671875 -7.671875 L 0.671875 -7.296875 C 1.671875 -7.296875 1.75 -7.21875 1.75 -6.609375 L 1.75 -1.078125 C 1.75 -0.46875 1.671875 -0.375 0.671875 -0.375 L 0.671875 0 C 1.125 -0.015625 1.84375 -0.046875 2.25 -0.046875 C 2.6875 -0.046875 3.46875 -0.015625 3.859375 0 L 3.859375 -0.375 C 2.859375 -0.375 2.78125 -0.46875 2.78125 -1.078125 L 2.78125 -3.671875 L 4.125 -3.671875 C 4.5 -3.671875 4.890625 -3.65625 5.34375 -3.203125 C 5.65625 -2.875 5.65625 -2.515625 5.65625 -1.859375 C 5.65625 -1.015625 5.65625 -0.75 6.140625 -0.28125 C 6.40625 -0.015625 7 0.203125 7.671875 0.203125 C 8.640625 0.203125 8.859375 -0.71875 8.859375 -1.015625 C 8.859375 -1.09375 8.859375 -1.234375 8.65625 -1.234375 C 8.5 -1.234375 8.484375 -1.109375 8.484375 -1.046875 C 8.375 -0.140625 7.84375 -0.125 7.734375 -0.125 C 7.4375 -0.125 7.296875 -0.3125 7.21875 -0.484375 C 7.09375 -0.71875 7 -1.140625 6.8125 -2.09375 C 6.6875 -2.609375 6.546875 -3.375 5.421875 -3.8125 Z M 5.421875 -3.8125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-7">
+<path style="stroke:none;" d="M 1.75 -1.078125 C 1.75 -0.46875 1.671875 -0.375 0.671875 -0.375 L 0.671875 0 L 4.875 0 C 6.96875 0 8.5625 -1.734375 8.5625 -3.78125 C 8.5625 -5.84375 7.015625 -7.671875 4.875 -7.671875 L 0.671875 -7.671875 L 0.671875 -7.296875 C 1.671875 -7.296875 1.75 -7.21875 1.75 -6.609375 Z M 3.375 -0.375 C 2.859375 -0.375 2.78125 -0.421875 2.78125 -1.015625 L 2.78125 -6.65625 C 2.78125 -7.265625 2.859375 -7.296875 3.375 -7.296875 L 4.53125 -7.296875 C 5.8125 -7.296875 6.453125 -6.609375 6.65625 -6.328125 C 6.984375 -5.921875 7.3125 -5.28125 7.3125 -3.78125 C 7.3125 -2.546875 7.09375 -1.921875 6.78125 -1.453125 C 6.546875 -1.125 5.90625 -0.375 4.53125 -0.375 Z M 3.375 -0.375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-0">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph1-1">
+<path style="stroke:none;" d="M 4.859375 3.625 C 4.859375 3.578125 4.859375 3.5625 4.59375 3.296875 C 3.109375 1.796875 2.265625 -0.671875 2.265625 -3.71875 C 2.265625 -6.625 2.96875 -9.109375 4.703125 -10.875 C 4.859375 -11.015625 4.859375 -11.03125 4.859375 -11.078125 C 4.859375 -11.171875 4.78125 -11.203125 4.71875 -11.203125 C 4.53125 -11.203125 3.296875 -10.125 2.5625 -8.65625 C 1.8125 -7.15625 1.46875 -5.5625 1.46875 -3.71875 C 1.46875 -2.390625 1.671875 -0.609375 2.453125 0.984375 C 3.328125 2.78125 4.5625 3.75 4.71875 3.75 C 4.78125 3.75 4.859375 3.71875 4.859375 3.625 Z M 4.859375 3.625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-2">
+<path style="stroke:none;" d="M 4.21875 -3.71875 C 4.21875 -4.859375 4.0625 -6.703125 3.21875 -8.4375 C 2.34375 -10.234375 1.125 -11.203125 0.953125 -11.203125 C 0.890625 -11.203125 0.828125 -11.171875 0.828125 -11.078125 C 0.828125 -11.03125 0.828125 -11.015625 1.078125 -10.75 C 2.5625 -9.25 3.40625 -6.78125 3.40625 -3.734375 C 3.40625 -0.84375 2.703125 1.65625 0.96875 3.421875 C 0.828125 3.5625 0.828125 3.578125 0.828125 3.625 C 0.828125 3.71875 0.890625 3.75 0.953125 3.75 C 1.15625 3.75 2.375 2.671875 3.109375 1.203125 C 3.875 -0.3125 4.21875 -1.921875 4.21875 -3.71875 Z M 4.21875 -3.71875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-3">
+<path style="stroke:none;" d="M 4.296875 -9.578125 C 4.296875 -9.921875 4.296875 -9.9375 4 -9.9375 C 3.640625 -9.53125 2.890625 -8.984375 1.359375 -8.984375 L 1.359375 -8.546875 C 1.703125 -8.546875 2.453125 -8.546875 3.265625 -8.9375 L 3.265625 -1.15625 C 3.265625 -0.609375 3.21875 -0.4375 1.90625 -0.4375 L 1.453125 -0.4375 L 1.453125 0 C 1.859375 -0.03125 3.296875 -0.03125 3.796875 -0.03125 C 4.28125 -0.03125 5.71875 -0.03125 6.125 0 L 6.125 -0.4375 L 5.65625 -0.4375 C 4.34375 -0.4375 4.296875 -0.609375 4.296875 -1.15625 Z M 4.296875 -9.578125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-4">
+<path style="stroke:none;" d="M 10.078125 -4.84375 C 10.296875 -4.84375 10.5625 -4.84375 10.5625 -5.109375 C 10.5625 -5.390625 10.3125 -5.390625 10.078125 -5.390625 L 1.28125 -5.390625 C 1.078125 -5.390625 0.8125 -5.390625 0.8125 -5.125 C 0.8125 -4.84375 1.0625 -4.84375 1.28125 -4.84375 Z M 10.078125 -2.0625 C 10.296875 -2.0625 10.5625 -2.0625 10.5625 -2.328125 C 10.5625 -2.609375 10.3125 -2.609375 10.078125 -2.609375 L 1.28125 -2.609375 C 1.078125 -2.609375 0.8125 -2.609375 0.8125 -2.34375 C 0.8125 -2.0625 1.0625 -2.0625 1.28125 -2.0625 Z M 10.078125 -2.0625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-5">
+<path style="stroke:none;" d="M 6.578125 -2.515625 L 6.25 -2.515625 C 6.203125 -2.25 6.078125 -1.4375 5.9375 -1.1875 C 5.828125 -1.0625 4.96875 -1.0625 4.53125 -1.0625 L 1.765625 -1.0625 C 2.171875 -1.40625 3.078125 -2.359375 3.46875 -2.71875 C 5.734375 -4.8125 6.578125 -5.59375 6.578125 -7.0625 C 6.578125 -8.78125 5.21875 -9.9375 3.484375 -9.9375 C 1.75 -9.9375 0.734375 -8.453125 0.734375 -7.171875 C 0.734375 -6.40625 1.390625 -6.40625 1.4375 -6.40625 C 1.75 -6.40625 2.140625 -6.625 2.140625 -7.109375 C 2.140625 -7.53125 1.859375 -7.8125 1.4375 -7.8125 C 1.296875 -7.8125 1.265625 -7.8125 1.21875 -7.796875 C 1.515625 -8.8125 2.3125 -9.5 3.28125 -9.5 C 4.5625 -9.5 5.328125 -8.4375 5.328125 -7.0625 C 5.328125 -5.796875 4.59375 -4.6875 3.75 -3.734375 L 0.734375 -0.359375 L 0.734375 0 L 6.1875 0 Z M 6.578125 -2.515625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-6">
+<path style="stroke:none;" d="M 2.75 -5.359375 C 2.5 -5.34375 2.4375 -5.328125 2.4375 -5.203125 C 2.4375 -5.046875 2.515625 -5.046875 2.78125 -5.046875 L 3.46875 -5.046875 C 4.734375 -5.046875 5.296875 -4 5.296875 -2.5625 C 5.296875 -0.609375 4.28125 -0.09375 3.5625 -0.09375 C 2.84375 -0.09375 1.609375 -0.4375 1.1875 -1.421875 C 1.65625 -1.34375 2.09375 -1.609375 2.09375 -2.15625 C 2.09375 -2.578125 1.78125 -2.890625 1.359375 -2.890625 C 1 -2.890625 0.609375 -2.671875 0.609375 -2.109375 C 0.609375 -0.78125 1.9375 0.3125 3.59375 0.3125 C 5.375 0.3125 6.6875 -1.046875 6.6875 -2.546875 C 6.6875 -3.921875 5.59375 -5 4.15625 -5.265625 C 5.453125 -5.625 6.28125 -6.71875 6.28125 -7.890625 C 6.28125 -9.0625 5.0625 -9.9375 3.609375 -9.9375 C 2.125 -9.9375 1.015625 -9.015625 1.015625 -7.9375 C 1.015625 -7.328125 1.484375 -7.21875 1.703125 -7.21875 C 2.015625 -7.21875 2.375 -7.4375 2.375 -7.890625 C 2.375 -8.359375 2.015625 -8.578125 1.6875 -8.578125 C 1.59375 -8.578125 1.5625 -8.578125 1.53125 -8.5625 C 2.09375 -9.578125 3.5 -9.578125 3.5625 -9.578125 C 4.0625 -9.578125 5.03125 -9.34375 5.03125 -7.890625 C 5.03125 -7.609375 4.984375 -6.765625 4.5625 -6.125 C 4.109375 -5.46875 3.59375 -5.421875 3.203125 -5.40625 Z M 2.75 -5.359375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-7">
+<path style="stroke:none;" d="M 6.6875 -4.78125 C 6.6875 -6.015625 6.625 -7.234375 6.078125 -8.359375 C 5.46875 -9.609375 4.390625 -9.9375 3.65625 -9.9375 C 2.796875 -9.9375 1.734375 -9.5 1.1875 -8.265625 C 0.765625 -7.3125 0.609375 -6.390625 0.609375 -4.78125 C 0.609375 -3.328125 0.71875 -2.234375 1.25 -1.1875 C 1.84375 -0.046875 2.875 0.3125 3.640625 0.3125 C 4.9375 0.3125 5.6875 -0.46875 6.125 -1.328125 C 6.65625 -2.453125 6.6875 -3.90625 6.6875 -4.78125 Z M 3.640625 0.015625 C 3.171875 0.015625 2.203125 -0.25 1.90625 -1.875 C 1.75 -2.78125 1.75 -3.90625 1.75 -4.953125 C 1.75 -6.1875 1.75 -7.296875 1.984375 -8.171875 C 2.234375 -9.171875 3 -9.640625 3.640625 -9.640625 C 4.21875 -9.640625 5.078125 -9.296875 5.359375 -8 C 5.5625 -7.15625 5.5625 -5.96875 5.5625 -4.953125 C 5.5625 -3.953125 5.5625 -2.828125 5.390625 -1.90625 C 5.109375 -0.265625 4.171875 0.015625 3.640625 0.015625 Z M 3.640625 0.015625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-8">
+<path style="stroke:none;" d="M 5.390625 -9.71875 C 5.390625 -10.015625 5.390625 -10.078125 5.1875 -10.078125 C 5.0625 -10.078125 5.015625 -10.078125 4.90625 -9.90625 L 0.40625 -2.921875 L 0.40625 -2.5 L 4.328125 -2.5 L 4.328125 -1.140625 C 4.328125 -0.578125 4.296875 -0.4375 3.21875 -0.4375 L 2.90625 -0.4375 L 2.90625 0 C 3.25 -0.03125 4.4375 -0.03125 4.859375 -0.03125 C 5.265625 -0.03125 6.46875 -0.03125 6.8125 0 L 6.8125 -0.4375 L 6.515625 -0.4375 C 5.4375 -0.4375 5.390625 -0.578125 5.390625 -1.140625 L 5.390625 -2.5 L 6.90625 -2.5 L 6.90625 -2.921875 L 5.390625 -2.921875 Z M 4.40625 -8.5625 L 4.40625 -2.921875 L 0.78125 -2.921875 Z M 4.40625 -8.5625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-9">
+<path style="stroke:none;" d="M 1.90625 -8.5625 C 2.546875 -8.34375 3.078125 -8.328125 3.234375 -8.328125 C 4.921875 -8.328125 6 -9.578125 6 -9.78125 C 6 -9.84375 5.96875 -9.921875 5.890625 -9.921875 C 5.859375 -9.921875 5.828125 -9.921875 5.6875 -9.859375 C 4.859375 -9.5 4.140625 -9.453125 3.75 -9.453125 C 2.765625 -9.453125 2.0625 -9.75 1.78125 -9.875 C 1.671875 -9.921875 1.640625 -9.921875 1.625 -9.921875 C 1.515625 -9.921875 1.515625 -9.828125 1.515625 -9.59375 L 1.515625 -5.15625 C 1.515625 -4.890625 1.515625 -4.796875 1.6875 -4.796875 C 1.765625 -4.796875 1.78125 -4.8125 1.921875 -4.984375 C 2.34375 -5.59375 3.046875 -5.953125 3.796875 -5.953125 C 4.578125 -5.953125 4.96875 -5.234375 5.09375 -4.96875 C 5.34375 -4.390625 5.359375 -3.65625 5.359375 -3.09375 C 5.359375 -2.53125 5.359375 -1.671875 4.9375 -1 C 4.609375 -0.46875 4.03125 -0.09375 3.375 -0.09375 C 2.390625 -0.09375 1.421875 -0.765625 1.15625 -1.859375 C 1.21875 -1.828125 1.3125 -1.8125 1.390625 -1.8125 C 1.640625 -1.8125 2.046875 -1.953125 2.046875 -2.46875 C 2.046875 -2.890625 1.765625 -3.125 1.390625 -3.125 C 1.125 -3.125 0.734375 -2.984375 0.734375 -2.40625 C 0.734375 -1.140625 1.75 0.3125 3.40625 0.3125 C 5.09375 0.3125 6.578125 -1.109375 6.578125 -3 C 6.578125 -4.78125 5.375 -6.265625 3.8125 -6.265625 C 2.953125 -6.265625 2.296875 -5.890625 1.90625 -5.46875 Z M 1.90625 -8.5625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-10">
+<path style="stroke:none;" d="M 1.84375 -5.203125 C 1.84375 -8.984375 3.671875 -9.578125 4.484375 -9.578125 C 5.015625 -9.578125 5.5625 -9.40625 5.84375 -8.96875 C 5.65625 -8.96875 5.09375 -8.96875 5.09375 -8.34375 C 5.09375 -8.015625 5.3125 -7.734375 5.703125 -7.734375 C 6.078125 -7.734375 6.328125 -7.96875 6.328125 -8.390625 C 6.328125 -9.171875 5.765625 -9.9375 4.46875 -9.9375 C 2.578125 -9.9375 0.609375 -8 0.609375 -4.71875 C 0.609375 -0.609375 2.40625 0.3125 3.671875 0.3125 C 5.296875 0.3125 6.6875 -1.109375 6.6875 -3.046875 C 6.6875 -5.03125 5.296875 -6.359375 3.8125 -6.359375 C 2.484375 -6.359375 1.984375 -5.21875 1.84375 -4.796875 Z M 3.671875 -0.09375 C 2.734375 -0.09375 2.28125 -0.921875 2.15625 -1.234375 C 2.015625 -1.625 1.859375 -2.359375 1.859375 -3.40625 C 1.859375 -4.578125 2.40625 -6.0625 3.75 -6.0625 C 4.578125 -6.0625 5 -5.515625 5.234375 -5 C 5.46875 -4.453125 5.46875 -3.703125 5.46875 -3.0625 C 5.46875 -2.296875 5.46875 -1.625 5.1875 -1.0625 C 4.8125 -0.34375 4.265625 -0.09375 3.671875 -0.09375 Z M 3.671875 -0.09375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-11">
+<path style="stroke:none;" d="M 7.09375 -9.28125 L 7.09375 -9.625 L 3.5 -9.625 C 1.6875 -9.625 1.65625 -9.8125 1.59375 -10.09375 L 1.265625 -10.09375 L 0.8125 -7.109375 L 1.140625 -7.109375 C 1.1875 -7.375 1.3125 -8.3125 1.515625 -8.46875 C 1.625 -8.5625 2.75 -8.5625 2.953125 -8.5625 L 6.125 -8.5625 L 4.546875 -6.28125 C 4.140625 -5.703125 2.625 -3.25 2.625 -0.453125 C 2.625 -0.28125 2.625 0.3125 3.234375 0.3125 C 3.875 0.3125 3.875 -0.265625 3.875 -0.46875 L 3.875 -1.203125 C 3.875 -3.4375 4.234375 -5.171875 4.921875 -6.171875 Z M 7.09375 -9.28125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-12">
+<path style="stroke:none;" d="M 5.953125 -3.453125 L 10.078125 -3.453125 C 10.296875 -3.453125 10.5625 -3.453125 10.5625 -3.71875 C 10.5625 -4 10.3125 -4 10.078125 -4 L 5.953125 -4 L 5.953125 -8.125 C 5.953125 -8.328125 5.953125 -8.609375 5.6875 -8.609375 C 5.40625 -8.609375 5.40625 -8.34375 5.40625 -8.125 L 5.40625 -4 L 1.28125 -4 C 1.078125 -4 0.8125 -4 0.8125 -3.734375 C 0.8125 -3.453125 1.0625 -3.453125 1.28125 -3.453125 L 5.40625 -3.453125 L 5.40625 0.671875 C 5.40625 0.875 5.40625 1.15625 5.671875 1.15625 C 5.953125 1.15625 5.953125 0.890625 5.953125 0.671875 Z M 5.953125 -3.453125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-0">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph2-1">
+<path style="stroke:none;" d="M 9.25 -8.546875 C 9.75 -9.34375 10.21875 -9.703125 10.984375 -9.765625 C 11.125 -9.78125 11.25 -9.78125 11.25 -10.046875 C 11.25 -10.109375 11.21875 -10.203125 11.078125 -10.203125 C 10.8125 -10.203125 10.171875 -10.171875 9.90625 -10.171875 C 9.46875 -10.171875 9.015625 -10.203125 8.609375 -10.203125 C 8.484375 -10.203125 8.328125 -10.203125 8.328125 -9.921875 C 8.328125 -9.78125 8.46875 -9.765625 8.53125 -9.765625 C 9.078125 -9.71875 9.140625 -9.453125 9.140625 -9.28125 C 9.140625 -9.046875 8.9375 -8.703125 8.921875 -8.6875 L 4.234375 -1.25 L 3.1875 -9.3125 C 3.1875 -9.734375 3.953125 -9.765625 4.125 -9.765625 C 4.34375 -9.765625 4.484375 -9.765625 4.484375 -10.046875 C 4.484375 -10.203125 4.3125 -10.203125 4.265625 -10.203125 C 4.015625 -10.203125 3.71875 -10.171875 3.46875 -10.171875 L 2.625 -10.171875 C 1.53125 -10.171875 1.09375 -10.203125 1.078125 -10.203125 C 0.984375 -10.203125 0.8125 -10.203125 0.8125 -9.9375 C 0.8125 -9.765625 0.90625 -9.765625 1.15625 -9.765625 C 1.90625 -9.765625 1.953125 -9.640625 2 -9.265625 L 3.203125 -0.046875 C 3.234375 0.265625 3.234375 0.3125 3.453125 0.3125 C 3.625 0.3125 3.703125 0.265625 3.859375 0.03125 Z M 9.25 -8.546875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-2">
+<path style="stroke:none;" d="M 2.90625 0.0625 C 2.90625 -0.8125 2.625 -1.453125 2.015625 -1.453125 C 1.53125 -1.453125 1.296875 -1.0625 1.296875 -0.734375 C 1.296875 -0.40625 1.53125 0 2.03125 0 C 2.21875 0 2.390625 -0.0625 2.53125 -0.1875 C 2.546875 -0.21875 2.5625 -0.21875 2.578125 -0.21875 C 2.609375 -0.21875 2.609375 -0.015625 2.609375 0.0625 C 2.609375 0.546875 2.53125 1.53125 1.65625 2.5 C 1.5 2.671875 1.5 2.703125 1.5 2.734375 C 1.5 2.8125 1.5625 2.890625 1.640625 2.890625 C 1.765625 2.890625 2.90625 1.78125 2.90625 0.0625 Z M 2.90625 0.0625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-3">
+<path style="stroke:none;" d="M 10.375 -3.46875 C 10.390625 -3.515625 10.4375 -3.609375 10.4375 -3.671875 C 10.4375 -3.75 10.375 -3.828125 10.296875 -3.828125 C 10.234375 -3.828125 10.203125 -3.8125 10.15625 -3.765625 C 10.125 -3.75 10.125 -3.71875 10 -3.421875 C 9.109375 -1.328125 8.46875 -0.4375 6.078125 -0.4375 L 3.90625 -0.4375 C 3.6875 -0.4375 3.65625 -0.4375 3.5625 -0.453125 C 3.40625 -0.46875 3.390625 -0.5 3.390625 -0.609375 C 3.390625 -0.71875 3.421875 -0.8125 3.453125 -0.9375 L 4.484375 -5.0625 L 5.953125 -5.0625 C 7.125 -5.0625 7.21875 -4.8125 7.21875 -4.359375 C 7.21875 -4.21875 7.21875 -4.078125 7.109375 -3.625 C 7.078125 -3.5625 7.0625 -3.515625 7.0625 -3.46875 C 7.0625 -3.359375 7.140625 -3.3125 7.234375 -3.3125 C 7.359375 -3.3125 7.375 -3.421875 7.4375 -3.625 L 8.296875 -7.09375 C 8.296875 -7.171875 8.234375 -7.25 8.140625 -7.25 C 8 -7.25 7.984375 -7.1875 7.9375 -6.96875 C 7.640625 -5.828125 7.328125 -5.5 6 -5.5 L 4.578125 -5.5 L 5.515625 -9.171875 C 5.640625 -9.6875 5.671875 -9.734375 6.28125 -9.734375 L 8.421875 -9.734375 C 10.265625 -9.734375 10.640625 -9.25 10.640625 -8.109375 C 10.640625 -8.09375 10.640625 -7.671875 10.578125 -7.1875 C 10.5625 -7.125 10.546875 -7.03125 10.546875 -7 C 10.546875 -6.890625 10.625 -6.84375 10.703125 -6.84375 C 10.8125 -6.84375 10.875 -6.90625 10.90625 -7.171875 L 11.21875 -9.78125 C 11.21875 -9.828125 11.25 -9.984375 11.25 -10.015625 C 11.25 -10.171875 11.109375 -10.171875 10.84375 -10.171875 L 3.5625 -10.171875 C 3.265625 -10.171875 3.125 -10.171875 3.125 -9.90625 C 3.125 -9.734375 3.21875 -9.734375 3.484375 -9.734375 C 4.40625 -9.734375 4.40625 -9.640625 4.40625 -9.46875 C 4.40625 -9.390625 4.390625 -9.328125 4.34375 -9.171875 L 2.328125 -1.109375 C 2.203125 -0.578125 2.171875 -0.4375 1.125 -0.4375 C 0.84375 -0.4375 0.6875 -0.4375 0.6875 -0.171875 C 0.6875 0 0.78125 0 1.078125 0 L 8.578125 0 C 8.90625 0 8.921875 -0.015625 9.015625 -0.25 Z M 10.375 -3.46875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-4">
+<path style="stroke:none;" d="M 6.828125 -5.59375 C 6.828125 -6.53125 6.34375 -6.59375 6.234375 -6.59375 C 5.875 -6.59375 5.546875 -6.234375 5.546875 -5.9375 C 5.546875 -5.75 5.640625 -5.640625 5.703125 -5.59375 C 5.859375 -5.453125 6.25 -5.046875 6.25 -4.265625 C 6.25 -3.640625 5.34375 -0.15625 3.5625 -0.15625 C 2.640625 -0.15625 2.46875 -0.90625 2.46875 -1.46875 C 2.46875 -2.203125 2.8125 -3.25 3.21875 -4.328125 C 3.453125 -4.9375 3.515625 -5.09375 3.515625 -5.390625 C 3.515625 -6.015625 3.0625 -6.59375 2.328125 -6.59375 C 0.953125 -6.59375 0.40625 -4.421875 0.40625 -4.296875 C 0.40625 -4.25 0.46875 -4.171875 0.5625 -4.171875 C 0.703125 -4.171875 0.71875 -4.234375 0.78125 -4.4375 C 1.140625 -5.71875 1.71875 -6.28125 2.28125 -6.28125 C 2.421875 -6.28125 2.671875 -6.28125 2.671875 -5.796875 C 2.671875 -5.40625 2.515625 -4.96875 2.28125 -4.40625 C 1.5625 -2.5 1.5625 -2.03125 1.5625 -1.671875 C 1.5625 -1.34375 1.609375 -0.734375 2.078125 -0.3125 C 2.609375 0.15625 3.359375 0.15625 3.5 0.15625 C 5.96875 0.15625 6.828125 -4.734375 6.828125 -5.59375 Z M 6.828125 -5.59375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-5">
+<path style="stroke:none;" d="M 4.234375 -2.140625 C 4.234375 -2.203125 4.171875 -2.265625 4.078125 -2.265625 C 3.9375 -2.265625 3.921875 -2.21875 3.859375 -1.96875 C 3.46875 -0.609375 2.859375 -0.15625 2.359375 -0.15625 C 2.1875 -0.15625 1.96875 -0.1875 1.96875 -0.640625 C 1.96875 -1.046875 2.15625 -1.5 2.3125 -1.9375 L 3.359375 -4.71875 C 3.40625 -4.84375 3.515625 -5.109375 3.515625 -5.390625 C 3.515625 -6.015625 3.0625 -6.59375 2.328125 -6.59375 C 0.953125 -6.59375 0.40625 -4.421875 0.40625 -4.296875 C 0.40625 -4.25 0.46875 -4.171875 0.5625 -4.171875 C 0.703125 -4.171875 0.71875 -4.234375 0.78125 -4.4375 C 1.140625 -5.6875 1.703125 -6.28125 2.28125 -6.28125 C 2.421875 -6.28125 2.671875 -6.28125 2.671875 -5.796875 C 2.671875 -5.40625 2.484375 -4.921875 2.359375 -4.578125 L 1.3125 -1.8125 C 1.21875 -1.5625 1.140625 -1.328125 1.140625 -1.0625 C 1.140625 -0.390625 1.59375 0.15625 2.3125 0.15625 C 3.6875 0.15625 4.234375 -2.03125 4.234375 -2.140625 Z M 4.109375 -9.328125 C 4.109375 -9.546875 3.921875 -9.8125 3.59375 -9.8125 C 3.25 -9.8125 2.875 -9.484375 2.875 -9.09375 C 2.875 -8.71875 3.1875 -8.609375 3.359375 -8.609375 C 3.765625 -8.609375 4.109375 -9 4.109375 -9.328125 Z M 4.109375 -9.328125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-6">
+<path style="stroke:none;" d="M 2.75 -0.71875 C 2.75 -1.15625 2.390625 -1.453125 2.03125 -1.453125 C 1.59375 -1.453125 1.296875 -1.09375 1.296875 -0.734375 C 1.296875 -0.296875 1.65625 0 2.015625 0 C 2.453125 0 2.75 -0.359375 2.75 -0.71875 Z M 2.75 -0.71875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-7">
+<path style="stroke:none;" d="M 5.09375 -0.859375 C 5.28125 -0.03125 6 0.15625 6.359375 0.15625 C 6.84375 0.15625 7.203125 -0.171875 7.4375 -0.671875 C 7.6875 -1.203125 7.890625 -2.09375 7.890625 -2.140625 C 7.890625 -2.203125 7.828125 -2.265625 7.734375 -2.265625 C 7.609375 -2.265625 7.59375 -2.203125 7.53125 -1.96875 C 7.265625 -0.9375 6.984375 -0.15625 6.390625 -0.15625 C 5.9375 -0.15625 5.9375 -0.640625 5.9375 -0.84375 C 5.9375 -1.1875 5.984375 -1.328125 6.140625 -1.953125 C 6.25 -2.359375 6.34375 -2.765625 6.4375 -3.1875 L 7.046875 -5.609375 C 7.15625 -5.984375 7.15625 -6.015625 7.15625 -6.0625 C 7.15625 -6.28125 6.96875 -6.4375 6.75 -6.4375 C 6.3125 -6.4375 6.21875 -6.0625 6.125 -5.6875 C 5.96875 -5.109375 5.171875 -1.890625 5.0625 -1.375 C 5.046875 -1.375 4.46875 -0.15625 3.375 -0.15625 C 2.59375 -0.15625 2.453125 -0.828125 2.453125 -1.375 C 2.453125 -2.21875 2.875 -3.421875 3.25 -4.421875 C 3.4375 -4.90625 3.515625 -5.09375 3.515625 -5.390625 C 3.515625 -6.03125 3.046875 -6.59375 2.328125 -6.59375 C 0.953125 -6.59375 0.40625 -4.421875 0.40625 -4.296875 C 0.40625 -4.25 0.46875 -4.171875 0.5625 -4.171875 C 0.703125 -4.171875 0.71875 -4.234375 0.78125 -4.4375 C 1.140625 -5.71875 1.71875 -6.28125 2.28125 -6.28125 C 2.4375 -6.28125 2.671875 -6.28125 2.671875 -5.796875 C 2.671875 -5.40625 2.515625 -4.96875 2.28125 -4.40625 C 1.625 -2.625 1.546875 -2.0625 1.546875 -1.609375 C 1.546875 -0.09375 2.703125 0.15625 3.3125 0.15625 C 4.265625 0.15625 4.796875 -0.515625 5.09375 -0.859375 Z M 5.09375 -0.859375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-8">
+<path style="stroke:none;" d="M 9.84375 -7.28125 C 10.109375 -7.390625 10.140625 -7.5 10.140625 -7.59375 C 10.140625 -7.75 10.015625 -7.875 9.859375 -7.875 C 9.828125 -7.875 9.8125 -7.859375 9.609375 -7.765625 L 1.53125 -4.046875 C 1.25 -3.921875 1.21875 -3.828125 1.21875 -3.734375 C 1.21875 -3.625 1.234375 -3.546875 1.53125 -3.40625 L 9.609375 0.3125 C 9.796875 0.40625 9.828125 0.421875 9.859375 0.421875 C 10.015625 0.421875 10.140625 0.296875 10.140625 0.140625 C 10.140625 0.046875 10.109375 -0.0625 9.84375 -0.171875 L 2.15625 -3.71875 Z M 9.84375 -7.28125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph3-0">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph3-1">
+<path style="stroke:none;" d="M 4.453125 -10.015625 C 4.46875 -10.109375 4.5 -10.171875 4.5 -10.21875 C 4.5 -10.359375 4.390625 -10.359375 4.15625 -10.359375 L 2.65625 -10.21875 C 2.453125 -10.203125 2.3125 -10.1875 2.3125 -9.921875 C 2.3125 -9.765625 2.4375 -9.765625 2.640625 -9.765625 C 3.390625 -9.765625 3.390625 -9.640625 3.390625 -9.484375 C 3.390625 -9.421875 3.359375 -9.28125 3.34375 -9.21875 L 1.46875 -1.6875 C 1.4375 -1.546875 1.390625 -1.390625 1.390625 -1.171875 C 1.390625 -0.375 1.890625 0.15625 2.578125 0.15625 C 3.09375 0.15625 3.390625 -0.1875 3.59375 -0.609375 C 3.875 -1.109375 4.078125 -2.078125 4.078125 -2.125 C 4.078125 -2.265625 3.953125 -2.265625 3.890625 -2.265625 C 3.828125 -2.265625 3.71875 -2.265625 3.6875 -2.1875 C 3.671875 -2.140625 3.609375 -1.90625 3.5625 -1.78125 C 3.375 -1.046875 3.125 -0.15625 2.609375 -0.15625 C 2.28125 -0.15625 2.203125 -0.46875 2.203125 -0.75 C 2.203125 -0.9375 2.28125 -1.359375 2.328125 -1.546875 Z M 4.453125 -10.015625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph3-2">
+<path style="stroke:none;" d="M 7.09375 -5.703125 C 7.140625 -5.875 7.140625 -5.921875 7.140625 -5.9375 C 7.140625 -6.109375 7.015625 -6.296875 6.75 -6.296875 C 6.28125 -6.296875 6.171875 -5.71875 6.171875 -5.71875 L 6.15625 -5.703125 C 5.875 -6.40625 5.359375 -6.59375 4.953125 -6.59375 C 3.328125 -6.59375 1.609375 -4.296875 1.609375 -2.125 C 1.609375 -0.796875 2.3125 0.15625 3.328125 0.15625 C 3.9375 0.15625 4.5625 -0.234375 5.125 -0.90625 C 5.28125 0 5.953125 0.15625 6.296875 0.15625 C 6.890625 0.15625 7.1875 -0.28125 7.375 -0.71875 C 7.640625 -1.234375 7.8125 -2.09375 7.8125 -2.140625 C 7.8125 -2.265625 7.671875 -2.265625 7.625 -2.265625 C 7.4375 -2.265625 7.421875 -2.25 7.328125 -1.90625 C 7.03125 -0.671875 6.75 -0.15625 6.328125 -0.15625 C 6 -0.15625 5.9375 -0.46875 5.9375 -0.75 C 5.9375 -0.96875 5.984375 -1.3125 6.046875 -1.53125 Z M 5.21875 -1.8125 C 5.125 -1.421875 4.234375 -0.15625 3.359375 -0.15625 C 2.5625 -0.15625 2.546875 -1.3125 2.546875 -1.5 C 2.546875 -2.234375 3.015625 -4 3.25 -4.59375 C 3.640625 -5.53125 4.3125 -6.28125 4.953125 -6.28125 C 5.859375 -6.28125 5.953125 -4.953125 5.953125 -4.859375 C 5.953125 -4.84375 5.921875 -4.671875 5.921875 -4.640625 Z M 5.21875 -1.8125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph3-3">
+<path style="stroke:none;" d="M 4.453125 -10.015625 C 4.484375 -10.125 4.5 -10.171875 4.5 -10.21875 C 4.5 -10.359375 4.390625 -10.359375 4.15625 -10.359375 L 2.65625 -10.21875 C 2.453125 -10.203125 2.3125 -10.1875 2.3125 -9.921875 C 2.3125 -9.765625 2.4375 -9.765625 2.640625 -9.765625 C 3.390625 -9.765625 3.390625 -9.640625 3.390625 -9.484375 C 3.390625 -9.40625 3.359375 -9.3125 3.34375 -9.234375 L 1.84375 -3.1875 C 1.703125 -2.640625 1.703125 -2.25 1.703125 -2.09375 C 1.703125 -0.671875 2.421875 0.15625 3.34375 0.15625 C 5.015625 0.15625 6.703125 -2.1875 6.703125 -4.3125 C 6.703125 -5.609375 6.015625 -6.59375 4.984375 -6.59375 C 4.25 -6.59375 3.625 -5.984375 3.390625 -5.75 Z M 3.359375 -0.15625 C 2.6875 -0.15625 2.484375 -0.953125 2.484375 -1.578125 C 2.484375 -2.171875 2.640625 -2.765625 2.96875 -4.109375 C 3.015625 -4.25 3.046875 -4.40625 3.09375 -4.5625 C 3.234375 -5.140625 4.15625 -6.28125 4.9375 -6.28125 C 5.484375 -6.28125 5.765625 -5.734375 5.765625 -4.9375 C 5.765625 -4.109375 5.265625 -2.234375 4.953125 -1.609375 C 4.4375 -0.5625 3.828125 -0.15625 3.359375 -0.15625 Z M 3.359375 -0.15625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph3-4">
+<path style="stroke:none;" d="M 3.4375 -3.46875 C 3.953125 -3.46875 6.765625 -3.46875 6.765625 -5.34375 C 6.765625 -6.015625 6.21875 -6.59375 5.328125 -6.59375 C 3.78125 -6.59375 1.703125 -5.0625 1.703125 -2.4375 C 1.703125 -0.921875 2.484375 0.15625 3.75 0.15625 C 5.59375 0.15625 6.828125 -1.359375 6.828125 -1.5625 C 6.828125 -1.671875 6.703125 -1.796875 6.625 -1.796875 C 6.578125 -1.796875 6.5625 -1.78125 6.4375 -1.640625 C 5.640625 -0.5625 4.53125 -0.15625 3.765625 -0.15625 C 2.78125 -0.15625 2.640625 -1.328125 2.640625 -1.8125 C 2.640625 -2.46875 2.75 -2.890625 2.890625 -3.46875 Z M 2.984375 -3.765625 C 3.578125 -6.140625 5.046875 -6.28125 5.3125 -6.28125 C 5.921875 -6.28125 6.265625 -5.875 6.265625 -5.359375 C 6.265625 -3.765625 3.78125 -3.765625 3.296875 -3.765625 Z M 2.984375 -3.765625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph4-0">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph4-1">
+<path style="stroke:none;" d="M 3.046875 -5.9375 L 4.4375 -5.9375 L 4.4375 -6.625 L 2.953125 -6.625 L 2.953125 -8.15625 C 2.953125 -9.90625 4.140625 -9.921875 4.296875 -9.921875 C 4.34375 -9.921875 4.40625 -9.921875 4.46875 -9.90625 C 4.3125 -9.796875 4.109375 -9.546875 4.109375 -9.15625 C 4.109375 -8.515625 4.625 -8.234375 5.015625 -8.234375 C 5.46875 -8.234375 5.9375 -8.546875 5.9375 -9.15625 C 5.9375 -9.78125 5.421875 -10.453125 4.34375 -10.453125 C 2.96875 -10.453125 1.4375 -9.84375 1.4375 -8.140625 L 1.4375 -6.625 L 0.5625 -6.625 L 0.5625 -5.9375 L 1.4375 -5.9375 L 1.4375 -0.703125 L 0.40625 -0.703125 L 0.40625 0 C 0.921875 -0.015625 1.59375 -0.046875 2.28125 -0.046875 C 2.859375 -0.046875 3.8125 -0.046875 4.34375 0 L 4.34375 -0.703125 L 3.046875 -0.703125 Z M 3.046875 -5.9375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph4-2">
+<path style="stroke:none;" d="M 7.03125 -3.265625 C 7.03125 -5.375 5.71875 -6.765625 3.71875 -6.765625 C 1.796875 -6.765625 0.421875 -5.4375 0.421875 -3.265625 C 0.421875 -1.125 1.828125 0.09375 3.71875 0.09375 C 5.6875 0.09375 7.03125 -1.1875 7.03125 -3.265625 Z M 3.734375 -0.515625 C 3.1875 -0.515625 2.609375 -0.84375 2.453125 -1.5 C 2.328125 -1.984375 2.328125 -2.890625 2.328125 -3.421875 C 2.328125 -4.125 2.328125 -4.84375 2.46875 -5.3125 C 2.609375 -5.890625 3.171875 -6.234375 3.71875 -6.234375 C 4.359375 -6.234375 4.859375 -5.796875 4.984375 -5.3125 C 5.125 -4.828125 5.125 -4.109375 5.125 -3.421875 C 5.125 -2.71875 5.125 -1.9375 4.96875 -1.4375 C 4.828125 -0.84375 4.265625 -0.515625 3.734375 -0.515625 Z M 3.734375 -0.515625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph4-3">
+<path style="stroke:none;" d="M 2.890625 -3.375 C 2.890625 -4.5 3.109375 -6.1875 4.4375 -6.1875 C 4.421875 -6.171875 4.15625 -5.9375 4.15625 -5.5 C 4.15625 -4.890625 4.625 -4.578125 5.0625 -4.578125 C 5.5 -4.578125 5.96875 -4.90625 5.96875 -5.5 C 5.96875 -6.328125 5.09375 -6.71875 4.375 -6.71875 C 3.6875 -6.71875 3.0625 -6.359375 2.734375 -5.359375 L 2.71875 -5.359375 L 2.71875 -6.71875 L 0.234375 -6.609375 L 0.234375 -5.90625 C 1.171875 -5.90625 1.265625 -5.90625 1.265625 -5.3125 L 1.265625 -0.703125 L 0.234375 -0.703125 L 0.234375 0 C 0.765625 -0.015625 1.4375 -0.046875 2.125 -0.046875 C 2.6875 -0.046875 3.640625 -0.046875 4.1875 0 L 4.1875 -0.703125 L 2.890625 -0.703125 Z M 2.890625 -3.375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph4-4">
+<path style="stroke:none;" d="M 3.1875 -9.21875 C 3.1875 -9.875 2.640625 -10.375 2.015625 -10.375 C 1.375 -10.375 0.84375 -9.859375 0.84375 -9.21875 C 0.84375 -8.578125 1.375 -8.046875 2.015625 -8.046875 C 2.640625 -8.046875 3.1875 -8.5625 3.1875 -9.21875 Z M 0.4375 -6.609375 L 0.4375 -5.90625 C 1.3125 -5.90625 1.421875 -5.90625 1.421875 -5.3125 L 1.421875 -0.703125 L 0.390625 -0.703125 L 0.390625 0 C 0.84375 -0.015625 1.578125 -0.046875 2.203125 -0.046875 C 2.65625 -0.046875 3.421875 -0.015625 3.953125 0 L 3.953125 -0.703125 L 3.03125 -0.703125 L 3.03125 -6.71875 Z M 0.4375 -6.609375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph5-0">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph5-1">
+<path style="stroke:none;" d="M 8.1875 -3.4375 C 8.4375 -3.4375 8.703125 -3.4375 8.703125 -3.734375 C 8.703125 -4.03125 8.4375 -4.03125 8.1875 -4.03125 L 1.859375 -4.03125 C 2.03125 -6.03125 3.75 -7.46875 5.859375 -7.46875 L 8.1875 -7.46875 C 8.4375 -7.46875 8.703125 -7.46875 8.703125 -7.765625 C 8.703125 -8.0625 8.4375 -8.0625 8.1875 -8.0625 L 5.828125 -8.0625 C 3.265625 -8.0625 1.234375 -6.125 1.234375 -3.734375 C 1.234375 -1.34375 3.265625 0.59375 5.828125 0.59375 L 8.1875 0.59375 C 8.4375 0.59375 8.703125 0.59375 8.703125 0.296875 C 8.703125 0 8.4375 0 8.1875 0 L 5.859375 0 C 3.75 0 2.03125 -1.4375 1.859375 -3.4375 Z M 8.1875 -3.4375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph6-0">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph6-1">
+<path style="stroke:none;" d="M 6.84375 -4.84375 C 6.984375 -4.84375 7.171875 -4.84375 7.171875 -5.109375 C 7.171875 -5.390625 7 -5.390625 6.84375 -5.390625 L 0.875 -5.390625 C 0.734375 -5.390625 0.546875 -5.390625 0.546875 -5.125 C 0.546875 -4.84375 0.71875 -4.84375 0.875 -4.84375 Z M 6.84375 -2.0625 C 6.984375 -2.0625 7.171875 -2.0625 7.171875 -2.328125 C 7.171875 -2.609375 7 -2.609375 6.84375 -2.609375 L 0.875 -2.609375 C 0.734375 -2.609375 0.546875 -2.609375 0.546875 -2.34375 C 0.546875 -2.0625 0.71875 -2.0625 0.875 -2.0625 Z M 6.84375 -2.0625 "/>
+</symbol>
+</g>
+</defs>
+<g id="surface1">
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-1" x="0" y="12.64"/>
+ <use xlink:href="#glyph0-2" x="11.518835" y="12.64"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-3" x="20.355222" y="12.64"/>
+ <use xlink:href="#glyph0-4" x="29.188621" y="12.64"/>
+ <use xlink:href="#glyph0-5" x="38.687027" y="12.64"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-2" x="49.844218" y="12.64"/>
+ <use xlink:href="#glyph0-6" x="59.009373" y="12.64"/>
+ <use xlink:href="#glyph0-7" x="68.00865" y="12.64"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-1" x="77.33875" y="12.64"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-1" x="83.02875" y="12.64"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-2" x="92.365761" y="12.64"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-3" x="98.926177" y="12.64"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-2" x="110.639284" y="12.64"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-4" x="117.184756" y="12.64"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-2" x="124.79723" y="12.64"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-5" x="131.357646" y="12.64"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-2" x="136.3475" y="12.64"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-3" x="0.000000000000017764" y="30.6975"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-4" x="18.29" y="30.6975"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-6" x="25.902474" y="30.6975"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph3-1" x="29.965" y="30.6975"/>
+ <use xlink:href="#glyph3-2" x="33.701" y="30.6975"/>
+ <use xlink:href="#glyph3-3" x="41.173" y="30.6975"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph3-4" x="47.1506" y="30.6975"/>
+ <use xlink:href="#glyph3-1" x="53.8754" y="30.6975"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-4" x="63.3125" y="30.6975"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-5" x="78.845" y="30.6975"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-5" x="0.000000000000026645" y="48.755"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph4-1" x="18.29" y="48.755"/>
+ <use xlink:href="#glyph4-2" x="22.856886" y="48.755"/>
+ <use xlink:href="#glyph4-3" x="30.328886" y="48.755"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-1" x="41.7025" y="48.755"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-7" x="47.39375" y="48.755"/>
+ <use xlink:href="#glyph2-2" x="55.722041" y="48.755"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-4" x="62.282457" y="48.755"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-2" x="69.88625" y="48.755"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph5-1" x="79.72875" y="48.755"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-3" x="93.8425" y="48.755"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-6" x="0.000000000000035527" y="66.81125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph4-4" x="47.16125" y="66.81125"/>
+ <use xlink:href="#glyph4-1" x="51.312693" y="66.81125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-7" x="60.86" y="66.81125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-8" x="72.3275" y="66.81125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-4" x="87.863282" y="66.81125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-6" x="95.475756" y="66.81125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph3-1" x="99.53375" y="66.81125"/>
+ <use xlink:href="#glyph3-2" x="103.26975" y="66.81125"/>
+ <use xlink:href="#glyph3-3" x="110.74175" y="66.81125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph3-4" x="116.71935" y="66.81125"/>
+ <use xlink:href="#glyph3-1" x="123.44415" y="66.81125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-8" x="132.88125" y="66.81125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-5" x="148.417032" y="66.81125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-8" x="0.000000000000053291" y="84.86875"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-1" x="76.0325" y="84.86875"/>
+ <use xlink:href="#glyph0-2" x="87.551335" y="84.86875"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-3" x="96.387722" y="84.86875"/>
+ <use xlink:href="#glyph0-4" x="105.221121" y="84.86875"/>
+ <use xlink:href="#glyph0-5" x="114.719527" y="84.86875"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-2" x="125.876718" y="84.86875"/>
+ <use xlink:href="#glyph0-6" x="135.041873" y="84.86875"/>
+ <use xlink:href="#glyph0-7" x="144.04115" y="84.86875"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-1" x="153.37125" y="84.86875"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-1" x="159.06125" y="84.86875"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-2" x="168.398261" y="84.86875"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-3" x="174.958677" y="84.86875"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-2" x="186.671784" y="84.86875"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-7" x="193.217256" y="84.86875"/>
+ <use xlink:href="#glyph2-2" x="201.545548" y="84.86875"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-5" x="208.105964" y="84.86875"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-2" x="213.0975" y="84.86875"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-9" x="0.000000000000035527" y="102.92625"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph4-1" x="18.29" y="102.92625"/>
+ <use xlink:href="#glyph4-2" x="22.856886" y="102.92625"/>
+ <use xlink:href="#glyph4-3" x="30.328886" y="102.92625"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-1" x="41.7025" y="102.92625"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-7" x="47.39375" y="102.92625"/>
+ <use xlink:href="#glyph2-2" x="55.722041" y="102.92625"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-4" x="62.282457" y="102.92625"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-2" x="69.88625" y="102.92625"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph5-1" x="79.72875" y="102.92625"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-3" x="93.8425" y="102.92625"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-10" x="0.000000000000035527" y="120.98375"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph4-4" x="47.16125" y="120.98375"/>
+ <use xlink:href="#glyph4-1" x="51.312693" y="120.98375"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-7" x="60.86" y="120.98375"/>
+ <use xlink:href="#glyph2-6" x="69.188291" y="120.98375"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph3-1" x="73.2525" y="120.98375"/>
+ <use xlink:href="#glyph3-2" x="76.9885" y="120.98375"/>
+ <use xlink:href="#glyph3-3" x="84.4605" y="120.98375"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph3-4" x="90.4381" y="120.98375"/>
+ <use xlink:href="#glyph3-1" x="97.1629" y="120.98375"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph6-1" x="106.8325" y="120.98375"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph6-1" x="115.0775" y="120.98375"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-7" x="127.1825" y="120.98375"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-11" x="0.000000000000014211" y="139.04125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-1" x="76.0325" y="139.04125"/>
+ <use xlink:href="#glyph0-2" x="87.551335" y="139.04125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-3" x="96.387722" y="139.04125"/>
+ <use xlink:href="#glyph0-4" x="105.221121" y="139.04125"/>
+ <use xlink:href="#glyph0-5" x="114.719527" y="139.04125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-2" x="125.876718" y="139.04125"/>
+ <use xlink:href="#glyph0-6" x="135.041873" y="139.04125"/>
+ <use xlink:href="#glyph0-7" x="144.04115" y="139.04125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-1" x="153.37125" y="139.04125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-1" x="159.06125" y="139.04125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-2" x="168.398261" y="139.04125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-3" x="174.958677" y="139.04125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-2" x="186.671784" y="139.04125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-7" x="193.217256" y="139.04125"/>
+ <use xlink:href="#glyph2-2" x="201.545548" y="139.04125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-5" x="208.105964" y="139.04125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-12" x="216.41875" y="139.04125"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-3" x="231.117668" y="139.04125"/>
+ <use xlink:href="#glyph1-2" x="238.434251" y="139.04125"/>
+</g>
+</g>
+</svg>
diff --git a/Master/texmf-dist/doc/latex/pseudo/doc/fig/readmefig.tex b/Master/texmf-dist/doc/latex/pseudo/doc/fig/readmefig.tex
new file mode 100644
index 00000000000..27a5778288a
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/pseudo/doc/fig/readmefig.tex
@@ -0,0 +1,16 @@
+\documentclass[preview,multi,12pt]{standalone}
+\usepackage{adjustbox}
+\usepackage[kw]{pseudo}
+\pseudoset{compact}
+
+\standaloneenv{myenv}
+
+\begin{document}
+
+\begin{myenv}
+\begin{adjustbox}{scale=1.25}
+\input{readmecode}
+\end{adjustbox}
+\end{myenv}
+
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/pseudo/doc/pseudo.pdf b/Master/texmf-dist/doc/latex/pseudo/doc/pseudo.pdf
index 4cdab2e88cf..3a92422f35e 100644
--- a/Master/texmf-dist/doc/latex/pseudo/doc/pseudo.pdf
+++ b/Master/texmf-dist/doc/latex/pseudo/doc/pseudo.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/pseudo/doc/pseudo.tex b/Master/texmf-dist/doc/latex/pseudo/doc/pseudo.tex
index a93daee46db..9148d16289c 100644
--- a/Master/texmf-dist/doc/latex/pseudo/doc/pseudo.tex
+++ b/Master/texmf-dist/doc/latex/pseudo/doc/pseudo.tex
@@ -28,6 +28,10 @@
\let\origbfseries\bfseries
\def\bfseries{\fontseries{b}\selectfont}
+\let\origtt\texttt
+\def\texttt#1{\textnormal{\origtt{#1}}}
+% Still getting warnings about OT1/cmtt/b/n ...
+
\usepackage{tikz}
\usetikzlibrary{matrix,calc,decorations.pathreplacing,calligraphy}
\tikzset{
@@ -290,7 +294,16 @@
\ior_map_inline:Nn \g_tmpa_ior {
- % Just using the first paragraph
+ % Skip the first paragraph
+ \regex_match:nnT { ##1 } { \c{par} } {
+ \ior_map_break:
+ }
+
+ }
+
+ \ior_map_inline:Nn \g_tmpa_ior {
+
+ % Just using the next paragraph
\regex_match:nnTF { ##1 } { \c{par} } {
\ior_map_break:
} {
@@ -1556,10 +1569,66 @@ vs.\
foo \kw{bar}
\end{pseudo*}
\end{texexp}
+ The initial value isn't \emph{quite} as straightforward as indicated,
+ however.
+ For more info, see \refc{kwfont}.
\end{docKey}
\begin{docCommand}{kwfont}{}
+ \parindent1.5em
+ \noindent
\fontcmd{kw}
+ Its initial definition is \emph{essentially}
+ \code{\cs{fontseries}\braces{b}\cs{selectfont}}, except the first time
+ it's called (normally when evaluating the initial value of
+ \refk{indent-text}), it also runs a check to see if the font selection
+ \emph{worked}, as in some cases (such as in a default
+ \pkg[https://ctan.org/pkg/beamer]{beamer} presentation), the non-extended
+ bold may not be available. In that case, it defaults to an extended bold
+ (\cs{bfseries}) instead. At this point, the command is redefined to
+ \code{\cs{fontseries}\braces{b}\cs{selectfont}} or \cs{bfseries}, as
+ appropriate (i.e., without this check). So, while
+ \code{\refc{kw}\braces{hello}} produces the non-extended \kw{hello} in a
+ default \LaTeX\ document, it yields the extended {\origbfseries\sffamily
+ hello} in a default \pkg[https://ctan.org/pkg/beamer]{beamer}
+ presentation. Perhaps more clearly, this is the result in plain \LaTeX\
+ (using \pkg[https://ctan.org/tex-archive/info/lmodern]{lmodern}):
+
+{\let\bfseries\origbfseries
+\begin{texexp}
+\textbf{while}\\ % Extended
+\kw{while}\\ % Keyword
+{\fontseries{b}\selectfont while} % Non-extended
+\end{texexp}
+}\ignorespaces\par
+
+ \noindent
+ The same code results in the the following in
+ \pkg[https://ctan.org/pkg/beamer]{beamer}:
+
+ \medskip\noindent
+ \includegraphics{kwfig}
+
+ \medskip\noindent
+ You'll also get a font warning,\footnote{Of course, if you use a different
+ font or theme, e.g., with the \pkg[https://ctan.org/pkg/beamer]{beamer}
+ command \code{\cs{usefonttheme}\braces{serif}}, you may not have any issues to
+ begin with.} though only once, as it's suppressed after the first occurrence,
+ so the fact that the font selection doesn't work on the last line isn't
+ reported. Note, however, that the current implementation of \refc{kwfont}
+ actually \emph{piggybacks} on this warning to determine if the non-extended
+ bold is available. This means that if you've tried (and failed) to use
+ \code{\cs{fontseries}\braces{b}} \emph{before} the fist use of \refc{kwfont},
+ the fallback (i.e., extended bold) won't be triggered.
+
+ Also note that \refk{indent-text} (which will tend to be the first
+ occurrence use of \refc{kwfont}) won't be evaluated (to determine
+ \refk{indent-length}) until you actually start a \refe{pseudo}
+ environment, so if you're \emph{aware} that you don't have non-extended
+ bold available, and you set \code*{\refk{kwfont} = \cs{bfseries}}, for
+ example, there will be no attempt to use the non-extended version, and you
+ won't get the font warning that the default implementation produces in
+ that case.
\end{docCommand}
\begin{docKey}{label}{\,=\,\meta{commands}}{%
@@ -2612,7 +2681,10 @@ which the current line is indented. The initial indent level may be set using
variants we'll need of some standard commands:
\begin{source}
\cs_generate_variant:Nn \tl_if_novalue:nTF { VTF }
+\cs_generate_variant:Nn \tl_set:Nn { Ne }
\cs_generate_variant:Nn \regex_extract_once:nnNTF { nVNTF }
+% \cs_generate_variant:Nn \regex_match:nnF { nVF }
+\cs_generate_variant:Nn \regex_match:nnF { neF }
\end{source}
\paragraph{Defining columns.} The \refk{preamble} is is configurable, but the
\pkg[https://ctan.org/pkg/array]{array} package makes sure it doesn't expand
@@ -2822,6 +2894,43 @@ commands:
(As a side-effect, we've now also defined \cs{pseudonf} and \cs{pseudotn},
which we don't really need.)
%
+While we're at it, we'll define the initial value for \refc{kwfont}, which is
+generally non-extended bold, if that's available, but extended bold otherwise:
+\begin{source}
+\cs_new:Nn \@@_b_or_bx: {
+
+ % Note: We're relying on the warning text in \@defaultsubs
+ % being defined by \selectfont if the desired font isn't
+ % found. This won't happen, however, if the same
+ % \curr@fontshape combination has been attempted before
+ % (cf. source2e.pdf page 179).
+
+ \group_begin:
+
+ \cs_if_exist:NT \@defaultsubs {
+ \@@_gsave_as:NN \@defaultsubs \@@_defaultsubs
+ \cs_gset_eq:NN \@defaultsubs \relax
+ }
+
+ % This is what we'd like:
+ \cs_gset:Nn \@@_b_or_bx: { \fontseries{b}\selectfont }
+
+ % Try it:
+ \@@_b_or_bx:
+
+ % Fallback, if that failed:
+ \cs_if_exist:NT \@defaultsubs {
+ \cs_gset_eq:NN \@@_b_or_bx: \bfseries
+ \group_insert_after:N \@@_b_or_bx:
+ }
+
+ \group_end:
+
+}
+\end{source}
+Note that the command redefines itself after the first use, so as not to
+execute the check every time.
+
The \refc{pr} command is also a font shortcut, but in addition takes optional
parenthesis-delimited arguments, which are set in math mode:
\begin{source}
@@ -3053,7 +3162,7 @@ typesetting the pseudocode.
indent-level .int_set:N = \l_@@_initial_indent_level_int,
kwfont .tl_set:N = \kwfont,
- kwfont .initial:n = \fontseries{b}\selectfont,
+ kwfont .initial:n = \@@_b_or_bx:,
kw .meta:n = { font = \kwfont },
kw .value_forbidden:n = true,
diff --git a/Master/texmf-dist/tex/latex/pseudo/pseudo.sty b/Master/texmf-dist/tex/latex/pseudo/pseudo.sty
index a81b379a57a..20859c819de 100644
--- a/Master/texmf-dist/tex/latex/pseudo/pseudo.sty
+++ b/Master/texmf-dist/tex/latex/pseudo/pseudo.sty
@@ -20,8 +20,8 @@
% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
% SOFTWARE.
%
-\def \pseudoversion {1.1.1}
-\def \pseudodate {2019-07-04}
+\def \pseudoversion {1.1.2}
+\def \pseudodate {2019-07-14}
\RequirePackage{expl3}
\ProvidesExplPackage
{pseudo}
@@ -43,7 +43,9 @@
\int_new:N \g__pseudo_indent_level_int
\int_new:N \l__pseudo_initial_indent_level_int
\cs_generate_variant:Nn \tl_if_novalue:nTF { VTF }
+\cs_generate_variant:Nn \tl_set:Nn { Ne }
\cs_generate_variant:Nn \regex_extract_once:nnNTF { nVNTF }
+\cs_generate_variant:Nn \regex_match:nnF { neF }
\cs_new:Nn \__pseudo_undef_col:n {
\tl_set_eq:cN { NC@find@ \token_to_str:N #1 } \scan_stop:
}
@@ -140,6 +142,20 @@
\__pseudo_new_cmd:Nnn \kw { m } { \textnormal {\kwfont { #1 } } }
\__pseudo_new_cmd:Nnn \cn { m } { \textnormal {\cnfont { #1 } } }
\__pseudo_new_cmd:Nnn \id { m } { \textnormal {\idfont { #1 } } }
+\cs_new:Nn \__pseudo_b_or_bx: {
+ \group_begin:
+ \cs_if_exist:NT \@defaultsubs {
+ \__pseudo_gsave_as:NN \@defaultsubs \__pseudo_defaultsubs
+ \cs_gset_eq:NN \@defaultsubs \relax
+ }
+ \cs_gset:Nn \__pseudo_b_or_bx: { \fontseries{b}\selectfont }
+ \__pseudo_b_or_bx:
+ \cs_if_exist:NT \@defaultsubs {
+ \cs_gset_eq:NN \__pseudo_b_or_bx: \bfseries
+ \group_insert_after:N \__pseudo_b_or_bx:
+ }
+ \group_end:
+}
\cs_new:Nn \__pseudo_fmt_pr:n {
\textnormal{\prfont{ #1 }}
}
@@ -270,7 +286,7 @@
indent-text .initial:n = { \pseudofont\kw{else}\ },
indent-level .int_set:N = \l__pseudo_initial_indent_level_int,
kwfont .tl_set:N = \kwfont,
- kwfont .initial:n = \fontseries{b}\selectfont,
+ kwfont .initial:n = \__pseudo_b_or_bx:,
kw .meta:n = { font = \kwfont },
kw .value_forbidden:n = true,
hl .meta:n = { bol-prepend = \pseudohl },