diff --git a/slides/cours_11.md b/slides/cours_11.md
index 5438b42deb9d41e4c2625ec7e1652b5e8762370f..d1244d06d0c647d33b42cdea838a32d88669b7b2 100644
--- a/slides/cours_11.md
+++ b/slides/cours_11.md
@@ -510,174 +510,3 @@ sorted_list sorted_list_push(sorted_list list, int val) {
```
-# L'extraction
-
-## Trois cas
-
-1. L'élément à extraire n'est **pas** le premier élément de la liste
-
-. . .
-
-{width=70%}
-
-. . .
-
-\footnotesize
-
-```C
-sorted_list sorted_list_extract(sorted_list list, int val) {
- element *prec = *crt = list; // needed to glue elements together
- while (NULL != crt && val > crt->data) {
- prec = crt;
- crt = crt->next;
- }
- if (NULL != crt && prec != crt && crt->data == val) { // glue things together
- prec->next = crt->next;
- free(crt);
- }
- return list;
-}
-```
-
-
-# L'extraction
-
-2. L'élément à extraire est le premier élément de la liste
-
-. . .
-
-{width=70%}
-
-. . .
-
-\footnotesize
-
-```C
-sorted_list sorted_list_extract(sorted_list list, int val) {
- element *prec = *crt = list; // needed to glue elements together
- while (NULL != crt && val > crt->data) {
- prec = crt;
- crt = crt->next;
- }
- if (NULL != crt && crt->data == val && prec == crt) { // glue things together
- list = list->next;
- free(crt);
- }
- return list;
-}
-```
-
-# L'extraction
-
-3. L'élément à extraire n'est **pas** dans la liste.
- * La liste est vide.
- * La valeur est plus grande que le dernier élément de la liste.
- * La valeur est plus petite que la valeur de `crt`.
-
-. . .
-
-On retourne la liste inchangée.
-
-. . .
-
-\footnotesize
-
-```C
-sorted_list sorted_list_extract(sorted_list list, int val) {
- element *prec = *crt = list; // needed to glue elements together
- while (NULL != crt && val > crt->data) {
- prec = crt;
- crt = crt->next;
- }
- if (NULL == crt || crt->data != val) { // val not present
- return list;
- }
-}
-```
-
-# La recherche
-
-```C
-element* sorted_list_search(sorted_list list, int val);
-```
-
-* Retourne `NULL` si la valeur n'est pas présente (ou la liste vide).
-* Retourne un pointeur vers l'élément si la valeur est présente.
-
-. . .
-
-```C
-element* sorted_list_search(sorted_list list, int val) {
- // search for element smaller than val
- element* pos = sorted_list_position(list, val);
- if (NULL == pos && val == list->data) {
- return list; // first element contains val
- } else if (NULL != pos->next && val == pos->next->data) {
- return pos->next; // non-first element contains val
- } else {
- return NULL; // well... val's not here
- }
-}
-```
-
-# La recherche
-
-## La fonction `sorted_list_position`
-
-```C
-element* sorted_list_position(sorted_list list, int val);
-```
-
-
-
-# La recherche
-
-## Exercice: implémenter
-
-```C
-element* sorted_list_position(sorted_list list, int val);
-```
-
-. . .
-
-```C
-element* sorted_list_position(sorted_list list, int val) {
- element* pos = list;
- if (sorted_list_is_empty(list) || val <= list->data) {
- pos = NULL;
- } else {
- while (NULL != pos->next && val > pos->next>data) {
- pos = pos->next;
- }
- }
- return pos;
-}
-```
-
-# Complexité de la liste chaînée triée
-
-## L'insertion?
-
-. . .
-
-$$
-\mathcal{O}(N).
-$$
-
-## L'extraction?
-
-. . .
-
-$$
-\mathcal{O}(N).
-$$
-
-## La recherche?
-
-. . .
-
-$$
-\mathcal{O}(N).
-$$
-
diff --git a/slides/cours_12.md b/slides/cours_12.md
new file mode 100644
index 0000000000000000000000000000000000000000..fd21805acb61798833e99fd45ba2b92e97d3c4df
--- /dev/null
+++ b/slides/cours_12.md
@@ -0,0 +1,420 @@
+---
+title: "Listes triées et listes doublement chaînées"
+date: "2021-12-22"
+patat:
+ eval:
+ tai:
+ command: fish
+ fragment: false
+ replace: true
+ ccc:
+ command: fish
+ fragment: false
+ replace: true
+ images:
+ backend: auto
+---
+
+# Les listes triées
+
+Une liste chaînée triée est:
+
+* une liste chaînée
+* dont les éléments sont insérés dans l'ordre.
+
+
+
+. . .
+
+* L'insertion est faite telle que l'ordre est maintenu.
+
+## Quelle structure de données?
+
+```C
+
+
+
+
+
+```
+
+# Les listes triées
+
+## Quel but?
+
+* Permet de retrouver rapidement un élément.
+* Utile pour la recherche de plus court chemin dans des graphes.
+* Ordonnancement de processus par degré de priorité.
+
+## Comment?
+
+* Les implémentations les plus efficaces se basent sur les tableaux.
+* Possibles aussi avec des listes chaînées.
+
+# Les listes triées
+
+## Quelle structure de données dans notre cas?
+
+
+Une liste chaînée bien sûr (oui c'est pour vous entraîner)!
+
+```C
+typedef struct _element { // chaque élément
+ int data;
+ struct _element *next;
+} element;
+typedef element* sorted_list; // la liste
+```
+
+## Fonctionnalités
+
+```C
+// insertion de val
+sorted_list sorted_list_push(sorted_list list, int val);
+// la liste est-elle vide?
+bool is_empty(sorted_list list); // list == NULL
+// extraction de val (il disparaît)
+sorted_list sorted_list_extract(sorted_list list, int val);
+ // rechercher un élément et le retourner
+element* sorted_list_search(sorted_list list, int val);
+```
+
+# L'insertion
+
+## Trois cas
+
+1. La liste est vide.
+
+. . .
+
+{width=30%}
+
+. . .
+
+```C
+sorted_list sorted_list_push(sorted_list list, int val) {
+ if (sorted_list_is_empty(list)) {
+ list = malloc(sizeof(*list));
+ list->data = val;
+ list->next = NULL;
+ return list;
+ }
+}
+```
+
+# L'insertion
+
+2. L'insertion se fait en première position.
+
+. . .
+
+{width=80%}
+
+. . .
+
+```C
+sorted_list sorted_list_push(sorted_list list, int val) {
+ if (list->data >= val) {
+ element *tmp = malloc(sizeof(*tmp));
+ tmp->data = val;
+ tmp->next = list;
+ list = tmp;
+ return list;
+ }
+}
+```
+
+# L'insertion
+
+3. L'insertion se fait sur une autre position que la première.
+
+. . .
+
+{width=70%}
+
+. . .
+
+\footnotesize
+
+```C
+sorted_list sorted_list_push(sorted_list list, int val) {
+ element *tmp = malloc(sizeof(*tmp));
+ tmp->data = val;
+ element *crt = list;
+ while (NULL != crt->next && val > crt->next->data) {
+ crt = crt->next;
+ }
+ tmp->next = crt->next;
+ crt->next = tmp;
+ return list;
+}
+```
+
+
+# L'extraction
+
+## Trois cas
+
+1. L'élément à extraire n'est **pas** le premier élément de la liste
+
+. . .
+
+{width=70%}
+
+. . .
+
+\footnotesize
+
+```C
+sorted_list sorted_list_extract(sorted_list list, int val) {
+ element *prec = *crt = list; // needed to glue elements together
+ while (NULL != crt && val > crt->data) {
+ prec = crt;
+ crt = crt->next;
+ }
+ if (NULL != crt && prec != crt && crt->data == val) { // glue things together
+ prec->next = crt->next;
+ free(crt);
+ }
+ return list;
+}
+```
+
+
+# L'extraction
+
+2. L'élément à extraire est le premier élément de la liste
+
+. . .
+
+{width=70%}
+
+. . .
+
+\footnotesize
+
+```C
+sorted_list sorted_list_extract(sorted_list list, int val) {
+ element *prec = *crt = list; // needed to glue elements together
+ while (NULL != crt && val > crt->data) {
+ prec = crt;
+ crt = crt->next;
+ }
+ if (NULL != crt && crt->data == val && prec == crt) { // glue things together
+ list = list->next;
+ free(crt);
+ }
+ return list;
+}
+```
+
+# L'extraction
+
+3. L'élément à extraire n'est **pas** dans la liste.
+ * La liste est vide.
+ * La valeur est plus grande que le dernier élément de la liste.
+ * La valeur est plus petite que la valeur de `crt`.
+
+. . .
+
+On retourne la liste inchangée.
+
+. . .
+
+\footnotesize
+
+```C
+sorted_list sorted_list_extract(sorted_list list, int val) {
+ element *prec = *crt = list; // needed to glue elements together
+ while (NULL != crt && val > crt->data) {
+ prec = crt;
+ crt = crt->next;
+ }
+ if (NULL == crt || crt->data != val) { // val not present
+ return list;
+ }
+}
+```
+
+# La recherche
+
+```C
+element* sorted_list_search(sorted_list list, int val);
+```
+
+* Retourne `NULL` si la valeur n'est pas présente (ou la liste vide).
+* Retourne un pointeur vers l'élément si la valeur est présente.
+
+. . .
+
+```C
+element* sorted_list_search(sorted_list list, int val) {
+ // search for element smaller than val
+ element* pos = sorted_list_position(list, val);
+ if (NULL == pos && val == list->data) {
+ return list; // first element contains val
+ } else if (NULL != pos->next && val == pos->next->data) {
+ return pos->next; // non-first element contains val
+ } else {
+ return NULL; // well... val's not here
+ }
+}
+```
+
+# La recherche
+
+## La fonction `sorted_list_position`
+
+```C
+element* sorted_list_position(sorted_list list, int val);
+```
+
+
+
+# La recherche
+
+## Exercice: implémenter
+
+```C
+element* sorted_list_position(sorted_list list, int val);
+```
+
+. . .
+
+```C
+element* sorted_list_position(sorted_list list, int val) {
+ element* pos = list;
+ if (sorted_list_is_empty(list) || val <= list->data) {
+ pos = NULL;
+ } else {
+ while (NULL != pos->next && val > pos->next>data) {
+ pos = pos->next;
+ }
+ }
+ return pos;
+}
+```
+
+# Complexité de la liste chaînée triée
+
+## L'insertion?
+
+. . .
+
+$$
+\mathcal{O}(N).
+$$
+
+## L'extraction?
+
+. . .
+
+$$
+\mathcal{O}(N).
+$$
+
+## La recherche?
+
+. . .
+
+$$
+\mathcal{O}(N).
+$$
+
+
+# Liste doublement chaînée
+
+## Application navigateur ou éditeur de texte
+
+* Avec une liste chaînée:
+ * Comment implémenter les fonctions `back` et `forward` d'un navigateur??
+ * Comment implémenter les fonctions `undo` et `redo` d'un éditeur de text?
+
+. . .
+
+Pas possible.
+
+## Solution?
+
+. . .
+
+* Garder un pointeur supplémentaire sur l'élément précédent et pas seulement le
+ suivant.
+
+. . .
+
+* Cette structure de donnée est la **liste doublement chaînée** ou **doubly
+ linked list**.
+
+# Liste doublement chaînée
+
+## Exercices
+
+* Partir du dessin suivant et par **groupe de 5**
+
+
+
+1. Écrire les structures de données pour représenter la liste doublement
+ chaînée dont le type sera `dll` (pour
+ `doubly_linked_list`)
+
+# Liste doublement chaînée
+
+2. Écrire les fonctionnalités de création et consultation
+
+```C
+// crée la liste doublement chaînée
+dll dll_create();
+// retourne la valeur à la position actuelle dans la liste
+int dll_value(dll list);
+// la liste est-elle vide?
+bool dll_is_empty(dll list);
+// Est-ce que pos est le 1er élément?
+bool dll_is_head(dll list);
+// Est-ce que pos est le dernier élément?
+bool dll_is_tail(dll list);
+// data est-elle dans la liste?
+bool dll_is_present(dll list, int data);
+// affiche la liste
+void dll_print(dll list);
+```
+
+# Liste doublement chaînée
+
+3. Écrire les fonctionnalités de manipulation
+
+```C
+// déplace pos au début de la liste
+dll dll_move_to_head(dll list);
+// déplace pos à la position suivante dans la liste
+dll dll_next(dll list);
+// déplace pos à la position précédente dans la liste
+dll dll_prev(dll list);
+```
+
+# Liste doublement chaînée
+
+4. Écrire les fonctionnalités d'insertion
+
+```C
+// insertion de data dans l'élément *après* pos
+dll dll_insert_after(dll list, int data);
+// insertion de data en tête de liste
+dll dll_push(dll list, int data);
+```
+
+5. Écrire les fonctionnalités d'extraction
+
+```C
+// extraction de la valeur se trouvant dans l'élément *pos*
+// l'élément *pos* est libéré
+int dll_extract(dll *list);
+// extrait la donnée en tête de liste
+int dll_pop(dll *list);
+// vide la liste
+void dll_destroy(dll *list)
+```
+
diff --git a/slides/figs/doubly_linked_list.svg b/slides/figs/doubly_linked_list.svg
new file mode 100644
index 0000000000000000000000000000000000000000..b96a323904a662e23e729dd2ece8c255bdf42279
--- /dev/null
+++ b/slides/figs/doubly_linked_list.svg
@@ -0,0 +1,929 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="385.21741mm"
+ height="78.418839mm"
+ viewBox="0 0 385.21741 78.418839"
+ version="1.1"
+ id="svg5"
+ inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
+ sodipodi:docname="doubly_linked_list.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <sodipodi:namedview
+ id="namedview7"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ inkscape:document-units="mm"
+ showgrid="false"
+ inkscape:zoom="0.47433592"
+ inkscape:cx="952.91118"
+ inkscape:cy="365.77453"
+ inkscape:window-width="1920"
+ inkscape:window-height="1080"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="layer1"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0" />
+ <defs
+ id="defs2">
+ <linearGradient
+ id="linearGradient27181"
+ inkscape:swatch="solid">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop27179" />
+ </linearGradient>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend-6"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453-2" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend-1"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453-27" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend-6-9"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453-2-3" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend-6-9-0"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453-2-3-6" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend-61"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453-8" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend-9"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453-20" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend-6-9-0-2"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453-2-3-6-3" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend-93"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453-1" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend-6-9-0-9"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453-2-3-6-4" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend-5"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453-5" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend-6-9-0-4"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453-2-3-6-7" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend-3"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453-0" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend-6-9-0-7"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453-2-3-6-8" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend-2"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453-6" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend-6-9-0-6"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453-2-3-6-49" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend-15"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453-9" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend-6-9-0-49"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453-2-3-6-0" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend-63"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453-94" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend-12"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453-93" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend-63-9"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453-94-0" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend-8"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453-4" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend-63-8"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453-94-1" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend-8-9"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453-4-6" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend-63-8-2"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453-94-1-1" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend-8-8"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453-4-3" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend-63-8-1"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453-94-1-8" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend-8-7"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453-4-7" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend-63-8-6"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453-94-1-4" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend-63-8-1-5"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453-94-1-8-4" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Lend-63-8-1-1"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
+ id="path5453-94-1-8-2" />
+ </marker>
+ </defs>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(8.5735273,-162.33534)">
+ <g
+ id="g31034">
+ <rect
+ style="fill:none;stroke:#000205;stroke-width:1;stroke-linecap:square"
+ id="rect43"
+ width="26.817299"
+ height="21.512512"
+ x="43.79332"
+ y="162.83534" />
+ <rect
+ style="fill:none;stroke:#000205;stroke-width:1;stroke-linecap:square"
+ id="rect984-3"
+ width="19.720016"
+ height="21.512497"
+ x="70.592087"
+ y="162.83534" />
+ <rect
+ style="fill:none;stroke:#000205;stroke-width:1;stroke-linecap:square"
+ id="rect984-3-5"
+ width="19.720016"
+ height="21.512497"
+ x="24.073303"
+ y="162.83536" />
+ <text
+ xml:space="preserve"
+ style="font-size:7.05556px;line-height:0;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583"
+ x="49.381596"
+ y="170.55223"
+ id="text2533"><tspan
+ sodipodi:role="line"
+ id="tspan2531"
+ style="font-size:7.05556px;stroke-width:0.264583"
+ x="49.381596"
+ y="170.55223">data</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:7.05556px;line-height:0;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583"
+ x="72.400902"
+ y="176.01866"
+ id="text2533-6"><tspan
+ sodipodi:role="line"
+ id="tspan2531-7"
+ style="font-size:7.05556px;stroke-width:0.264583"
+ x="72.400902"
+ y="176.01866">next</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:7.05556px;line-height:0;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583"
+ x="25.847668"
+ y="174.83356"
+ id="text2533-5"><tspan
+ sodipodi:role="line"
+ id="tspan2531-3"
+ style="font-size:7.05556px;stroke-width:0.264583"
+ x="25.847668"
+ y="174.83356">prev</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
+ d="M 32.566534,179.81541 H 7.1177008"
+ id="path5430"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend-63)"
+ d="M 81.846967,167.73425 H 107.2958"
+ id="path5430-8"
+ sodipodi:nodetypes="cc" />
+ <rect
+ style="fill:none;stroke:#000205;stroke-width:1;stroke-linecap:square"
+ id="rect43-0"
+ width="26.817299"
+ height="21.512512"
+ x="128.29239"
+ y="162.83534" />
+ <rect
+ style="fill:none;stroke:#000205;stroke-width:1;stroke-linecap:square"
+ id="rect984-3-4"
+ width="19.720016"
+ height="21.512497"
+ x="155.09116"
+ y="162.83534" />
+ <rect
+ style="fill:none;stroke:#000205;stroke-width:1;stroke-linecap:square"
+ id="rect984-3-5-4"
+ width="19.720016"
+ height="21.512497"
+ x="108.57237"
+ y="162.83536" />
+ <text
+ xml:space="preserve"
+ style="font-size:7.05556px;line-height:0;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583"
+ x="133.88066"
+ y="170.55223"
+ id="text2533-4"><tspan
+ sodipodi:role="line"
+ id="tspan2531-4"
+ style="font-size:7.05556px;stroke-width:0.264583"
+ x="133.88066"
+ y="170.55223">data</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:7.05556px;line-height:0;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583"
+ x="156.89996"
+ y="176.01866"
+ id="text2533-6-7"><tspan
+ sodipodi:role="line"
+ id="tspan2531-7-6"
+ style="font-size:7.05556px;stroke-width:0.264583"
+ x="156.89996"
+ y="176.01866">next</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:7.05556px;line-height:0;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583"
+ x="110.34673"
+ y="174.83356"
+ id="text2533-5-3"><tspan
+ sodipodi:role="line"
+ id="tspan2531-3-1"
+ style="font-size:7.05556px;stroke-width:0.264583"
+ x="110.34673"
+ y="174.83356">prev</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend-8)"
+ d="M 117.0656,179.81541 H 91.616768"
+ id="path5430-7"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend-63-8)"
+ d="m 166.34603,167.73425 h 25.44884"
+ id="path5430-8-5"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend-8-7)"
+ d="M 112.23011,218.63392 60.009485,185.36325"
+ id="path5430-7-4"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend-63-8-6)"
+ d="m 141.44144,218.73827 72.28584,-33.4172"
+ id="path5430-8-5-6"
+ sodipodi:nodetypes="cc" />
+ <rect
+ style="fill:none;stroke:#000205;stroke-width:1;stroke-linecap:square"
+ id="rect43-0-5"
+ width="26.817299"
+ height="21.512512"
+ x="212.85204"
+ y="162.83534" />
+ <rect
+ style="fill:none;stroke:#000205;stroke-width:1;stroke-linecap:square"
+ id="rect984-3-4-7"
+ width="19.720016"
+ height="21.512497"
+ x="239.6508"
+ y="162.83534" />
+ <rect
+ style="fill:none;stroke:#000205;stroke-width:1;stroke-linecap:square"
+ id="rect984-3-5-4-4"
+ width="19.720016"
+ height="21.512497"
+ x="193.13202"
+ y="162.83536" />
+ <text
+ xml:space="preserve"
+ style="font-size:7.05556px;line-height:0;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583"
+ x="218.44032"
+ y="170.55223"
+ id="text2533-4-1"><tspan
+ sodipodi:role="line"
+ id="tspan2531-4-8"
+ style="font-size:7.05556px;stroke-width:0.264583"
+ x="218.44032"
+ y="170.55223">data</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:7.05556px;line-height:0;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583"
+ x="241.45963"
+ y="176.01866"
+ id="text2533-6-7-5"><tspan
+ sodipodi:role="line"
+ id="tspan2531-7-6-9"
+ style="font-size:7.05556px;stroke-width:0.264583"
+ x="241.45963"
+ y="176.01866">next</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:7.05556px;line-height:0;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583"
+ x="194.90639"
+ y="174.83356"
+ id="text2533-5-3-7"><tspan
+ sodipodi:role="line"
+ id="tspan2531-3-1-5"
+ style="font-size:7.05556px;stroke-width:0.264583"
+ x="194.90639"
+ y="174.83356">prev</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend-8-9)"
+ d="M 201.62525,179.81541 H 176.17642"
+ id="path5430-7-3"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend-63-8-2)"
+ d="m 250.90569,167.73425 h 25.44883"
+ id="path5430-8-5-8"
+ sodipodi:nodetypes="cc" />
+ <rect
+ style="fill:none;stroke:#000205;stroke-width:1;stroke-linecap:square"
+ id="rect43-0-4"
+ width="26.817299"
+ height="21.512512"
+ x="297.36826"
+ y="162.83534" />
+ <rect
+ style="fill:none;stroke:#000205;stroke-width:1;stroke-linecap:square"
+ id="rect984-3-4-3"
+ width="19.720016"
+ height="21.512497"
+ x="324.16702"
+ y="162.83534" />
+ <rect
+ style="fill:none;stroke:#000205;stroke-width:1;stroke-linecap:square"
+ id="rect984-3-5-4-3"
+ width="19.720016"
+ height="21.512497"
+ x="277.64822"
+ y="162.83536" />
+ <text
+ xml:space="preserve"
+ style="font-size:7.05556px;line-height:0;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583"
+ x="302.95651"
+ y="170.55223"
+ id="text2533-4-3"><tspan
+ sodipodi:role="line"
+ id="tspan2531-4-86"
+ style="font-size:7.05556px;stroke-width:0.264583"
+ x="302.95651"
+ y="170.55223">data</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:7.05556px;line-height:0;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583"
+ x="325.97583"
+ y="176.01866"
+ id="text2533-6-7-0"><tspan
+ sodipodi:role="line"
+ id="tspan2531-7-6-4"
+ style="font-size:7.05556px;stroke-width:0.264583"
+ x="325.97583"
+ y="176.01866">next</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:7.05556px;line-height:0;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583"
+ x="279.42261"
+ y="174.83356"
+ id="text2533-5-3-8"><tspan
+ sodipodi:role="line"
+ id="tspan2531-3-1-8"
+ style="font-size:7.05556px;stroke-width:0.264583"
+ x="279.42261"
+ y="174.83356">prev</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend-8-8)"
+ d="M 286.14146,179.81541 H 260.69263"
+ id="path5430-7-8"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend-63-8-1)"
+ d="m 335.4219,167.73425 h 25.44883"
+ id="path5430-8-5-9"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend-63-8-1-1)"
+ d="M 38.063478,229.50673 H 96.051494"
+ id="path5430-8-5-9-8"
+ sodipodi:nodetypes="cc" />
+ <rect
+ style="fill:none;stroke:#000205;stroke-width:1;stroke-linecap:square"
+ id="rect984-3-4-0"
+ width="30.466314"
+ height="21.512512"
+ x="127.86939"
+ y="218.74167" />
+ <rect
+ style="fill:none;stroke:#000205;stroke-width:1;stroke-linecap:square"
+ id="rect984-3-4-0-2"
+ width="30.466314"
+ height="21.512512"
+ x="97.403076"
+ y="218.74167" />
+ <text
+ xml:space="preserve"
+ style="font-size:7.05556px;line-height:0;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583"
+ x="136.71878"
+ y="232.0807"
+ id="text19798"><tspan
+ sodipodi:role="line"
+ id="tspan19796"
+ style="font-size:7.05556px;stroke-width:0.264583"
+ x="136.71878"
+ y="232.0807">pos</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:7.05556px;line-height:0;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583"
+ x="103.82884"
+ y="232.12825"
+ id="text21012"><tspan
+ sodipodi:role="line"
+ id="tspan21010"
+ style="font-size:7.05556px;stroke-width:0.264583"
+ x="103.82884"
+ y="232.12825">head</tspan></text>
+ <g
+ id="g23095"
+ transform="translate(0.63181235,-8.3387299)">
+ <rect
+ style="fill:none;stroke:#000205;stroke-width:1;stroke-linecap:square"
+ id="rect984-3-4-0-2-2"
+ width="30.466314"
+ height="21.512512"
+ x="6.8544922"
+ y="227.0804" />
+ <text
+ xml:space="preserve"
+ style="font-size:7.05556px;line-height:0;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583"
+ x="16.658175"
+ y="240.46698"
+ id="text22622"><tspan
+ sodipodi:role="line"
+ id="tspan22620"
+ style="font-size:7.05556px;stroke-width:0.264583"
+ x="16.658175"
+ y="240.46698">list</tspan></text>
+ </g>
+ <g
+ id="g27724">
+ <rect
+ style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000205;stroke-width:1;stroke-linecap:square"
+ id="rect984-3-4-0-9"
+ width="13.974364"
+ height="21.512512"
+ x="-8.0735273"
+ y="162.83534" />
+ <path
+ style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000205;stroke-width:0.704282;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ d="M -28.32387,656.10754 V 617.5349 H -4.0995075 20.124855 v 38.57264 38.57264 H -4.0995075 -28.32387 Z"
+ id="path27327"
+ transform="scale(0.26458333)" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M -7.7213419,184.34785 5.8332385,176.52211"
+ id="path27399" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 5.9008369,162.83534 -13.6897772,7.9038"
+ id="path27401" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 5.9008369,167.3846 -13.6897772,7.9038"
+ id="path27401-3" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 5.9008369,171.93383 -13.6897772,7.9038"
+ id="path27401-6" />
+ </g>
+ <g
+ id="g27724-8"
+ transform="translate(370.24303)">
+ <rect
+ style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000205;stroke-width:1;stroke-linecap:square"
+ id="rect984-3-4-0-9-0"
+ width="13.974364"
+ height="21.512512"
+ x="-8.0735273"
+ y="162.83534" />
+ <path
+ style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000205;stroke-width:0.704282;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ d="M -28.32387,656.10754 V 617.5349 H -4.0995075 20.124855 v 38.57264 38.57264 H -4.0995075 -28.32387 Z"
+ id="path27327-2"
+ transform="scale(0.26458333)" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M -7.7213419,184.34785 5.8332385,176.52211"
+ id="path27399-1" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 5.9008369,162.83534 -13.6897772,7.9038"
+ id="path27401-0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 5.9008369,167.3846 -13.6897772,7.9038"
+ id="path27401-3-5" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 5.9008369,171.93383 -13.6897772,7.9038"
+ id="path27401-6-1" />
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-size:7.05556px;line-height:0;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583"
+ x="54.971268"
+ y="180.15842"
+ id="text2533-46"><tspan
+ sodipodi:role="line"
+ id="tspan2531-2"
+ style="font-size:7.05556px;stroke-width:0.264583"
+ x="54.971268"
+ y="180.15842">3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:7.05556px;line-height:0;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583"
+ x="137.17761"
+ y="180.20837"
+ id="text2533-46-5"><tspan
+ sodipodi:role="line"
+ id="tspan2531-2-8"
+ style="font-size:7.05556px;stroke-width:0.264583"
+ x="137.17761"
+ y="180.20837">12</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:7.05556px;line-height:0;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583"
+ x="224.03"
+ y="180.15842"
+ id="text2533-46-6"><tspan
+ sodipodi:role="line"
+ id="tspan2531-2-2"
+ style="font-size:7.05556px;stroke-width:0.264583"
+ x="224.03"
+ y="180.15842">3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:7.05556px;line-height:0;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583"
+ x="308.5083"
+ y="180.15842"
+ id="text2533-46-8"><tspan
+ sodipodi:role="line"
+ id="tspan2531-2-4"
+ style="font-size:7.05556px;stroke-width:0.264583"
+ x="308.5083"
+ y="180.15842">6</tspan></text>
+ </g>
+ </g>
+</svg>