summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/CMakeLists.txt2
-rw-r--r--doc/arch.doc110
-rw-r--r--doc/archoverview.gifbin7822 -> 0 bytes
-rw-r--r--doc/archoverview.svg625
-rw-r--r--doc/install.doc24
5 files changed, 697 insertions, 64 deletions
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
index 032c16a..537089b 100644
--- a/doc/CMakeLists.txt
+++ b/doc/CMakeLists.txt
@@ -32,7 +32,7 @@ set(DOC_INSTALL_DIR "share/doc/packages/doxygen" CACHE STRING "Relative path whe
set(DOC_FILES
arch.doc
archoverview.eps
- archoverview.gif
+ archoverview.svg
autolink.doc
changelog.doc
commands.doc
diff --git a/doc/arch.doc b/doc/arch.doc
index bd51a1b..104b3e3 100644
--- a/doc/arch.doc
+++ b/doc/arch.doc
@@ -1,12 +1,12 @@
/******************************************************************************
*
- *
+ *
*
* Copyright (C) 1997-2015 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby
- * granted. No representations are made about the suitability of this software
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
@@ -22,7 +22,7 @@
The following picture shows how source files are processed by doxygen.
-\image html archoverview.gif "Data flow overview"
+\image html archoverview.svg "Data flow overview"
\image latex archoverview.eps "Data flow overview" width=14cm
The following sections explain the steps above in more detail.
@@ -30,20 +30,20 @@ The following sections explain the steps above in more detail.
<h3>Config parser</h3>
The configuration file that controls the settings of a project is parsed
-and the settings are stored in the singleton class \c Config
-in <code>src/config.h</code>. The parser itself is written using \c flex
-and can be found in <code>src/config.l</code>. This parser is also used
+and the settings are stored in the singleton class \c Config
+in <code>src/config.h</code>. The parser itself is written using \c flex
+and can be found in <code>src/config.l</code>. This parser is also used
directly by \c doxywizard, so it is put in a separate library.
-Each configuration option has one of 5 possible types: \c String,
+Each configuration option has one of 5 possible types: \c String,
\c List, \c Enum, \c Int, or \c Bool. The values of these options are
available through the global functions \c Config_getXXX(), where \c XXX is the
type of the option. The argument of these function is a string naming
-the option as it appears in the configuration file. For instance:
+the option as it appears in the configuration file. For instance:
\c Config_getBool("GENERATE_TESTLIST") returns a reference to a boolean
-value that is \c TRUE if the test list was enabled in the configuration file.
+value that is \c TRUE if the test list was enabled in the configuration file.
-The function \c readConfiguration() in \c src/doxygen.cpp
+The function \c readConfiguration() in \c src/doxygen.cpp
reads the command line options and then calls the configuration parser.
<h3>C Preprocessor</h3>
@@ -54,29 +54,29 @@ C Preprocessor (after being piped through a user defined filter if available).
The way the preprocessor works differs somewhat from a standard C Preprocessor.
By default it does not do macro expansion, although it can be configured to
expand all macros. Typical usage is to only expand a user specified set
-of macros. This is to allow macro names to appear in the type of
+of macros. This is to allow macro names to appear in the type of
function parameters for instance.
-Another difference is that the preprocessor parses, but not actually includes
+Another difference is that the preprocessor parses, but not actually includes
code when it encounters a \c \#include (with the exception of \c \#include
-found inside { ... } blocks). The reasons behind this deviation from
-the standard is to prevent feeding multiple definitions of the
-same functions/classes to doxygen's parser. If all source files would
-include a common header file for instance, the class and type
-definitions (and their documentation) would be present in each
-translation unit.
+found inside { ... } blocks). The reasons behind this deviation from
+the standard is to prevent feeding multiple definitions of the
+same functions/classes to doxygen's parser. If all source files would
+include a common header file for instance, the class and type
+definitions (and their documentation) would be present in each
+translation unit.
The preprocessor is written using \c flex and can be found in
-\c src/pre.l. For condition blocks (\c \#if) evaluation of constant expressions
-is needed. For this a \c yacc based parser is used, which can be found
+\c src/pre.l. For condition blocks (\c \#if) evaluation of constant expressions
+is needed. For this a \c yacc based parser is used, which can be found
in \c src/constexp.y and \c src/constexp.l.
-The preprocessor is invoked for each file using the \c preprocessFile()
-function declared in \c src/pre.h, and will append the preprocessed result
+The preprocessor is invoked for each file using the \c preprocessFile()
+function declared in \c src/pre.h, and will append the preprocessed result
to a character buffer. The format of the character buffer is
\verbatim
-0x06 file name 1
+0x06 file name 1
0x06 preprocessed contents of file 1
...
0x06 file name n
@@ -85,17 +85,17 @@ to a character buffer. The format of the character buffer is
<h3>Language parser</h3>
-The preprocessed input buffer is fed to the language parser, which is
-implemented as a big state machine using \c flex. It can be found
-in the file \c src/scanner.l. There is one parser for all
-languages (C/C++/Java/IDL). The state variables \c insideIDL
-and \c insideJava are uses at some places for language specific choices.
+The preprocessed input buffer is fed to the language parser, which is
+implemented as a big state machine using \c flex. It can be found
+in the file \c src/scanner.l. There is one parser for all
+languages (C/C++/Java/IDL). The state variables \c insideIDL
+and \c insideJava are uses at some places for language specific choices.
-The task of the parser is to convert the input buffer into a tree of entries
-(basically an abstract syntax tree). An entry is defined in \c src/entry.h
-and is a blob of loosely structured information. The most important field
+The task of the parser is to convert the input buffer into a tree of entries
+(basically an abstract syntax tree). An entry is defined in \c src/entry.h
+and is a blob of loosely structured information. The most important field
is \c section which specifies the kind of information contained in the entry.
-
+
Possible improvements for future versions:
- Use one scanner/parser per language instead of one big scanner.
- Move the first pass parsing of documentation blocks to a separate module.
@@ -104,8 +104,8 @@ Possible improvements for future versions:
<h3>Data organizer</h3>
-This step consists of many smaller steps, that build
-dictionaries of the extracted classes, files, namespaces,
+This step consists of many smaller steps, that build
+dictionaries of the extracted classes, files, namespaces,
variables, functions, packages, pages, and groups. Besides building
dictionaries, during this step relations (such as inheritance relations),
between the extracted entities are computed.
@@ -117,15 +117,15 @@ on the tree of entries, built during language parsing. Look at the
The result of this step is a number of dictionaries, which can be
found in the doxygen "namespace" defined in \c src/doxygen.h. Most
elements of these dictionaries are derived from the class \c Definition;
-The class \c MemberDef, for instance, holds all information for a member.
-An instance of such a class can be part of a file ( class \c FileDef ),
-a class ( class \c ClassDef ), a namespace ( class \c NamespaceDef ),
+The class \c MemberDef, for instance, holds all information for a member.
+An instance of such a class can be part of a file ( class \c FileDef ),
+a class ( class \c ClassDef ), a namespace ( class \c NamespaceDef ),
a group ( class \c GroupDef ), or a Java package ( class \c PackageDef ).
<h3>Tag file parser</h3>
If tag files are specified in the configuration file, these are parsed
-by a SAX based XML parser, which can be found in \c src/tagreader.cpp.
+by a SAX based XML parser, which can be found in \c src/tagreader.cpp.
The result of parsing a tag file is the insertion of \c Entry objects in the
entry tree. The field \c Entry::tagInfo is used to mark the entry as
external, and holds information about the tag file.
@@ -136,7 +136,7 @@ Special comment blocks are stored as strings in the entities that they
document. There is a string for the brief description and a string
for the detailed description. The documentation parser reads these
strings and executes the commands it finds in it (this is the second pass
-in parsing the documentation). It writes the result directly to the output
+in parsing the documentation). It writes the result directly to the output
generators.
The parser is written in C++ and can be found in \c src/docparser.cpp. The
@@ -144,7 +144,7 @@ tokens that are eaten by the parser come from \c src/doctokenizer.l.
Code fragments found in the comment blocks are passed on to the source parser.
The main entry point for the documentation parser is \c validatingParseDoc()
-declared in \c src/docparser.h. For simple texts with special
+declared in \c src/docparser.h. For simple texts with special
commands \c validatingParseText() is used.
<h3>Source parser</h3>
@@ -156,13 +156,13 @@ The code parser tries to cross-reference to source code it parses with
documented entities. It also does syntax highlighting of the sources. The
output is directly written to the output generators.
-The main entry point for the code parser is \c parseCode()
+The main entry point for the code parser is \c parseCode()
declared in \c src/code.h.
<h3>Output generators</h3>
-After data is gathered and cross-referenced, doxygen generates
-output in various formats. For this it uses the methods provided by
+After data is gathered and cross-referenced, doxygen generates
+output in various formats. For this it uses the methods provided by
the abstract class \c OutputGenerator. In order to generate output
for multiple formats at once, the methods of \c OutputList are called
instead. This class maintains a list of concrete output generators,
@@ -171,15 +171,15 @@ where each method called is delegated to all generators in the list.
To allow small deviations in what is written to the output for each
concrete output generator, it is possible to temporarily disable certain
generators. The OutputList class contains various \c disable() and \c enable()
-methods for this. The methods \c OutputList::pushGeneratorState() and
+methods for this. The methods \c OutputList::pushGeneratorState() and
\c OutputList::popGeneratorState() are used to temporarily save the
-set of enabled/disabled output generators on a stack.
+set of enabled/disabled output generators on a stack.
The XML is generated directly from the gathered data structures. In the
future XML will be used as an intermediate language (IL). The output
generators will then use this IL as a starting point to generate the
specific output formats. The advantage of having an IL is that various
-independently developed tools written in various languages,
+independently developed tools written in various languages,
could extract information from the XML output. Possible tools could be:
- an interactive source browser
- a class diagram generator
@@ -188,18 +188,18 @@ could extract information from the XML output. Possible tools could be:
<h3>Debugging</h3>
Since doxygen uses a lot of \c flex code it is important to understand
-how \c flex works (for this one should read the \c man page)
-and to understand what it is doing when \c flex is parsing some input.
+how \c flex works (for this one should read the \c man page)
+and to understand what it is doing when \c flex is parsing some input.
Fortunately, when \c flex is used with the `-d` option it outputs what rules
-matched. This makes it quite easy to follow what is going on for a
-particular input fragment.
+matched. This makes it quite easy to follow what is going on for a
+particular input fragment.
To make it easier to toggle debug information for a given \c flex file I
wrote the following \c perl script, which automatically adds or removes `-d`
from the correct line in the \c Makefile:
\verbatim
-#!/usr/bin/perl
+#!/usr/bin/perl
$file = shift @ARGV;
print "Toggle debugging mode for $file\n";
@@ -232,7 +232,7 @@ if (open(F,"<src/CMakeFiles/_doxygen.dir/build.make.old")) {
unlink "src/CMakeFiles/_doxygen.dir/build.make.old";
}
else {
- print STDERR "Warning file src/CMakeFiles/_doxygen.dir/build.make does not exist!\n";
+ print STDERR "Warning file src/CMakeFiles/_doxygen.dir/build.make does not exist!\n";
}
# touch the file
@@ -242,7 +242,7 @@ utime $now, $now, $file;
Another way to get rules matching / debugging information
from the \c flex code is setting \c LEX_FLAGS with \c make (`make LEX_FLAGS=-d`).
-Note that by running doxygen with `-d lex` you get information about which
+Note that by running doxygen with `-d lex` you get information about which
`flex codefile` is used.
<h3>Testing</h3>
@@ -258,7 +258,7 @@ Studio projects), e.g. `setenv TEST_FLAGS "--id 5 --id 7"` and `make tests`.
<h3>Doxyfile differences</h3>
-In case one has to communicate through e.g. a forum the configuration settings that
+In case one has to communicate through e.g. a forum the configuration settings that
are different from the standard doxygen configuration file settings one can run the
doxygen command: with the `-x` option and the name of the configuration file (default
is `Doxyfile`). The output will be a list of the not default settings (in `Doxyfile`
diff --git a/doc/archoverview.gif b/doc/archoverview.gif
deleted file mode 100644
index f404076..0000000
--- a/doc/archoverview.gif
+++ /dev/null
Binary files differ
diff --git a/doc/archoverview.svg b/doc/archoverview.svg
new file mode 100644
index 0000000..11a4340
--- /dev/null
+++ b/doc/archoverview.svg
@@ -0,0 +1,625 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="757" height="535" viewBox="0 0 842 595" version="1.1">
+<defs>
+<g>
+<symbol overflow="visible" id="glyph0-0">
+<path style="stroke:none;" d="M 0.40625 0 L 0.40625 -8.90625 L 7.46875 -8.90625 L 7.46875 0 Z M 6.34375 -1.109375 L 6.34375 -7.78125 L 1.515625 -7.78125 L 1.515625 -1.109375 Z M 6.34375 -1.109375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-1">
+<path style="stroke:none;" d="M 4.6875 -9.140625 C 5.820312 -9.140625 6.695312 -8.84375 7.3125 -8.25 C 7.9375 -7.65625 8.285156 -6.984375 8.359375 -6.234375 L 7.171875 -6.234375 C 7.046875 -6.804688 6.78125 -7.257812 6.375 -7.59375 C 5.976562 -7.925781 5.421875 -8.09375 4.703125 -8.09375 C 3.828125 -8.09375 3.117188 -7.785156 2.578125 -7.171875 C 2.046875 -6.554688 1.78125 -5.613281 1.78125 -4.34375 C 1.78125 -3.300781 2.019531 -2.453125 2.5 -1.796875 C 2.988281 -1.148438 3.71875 -0.828125 4.6875 -0.828125 C 5.570312 -0.828125 6.25 -1.171875 6.71875 -1.859375 C 6.957031 -2.210938 7.140625 -2.679688 7.265625 -3.265625 L 8.4375 -3.265625 C 8.332031 -2.328125 7.984375 -1.546875 7.390625 -0.921875 C 6.691406 -0.148438 5.738281 0.234375 4.53125 0.234375 C 3.5 0.234375 2.632812 -0.078125 1.9375 -0.703125 C 1.007812 -1.535156 0.546875 -2.816406 0.546875 -4.546875 C 0.546875 -5.859375 0.894531 -6.929688 1.59375 -7.765625 C 2.34375 -8.679688 3.375 -9.140625 4.6875 -9.140625 Z M 4.453125 -9.140625 Z M 4.453125 -9.140625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-2">
+<path style="stroke:none;" d="M 3.375 -0.703125 C 4.09375 -0.703125 4.585938 -0.972656 4.859375 -1.515625 C 5.128906 -2.066406 5.265625 -2.675781 5.265625 -3.34375 C 5.265625 -3.957031 5.164062 -4.453125 4.96875 -4.828125 C 4.664062 -5.421875 4.140625 -5.71875 3.390625 -5.71875 C 2.722656 -5.71875 2.238281 -5.460938 1.9375 -4.953125 C 1.632812 -4.453125 1.484375 -3.84375 1.484375 -3.125 C 1.484375 -2.425781 1.632812 -1.847656 1.9375 -1.390625 C 2.238281 -0.929688 2.71875 -0.703125 3.375 -0.703125 Z M 3.421875 -6.671875 C 4.253906 -6.671875 4.957031 -6.390625 5.53125 -5.828125 C 6.113281 -5.273438 6.40625 -4.457031 6.40625 -3.375 C 6.40625 -2.332031 6.148438 -1.46875 5.640625 -0.78125 C 5.128906 -0.101562 4.335938 0.234375 3.265625 0.234375 C 2.378906 0.234375 1.671875 -0.0664062 1.140625 -0.671875 C 0.617188 -1.273438 0.359375 -2.085938 0.359375 -3.109375 C 0.359375 -4.191406 0.632812 -5.054688 1.1875 -5.703125 C 1.738281 -6.347656 2.484375 -6.671875 3.421875 -6.671875 Z M 3.375 -6.640625 Z M 3.375 -6.640625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-3">
+<path style="stroke:none;" d="M 0.796875 -6.484375 L 1.828125 -6.484375 L 1.828125 -5.5625 C 2.140625 -5.945312 2.46875 -6.222656 2.8125 -6.390625 C 3.15625 -6.554688 3.535156 -6.640625 3.953125 -6.640625 C 4.878906 -6.640625 5.503906 -6.316406 5.828125 -5.671875 C 6.003906 -5.316406 6.09375 -4.8125 6.09375 -4.15625 L 6.09375 0 L 4.984375 0 L 4.984375 -4.09375 C 4.984375 -4.488281 4.921875 -4.804688 4.796875 -5.046875 C 4.609375 -5.453125 4.257812 -5.65625 3.75 -5.65625 C 3.488281 -5.65625 3.273438 -5.628906 3.109375 -5.578125 C 2.816406 -5.484375 2.554688 -5.304688 2.328125 -5.046875 C 2.140625 -4.828125 2.019531 -4.601562 1.96875 -4.375 C 1.914062 -4.144531 1.890625 -3.816406 1.890625 -3.390625 L 1.890625 0 L 0.796875 0 Z M 3.359375 -6.640625 Z M 3.359375 -6.640625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-4">
+<path style="stroke:none;" d="M 1.078125 -7.46875 C 1.085938 -7.925781 1.164062 -8.257812 1.3125 -8.46875 C 1.5625 -8.84375 2.050781 -9.03125 2.78125 -9.03125 C 2.851562 -9.03125 2.925781 -9.023438 3 -9.015625 C 3.070312 -9.015625 3.148438 -9.007812 3.234375 -9 L 3.234375 -8.015625 C 3.128906 -8.015625 3.050781 -8.015625 3 -8.015625 C 2.945312 -8.023438 2.898438 -8.03125 2.859375 -8.03125 C 2.523438 -8.03125 2.320312 -7.941406 2.25 -7.765625 C 2.1875 -7.597656 2.15625 -7.160156 2.15625 -6.453125 L 3.234375 -6.453125 L 3.234375 -5.59375 L 2.15625 -5.59375 L 2.15625 0 L 1.078125 0 L 1.078125 -5.59375 L 0.171875 -5.59375 L 0.171875 -6.453125 L 1.078125 -6.453125 Z M 1.078125 -7.46875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-5">
+<path style="stroke:none;" d="M 0.796875 -6.453125 L 1.90625 -6.453125 L 1.90625 0 L 0.796875 0 Z M 0.796875 -8.90625 L 1.90625 -8.90625 L 1.90625 -7.65625 L 0.796875 -7.65625 Z M 0.796875 -8.90625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-6">
+<path style="stroke:none;" d="M 3.09375 -6.609375 C 3.601562 -6.609375 4.046875 -6.484375 4.421875 -6.234375 C 4.628906 -6.085938 4.835938 -5.878906 5.046875 -5.609375 L 5.046875 -6.421875 L 6.0625 -6.421875 L 6.0625 -0.53125 C 6.0625 0.289062 5.9375 0.941406 5.6875 1.421875 C 5.238281 2.304688 4.382812 2.75 3.125 2.75 C 2.425781 2.75 1.835938 2.59375 1.359375 2.28125 C 0.890625 1.96875 0.625 1.476562 0.5625 0.8125 L 1.671875 0.8125 C 1.722656 1.09375 1.832031 1.316406 2 1.484375 C 2.238281 1.722656 2.625 1.84375 3.15625 1.84375 C 3.988281 1.84375 4.535156 1.546875 4.796875 0.953125 C 4.953125 0.609375 5.023438 -0.0078125 5.015625 -0.90625 C 4.796875 -0.570312 4.53125 -0.320312 4.21875 -0.15625 C 3.914062 0 3.507812 0.078125 3 0.078125 C 2.300781 0.078125 1.6875 -0.171875 1.15625 -0.671875 C 0.632812 -1.171875 0.375 -1.992188 0.375 -3.140625 C 0.375 -4.234375 0.640625 -5.082031 1.171875 -5.6875 C 1.703125 -6.300781 2.34375 -6.609375 3.09375 -6.609375 Z M 5.046875 -3.265625 C 5.046875 -4.078125 4.878906 -4.675781 4.546875 -5.0625 C 4.222656 -5.445312 3.804688 -5.640625 3.296875 -5.640625 C 2.523438 -5.640625 2 -5.28125 1.71875 -4.5625 C 1.5625 -4.175781 1.484375 -3.671875 1.484375 -3.046875 C 1.484375 -2.316406 1.628906 -1.757812 1.921875 -1.375 C 2.222656 -1 2.625 -0.8125 3.125 -0.8125 C 3.914062 -0.8125 4.46875 -1.164062 4.78125 -1.875 C 4.957031 -2.269531 5.046875 -2.734375 5.046875 -3.265625 Z M 3.21875 -6.640625 Z M 3.21875 -6.640625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-7">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph0-8">
+<path style="stroke:none;" d="M 3.53125 -0.734375 C 4.039062 -0.734375 4.460938 -0.945312 4.796875 -1.375 C 5.140625 -1.800781 5.3125 -2.4375 5.3125 -3.28125 C 5.3125 -3.800781 5.238281 -4.242188 5.09375 -4.609375 C 4.8125 -5.328125 4.289062 -5.6875 3.53125 -5.6875 C 2.78125 -5.6875 2.265625 -5.3125 1.984375 -4.5625 C 1.835938 -4.15625 1.765625 -3.640625 1.765625 -3.015625 C 1.765625 -2.515625 1.835938 -2.085938 1.984375 -1.734375 C 2.265625 -1.066406 2.78125 -0.734375 3.53125 -0.734375 Z M 0.71875 -6.453125 L 1.78125 -6.453125 L 1.78125 -5.59375 C 2 -5.894531 2.234375 -6.125 2.484375 -6.28125 C 2.859375 -6.519531 3.289062 -6.640625 3.78125 -6.640625 C 4.519531 -6.640625 5.144531 -6.359375 5.65625 -5.796875 C 6.164062 -5.234375 6.421875 -4.429688 6.421875 -3.390625 C 6.421875 -1.972656 6.050781 -0.960938 5.3125 -0.359375 C 4.84375 0.0234375 4.300781 0.21875 3.6875 0.21875 C 3.195312 0.21875 2.785156 0.109375 2.453125 -0.109375 C 2.253906 -0.222656 2.039062 -0.429688 1.8125 -0.734375 L 1.8125 2.59375 L 0.71875 2.59375 Z M 0.71875 -6.453125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-9">
+<path style="stroke:none;" d="M 1.640625 -1.71875 C 1.640625 -1.40625 1.753906 -1.15625 1.984375 -0.96875 C 2.210938 -0.789062 2.484375 -0.703125 2.796875 -0.703125 C 3.179688 -0.703125 3.550781 -0.789062 3.90625 -0.96875 C 4.519531 -1.269531 4.828125 -1.753906 4.828125 -2.421875 L 4.828125 -3.296875 C 4.691406 -3.210938 4.515625 -3.140625 4.296875 -3.078125 C 4.085938 -3.023438 3.882812 -2.988281 3.6875 -2.96875 L 3.03125 -2.890625 C 2.632812 -2.835938 2.335938 -2.753906 2.140625 -2.640625 C 1.804688 -2.441406 1.640625 -2.132812 1.640625 -1.71875 Z M 4.28125 -3.9375 C 4.53125 -3.96875 4.695312 -4.070312 4.78125 -4.25 C 4.832031 -4.34375 4.859375 -4.484375 4.859375 -4.671875 C 4.859375 -5.035156 4.722656 -5.300781 4.453125 -5.46875 C 4.191406 -5.632812 3.8125 -5.71875 3.3125 -5.71875 C 2.75 -5.71875 2.347656 -5.566406 2.109375 -5.265625 C 1.972656 -5.097656 1.882812 -4.84375 1.84375 -4.5 L 0.828125 -4.5 C 0.847656 -5.300781 1.109375 -5.859375 1.609375 -6.171875 C 2.109375 -6.484375 2.6875 -6.640625 3.34375 -6.640625 C 4.101562 -6.640625 4.722656 -6.492188 5.203125 -6.203125 C 5.671875 -5.910156 5.90625 -5.460938 5.90625 -4.859375 L 5.90625 -1.109375 C 5.90625 -0.992188 5.925781 -0.898438 5.96875 -0.828125 C 6.019531 -0.765625 6.125 -0.734375 6.28125 -0.734375 C 6.320312 -0.734375 6.375 -0.734375 6.4375 -0.734375 C 6.5 -0.742188 6.566406 -0.757812 6.640625 -0.78125 L 6.640625 0.03125 C 6.460938 0.0820312 6.328125 0.113281 6.234375 0.125 C 6.148438 0.132812 6.03125 0.140625 5.875 0.140625 C 5.5 0.140625 5.226562 0.00390625 5.0625 -0.265625 C 4.976562 -0.398438 4.914062 -0.597656 4.875 -0.859375 C 4.65625 -0.566406 4.335938 -0.3125 3.921875 -0.09375 C 3.503906 0.113281 3.046875 0.21875 2.546875 0.21875 C 1.941406 0.21875 1.445312 0.0351562 1.0625 -0.328125 C 0.6875 -0.691406 0.5 -1.148438 0.5 -1.703125 C 0.5 -2.304688 0.6875 -2.769531 1.0625 -3.09375 C 1.4375 -3.425781 1.925781 -3.632812 2.53125 -3.71875 Z M 3.375 -6.640625 Z M 3.375 -6.640625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-10">
+<path style="stroke:none;" d="M 0.828125 -6.484375 L 1.859375 -6.484375 L 1.859375 -5.359375 C 1.953125 -5.578125 2.160156 -5.84375 2.484375 -6.15625 C 2.816406 -6.476562 3.203125 -6.640625 3.640625 -6.640625 C 3.660156 -6.640625 3.691406 -6.632812 3.734375 -6.625 C 3.785156 -6.625 3.867188 -6.617188 3.984375 -6.609375 L 3.984375 -5.453125 C 3.921875 -5.460938 3.859375 -5.46875 3.796875 -5.46875 C 3.742188 -5.476562 3.6875 -5.484375 3.625 -5.484375 C 3.082031 -5.484375 2.660156 -5.304688 2.359375 -4.953125 C 2.066406 -4.597656 1.921875 -4.191406 1.921875 -3.734375 L 1.921875 0 L 0.828125 0 Z M 0.828125 -6.484375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-11">
+<path style="stroke:none;" d="M 1.453125 -2.03125 C 1.484375 -1.664062 1.570312 -1.390625 1.71875 -1.203125 C 1.988281 -0.847656 2.46875 -0.671875 3.15625 -0.671875 C 3.550781 -0.671875 3.898438 -0.757812 4.203125 -0.9375 C 4.515625 -1.113281 4.671875 -1.382812 4.671875 -1.75 C 4.671875 -2.03125 4.550781 -2.242188 4.3125 -2.390625 C 4.15625 -2.472656 3.84375 -2.578125 3.375 -2.703125 L 2.515625 -2.90625 C 1.953125 -3.050781 1.539062 -3.207031 1.28125 -3.375 C 0.8125 -3.664062 0.578125 -4.070312 0.578125 -4.59375 C 0.578125 -5.207031 0.796875 -5.703125 1.234375 -6.078125 C 1.679688 -6.460938 2.28125 -6.65625 3.03125 -6.65625 C 4.007812 -6.65625 4.710938 -6.367188 5.140625 -5.796875 C 5.410156 -5.429688 5.539062 -5.039062 5.53125 -4.625 L 4.5 -4.625 C 4.488281 -4.863281 4.40625 -5.085938 4.25 -5.296875 C 4 -5.578125 3.5625 -5.71875 2.9375 -5.71875 C 2.53125 -5.71875 2.21875 -5.640625 2 -5.484375 C 1.789062 -5.328125 1.6875 -5.117188 1.6875 -4.859375 C 1.6875 -4.578125 1.828125 -4.351562 2.109375 -4.1875 C 2.265625 -4.082031 2.503906 -3.992188 2.828125 -3.921875 L 3.546875 -3.75 C 4.328125 -3.550781 4.851562 -3.363281 5.125 -3.1875 C 5.539062 -2.914062 5.75 -2.476562 5.75 -1.875 C 5.75 -1.300781 5.53125 -0.800781 5.09375 -0.375 C 4.65625 0.0390625 3.988281 0.25 3.09375 0.25 C 2.125 0.25 1.4375 0.03125 1.03125 -0.40625 C 0.632812 -0.84375 0.425781 -1.382812 0.40625 -2.03125 Z M 3.0625 -6.640625 Z M 3.0625 -6.640625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-12">
+<path style="stroke:none;" d="M 3.5 -6.640625 C 3.957031 -6.640625 4.398438 -6.53125 4.828125 -6.3125 C 5.265625 -6.09375 5.597656 -5.8125 5.828125 -5.46875 C 6.046875 -5.144531 6.191406 -4.765625 6.265625 -4.328125 C 6.328125 -4.023438 6.359375 -3.546875 6.359375 -2.890625 L 1.609375 -2.890625 C 1.628906 -2.234375 1.785156 -1.707031 2.078125 -1.3125 C 2.367188 -0.914062 2.816406 -0.71875 3.421875 -0.71875 C 3.992188 -0.71875 4.445312 -0.90625 4.78125 -1.28125 C 4.976562 -1.5 5.117188 -1.75 5.203125 -2.03125 L 6.265625 -2.03125 C 6.242188 -1.789062 6.148438 -1.523438 5.984375 -1.234375 C 5.828125 -0.941406 5.648438 -0.703125 5.453125 -0.515625 C 5.117188 -0.191406 4.707031 0.0234375 4.21875 0.140625 C 3.957031 0.203125 3.660156 0.234375 3.328125 0.234375 C 2.523438 0.234375 1.84375 -0.0546875 1.28125 -0.640625 C 0.71875 -1.234375 0.4375 -2.0625 0.4375 -3.125 C 0.4375 -4.164062 0.71875 -5.007812 1.28125 -5.65625 C 1.84375 -6.3125 2.582031 -6.640625 3.5 -6.640625 Z M 5.234375 -3.765625 C 5.191406 -4.234375 5.09375 -4.609375 4.9375 -4.890625 C 4.632812 -5.421875 4.132812 -5.6875 3.4375 -5.6875 C 2.9375 -5.6875 2.515625 -5.503906 2.171875 -5.140625 C 1.835938 -4.773438 1.660156 -4.316406 1.640625 -3.765625 Z M 3.390625 -6.640625 Z M 3.390625 -6.640625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-13">
+<path style="stroke:none;" d="M 0.9375 -8.90625 L 2.15625 -8.90625 L 2.15625 -1.0625 L 6.65625 -1.0625 L 6.65625 0 L 0.9375 0 Z M 0.9375 -8.90625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-14">
+<path style="stroke:none;" d="M 1.890625 -6.484375 L 1.890625 -2.1875 C 1.890625 -1.851562 1.941406 -1.582031 2.046875 -1.375 C 2.242188 -0.976562 2.601562 -0.78125 3.125 -0.78125 C 3.882812 -0.78125 4.40625 -1.125 4.6875 -1.8125 C 4.832031 -2.164062 4.90625 -2.660156 4.90625 -3.296875 L 4.90625 -6.484375 L 6 -6.484375 L 6 0 L 4.96875 0 L 4.984375 -0.953125 C 4.835938 -0.710938 4.660156 -0.503906 4.453125 -0.328125 C 4.035156 0.00390625 3.53125 0.171875 2.9375 0.171875 C 2.007812 0.171875 1.378906 -0.132812 1.046875 -0.75 C 0.867188 -1.082031 0.78125 -1.523438 0.78125 -2.078125 L 0.78125 -6.484375 Z M 3.390625 -6.640625 Z M 3.390625 -6.640625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-15">
+<path style="stroke:none;" d="M 1.0625 -8.90625 L 5.0625 -8.90625 C 5.851562 -8.90625 6.488281 -8.679688 6.96875 -8.234375 C 7.457031 -7.785156 7.703125 -7.15625 7.703125 -6.34375 C 7.703125 -5.65625 7.484375 -5.050781 7.046875 -4.53125 C 6.617188 -4.019531 5.957031 -3.765625 5.0625 -3.765625 L 2.265625 -3.765625 L 2.265625 0 L 1.0625 0 Z M 6.484375 -6.34375 C 6.484375 -7 6.242188 -7.441406 5.765625 -7.671875 C 5.492188 -7.796875 5.128906 -7.859375 4.671875 -7.859375 L 2.265625 -7.859375 L 2.265625 -4.78125 L 4.671875 -4.78125 C 5.203125 -4.78125 5.632812 -4.894531 5.96875 -5.125 C 6.3125 -5.351562 6.484375 -5.757812 6.484375 -6.34375 Z M 6.484375 -6.34375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-16">
+<path style="stroke:none;" d="M 3.296875 -6.671875 C 4.023438 -6.671875 4.617188 -6.492188 5.078125 -6.140625 C 5.535156 -5.785156 5.8125 -5.175781 5.90625 -4.3125 L 4.859375 -4.3125 C 4.785156 -4.707031 4.632812 -5.035156 4.40625 -5.296875 C 4.175781 -5.566406 3.804688 -5.703125 3.296875 -5.703125 C 2.609375 -5.703125 2.113281 -5.363281 1.8125 -4.6875 C 1.613281 -4.238281 1.515625 -3.691406 1.515625 -3.046875 C 1.515625 -2.398438 1.648438 -1.851562 1.921875 -1.40625 C 2.203125 -0.96875 2.640625 -0.75 3.234375 -0.75 C 3.679688 -0.75 4.035156 -0.882812 4.296875 -1.15625 C 4.566406 -1.4375 4.753906 -1.816406 4.859375 -2.296875 L 5.90625 -2.296875 C 5.789062 -1.429688 5.488281 -0.800781 5 -0.40625 C 4.519531 -0.0078125 3.898438 0.1875 3.140625 0.1875 C 2.296875 0.1875 1.617188 -0.117188 1.109375 -0.734375 C 0.609375 -1.359375 0.359375 -2.132812 0.359375 -3.0625 C 0.359375 -4.207031 0.632812 -5.09375 1.1875 -5.71875 C 1.738281 -6.351562 2.441406 -6.671875 3.296875 -6.671875 Z M 3.125 -6.640625 Z M 3.125 -6.640625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-17">
+<path style="stroke:none;" d="M 0.96875 -8.90625 L 2.1875 -8.90625 L 2.1875 -5.21875 L 6.828125 -5.21875 L 6.828125 -8.90625 L 8.03125 -8.90625 L 8.03125 0 L 6.828125 0 L 6.828125 -4.15625 L 2.1875 -4.15625 L 2.1875 0 L 0.96875 0 Z M 0.96875 -8.90625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-18">
+<path style="stroke:none;" d="M 7.421875 -8.90625 L 7.421875 -7.84375 L 4.421875 -7.84375 L 4.421875 0 L 3.203125 0 L 3.203125 -7.84375 L 0.203125 -7.84375 L 0.203125 -8.90625 Z M 7.421875 -8.90625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-19">
+<path style="stroke:none;" d="M 0.921875 -8.90625 L 2.640625 -8.90625 L 5.203125 -1.375 L 7.734375 -8.90625 L 9.4375 -8.90625 L 9.4375 0 L 8.296875 0 L 8.296875 -5.25 C 8.296875 -5.4375 8.300781 -5.738281 8.3125 -6.15625 C 8.320312 -6.570312 8.328125 -7.019531 8.328125 -7.5 L 5.78125 0 L 4.59375 0 L 2.03125 -7.5 L 2.03125 -7.234375 C 2.03125 -7.015625 2.035156 -6.679688 2.046875 -6.234375 C 2.054688 -5.785156 2.0625 -5.457031 2.0625 -5.25 L 2.0625 0 L 0.921875 0 Z M 0.921875 -8.90625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-20">
+<path style="stroke:none;" d="M 1.703125 0 L 0.25 0 L 3.4375 -4.5625 L 0.453125 -8.90625 L 1.96875 -8.90625 L 4.234375 -5.5 L 6.484375 -8.90625 L 7.921875 -8.90625 L 4.9375 -4.5625 L 8.0625 0 L 6.578125 0 L 4.171875 -3.65625 Z M 1.703125 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-21">
+<path style="stroke:none;" d="M 5.078125 -4.828125 C 5.648438 -4.828125 6.097656 -4.9375 6.421875 -5.15625 C 6.753906 -5.382812 6.921875 -5.796875 6.921875 -6.390625 C 6.921875 -7.015625 6.691406 -7.445312 6.234375 -7.6875 C 5.984375 -7.800781 5.648438 -7.859375 5.234375 -7.859375 L 2.296875 -7.859375 L 2.296875 -4.828125 Z M 1.09375 -8.90625 L 5.203125 -8.90625 C 5.890625 -8.90625 6.453125 -8.804688 6.890625 -8.609375 C 7.722656 -8.222656 8.140625 -7.519531 8.140625 -6.5 C 8.140625 -5.96875 8.03125 -5.53125 7.8125 -5.1875 C 7.59375 -4.851562 7.285156 -4.582031 6.890625 -4.375 C 7.234375 -4.226562 7.492188 -4.039062 7.671875 -3.8125 C 7.847656 -3.582031 7.945312 -3.210938 7.96875 -2.703125 L 8.015625 -1.5 C 8.023438 -1.164062 8.050781 -0.914062 8.09375 -0.75 C 8.164062 -0.46875 8.296875 -0.285156 8.484375 -0.203125 L 8.484375 0 L 7 0 C 6.957031 -0.0703125 6.925781 -0.171875 6.90625 -0.296875 C 6.882812 -0.421875 6.863281 -0.65625 6.84375 -1 L 6.765625 -2.484375 C 6.742188 -3.066406 6.53125 -3.457031 6.125 -3.65625 C 5.894531 -3.757812 5.535156 -3.8125 5.046875 -3.8125 L 2.296875 -3.8125 L 2.296875 0 L 1.09375 0 Z M 1.09375 -8.90625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-22">
+<path style="stroke:none;" d="M 1.0625 -8.90625 L 7.234375 -8.90625 L 7.234375 -7.8125 L 2.265625 -7.8125 L 2.265625 -5.109375 L 6.640625 -5.109375 L 6.640625 -4.046875 L 2.265625 -4.046875 L 2.265625 0 L 1.0625 0 Z M 1.0625 -8.90625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-23">
+<path style="stroke:none;" d="M 1.015625 -8.296875 L 2.125 -8.296875 L 2.125 -6.484375 L 3.15625 -6.484375 L 3.15625 -5.59375 L 2.125 -5.59375 L 2.125 -1.359375 C 2.125 -1.140625 2.195312 -0.988281 2.34375 -0.90625 C 2.4375 -0.863281 2.582031 -0.84375 2.78125 -0.84375 C 2.832031 -0.84375 2.882812 -0.84375 2.9375 -0.84375 C 3 -0.84375 3.070312 -0.847656 3.15625 -0.859375 L 3.15625 0 C 3.03125 0.03125 2.898438 0.0546875 2.765625 0.078125 C 2.628906 0.0976562 2.484375 0.109375 2.328125 0.109375 C 1.816406 0.109375 1.46875 -0.0195312 1.28125 -0.28125 C 1.101562 -0.539062 1.015625 -0.878906 1.015625 -1.296875 L 1.015625 -5.59375 L 0.140625 -5.59375 L 0.140625 -6.484375 L 1.015625 -6.484375 Z M 1.015625 -8.296875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-24">
+<path style="stroke:none;" d="M 4.859375 -6.484375 L 6.0625 -6.484375 C 5.90625 -6.066406 5.5625 -5.117188 5.03125 -3.640625 C 4.632812 -2.523438 4.304688 -1.617188 4.046875 -0.921875 C 3.410156 0.734375 2.960938 1.742188 2.703125 2.109375 C 2.441406 2.472656 2 2.65625 1.375 2.65625 C 1.21875 2.65625 1.097656 2.648438 1.015625 2.640625 C 0.929688 2.628906 0.832031 2.609375 0.71875 2.578125 L 0.71875 1.578125 C 0.90625 1.628906 1.039062 1.660156 1.125 1.671875 C 1.207031 1.691406 1.28125 1.703125 1.34375 1.703125 C 1.550781 1.703125 1.703125 1.664062 1.796875 1.59375 C 1.890625 1.53125 1.96875 1.445312 2.03125 1.34375 C 2.050781 1.3125 2.125 1.144531 2.25 0.84375 C 2.375 0.550781 2.46875 0.332031 2.53125 0.1875 L 0.125 -6.484375 L 1.359375 -6.484375 L 3.109375 -1.203125 Z M 3.09375 -6.640625 Z M 3.09375 -6.640625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-25">
+<path style="stroke:none;" d="M 0.828125 -8.90625 L 1.921875 -8.90625 L 1.921875 0 L 0.828125 0 Z M 0.828125 -8.90625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-26">
+<path style="stroke:none;" d="M 1.484375 -3.171875 C 1.484375 -2.472656 1.628906 -1.890625 1.921875 -1.421875 C 2.222656 -0.953125 2.695312 -0.71875 3.34375 -0.71875 C 3.851562 -0.71875 4.269531 -0.929688 4.59375 -1.359375 C 4.914062 -1.796875 5.078125 -2.421875 5.078125 -3.234375 C 5.078125 -4.054688 4.910156 -4.664062 4.578125 -5.0625 C 4.242188 -5.457031 3.832031 -5.65625 3.34375 -5.65625 C 2.789062 -5.65625 2.34375 -5.441406 2 -5.015625 C 1.65625 -4.597656 1.484375 -3.984375 1.484375 -3.171875 Z M 3.125 -6.609375 C 3.625 -6.609375 4.039062 -6.5 4.375 -6.28125 C 4.570312 -6.164062 4.796875 -5.957031 5.046875 -5.65625 L 5.046875 -8.921875 L 6.09375 -8.921875 L 6.09375 0 L 5.109375 0 L 5.109375 -0.90625 C 4.847656 -0.5 4.546875 -0.207031 4.203125 -0.03125 C 3.859375 0.144531 3.460938 0.234375 3.015625 0.234375 C 2.285156 0.234375 1.65625 -0.0664062 1.125 -0.671875 C 0.601562 -1.285156 0.34375 -2.097656 0.34375 -3.109375 C 0.34375 -4.054688 0.582031 -4.875 1.0625 -5.5625 C 1.539062 -6.257812 2.226562 -6.609375 3.125 -6.609375 Z M 3.125 -6.609375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-27">
+<path style="stroke:none;" d="M 1.328125 -6.484375 L 3.0625 -1.203125 L 4.875 -6.484375 L 6.0625 -6.484375 L 3.625 0 L 2.453125 0 L 0.0625 -6.484375 Z M 1.328125 -6.484375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-28">
+<path style="stroke:none;" d="M 4.359375 -1.03125 C 4.765625 -1.03125 5.097656 -1.070312 5.359375 -1.15625 C 5.828125 -1.3125 6.210938 -1.613281 6.515625 -2.0625 C 6.753906 -2.425781 6.925781 -2.890625 7.03125 -3.453125 C 7.09375 -3.785156 7.125 -4.09375 7.125 -4.375 C 7.125 -5.476562 6.90625 -6.332031 6.46875 -6.9375 C 6.03125 -7.550781 5.320312 -7.859375 4.34375 -7.859375 L 2.21875 -7.859375 L 2.21875 -1.03125 Z M 1 -8.90625 L 4.609375 -8.90625 C 5.828125 -8.90625 6.773438 -8.46875 7.453125 -7.59375 C 8.054688 -6.8125 8.359375 -5.804688 8.359375 -4.578125 C 8.359375 -3.640625 8.179688 -2.785156 7.828125 -2.015625 C 7.191406 -0.671875 6.113281 0 4.59375 0 L 1 0 Z M 1 -8.90625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-29">
+<path style="stroke:none;" d="M 1.734375 -2.875 C 1.765625 -2.363281 1.882812 -1.953125 2.09375 -1.640625 C 2.488281 -1.046875 3.191406 -0.75 4.203125 -0.75 C 4.648438 -0.75 5.0625 -0.816406 5.4375 -0.953125 C 6.15625 -1.203125 6.515625 -1.648438 6.515625 -2.296875 C 6.515625 -2.773438 6.363281 -3.117188 6.0625 -3.328125 C 5.757812 -3.535156 5.28125 -3.710938 4.625 -3.859375 L 3.421875 -4.125 C 2.628906 -4.300781 2.070312 -4.5 1.75 -4.71875 C 1.175781 -5.09375 0.890625 -5.648438 0.890625 -6.390625 C 0.890625 -7.179688 1.164062 -7.832031 1.71875 -8.34375 C 2.28125 -8.863281 3.066406 -9.125 4.078125 -9.125 C 5.003906 -9.125 5.796875 -8.894531 6.453125 -8.4375 C 7.109375 -7.988281 7.4375 -7.269531 7.4375 -6.28125 L 6.296875 -6.28125 C 6.234375 -6.757812 6.101562 -7.128906 5.90625 -7.390625 C 5.539062 -7.847656 4.921875 -8.078125 4.046875 -8.078125 C 3.328125 -8.078125 2.8125 -7.925781 2.5 -7.625 C 2.195312 -7.332031 2.046875 -6.988281 2.046875 -6.59375 C 2.046875 -6.15625 2.226562 -5.835938 2.59375 -5.640625 C 2.820312 -5.503906 3.359375 -5.34375 4.203125 -5.15625 L 5.453125 -4.859375 C 6.054688 -4.722656 6.519531 -4.535156 6.84375 -4.296875 C 7.40625 -3.878906 7.6875 -3.273438 7.6875 -2.484375 C 7.6875 -1.503906 7.328125 -0.800781 6.609375 -0.375 C 5.898438 0.0507812 5.070312 0.265625 4.125 0.265625 C 3.007812 0.265625 2.140625 -0.0195312 1.515625 -0.59375 C 0.890625 -1.144531 0.582031 -1.90625 0.59375 -2.875 Z M 4.171875 -9.140625 Z M 4.171875 -9.140625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-30">
+<path style="stroke:none;" d="M 4.78125 -9.140625 C 6.351562 -9.140625 7.519531 -8.632812 8.28125 -7.625 C 8.863281 -6.84375 9.15625 -5.835938 9.15625 -4.609375 C 9.15625 -3.273438 8.816406 -2.171875 8.140625 -1.296875 C 7.347656 -0.253906 6.222656 0.265625 4.765625 0.265625 C 3.390625 0.265625 2.3125 -0.1875 1.53125 -1.09375 C 0.832031 -1.96875 0.484375 -3.070312 0.484375 -4.40625 C 0.484375 -5.601562 0.78125 -6.632812 1.375 -7.5 C 2.144531 -8.59375 3.28125 -9.140625 4.78125 -9.140625 Z M 4.90625 -0.8125 C 5.96875 -0.8125 6.734375 -1.191406 7.203125 -1.953125 C 7.679688 -2.722656 7.921875 -3.597656 7.921875 -4.578125 C 7.921875 -5.628906 7.644531 -6.472656 7.09375 -7.109375 C 6.550781 -7.742188 5.804688 -8.0625 4.859375 -8.0625 C 3.941406 -8.0625 3.191406 -7.742188 2.609375 -7.109375 C 2.023438 -6.484375 1.734375 -5.554688 1.734375 -4.328125 C 1.734375 -3.335938 1.984375 -2.503906 2.484375 -1.828125 C 2.984375 -1.148438 3.789062 -0.8125 4.90625 -0.8125 Z M 4.828125 -9.140625 Z M 4.828125 -9.140625 "/>
+</symbol>
+</g>
+<clipPath id="clip1">
+ <path d="M 60 23 L 758 23 L 758 590.925781 L 60 590.925781 Z M 60 23 "/>
+</clipPath>
+<clipPath id="clip2">
+ <path d="M 5 263 L 69 263 L 69 264 L 5 264 Z M 5 263 "/>
+</clipPath>
+<clipPath id="clip3">
+ <path d="M 0 3.984375 L 841.953125 3.984375 L 841.953125 590.925781 L 0 590.925781 Z M 59.503906 261.546875 L 67.773438 263.613281 L 59.503906 265.679688 L 68.808594 265.679688 L 68.808594 261.546875 "/>
+</clipPath>
+<clipPath id="clip4">
+ <path d="M 191 263 L 255 263 L 255 264 L 191 264 Z M 191 263 "/>
+</clipPath>
+<clipPath id="clip5">
+ <path d="M 0 3.984375 L 841.953125 3.984375 L 841.953125 590.925781 L 0 590.925781 Z M 245.59375 261.546875 L 253.863281 263.613281 L 245.59375 265.679688 L 254.898438 265.679688 L 254.898438 261.546875 "/>
+</clipPath>
+<clipPath id="clip6">
+ <path d="M 563 263 L 627 263 L 627 264 L 563 264 Z M 563 263 "/>
+</clipPath>
+<clipPath id="clip7">
+ <path d="M 0 3.984375 L 841.953125 3.984375 L 841.953125 590.925781 L 0 590.925781 Z M 617.773438 261.546875 L 626.042969 263.613281 L 617.773438 265.679688 L 627.078125 265.679688 L 627.078125 261.546875 "/>
+</clipPath>
+<clipPath id="clip8">
+ <path d="M 737 204 L 799 204 L 799 246 L 737 246 Z M 737 204 "/>
+</clipPath>
+<clipPath id="clip9">
+ <path d="M 0 3.984375 L 841.953125 3.984375 L 841.953125 590.925781 L 0 590.925781 Z M 783.253906 214.128906 L 791.457031 211.921875 L 785.253906 217.78125 L 793.386719 213.230469 L 791.386719 209.578125 "/>
+</clipPath>
+<clipPath id="clip10">
+ <path d="M 742 245 L 799 245 L 799 271 L 742 271 Z M 742 245 "/>
+</clipPath>
+<clipPath id="clip11">
+ <path d="M 0 3.984375 L 841.953125 3.984375 L 841.953125 590.925781 L 0 590.925781 Z M 782.910156 253.273438 L 791.457031 253.273438 L 783.945312 257.273438 L 792.972656 254.996094 L 791.941406 251 "/>
+</clipPath>
+<clipPath id="clip12">
+ <path d="M 732 297 L 799 297 L 799 333 L 732 333 Z M 732 297 "/>
+</clipPath>
+<clipPath id="clip13">
+ <path d="M 0 3.984375 L 841.953125 3.984375 L 841.953125 590.925781 L 0 590.925781 Z M 784.566406 320.679688 L 791.457031 325.644531 L 782.980469 324.472656 L 791.664062 327.917969 L 793.179688 324.128906 "/>
+</clipPath>
+<clipPath id="clip14">
+ <path d="M 742 271 L 799 271 L 799 297 L 742 297 Z M 742 271 "/>
+</clipPath>
+<clipPath id="clip15">
+ <path d="M 0 3.984375 L 841.953125 3.984375 L 841.953125 590.925781 L 0 590.925781 Z M 783.945312 285.460938 L 791.457031 289.460938 L 782.910156 289.460938 L 791.941406 291.734375 L 792.972656 287.734375 "/>
+</clipPath>
+<clipPath id="clip16">
+ <path d="M 501 170 L 792 170 L 792 202 L 501 202 Z M 501 170 "/>
+</clipPath>
+<clipPath id="clip17">
+ <path d="M 0 3.984375 L 841.953125 3.984375 L 841.953125 590.925781 L 0 590.925781 Z M 783.1875 168.5 L 791.457031 170.566406 L 783.1875 172.636719 L 792.492188 172.636719 L 792.492188 168.5 "/>
+</clipPath>
+<clipPath id="clip18">
+ <path d="M 563 330 L 689 330 L 689 533 L 563 533 Z M 563 330 "/>
+</clipPath>
+<clipPath id="clip19">
+ <path d="M 0 3.984375 L 841.953125 3.984375 L 841.953125 590.925781 L 0 590.925781 Z M 686.007812 339.082031 L 688.074219 330.8125 L 690.140625 339.082031 L 690.140625 329.777344 L 686.007812 329.777344 "/>
+</clipPath>
+<clipPath id="clip20">
+ <path d="M 269 4.007812 L 270 4.007812 L 270 32 L 269 32 Z M 269 4.007812 "/>
+</clipPath>
+<clipPath id="clip21">
+ <path d="M 0 3.984375 L 841.953125 3.984375 L 841.953125 590.925781 L 0 590.925781 Z M 271.4375 22.730469 L 269.371094 31 L 267.304688 22.730469 L 267.304688 32.035156 L 271.4375 32.035156 "/>
+</clipPath>
+<clipPath id="clip22">
+ <path d="M 129 92 L 208 92 L 208 202 L 129 202 Z M 129 92 "/>
+</clipPath>
+<clipPath id="clip23">
+ <path d="M 0 3.984375 L 841.953125 3.984375 L 841.953125 590.925781 L 0 590.925781 Z M 199.070312 90.964844 L 207.339844 93.03125 L 199.070312 95.097656 L 208.375 95.097656 L 208.375 90.964844 "/>
+</clipPath>
+<clipPath id="clip24">
+ <path d="M 331 87 L 487 87 L 487 202 L 331 202 Z M 331 87 "/>
+</clipPath>
+<clipPath id="clip25">
+ <path d="M 0 3.984375 L 841.953125 3.984375 L 841.953125 590.925781 L 0 590.925781 Z M 339.671875 89.929688 L 331.402344 87.863281 L 339.671875 85.792969 L 330.367188 85.792969 L 330.367188 89.929688 "/>
+</clipPath>
+<clipPath id="clip26">
+ <path d="M 300 149 L 301 149 L 301 202 L 300 202 Z M 300 149 "/>
+</clipPath>
+<clipPath id="clip27">
+ <path d="M 0 3.984375 L 841.953125 3.984375 L 841.953125 590.925781 L 0 590.925781 Z M 298.320312 158.164062 L 300.386719 149.890625 L 302.453125 158.164062 L 302.453125 148.859375 L 298.320312 148.859375 "/>
+</clipPath>
+<clipPath id="clip28">
+ <path d="M 129 325 L 451 325 L 451 533 L 129 533 Z M 129 325 "/>
+</clipPath>
+<clipPath id="clip29">
+ <path d="M 0 3.984375 L 841.953125 3.984375 L 841.953125 590.925781 L 0 590.925781 Z M 442.019531 530.34375 L 450.292969 532.410156 L 442.019531 534.476562 L 451.324219 534.476562 L 451.324219 530.34375 "/>
+</clipPath>
+<clipPath id="clip30">
+ <path d="M 377 263 L 441 263 L 441 264 L 377 264 Z M 377 263 "/>
+</clipPath>
+<clipPath id="clip31">
+ <path d="M 0 3.984375 L 841.953125 3.984375 L 841.953125 590.925781 L 0 590.925781 Z M 431.683594 261.546875 L 439.953125 263.613281 L 431.683594 265.679688 L 440.988281 265.679688 L 440.988281 261.546875 "/>
+</clipPath>
+<clipPath id="clip32">
+ <path d="M 360 302 L 468 302 L 468 401 L 360 401 Z M 360 302 "/>
+</clipPath>
+<clipPath id="clip33">
+ <path d="M 0 3.984375 L 841.953125 3.984375 L 841.953125 590.925781 L 0 590.925781 Z M 453.046875 314.0625 L 460.628906 310.136719 L 455.804688 317.164062 L 462.765625 310.960938 L 460.011719 307.929688 "/>
+</clipPath>
+<clipPath id="clip34">
+ <path d="M 501 325 L 503 325 L 503 476 L 501 476 Z M 501 325 "/>
+</clipPath>
+<clipPath id="clip35">
+ <path d="M 0 3.984375 L 841.953125 3.984375 L 841.953125 590.925781 L 0 590.925781 Z M 504.050781 467.277344 L 501.984375 475.550781 L 499.914062 467.277344 L 499.914062 476.582031 L 504.050781 476.582031 "/>
+</clipPath>
+<clipPath id="clip36">
+ <path d="M 536 302 L 587 302 L 587 375 L 536 375 Z M 536 302 "/>
+</clipPath>
+<clipPath id="clip37">
+ <path d="M 0 3.984375 L 841.953125 3.984375 L 841.953125 590.925781 L 0 590.925781 Z M 576.832031 358.933594 L 579.519531 366.996094 L 573.316406 361.136719 L 578.347656 368.996094 L 581.796875 366.789062 "/>
+</clipPath>
+<clipPath id="clip38">
+ <path d="M 541 452 L 582 452 L 582 499 L 541 499 Z M 541 452 "/>
+</clipPath>
+<clipPath id="clip39">
+ <path d="M 0 3.984375 L 841.953125 3.984375 L 841.953125 590.925781 L 0 590.925781 Z M 555.398438 486.023438 L 548.507812 491.054688 L 552.226562 483.40625 L 546.230469 490.503906 L 549.402344 493.191406 "/>
+</clipPath>
+<clipPath id="clip40">
+ <path d="M 634 323 L 675 323 L 675 375 L 634 375 Z M 634 323 "/>
+</clipPath>
+<clipPath id="clip41">
+ <path d="M 0 3.984375 L 841.953125 3.984375 L 841.953125 590.925781 L 0 590.925781 Z M 660.917969 336.328125 L 667.398438 330.8125 L 664.296875 338.738281 L 669.671875 331.15625 L 666.292969 328.746094 "/>
+</clipPath>
+</defs>
+<g id="surface1">
+<g clip-path="url(#clip1)" clip-rule="nonzero">
+<path style="fill:none;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 288.538486 433.499501 C 288.538486 403.693493 264.34682 379.498427 234.540812 379.498427 C 204.731403 379.498427 180.539738 403.693493 180.539738 433.499501 C 180.539738 463.30891 204.731403 487.500575 234.540812 487.500575 C 264.34682 487.500575 288.538486 463.30891 288.538486 433.499501 Z M 328.981482 284.999948 C 328.981482 255.190538 304.786416 230.998873 274.980407 230.998873 C 245.170998 230.998873 220.979333 255.190538 220.979333 284.999948 C 220.979333 314.809357 245.170998 339.001022 274.980407 339.001022 C 304.786416 339.001022 328.981482 314.809357 328.981482 284.999948 Z M 652.981126 280.558801 C 652.981126 250.752793 628.789461 226.561128 598.980052 226.561128 C 569.170643 226.561128 544.978977 250.752793 544.978977 280.558801 C 544.978977 310.36821 569.170643 334.559876 598.980052 334.559876 C 628.789461 334.559876 652.981126 310.36821 652.981126 280.558801 Z M 167.100679 285.118968 C 167.100679 255.312959 142.909014 231.121294 113.099605 231.121294 C 83.293597 231.121294 59.098531 255.312959 59.098531 285.118968 C 59.098531 314.928377 83.293597 339.120042 113.099605 339.120042 C 142.909014 339.120042 167.100679 314.928377 167.100679 285.118968 Z M 490.981304 50.819596 C 490.981304 23.098138 468.479723 0.599957 440.761665 0.599957 C 413.040207 0.599957 390.538625 23.098138 390.538625 50.819596 C 390.538625 78.541055 413.040207 101.039235 440.761665 101.039235 C 468.479723 101.039235 490.981304 78.541055 490.981304 50.819596 Z M 328.981482 139.741138 C 328.981482 110.363602 305.136675 86.518795 275.759138 86.518795 C 246.381602 86.518795 222.540195 110.363602 222.540195 139.741138 C 222.540195 169.118675 246.381602 192.960081 275.759138 192.960081 C 305.136675 192.960081 328.981482 169.118675 328.981482 139.741138 Z M 581.698348 150.058472 C 581.698348 122.340415 559.200167 99.838833 531.478709 99.838833 C 503.760651 99.838833 481.25907 122.340415 481.25907 150.058472 C 481.25907 177.77993 503.760651 200.281512 531.478709 200.281512 C 559.200167 200.281512 581.698348 177.77993 581.698348 150.058472 Z M 490.981304 284.999948 C 490.981304 255.190538 466.789639 230.998873 436.980229 230.998873 C 407.17082 230.998873 382.979155 255.190538 382.979155 284.999948 C 382.979155 314.809357 407.17082 339.001022 436.980229 339.001022 C 466.789639 339.001022 490.981304 314.809357 490.981304 284.999948 Z M 490.981304 284.999948 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+</g>
+<g clip-path="url(#clip2)" clip-rule="nonzero">
+<g clip-path="url(#clip3)" clip-rule="nonzero">
+<path style="fill:none;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 4.99884 284.999948 L 58.999914 284.999948 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+</g>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 51.800905 286.79885 L 58.999914 284.999948 L 51.800905 283.201045 Z M 51.800905 286.79885 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+<g clip-path="url(#clip4)" clip-rule="nonzero">
+<g clip-path="url(#clip5)" clip-rule="nonzero">
+<path style="fill:none;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 166.998662 284.999948 L 220.999736 284.999948 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+</g>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 213.800727 286.79885 L 220.999736 284.999948 L 213.800727 283.201045 Z M 213.800727 286.79885 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+<g clip-path="url(#clip6)" clip-rule="nonzero">
+<g clip-path="url(#clip7)" clip-rule="nonzero">
+<path style="fill:none;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 490.998307 284.999948 L 544.999381 284.999948 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+</g>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 537.800371 286.79885 L 544.999381 284.999948 L 537.800371 283.201045 Z M 537.800371 286.79885 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+<g clip-path="url(#clip8)" clip-rule="nonzero">
+<g clip-path="url(#clip9)" clip-rule="nonzero">
+<path style="fill:none;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 648.499173 307.501529 L 688.999978 329.999709 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+</g>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 681.858778 328.078386 L 688.999978 329.999709 L 683.599871 324.898852 L 682.69872 326.520925 Z M 681.858778 328.078386 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+<g clip-path="url(#clip10)" clip-rule="nonzero">
+<g clip-path="url(#clip11)" clip-rule="nonzero">
+<path style="fill:none;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 653.001529 284.999948 L 688.999978 294.00126 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+</g>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 681.559528 294.00126 L 688.999978 294.00126 L 682.46068 290.519075 L 682.039009 292.260168 Z M 681.559528 294.00126 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+<g clip-path="url(#clip12)" clip-rule="nonzero">
+<g clip-path="url(#clip13)" clip-rule="nonzero">
+<path style="fill:none;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 644.000217 249.001498 L 688.999978 230.998873 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+</g>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 683.00137 235.321 L 688.999978 230.998873 L 681.620738 232.019045 L 682.34166 233.698927 Z M 683.00137 235.321 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+<g clip-path="url(#clip14)" clip-rule="nonzero">
+<g clip-path="url(#clip15)" clip-rule="nonzero">
+<path style="fill:none;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 653.001529 271.499679 L 688.999978 262.498366 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+</g>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 682.46068 265.980552 L 688.999978 262.498366 L 681.559528 262.498366 L 682.039009 264.239459 Z M 682.46068 265.980552 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+<g clip-path="url(#clip16)" clip-rule="nonzero">
+<g clip-path="url(#clip17)" clip-rule="nonzero">
+<path style="fill:none;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 437.000633 339.001022 L 437.000633 366.001559 L 688.999978 366.001559 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+</g>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 681.800969 367.800461 L 688.999978 366.001559 L 681.800969 364.199256 Z M 681.800969 367.800461 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+<g clip-path="url(#clip18)" clip-rule="nonzero">
+<g clip-path="url(#clip19)" clip-rule="nonzero">
+<path style="fill:none;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 490.998307 50.999827 L 599.000455 50.999827 L 599.000455 226.499917 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+</g>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 597.201553 219.300908 L 599.000455 226.499917 L 600.799357 219.300908 Z M 597.201553 219.300908 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+<g clip-path="url(#clip20)" clip-rule="nonzero">
+<g clip-path="url(#clip21)" clip-rule="nonzero">
+<path style="fill:none;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 234.500005 509.998756 L 234.500005 487.500575 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+</g>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 236.298907 494.699585 L 234.500005 487.500575 L 232.701103 494.699585 Z M 236.298907 494.699585 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+<g clip-path="url(#clip22)" clip-rule="nonzero">
+<g clip-path="url(#clip23)" clip-rule="nonzero">
+<path style="fill:none;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:3.6;stroke-miterlimit:10;" d="M 180.498931 433.499501 L 113.000989 433.499501 L 113.000989 339.001022 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+</g>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 173.299921 435.298403 L 180.498931 433.499501 L 173.299921 431.700599 Z M 173.299921 435.298403 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+<g clip-path="url(#clip24)" clip-rule="nonzero">
+<g clip-path="url(#clip25)" clip-rule="nonzero">
+<path style="fill:none;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:3.6;stroke-miterlimit:10;" d="M 288.501079 437.998457 L 423.500364 437.998457 L 423.500364 339.001022 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+</g>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 295.700089 436.199555 L 288.501079 437.998457 L 295.700089 439.80076 Z M 295.700089 436.199555 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+<g clip-path="url(#clip26)" clip-rule="nonzero">
+<g clip-path="url(#clip27)" clip-rule="nonzero">
+<path style="fill:none;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:3.6;stroke-miterlimit:10;" d="M 261.500542 384.000783 L 261.500542 339.001022 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+</g>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 259.70164 376.798373 L 261.500542 384.000783 L 263.299444 376.798373 Z M 259.70164 376.798373 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+<path style="fill:none;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:3.6;stroke-miterlimit:10;" d="M 423.500364 437.998457 L 599.000455 437.998457 L 599.000455 334.498665 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+<g clip-path="url(#clip28)" clip-rule="nonzero">
+<g clip-path="url(#clip29)" clip-rule="nonzero">
+<path style="fill:none;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 113.000989 230.998873 L 113.000989 50.999827 L 392.000871 50.999827 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+</g>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 384.798461 52.798729 L 392.000871 50.999827 L 384.798461 49.200924 Z M 384.798461 52.798729 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+<g clip-path="url(#clip30)" clip-rule="nonzero">
+<g clip-path="url(#clip31)" clip-rule="nonzero">
+<path style="fill:none;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 328.998484 284.999948 L 382.999559 284.999948 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+</g>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 375.800549 286.79885 L 382.999559 284.999948 L 375.800549 283.201045 Z M 375.800549 286.79885 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+<g clip-path="url(#clip32)" clip-rule="nonzero">
+<g clip-path="url(#clip33)" clip-rule="nonzero">
+<path style="fill:none;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 320.000572 172.498843 L 400.998783 244.499142 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+</g>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 394.401675 241.081568 L 400.998783 244.499142 L 396.799077 238.381514 L 395.598676 239.700936 Z M 394.401675 241.081568 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+<g clip-path="url(#clip34)" clip-rule="nonzero">
+<g clip-path="url(#clip35)" clip-rule="nonzero">
+<path style="fill:none;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 437.000633 100.498544 L 437.000633 230.998873 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+</g>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 438.799535 107.700955 L 437.000633 100.498544 L 435.19833 107.700955 Z M 438.799535 107.700955 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+<g clip-path="url(#clip36)" clip-rule="nonzero">
+<g clip-path="url(#clip37)" clip-rule="nonzero">
+<path style="fill:none;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 472.999082 244.499142 L 504.498575 195.000424 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+</g>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 502.158982 202.019204 L 504.498575 195.000424 L 499.098468 200.101281 L 500.65933 201.060242 Z M 502.158982 202.019204 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+<g clip-path="url(#clip38)" clip-rule="nonzero">
+<g clip-path="url(#clip39)" clip-rule="nonzero">
+<path style="fill:none;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 499.999619 113.998813 L 477.501439 87.001676 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+</g>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 483.500047 91.381612 L 477.501439 87.001676 L 480.738783 93.659995 Z M 483.500047 91.381612 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+<g clip-path="url(#clip40)" clip-rule="nonzero">
+<g clip-path="url(#clip41)" clip-rule="nonzero">
+<path style="fill:none;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 558.499649 195.000424 L 581.001231 226.499917 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+</g>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.45;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 575.359683 221.69831 L 581.001231 226.499917 L 578.301177 219.600158 L 576.801525 220.620329 Z M 575.359683 221.69831 " transform="matrix(1.148704,0,0,-1.148704,0,590.993861)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-1" x="233.186912" y="93.030677"/>
+ <use xlink:href="#glyph0-2" x="242.144046" y="93.030677"/>
+ <use xlink:href="#glyph0-3" x="249.041784" y="93.030677"/>
+ <use xlink:href="#glyph0-4" x="255.939522" y="93.030677"/>
+ <use xlink:href="#glyph0-5" x="259.388391" y="93.030677"/>
+ <use xlink:href="#glyph0-6" x="262.142523" y="93.030677"/>
+ <use xlink:href="#glyph0-7" x="269.040261" y="93.030677"/>
+ <use xlink:href="#glyph0-8" x="272.48913" y="93.030677"/>
+ <use xlink:href="#glyph0-9" x="279.386868" y="93.030677"/>
+ <use xlink:href="#glyph0-10" x="286.284606" y="93.030677"/>
+ <use xlink:href="#glyph0-11" x="290.415805" y="93.030677"/>
+ <use xlink:href="#glyph0-12" x="296.618806" y="93.030677"/>
+ <use xlink:href="#glyph0-10" x="303.516544" y="93.030677"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-13" x="269.371547" y="268.782848"/>
+ <use xlink:href="#glyph0-9" x="276.269285" y="268.782848"/>
+ <use xlink:href="#glyph0-3" x="283.167023" y="268.782848"/>
+ <use xlink:href="#glyph0-6" x="290.064761" y="268.782848"/>
+ <use xlink:href="#glyph0-14" x="296.962499" y="268.782848"/>
+ <use xlink:href="#glyph0-9" x="303.860236" y="268.782848"/>
+ <use xlink:href="#glyph0-6" x="310.757974" y="268.782848"/>
+ <use xlink:href="#glyph0-12" x="317.655712" y="268.782848"/>
+ <use xlink:href="#glyph0-7" x="324.55345" y="268.782848"/>
+ <use xlink:href="#glyph0-8" x="328.002319" y="268.782848"/>
+ <use xlink:href="#glyph0-9" x="334.900056" y="268.782848"/>
+ <use xlink:href="#glyph0-10" x="341.797794" y="268.782848"/>
+ <use xlink:href="#glyph0-11" x="345.928993" y="268.782848"/>
+ <use xlink:href="#glyph0-12" x="352.131995" y="268.782848"/>
+ <use xlink:href="#glyph0-10" x="359.029733" y="268.782848"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-1" x="83.281454" y="268.782848"/>
+ <use xlink:href="#glyph0-7" x="92.238588" y="268.782848"/>
+ <use xlink:href="#glyph0-15" x="95.687457" y="268.782848"/>
+ <use xlink:href="#glyph0-10" x="103.962261" y="268.782848"/>
+ <use xlink:href="#glyph0-12" x="108.09346" y="268.782848"/>
+ <use xlink:href="#glyph0-8" x="114.991198" y="268.782848"/>
+ <use xlink:href="#glyph0-10" x="121.888935" y="268.782848"/>
+ <use xlink:href="#glyph0-2" x="126.020135" y="268.782848"/>
+ <use xlink:href="#glyph0-16" x="132.917872" y="268.782848"/>
+ <use xlink:href="#glyph0-12" x="139.120874" y="268.782848"/>
+ <use xlink:href="#glyph0-11" x="146.018612" y="268.782848"/>
+ <use xlink:href="#glyph0-11" x="152.221613" y="268.782848"/>
+ <use xlink:href="#glyph0-2" x="158.424615" y="268.782848"/>
+ <use xlink:href="#glyph0-10" x="165.322353" y="268.782848"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-17" x="801.796196" y="217.090709"/>
+ <use xlink:href="#glyph0-18" x="810.75333" y="217.090709"/>
+ <use xlink:href="#glyph0-19" x="818.333398" y="217.090709"/>
+ <use xlink:href="#glyph0-13" x="828.667599" y="217.090709"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-13" x="801.796196" y="258.443594"/>
+ <use xlink:href="#glyph0-9" x="808.693934" y="258.443594"/>
+ <use xlink:href="#glyph0-18" x="815.591672" y="258.443594"/>
+ <use xlink:href="#glyph0-12" x="823.17174" y="258.443594"/>
+ <use xlink:href="#glyph0-20" x="830.069477" y="258.443594"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-21" x="801.796196" y="294.628229"/>
+ <use xlink:href="#glyph0-18" x="810.75333" y="294.628229"/>
+ <use xlink:href="#glyph0-22" x="818.333398" y="294.628229"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-20" x="801.796196" y="175.737824"/>
+ <use xlink:href="#glyph0-19" x="810.071" y="175.737824"/>
+ <use xlink:href="#glyph0-13" x="820.405201" y="175.737824"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-5" x="202.173168" y="284.290352"/>
+ <use xlink:href="#glyph0-3" x="204.9273" y="284.290352"/>
+ <use xlink:href="#glyph0-8" x="211.825038" y="284.290352"/>
+ <use xlink:href="#glyph0-14" x="218.722776" y="284.290352"/>
+ <use xlink:href="#glyph0-23" x="225.620514" y="284.290352"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-11" x="202.173168" y="299.797856"/>
+ <use xlink:href="#glyph0-23" x="208.376169" y="299.797856"/>
+ <use xlink:href="#glyph0-10" x="211.825038" y="299.797856"/>
+ <use xlink:href="#glyph0-5" x="215.956237" y="299.797856"/>
+ <use xlink:href="#glyph0-3" x="218.71037" y="299.797856"/>
+ <use xlink:href="#glyph0-6" x="225.608108" y="299.797856"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-12" x="388.263216" y="284.290352"/>
+ <use xlink:href="#glyph0-3" x="395.160953" y="284.290352"/>
+ <use xlink:href="#glyph0-23" x="402.058691" y="284.290352"/>
+ <use xlink:href="#glyph0-10" x="405.50756" y="284.290352"/>
+ <use xlink:href="#glyph0-24" x="409.638759" y="284.290352"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-23" x="388.263216" y="299.797856"/>
+ <use xlink:href="#glyph0-10" x="391.712084" y="299.797856"/>
+ <use xlink:href="#glyph0-12" x="395.843284" y="299.797856"/>
+ <use xlink:href="#glyph0-12" x="402.741021" y="299.797856"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-5" x="0.575593" y="248.105717"/>
+ <use xlink:href="#glyph0-3" x="3.329725" y="248.105717"/>
+ <use xlink:href="#glyph0-8" x="10.227463" y="248.105717"/>
+ <use xlink:href="#glyph0-14" x="17.125201" y="248.105717"/>
+ <use xlink:href="#glyph0-23" x="24.022939" y="248.105717"/>
+ <use xlink:href="#glyph0-7" x="27.471808" y="248.105717"/>
+ <use xlink:href="#glyph0-4" x="30.920676" y="248.105717"/>
+ <use xlink:href="#glyph0-5" x="34.369545" y="248.105717"/>
+ <use xlink:href="#glyph0-25" x="37.123678" y="248.105717"/>
+ <use xlink:href="#glyph0-12" x="39.877811" y="248.105717"/>
+ <use xlink:href="#glyph0-11" x="46.775549" y="248.105717"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-19" x="801.796196" y="330.812864"/>
+ <use xlink:href="#glyph0-9" x="812.130397" y="330.812864"/>
+ <use xlink:href="#glyph0-3" x="819.028135" y="330.812864"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-16" x="284.879051" y="25.832297"/>
+ <use xlink:href="#glyph0-2" x="291.082053" y="25.832297"/>
+ <use xlink:href="#glyph0-3" x="297.979791" y="25.832297"/>
+ <use xlink:href="#glyph0-4" x="304.877529" y="25.832297"/>
+ <use xlink:href="#glyph0-5" x="308.326398" y="25.832297"/>
+ <use xlink:href="#glyph0-6" x="311.08053" y="25.832297"/>
+ <use xlink:href="#glyph0-7" x="317.978268" y="25.832297"/>
+ <use xlink:href="#glyph0-4" x="321.427137" y="25.832297"/>
+ <use xlink:href="#glyph0-5" x="324.876006" y="25.832297"/>
+ <use xlink:href="#glyph0-25" x="327.630139" y="25.832297"/>
+ <use xlink:href="#glyph0-12" x="330.384271" y="25.832297"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-26" x="512.321984" y="351.489881"/>
+ <use xlink:href="#glyph0-10" x="519.219722" y="351.489881"/>
+ <use xlink:href="#glyph0-5" x="523.350921" y="351.489881"/>
+ <use xlink:href="#glyph0-27" x="526.105054" y="351.489881"/>
+ <use xlink:href="#glyph0-12" x="532.308055" y="351.489881"/>
+ <use xlink:href="#glyph0-11" x="539.205793" y="351.489881"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-26" x="574.352" y="253.275344"/>
+ <use xlink:href="#glyph0-10" x="581.249738" y="253.275344"/>
+ <use xlink:href="#glyph0-5" x="585.380937" y="253.275344"/>
+ <use xlink:href="#glyph0-27" x="588.13507" y="253.275344"/>
+ <use xlink:href="#glyph0-12" x="594.338071" y="253.275344"/>
+ <use xlink:href="#glyph0-11" x="601.235809" y="253.275344"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-6" x="134.972261" y="191.245328"/>
+ <use xlink:href="#glyph0-12" x="141.869998" y="191.245328"/>
+ <use xlink:href="#glyph0-23" x="148.767736" y="191.245328"/>
+ <use xlink:href="#glyph0-7" x="152.216605" y="191.245328"/>
+ <use xlink:href="#glyph0-11" x="155.665474" y="191.245328"/>
+ <use xlink:href="#glyph0-12" x="161.868475" y="191.245328"/>
+ <use xlink:href="#glyph0-23" x="168.766213" y="191.245328"/>
+ <use xlink:href="#glyph0-23" x="172.215082" y="191.245328"/>
+ <use xlink:href="#glyph0-5" x="175.663951" y="191.245328"/>
+ <use xlink:href="#glyph0-3" x="178.418084" y="191.245328"/>
+ <use xlink:href="#glyph0-6" x="185.315822" y="191.245328"/>
+ <use xlink:href="#glyph0-11" x="192.213559" y="191.245328"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-12" x="424.445324" y="356.658245"/>
+ <use xlink:href="#glyph0-3" x="431.343062" y="356.658245"/>
+ <use xlink:href="#glyph0-23" x="438.240799" y="356.658245"/>
+ <use xlink:href="#glyph0-10" x="441.689668" y="356.658245"/>
+ <use xlink:href="#glyph0-24" x="445.820867" y="356.658245"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-23" x="424.445324" y="372.165749"/>
+ <use xlink:href="#glyph0-10" x="427.894193" y="372.165749"/>
+ <use xlink:href="#glyph0-12" x="432.025392" y="372.165749"/>
+ <use xlink:href="#glyph0-12" x="438.92313" y="372.165749"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-26" x="620.873248" y="341.150741"/>
+ <use xlink:href="#glyph0-10" x="627.770986" y="341.150741"/>
+ <use xlink:href="#glyph0-5" x="631.902185" y="341.150741"/>
+ <use xlink:href="#glyph0-27" x="634.656318" y="341.150741"/>
+ <use xlink:href="#glyph0-12" x="640.85932" y="341.150741"/>
+ <use xlink:href="#glyph0-11" x="647.757057" y="341.150741"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-26" x="564.01286" y="491.056199"/>
+ <use xlink:href="#glyph0-10" x="570.910598" y="491.056199"/>
+ <use xlink:href="#glyph0-5" x="575.041797" y="491.056199"/>
+ <use xlink:href="#glyph0-27" x="577.795929" y="491.056199"/>
+ <use xlink:href="#glyph0-12" x="583.998931" y="491.056199"/>
+ <use xlink:href="#glyph0-11" x="590.896669" y="491.056199"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-23" x="279.70816" y="434.195765"/>
+ <use xlink:href="#glyph0-9" x="283.157029" y="434.195765"/>
+ <use xlink:href="#glyph0-6" x="290.054767" y="434.195765"/>
+ <use xlink:href="#glyph0-7" x="296.952505" y="434.195765"/>
+ <use xlink:href="#glyph0-4" x="300.401374" y="434.195765"/>
+ <use xlink:href="#glyph0-5" x="303.850243" y="434.195765"/>
+ <use xlink:href="#glyph0-25" x="306.604375" y="434.195765"/>
+ <use xlink:href="#glyph0-12" x="309.358508" y="434.195765"/>
+ <use xlink:href="#glyph0-7" x="316.256246" y="434.195765"/>
+ <use xlink:href="#glyph0-8" x="319.705115" y="434.195765"/>
+ <use xlink:href="#glyph0-9" x="326.602853" y="434.195765"/>
+ <use xlink:href="#glyph0-10" x="333.50059" y="434.195765"/>
+ <use xlink:href="#glyph0-11" x="337.631789" y="434.195765"/>
+ <use xlink:href="#glyph0-12" x="343.834791" y="434.195765"/>
+ <use xlink:href="#glyph0-10" x="350.732529" y="434.195765"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-28" x="579.520364" y="423.857888"/>
+ <use xlink:href="#glyph0-2" x="588.477498" y="423.857888"/>
+ <use xlink:href="#glyph0-16" x="595.375236" y="423.857888"/>
+ <use xlink:href="#glyph0-7" x="601.578238" y="423.857888"/>
+ <use xlink:href="#glyph0-15" x="605.027106" y="423.857888"/>
+ <use xlink:href="#glyph0-9" x="613.301911" y="423.857888"/>
+ <use xlink:href="#glyph0-10" x="620.199648" y="423.857888"/>
+ <use xlink:href="#glyph0-11" x="624.330847" y="423.857888"/>
+ <use xlink:href="#glyph0-12" x="630.533849" y="423.857888"/>
+ <use xlink:href="#glyph0-10" x="637.431587" y="423.857888"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-29" x="465.798208" y="537.579952"/>
+ <use xlink:href="#glyph0-2" x="474.073013" y="537.579952"/>
+ <use xlink:href="#glyph0-14" x="480.97075" y="537.579952"/>
+ <use xlink:href="#glyph0-10" x="487.868488" y="537.579952"/>
+ <use xlink:href="#glyph0-16" x="491.999687" y="537.579952"/>
+ <use xlink:href="#glyph0-12" x="498.202689" y="537.579952"/>
+ <use xlink:href="#glyph0-7" x="505.100427" y="537.579952"/>
+ <use xlink:href="#glyph0-15" x="508.549295" y="537.579952"/>
+ <use xlink:href="#glyph0-9" x="516.8241" y="537.579952"/>
+ <use xlink:href="#glyph0-10" x="523.721837" y="537.579952"/>
+ <use xlink:href="#glyph0-11" x="527.853036" y="537.579952"/>
+ <use xlink:href="#glyph0-12" x="534.056038" y="537.579952"/>
+ <use xlink:href="#glyph0-10" x="540.953776" y="537.579952"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-28" x="460.628696" y="268.782848"/>
+ <use xlink:href="#glyph0-9" x="469.58583" y="268.782848"/>
+ <use xlink:href="#glyph0-23" x="476.483568" y="268.782848"/>
+ <use xlink:href="#glyph0-9" x="479.932437" y="268.782848"/>
+ <use xlink:href="#glyph0-7" x="486.830175" y="268.782848"/>
+ <use xlink:href="#glyph0-2" x="490.279043" y="268.782848"/>
+ <use xlink:href="#glyph0-10" x="497.176781" y="268.782848"/>
+ <use xlink:href="#glyph0-6" x="501.30798" y="268.782848"/>
+ <use xlink:href="#glyph0-9" x="508.205718" y="268.782848"/>
+ <use xlink:href="#glyph0-3" x="515.103456" y="268.782848"/>
+ <use xlink:href="#glyph0-5" x="522.001194" y="268.782848"/>
+ <use xlink:href="#glyph0-11" x="524.755326" y="268.782848"/>
+ <use xlink:href="#glyph0-12" x="530.958328" y="268.782848"/>
+ <use xlink:href="#glyph0-10" x="537.856066" y="268.782848"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-30" x="636.367175" y="268.782848"/>
+ <use xlink:href="#glyph0-14" x="646.019045" y="268.782848"/>
+ <use xlink:href="#glyph0-23" x="652.916783" y="268.782848"/>
+ <use xlink:href="#glyph0-8" x="656.365652" y="268.782848"/>
+ <use xlink:href="#glyph0-14" x="663.26339" y="268.782848"/>
+ <use xlink:href="#glyph0-23" x="670.161127" y="268.782848"/>
+ <use xlink:href="#glyph0-7" x="673.609996" y="268.782848"/>
+ <use xlink:href="#glyph0-6" x="677.058865" y="268.782848"/>
+ <use xlink:href="#glyph0-12" x="683.956603" y="268.782848"/>
+ <use xlink:href="#glyph0-3" x="690.854341" y="268.782848"/>
+ <use xlink:href="#glyph0-12" x="697.752079" y="268.782848"/>
+ <use xlink:href="#glyph0-10" x="704.649816" y="268.782848"/>
+ <use xlink:href="#glyph0-9" x="708.781015" y="268.782848"/>
+ <use xlink:href="#glyph0-23" x="715.678753" y="268.782848"/>
+ <use xlink:href="#glyph0-2" x="719.127622" y="268.782848"/>
+ <use xlink:href="#glyph0-10" x="726.02536" y="268.782848"/>
+ <use xlink:href="#glyph0-11" x="730.156559" y="268.782848"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-26" x="569.181224" y="547.917875"/>
+ <use xlink:href="#glyph0-10" x="576.078962" y="547.917875"/>
+ <use xlink:href="#glyph0-5" x="580.210161" y="547.917875"/>
+ <use xlink:href="#glyph0-27" x="582.964293" y="547.917875"/>
+ <use xlink:href="#glyph0-12" x="589.167295" y="547.917875"/>
+ <use xlink:href="#glyph0-11" x="596.065033" y="547.917875"/>
+</g>
+</g>
+</svg>
diff --git a/doc/install.doc b/doc/install.doc
index 9820f3c..97a0d7a 100644
--- a/doc/install.doc
+++ b/doc/install.doc
@@ -29,16 +29,15 @@ If you downloaded the source distribution, you need at least the
following to build the executable:
<ul>
<li>The <a href="ftp://prep.ai.mit.edu/pub/gnu/">GNU</a> tools
- \c flex, \c bison, \c libiconv and <code>GNU make</code>, and \c strip
+ \c flex, \c bison, \c libiconv and <code>GNU make</code>
\addindex flex
\addindex bison
\addindex libiconv
\addindex make
- \addindex strip
\addindex python
-<li>You need \c python (version 2.6 or higher, see https://www.python.org).
+<li>You need \c python (version 2.7 or higher, see https://www.python.org).
<li>In order to generate a \c Makefile for your platform, you need
- <a href="https://cmake.org/">cmake</a> version 3.1.3 or later.
+ <a href="https://cmake.org/">cmake</a> version 3.3 or later.
\addindex cmake
</ul>
@@ -55,7 +54,7 @@ tools should be installed.
<a href="http://www.tug.org/interest.html#free">TeX Live</a>
This is needed for generating \LaTeX, Postscript, and PDF output.
<li><a href="http://www.graphviz.org/">
- the Graph visualization toolkit version 1.8.10 or higher</a>
+ the Graph visualization toolkit version 2.38 or higher</a>
Needed for the include dependency graphs,
the graphical inheritance graphs, and the collaboration graphs.
If you compile graphviz yourself, make sure you do include
@@ -165,7 +164,7 @@ From version 1.8.10 onwards, build files need to be generated by cmake.
cmake can be downloaded from https://cmake.org/download/
\addindex cmake
-At the moment only the express version of Visual Studio 2013 is tested,
+At the moment only the express version of Visual Studio 2015 and 2017 are tested,
but other version might also work.
Alternatively, you can compile doxygen
@@ -199,7 +198,16 @@ cd into the \c doxygen-x.y.z directory, create and cd to a build directory
\verbatim
mkdir build
cd build
-cmake -G "Visual Studio 12 2013" ..
+cmake -G "Visual Studio 14 2015" ..
+\endverbatim
+This will create a project file then can be opened in Visual Studio.
+
+If you prefer compiling from the command prompt you can use the following instead:
+\verbatim
+mkdir build
+cd build
+cmake -G "NMake Makefiles" ..
+nmake
\endverbatim
Note that compiling Doxywizard requires Qt 4.3 or newer
@@ -214,7 +222,7 @@ Doxygen comes as a self-installing archive, so installation is extremely simple.
Just follow the dialogs.
After installation it is recommended to also download and install GraphViz
-(version 2.20 or better is highly recommended). Doxygen can use the \c dot tool
+(version 2.38 or better is highly recommended). Doxygen can use the \c dot tool
of the GraphViz package to render nicer diagrams, see the
\ref cfg_have_dot "HAVE_DOT" option in the configuration file.