[snapshot]
authorHeiko Schlittermann (JUMPER) <hs@schlittermann.de>
Mon, 05 May 2014 22:48:21 +0200
changeset 3 40a385bb9b7e
parent 2 b2f6ea236243
child 4 ce986267138d
[snapshot]
Makefile
mk2014.tex
routing.dia
--- a/Makefile	Fri May 02 17:03:05 2014 +0200
+++ b/Makefile	Mon May 05 22:48:21 2014 +0200
@@ -1,4 +1,4 @@
-IMAGES = procs.pdf
+IMAGES = procs.pdf routing.pdf
 ALL = mk2014.pdf
 
 all:		$(ALL)
--- a/mk2014.tex	Fri May 02 17:03:05 2014 +0200
+++ b/mk2014.tex	Mon May 05 22:48:21 2014 +0200
@@ -12,10 +12,17 @@
 
 \begin{document}
 
+% sicheres logging
+% einmal angenommen - verantwortugn
+
 \begin{frame}
 	\titlepage
 \end{frame}
 
+\begin{frame}{Inhalt}
+	\tableofcontents
+\end{frame}
+
 
 \begin{frame}[<+->][fragile]{Wie positioniert Exim sich gegenüber anderen MTA}
 \begin{itemize}
@@ -38,44 +45,62 @@
 Over    1d        1   0.0%  100.0%
 \end{verbatim}
 	}
+	\item Saubere Dokumentation (spec.txt)
+	\item Dokumentiertes Protokollformat
 \end{itemize}
 \end{frame}
 
 \begin{frame}{Arbeitsweise und Anatomie}{Überblick}
 \begin{itemize}
-\item Binary: (ca 1MB) großer Universalklumpen
-\item Queue: Verzeichnis, 2 Files je Message
-\item IPC: nichts, außer fork(2) oder exec(3)
-\item Shared: „Hint“-Files (z.B. retry info)
+\item Binary ist ein ca 1MB großer Universalklumpen
+\item Einfache Struktur der operativen Daten - Verzeichnis, 2 Files je
+Message, Spool/Message-Log in 16 Verzeichnissen
+\item Dokument
+\item Keine aufwändigen IPC - nichts, außer fork(2) oder exec(3)
+\item Wenig gemeinsam genutzte Daten - nur „Hint“-Files (z.B. retry info)
 \end{itemize}
 \end{frame}
 
 \begin{frame}{Arbeitsweise und Anatomie}{Prozesse}
 \includegraphics[width=0.8\textwidth,angle=270]{procs}
-%\llap{\includegraphics[width=0.8\textwidth,angle=270]{procs-1}}
-%\llap{\includegraphics[width=0.8\textwidth,angle=270]{procs-2}}
-%\llap{\includegraphics[width=0.8\textwidth,angle=270]{procs-3}}
-%\multiinclude[<+->][format=pdf,graphics={width=0.8\textwidth,angle=270}]{procs}
+\end{frame}
+
+\begin{frame}{Routing}
+\includegraphics[width=0.8\textwidth,angle=270]{routing}
 \end{frame}
 
 \begin{frame}{Arbeitsweise und Anatomie}{IN, OUT, Retry}
+Es gibt im wesentlichen 3 Phasen der Verarbeitung
 \begin{enumerate}
-	\item IN: ACL (Ratelimit, Blacklists, Routing-Test, Content-Scan) Enqueue
-	\item OUT: Dequeue, Routing, Transport
-	\item Retry: Queuerunner, Dequeue, Routing, Transport
+	\item Empfang
+		\begin{itemize}
+		\item ACL mit Ratelimit, Blacklists, Routing-Test, Content-Scan
+		\item Ablage im Spool-Verzeichnis
+	\end{itemize}
+	\item Start des Sendeprozesses
+		\begin{itemize}
+			\item Spoolfile-Lock
+			\item Routing
+			\item Transport oder ggf. Abbruch
+		\end{itemize}
+	\item Queuerunner startet ggf. weitere Versuche
 \end{enumerate}
 \end{frame}
 
 \begin{frame}[fragile]{Konfiguration}{Struktur}
-\begin{itemize}
-	\item Globaler Teil (ca. 240 Direktiven)
-	\item Access-Control-Lists für SMTP: \verb=begin acl=
-	\item Routing-Regeln (ACL und Routing): \verb=begin routers=
-	\item Transport-Definitionen: \verb=begin transports=
-	\item Retry-Vorgaben: \verb=begin retry=
-	\item Envelope/Header-Rewriting: \verb=begin rewrite=
-	\item SMTP-Authentifizierung: \verb=begin authenticators=
-\end{itemize}
+Strukturiertes Konfigurationsfile mit mehreren Abschnitten, teilweise
+miteinander verlinkt (Router referenziert Tranports, globaler Teil
+referenziert ACL)
+\begin{description}
+	\item[global] Etwa 240 allgemeine Direktiven
+	\item[acl] Access Control Lists für SMTP
+	\item[routers] Routing-Regeln (genutzt auch von ACL)
+	\item[transports] Wie wird SMTP gemacht, oder das Anhängen an Mailboxen
+	\item[retry] Unter welchen Bedingungen wird wann und wie oft und wie
+	lange wiederholt
+	\item[rewrite] Umschreiben von Headern und Envelope
+	\item[authenticators] SMTP-Authentifizierung
+\end{description}
 \end{frame}
 
 \begin{frame}[fragile]{Konfiguration}{Syntax}
@@ -97,56 +122,66 @@
 
 \end{frame}
 
-\begin{frame}[fragile]{String-Expansionen / Listen / File- und Datenbank-Lookups}
+\begin{frame}[fragile]{Konfiguration}{Expansion}
 Etwa die Hälfte der Konfigurationsdirektiven erlaubt
-Variablensubstitution (Expansion)zur Laufzeit.
-Testen kann man diese sehr einfach mit \verb=exim -be '…'=
-\scriptsize
-\begin{verbatim}
-	exim -be '$primary_hostname'
-	exim -oMi 1.1.1.1 -oMa 2.2.2.2 -be '$sender_host_address -> $received_ip_address'
-	exim -be '${lookup{root}lsearch{/etc/aliases}}'
-	exim -be '${lookup dnsdb{mx=heise.de}}'
-\end{verbatim}
+Variablensubstitution (Expansion) zur Laufzeit.
+Testen kann man diese sehr einfach:
+\begin{scriptsize}\begin{verbatim}
+	$ exim -be '$primary_hostname'
+	jumper.schlittermann.de
+	$ exim -be -oMi 1.1.1.1 -oMa 2.2.2.2 '$sender_host_address $received_ip_address'
+	2.2.2.2 1.1.1.1
+	$ exim -be '${lookup passwd{nobody}{${extract{5}{:}{$value}}}}'
+	/nonexistent
+	$ exim -be '${lookup{root}lsearch{/etc/aliases}}'
+	heiko
+	$ exim -be '${lookup dnsdb{mx=heise.de}}'
+	10 relay.heise.de
+\end{verbatim}\end{scriptsize}
+\end{frame}
 
+\begin{frame}[fragile]{Expansion}{Übersicht}
+Expansion als „working horse“ der Flexibilität
+\begin{scriptsize}
 \begin{description}
 \item[Variablen] \verb=$local_part=, \verb=${local_part}=
-\item[String-Ops] \verb=${sha1:$local_part}=, \verb=${uc:$domain}=
-\item[String-Manipulation] \verb=${sg{$local_part}{.laus}{***}}=
-\item[Conditional] \verb=${if eq{$local_part}{xxx} {~xxx/.mbox}{/var/mail/$local_part}}=
-\item[Lookup single key] \verb=${lookup{$local_part}lsearch{/etc/aliases}}=
-\item[Lookup query style] \verb+${lookup dnsdb{mx=heise.de}}+
+\item[Operatoren] \verb=${sha1:$local_part}=, \verb=${uc:$domain}=
+\item[Manipulation] \verb=${sg{$local_part}{.laus}{XXX}}=
+\item[Bedingungen] \verb=${if eq{$local_part}{x}{~x/.mbox}{/var/mail/$local_part}}=
+\item[Lookup/Key] \verb=${lookup{$local_part}lsearch{/etc/aliases}}=
+\item[Lookup/Query] \verb+${lookup dnsdb{mx=heise.de}}+
 \end{description}
+\end{scriptsize}
 \end{frame}
 
-\begin{frame}[fragile]{String-Expansion}{Variablen}
+\begin{frame}[fragile]{Expansion}{Variablen}
 Es gibt knapp 200 Variablen, Referenzierung als \verb=$<var>= oder
 \verb=${<var>}=.
-\begin{itemize}
-\item Empfänger: \verb=$local_part=, \verb=$domain=, \verb=$local_part_prefix=
-\item Sender: \verb=$sender_local_part=
-\item Message: \verb=$message_line_count=, \verb=$message_size=, \verb=$message_headers=
-\item Content: \verb=$spam_score_int=, \verb=$malware_name=
-\item Routing: \verb=$original_domain=
-\item System: \verb=$load_average=, \verb=$log\_space=, \verb=$pid=
-\item Operation: \verb=$received_interface_address=, \verb=$tls_out_peerdn=, \verb=$tls_out_bits=
-\end{itemize}
+\begin{scriptsize}
+\begin{description}
+\item[Envelope] \verb=$local_part=, \verb=$domain=, \verb=$local_part_prefix=,
+	\verb=$sender_local_part=, \verb=$recipients=
+\item[Message] \verb=$message_line_count=, \verb=$message_size=,
+\verb=$message_headers=, \verb=$h_subject:=
+\item[Content] \verb=$spam_score_int=, \verb=$malware_name=
+\item[Routing] \verb=$original_domain=
+\item[System] \verb=$load_average=, \verb=$log_space=, \verb=$pid=
+\item[Operation] \verb=$received_interface_address=, \verb=$tls_out_peerdn=, \verb=$tls_out_bits=
+\end{description}
+\end{scriptsize}
 \end{frame}
 
-% items
-% <var> ${<op>:<var>} ${<func>[{arg}…]} ${if <cond>[{arg}…] }
-% operators
-% 
-
 \begin{frame}[fragile]{String-Expansion}{String-Operationen}
 Einfache Manipulation von Zeichenketten sind möglich:
 \verb=${<op>:<string>}=
-\begin{itemize}
-\item Konvertierung \verb=${uc:$local_part}=, \verb=${sha1:$domain}=, \verb=${time_eval:2d4h}=
-\item Extraktion \verb=${length_3:$domain}=, \verb=${substr_1_3:$domain}=, \verb=${addresses:$h_from}=
-\item Arithmetik \verb=${eval:40 + 2}=, \verb=${40 + 2k}=, \verb=${eval:8 << 2}=
-\item Filesystem \verb=${stat:/etc/hosts}=
-\end{itemize}
+\begin{scriptsize}
+\begin{description}
+\item[Konvertierung] \verb=${uc:$local_part}=, \verb=${sha1:$domain}=, \verb=${time_eval:2d4h}=
+\item[Extraktion] \verb=${length_3:$domain}=, \verb=${substr_1_3:$domain}=, \verb=${addresses:$h_from}=
+\item[Arithmetik] \verb=${eval:40 + 2}=, \verb=${eval:40 + 2k}=, \verb=${eval:8 << 2}=
+\item[Filesystem] \verb=${stat:/etc/hosts}=
+\end{description}
+\end{scriptsize}
 \end{frame}
 
 \begin{frame}[fragile]{String-Expansion}{Bedingte Expansion}
@@ -157,51 +192,102 @@
 	${if <op>[{arg}…] {<value1>}fail}
 \end{verbatim}
 \begin{itemize}
-\item Definedness \verb=defined:tls_cipher=
+\item Definiert? \verb=def:tls_cipher=
 \item Vergleiche \verb=eq{foo}{bar}=, \verb+=={1}{1}+
-\item …
+\item Matching \verb=match{$local_part}{^h\d+}=
+\item Authentication \verb=pam{$user:$pass}=
+\item Status \verb=first_delivery=
+\item Verknüpfungen \verb=and{{…}{…}{…}}=
+\end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]{String-Expansion}{Listen}
+An vielen Stellen werden Listen verwendet, Trenner in literalen
+Listen ist „:“, es können aber auch Listen aus Textfiles, DBM-Files und
+Directories erstellt werden:
+\begin{itemize}
+\item Literale Liste: \verb=example.com : foo.bar : example.org=,
+	\verb=<; 2001:db8::10 ; 2001:db8::12=
+\item Liste aus Datei: \verb=lsearch;/etc/mailnames=,
+	\verb=dbm:/etc/mailnames=
+\item Liste aus Verzeichnisinhalt: \verb=dsearch;/etc/vmail/domains=
 \end{itemize}
 \end{frame}
 
-\begin{frame}{ACL (SMTP-Phasen, Address-Überprüfung, Rate-Limiting, Content-Scan)}
+\begin{frame}[fragile]{String-Expansion}{Single-Key Lookups}
+Suche nach einem einzelnen Key, implizit oder explizit
+\begin{verbatim}
+	<item> = <type>;<arg>
+	${lookup{<key>}<type>{<arg>}[{<found>}[{<not found}]]}
+	${lookup{<key>}<type>{<arg>}{<found>}fail}
+\end{verbatim}
 \begin{itemize}
-\item Eingehende SMTP-Verbindungen (und in Grenzen auch
-	nicht-SMTP)-Verbindungen müssen ACL überwinden.
-\item Für jede Phase der SMTP-Kommunikation gibt es einen
-ACL-Einstiegspunkt, z.B.:\scriptsize\begin{verbatim}
-	acl_smtp_connect = <name of connect acl>
-	acl_smtp_rcpt = <name of recipient acl>
-	acl_smtp_data = <name of recipient acl>
+\item Lineares File: \verb+domains = lsearch;/etc/mail/domains+
+\item Lineares File: \verb=${lookup{$local_part}lsearch{/etc/aliases}}=
+\item Lineares File: \verb=${lookup{$local_part}lsearch{/etc/aliases}{${uc:$value}}}=
+\end{itemize}
+
+\begin{exampleblock}{Lookup-Typen}
+lsearch, dsearch, dbm, cdbm, iplsearch, net-iplsearch, wildlsearch, …
+\end{exampleblock}
+\end{frame}
+
+\begin{frame}[fragile]{String-Expansion}{Query-Style Lookups}
+Generische Suche in (SQL)-Datenbank, LDAP, DNS, NIS
+\begin{verbatim}
+	${lookup <type>{<arg(s)>}[{<found>}[{<not found>}]]}
 \end{verbatim}
-\item ACL entscheidet: accept, reject, defer, warn (noop)
-\item ACL Bedingungen: domains, DNS-BL, Verify (Sender/Empfänger), …, 
- condition
-\item ACL können die interne Behandlung der Nachricht beeinflussen
-(queue\_only, submission, …)
-\item ACL können Variablen setzen, die später (Router, Transports)
-verwendet werden
+\begin{itemize}
+\item DNS: \verb+${lookup dnsdb{a=foobar.de}}+
+\item LDAP \verb+${lookup ldap{ldap:///o=bar?mailbox?sub?uid=${quote_ldap:$local_part}}}+
+\item PSQL \verb=${lookup pgsql{SELECT mailbox FROM …}}=
 \end{itemize}
+\begin{exampleblock}{Lookup-Typen}
+	dnsdb, ibase, ldap, mysql, nisplus, oracle, passwd, pgsql, sqlite
+\end{exampleblock}
 \end{frame}
 
-\begin{frame}{Router (allg. Optionen und die einzelnen Router accept, dnslookup, manualroute, …)}
-\end{frame}
 
-\begin{frame}{Transports (allg. Optionen und die einzelnen Transports smtp, appendfile, …)}
-\end{frame}
-
-\begin{frame}{Logging (mainlog, rejectlog, paniclog)}
-\end{frame}
-
-\begin{frame}{Test und Betrieb}
-\end{frame}
-
-\begin{frame}{Sicherheitsbetrachtungen (Funktionssicherheit (Verlust von Mails), Einbruchssicherheit, Schreibrechte, Root-Rechte)}
-\end{frame}
-
-\begin{frame}{Möglichkeiten zur Leistungsverbesserung (Warteschlange, Parallelisierung, Blockierung, Ratelimit)}
-\end{frame}
-
-\begin{frame}{Ausblick/Offene Punkte: PRDR, DANE, Enhanced Status Codes}
-\end{frame}
+%\begin{frame}{ACL (SMTP-Phasen, Address-Überprüfung, Rate-Limiting, Content-Scan)}
+%\begin{itemize}
+%\item Eingehende SMTP-Verbindungen (und in Grenzen auch
+%	nicht-SMTP)-Verbindungen müssen ACL überwinden.
+%\item Für jede Phase der SMTP-Kommunikation gibt es einen
+%ACL-Einstiegspunkt, z.B.:\scriptsize\begin{verbatim}
+%	acl_smtp_connect = <name of connect acl>
+%	acl_smtp_rcpt = <name of recipient acl>
+%	acl_smtp_data = <name of recipient acl>
+%\end{verbatim}
+%\item ACL entscheidet: accept, reject, defer, warn (noop)
+%\item ACL Bedingungen: domains, DNS-BL, Verify (Sender/Empfänger), …, 
+% condition
+%\item ACL können die interne Behandlung der Nachricht beeinflussen
+%	(queue\_only, submission, …)
+%\item ACL können Variablen setzen, die später (Router, Transports)
+%	verwendet werden
+%\end{itemize}
+%\end{frame}
+%
+%\begin{frame}{Router (allg. Optionen und die einzelnen Router accept, dnslookup, manualroute, …)}
+%Router entscheiden über den Fortgang der Bearbeitung
+%\end{frame}
+%
+%\begin{frame}{Transports (allg. Optionen und die einzelnen Transports smtp, appendfile, …)}
+%\end{frame}
+%
+%\begin{frame}{Logging (mainlog, rejectlog, paniclog)}
+%\end{frame}
+%
+%\begin{frame}{Test und Betrieb}
+%\end{frame}
+%
+%\begin{frame}{Sicherheitsbetrachtungen (Funktionssicherheit (Verlust von Mails), Einbruchssicherheit, Schreibrechte, Root-Rechte)}
+%\end{frame}
+%
+%\begin{frame}{Möglichkeiten zur Leistungsverbesserung (Warteschlange, Parallelisierung, Blockierung, Ratelimit)}
+%\end{frame}
+%
+%\begin{frame}{Ausblick/Offene Punkte: PRDR, DANE, Enhanced Status Codes}
+%\end{frame}
 
 \end{document}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/routing.dia	Mon May 05 22:48:21 2014 +0200
@@ -0,0 +1,1132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<dia:diagram xmlns:dia="http://www.lysator.liu.se/~alla/dia/">
+  <dia:diagramdata>
+    <dia:attribute name="background">
+      <dia:color val="#ffffff"/>
+    </dia:attribute>
+    <dia:attribute name="pagebreak">
+      <dia:color val="#000099"/>
+    </dia:attribute>
+    <dia:attribute name="paper">
+      <dia:composite type="paper">
+        <dia:attribute name="name">
+          <dia:string>#A4#</dia:string>
+        </dia:attribute>
+        <dia:attribute name="tmargin">
+          <dia:real val="2.8222000598907471"/>
+        </dia:attribute>
+        <dia:attribute name="bmargin">
+          <dia:real val="2.8222000598907471"/>
+        </dia:attribute>
+        <dia:attribute name="lmargin">
+          <dia:real val="2.8222000598907471"/>
+        </dia:attribute>
+        <dia:attribute name="rmargin">
+          <dia:real val="2.8222000598907471"/>
+        </dia:attribute>
+        <dia:attribute name="is_portrait">
+          <dia:boolean val="false"/>
+        </dia:attribute>
+        <dia:attribute name="scaling">
+          <dia:real val="1"/>
+        </dia:attribute>
+        <dia:attribute name="fitto">
+          <dia:boolean val="false"/>
+        </dia:attribute>
+      </dia:composite>
+    </dia:attribute>
+    <dia:attribute name="grid">
+      <dia:composite type="grid">
+        <dia:attribute name="width_x">
+          <dia:real val="1"/>
+        </dia:attribute>
+        <dia:attribute name="width_y">
+          <dia:real val="1"/>
+        </dia:attribute>
+        <dia:attribute name="visible_x">
+          <dia:int val="1"/>
+        </dia:attribute>
+        <dia:attribute name="visible_y">
+          <dia:int val="1"/>
+        </dia:attribute>
+        <dia:composite type="color"/>
+      </dia:composite>
+    </dia:attribute>
+    <dia:attribute name="color">
+      <dia:color val="#d8e5e5"/>
+    </dia:attribute>
+    <dia:attribute name="guides">
+      <dia:composite type="guides">
+        <dia:attribute name="hguides"/>
+        <dia:attribute name="vguides"/>
+      </dia:composite>
+    </dia:attribute>
+  </dia:diagramdata>
+  <dia:layer name="Background" visible="true" active="true">
+    <dia:object type="Flowchart - Box" version="0" id="O0">
+      <dia:attribute name="obj_pos">
+        <dia:point val="10.0075,3"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="10.0075,3;13.555,5"/>
+      </dia:attribute>
+      <dia:attribute name="elem_corner">
+        <dia:point val="10.0075,3"/>
+      </dia:attribute>
+      <dia:attribute name="elem_width">
+        <dia:real val="3.5475000000000003"/>
+      </dia:attribute>
+      <dia:attribute name="elem_height">
+        <dia:real val="2"/>
+      </dia:attribute>
+      <dia:attribute name="border_width">
+        <dia:real val="0"/>
+      </dia:attribute>
+      <dia:attribute name="border_color">
+        <dia:color val="#1a1a1a"/>
+      </dia:attribute>
+      <dia:attribute name="show_background">
+        <dia:boolean val="true"/>
+      </dia:attribute>
+      <dia:attribute name="padding">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#router a#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="11.7812,4.195"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#1a1a1a"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O1">
+      <dia:attribute name="obj_pos">
+        <dia:point val="11.7812,4"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="11.7812,3.835;11.7812,4.165"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>##</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.35277776420116425"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="11.7812,4.0975"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="0" to="O0" connection="16"/>
+      </dia:connections>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O2">
+      <dia:attribute name="obj_pos">
+        <dia:point val="11.7812,4"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="11.7812,3.835;11.7812,4.165"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>##</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.35277776420116425"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="11.7812,4.0975"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="0" to="O0" connection="16"/>
+      </dia:connections>
+    </dia:object>
+    <dia:object type="Flowchart - Box" version="0" id="O3">
+      <dia:attribute name="obj_pos">
+        <dia:point val="10,7"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="10,7;13.5625,9"/>
+      </dia:attribute>
+      <dia:attribute name="elem_corner">
+        <dia:point val="10,7"/>
+      </dia:attribute>
+      <dia:attribute name="elem_width">
+        <dia:real val="3.5625"/>
+      </dia:attribute>
+      <dia:attribute name="elem_height">
+        <dia:real val="2"/>
+      </dia:attribute>
+      <dia:attribute name="border_width">
+        <dia:real val="0"/>
+      </dia:attribute>
+      <dia:attribute name="border_color">
+        <dia:color val="#1a1a1a"/>
+      </dia:attribute>
+      <dia:attribute name="show_background">
+        <dia:boolean val="true"/>
+      </dia:attribute>
+      <dia:attribute name="padding">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#router b#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="11.7812,8.195"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#1a1a1a"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O4">
+      <dia:attribute name="obj_pos">
+        <dia:point val="11.7812,8"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="11.7812,7.835;11.7812,8.165"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>##</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.35277776420116425"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="11.7812,8.0975"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="0" to="O3" connection="16"/>
+      </dia:connections>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O5">
+      <dia:attribute name="obj_pos">
+        <dia:point val="11.7812,8"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="11.7812,7.835;11.7812,8.165"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>##</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.35277776420116425"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="11.7812,8.0975"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="0" to="O3" connection="16"/>
+      </dia:connections>
+    </dia:object>
+    <dia:object type="Flowchart - Box" version="0" id="O6">
+      <dia:attribute name="obj_pos">
+        <dia:point val="10,11"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="10,11;13.5475,13"/>
+      </dia:attribute>
+      <dia:attribute name="elem_corner">
+        <dia:point val="10,11"/>
+      </dia:attribute>
+      <dia:attribute name="elem_width">
+        <dia:real val="3.5475000000000003"/>
+      </dia:attribute>
+      <dia:attribute name="elem_height">
+        <dia:real val="2"/>
+      </dia:attribute>
+      <dia:attribute name="border_width">
+        <dia:real val="0"/>
+      </dia:attribute>
+      <dia:attribute name="border_color">
+        <dia:color val="#1a1a1a"/>
+      </dia:attribute>
+      <dia:attribute name="show_background">
+        <dia:boolean val="true"/>
+      </dia:attribute>
+      <dia:attribute name="padding">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#router c#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="11.7737,12.195"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#1a1a1a"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Flowchart - Diamond" version="0" id="O7">
+      <dia:attribute name="obj_pos">
+        <dia:point val="4,3"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="4,3;8.06132,5.03066"/>
+      </dia:attribute>
+      <dia:attribute name="elem_corner">
+        <dia:point val="4,3"/>
+      </dia:attribute>
+      <dia:attribute name="elem_width">
+        <dia:real val="4.0613203435596432"/>
+      </dia:attribute>
+      <dia:attribute name="elem_height">
+        <dia:real val="2.0306601717798216"/>
+      </dia:attribute>
+      <dia:attribute name="border_width">
+        <dia:real val="0"/>
+      </dia:attribute>
+      <dia:attribute name="border_color">
+        <dia:color val="#1a1a1a"/>
+      </dia:attribute>
+      <dia:attribute name="show_background">
+        <dia:boolean val="true"/>
+      </dia:attribute>
+      <dia:attribute name="padding">
+        <dia:real val="0.35355339059327379"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#?#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="6.03066,4.21033"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#1a1a1a"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Flowchart - Diamond" version="0" id="O8">
+      <dia:attribute name="obj_pos">
+        <dia:point val="3.78125,6.9"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="3.78125,6.9;8.18257,9"/>
+      </dia:attribute>
+      <dia:attribute name="elem_corner">
+        <dia:point val="3.78125,6.9"/>
+      </dia:attribute>
+      <dia:attribute name="elem_width">
+        <dia:real val="4.4013203435596431"/>
+      </dia:attribute>
+      <dia:attribute name="elem_height">
+        <dia:real val="2.1000000000000005"/>
+      </dia:attribute>
+      <dia:attribute name="border_width">
+        <dia:real val="0"/>
+      </dia:attribute>
+      <dia:attribute name="border_color">
+        <dia:color val="#1a1a1a"/>
+      </dia:attribute>
+      <dia:attribute name="show_background">
+        <dia:boolean val="true"/>
+      </dia:attribute>
+      <dia:attribute name="padding">
+        <dia:real val="0.35355339059327379"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#?#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="5.98191,8.145"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#1a1a1a"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Flowchart - Diamond" version="0" id="O9">
+      <dia:attribute name="obj_pos">
+        <dia:point val="3.77375,10.9"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="3.77375,10.9;8.17507,13.1007"/>
+      </dia:attribute>
+      <dia:attribute name="elem_corner">
+        <dia:point val="3.77375,10.9"/>
+      </dia:attribute>
+      <dia:attribute name="elem_width">
+        <dia:real val="4.4013203435596431"/>
+      </dia:attribute>
+      <dia:attribute name="elem_height">
+        <dia:real val="2.2006601717798215"/>
+      </dia:attribute>
+      <dia:attribute name="border_width">
+        <dia:real val="0"/>
+      </dia:attribute>
+      <dia:attribute name="border_color">
+        <dia:color val="#1a1a1a"/>
+      </dia:attribute>
+      <dia:attribute name="show_background">
+        <dia:boolean val="true"/>
+      </dia:attribute>
+      <dia:attribute name="padding">
+        <dia:real val="0.35355339059327379"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#?#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="5.97441,12.1953"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#1a1a1a"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O10">
+      <dia:attribute name="obj_pos">
+        <dia:point val="6,1"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="4.595,0.59;7.405,1.41"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#Address#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.88194441050291061"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="6,1.245"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Line" version="0" id="O11">
+      <dia:attribute name="obj_pos">
+        <dia:point val="8.06132,4.01533"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="8.06132,3.75395;10.0075,4.25393"/>
+      </dia:attribute>
+      <dia:attribute name="conn_endpoints">
+        <dia:point val="8.06132,4.01533"/>
+        <dia:point val="10.0075,4"/>
+      </dia:attribute>
+      <dia:attribute name="numcp">
+        <dia:int val="1"/>
+      </dia:attribute>
+      <dia:attribute name="line_color">
+        <dia:color val="#1a1a1a"/>
+      </dia:attribute>
+      <dia:attribute name="line_width">
+        <dia:real val="0"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow">
+        <dia:enum val="1"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="0" to="O7" connection="4"/>
+        <dia:connection handle="1" to="O0" connection="7"/>
+      </dia:connections>
+    </dia:object>
+    <dia:object type="Standard - Line" version="0" id="O12">
+      <dia:attribute name="obj_pos">
+        <dia:point val="8.18257,7.95"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="8.18257,7.71835;10.0012,8.2183"/>
+      </dia:attribute>
+      <dia:attribute name="conn_endpoints">
+        <dia:point val="8.18257,7.95"/>
+        <dia:point val="10.0012,7.97527"/>
+      </dia:attribute>
+      <dia:attribute name="numcp">
+        <dia:int val="1"/>
+      </dia:attribute>
+      <dia:attribute name="line_color">
+        <dia:color val="#1a1a1a"/>
+      </dia:attribute>
+      <dia:attribute name="line_width">
+        <dia:real val="0"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow">
+        <dia:enum val="1"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="0" to="O8" connection="4"/>
+        <dia:connection handle="1" to="O3" connection="16"/>
+      </dia:connections>
+    </dia:object>
+    <dia:object type="Standard - Line" version="0" id="O13">
+      <dia:attribute name="obj_pos">
+        <dia:point val="8.17482,12.0002"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="8.17482,11.7501;10.0004,12.2501"/>
+      </dia:attribute>
+      <dia:attribute name="conn_endpoints">
+        <dia:point val="8.17482,12.0002"/>
+        <dia:point val="10.0004,12.0001"/>
+      </dia:attribute>
+      <dia:attribute name="numcp">
+        <dia:int val="1"/>
+      </dia:attribute>
+      <dia:attribute name="line_color">
+        <dia:color val="#1a1a1a"/>
+      </dia:attribute>
+      <dia:attribute name="line_width">
+        <dia:real val="0"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow">
+        <dia:enum val="1"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="0" to="O9" connection="16"/>
+        <dia:connection handle="1" to="O6" connection="16"/>
+      </dia:connections>
+    </dia:object>
+    <dia:object type="Standard - Line" version="0" id="O14">
+      <dia:attribute name="obj_pos">
+        <dia:point val="6.03066,5.03066"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="5.74503,5.03066;6.24486,6.9"/>
+      </dia:attribute>
+      <dia:attribute name="conn_endpoints">
+        <dia:point val="6.03066,5.03066"/>
+        <dia:point val="5.98191,6.9"/>
+      </dia:attribute>
+      <dia:attribute name="numcp">
+        <dia:int val="1"/>
+      </dia:attribute>
+      <dia:attribute name="line_color">
+        <dia:color val="#1a1a1a"/>
+      </dia:attribute>
+      <dia:attribute name="line_width">
+        <dia:real val="0"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow">
+        <dia:enum val="1"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="0" to="O7" connection="8"/>
+        <dia:connection handle="1" to="O8" connection="0"/>
+      </dia:connections>
+    </dia:object>
+    <dia:object type="Standard - Line" version="0" id="O15">
+      <dia:attribute name="obj_pos">
+        <dia:point val="5.98191,9"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="5.72639,9;6.22638,10.9"/>
+      </dia:attribute>
+      <dia:attribute name="conn_endpoints">
+        <dia:point val="5.98191,9"/>
+        <dia:point val="5.97441,10.9"/>
+      </dia:attribute>
+      <dia:attribute name="numcp">
+        <dia:int val="1"/>
+      </dia:attribute>
+      <dia:attribute name="line_color">
+        <dia:color val="#1a1a1a"/>
+      </dia:attribute>
+      <dia:attribute name="line_width">
+        <dia:real val="0"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow">
+        <dia:enum val="1"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="0" to="O8" connection="8"/>
+        <dia:connection handle="1" to="O9" connection="0"/>
+      </dia:connections>
+    </dia:object>
+    <dia:object type="Standard - ZigZagLine" version="1" id="O16">
+      <dia:attribute name="obj_pos">
+        <dia:point val="11.7812,5"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="5.73191,5;11.7812,6.9"/>
+      </dia:attribute>
+      <dia:attribute name="orth_points">
+        <dia:point val="11.7812,5"/>
+        <dia:point val="11.7812,6"/>
+        <dia:point val="5.98191,6"/>
+        <dia:point val="5.98191,6.9"/>
+      </dia:attribute>
+      <dia:attribute name="orth_orient">
+        <dia:enum val="1"/>
+        <dia:enum val="0"/>
+        <dia:enum val="1"/>
+      </dia:attribute>
+      <dia:attribute name="autorouting">
+        <dia:boolean val="true"/>
+      </dia:attribute>
+      <dia:attribute name="line_color">
+        <dia:color val="#1a1a1a"/>
+      </dia:attribute>
+      <dia:attribute name="line_width">
+        <dia:real val="0"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow">
+        <dia:enum val="1"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="0" to="O0" connection="13"/>
+        <dia:connection handle="1" to="O8" connection="0"/>
+      </dia:connections>
+    </dia:object>
+    <dia:object type="Standard - ZigZagLine" version="1" id="O17">
+      <dia:attribute name="obj_pos">
+        <dia:point val="11.7812,9.00049"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="5.72441,9.00049;11.7812,10.9"/>
+      </dia:attribute>
+      <dia:attribute name="orth_points">
+        <dia:point val="11.7812,9.00049"/>
+        <dia:point val="11.7812,10.0002"/>
+        <dia:point val="5.97441,10.0002"/>
+        <dia:point val="5.97441,10.9"/>
+      </dia:attribute>
+      <dia:attribute name="orth_orient">
+        <dia:enum val="1"/>
+        <dia:enum val="0"/>
+        <dia:enum val="1"/>
+      </dia:attribute>
+      <dia:attribute name="autorouting">
+        <dia:boolean val="true"/>
+      </dia:attribute>
+      <dia:attribute name="line_color">
+        <dia:color val="#1a1a1a"/>
+      </dia:attribute>
+      <dia:attribute name="line_width">
+        <dia:real val="0"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow">
+        <dia:enum val="1"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="0" to="O3" connection="16"/>
+        <dia:connection handle="1" to="O9" connection="0"/>
+      </dia:connections>
+    </dia:object>
+    <dia:object type="Standard - Line" version="0" id="O18">
+      <dia:attribute name="obj_pos">
+        <dia:point val="13.555,4"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="13.555,3.75;17,4.25"/>
+      </dia:attribute>
+      <dia:attribute name="conn_endpoints">
+        <dia:point val="13.555,4"/>
+        <dia:point val="17,4"/>
+      </dia:attribute>
+      <dia:attribute name="numcp">
+        <dia:int val="1"/>
+      </dia:attribute>
+      <dia:attribute name="line_color">
+        <dia:color val="#1a1a1a"/>
+      </dia:attribute>
+      <dia:attribute name="line_width">
+        <dia:real val="0"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow">
+        <dia:enum val="1"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="0" to="O0" connection="8"/>
+      </dia:connections>
+    </dia:object>
+    <dia:object type="Standard - Line" version="0" id="O19">
+      <dia:attribute name="obj_pos">
+        <dia:point val="13.5625,8"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="13.5625,7.75;17,8.25"/>
+      </dia:attribute>
+      <dia:attribute name="conn_endpoints">
+        <dia:point val="13.5625,8"/>
+        <dia:point val="17,8"/>
+      </dia:attribute>
+      <dia:attribute name="numcp">
+        <dia:int val="1"/>
+      </dia:attribute>
+      <dia:attribute name="line_color">
+        <dia:color val="#1a1a1a"/>
+      </dia:attribute>
+      <dia:attribute name="line_width">
+        <dia:real val="0"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow">
+        <dia:enum val="1"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="0" to="O3" connection="8"/>
+      </dia:connections>
+    </dia:object>
+    <dia:object type="Standard - Line" version="0" id="O20">
+      <dia:attribute name="obj_pos">
+        <dia:point val="13.5475,12"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="13.5475,11.75;17,12.25"/>
+      </dia:attribute>
+      <dia:attribute name="conn_endpoints">
+        <dia:point val="13.5475,12"/>
+        <dia:point val="17,12"/>
+      </dia:attribute>
+      <dia:attribute name="numcp">
+        <dia:int val="1"/>
+      </dia:attribute>
+      <dia:attribute name="line_color">
+        <dia:color val="#1a1a1a"/>
+      </dia:attribute>
+      <dia:attribute name="line_width">
+        <dia:real val="0"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow">
+        <dia:enum val="1"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="0" to="O6" connection="8"/>
+      </dia:connections>
+    </dia:object>
+    <dia:object type="Standard - Line" version="0" id="O21">
+      <dia:attribute name="obj_pos">
+        <dia:point val="6,1"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="5.77303,1;6.27297,3"/>
+      </dia:attribute>
+      <dia:attribute name="conn_endpoints">
+        <dia:point val="6,1"/>
+        <dia:point val="6.03066,3"/>
+      </dia:attribute>
+      <dia:attribute name="numcp">
+        <dia:int val="1"/>
+      </dia:attribute>
+      <dia:attribute name="line_color">
+        <dia:color val="#1a1a1a"/>
+      </dia:attribute>
+      <dia:attribute name="line_width">
+        <dia:real val="0"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow">
+        <dia:enum val="1"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="1" to="O7" connection="0"/>
+      </dia:connections>
+    </dia:object>
+    <dia:object type="Standard - Line" version="0" id="O22">
+      <dia:attribute name="obj_pos">
+        <dia:point val="5.97441,13.1007"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="5.73588,13.1007;6.23568,14"/>
+      </dia:attribute>
+      <dia:attribute name="conn_endpoints">
+        <dia:point val="5.97441,13.1007"/>
+        <dia:point val="6,14"/>
+      </dia:attribute>
+      <dia:attribute name="numcp">
+        <dia:int val="1"/>
+      </dia:attribute>
+      <dia:attribute name="line_color">
+        <dia:color val="#1a1a1a"/>
+      </dia:attribute>
+      <dia:attribute name="line_width">
+        <dia:real val="0"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow">
+        <dia:enum val="1"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="0" to="O9" connection="8"/>
+      </dia:connections>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O23">
+      <dia:attribute name="obj_pos">
+        <dia:point val="16,3"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="15.2963,2.67125;16.7037,3.32875"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#done#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.70555552840232849"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="16,3.19625"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O24">
+      <dia:attribute name="obj_pos">
+        <dia:point val="16,7"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="15.2963,6.67125;16.7037,7.32875"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#done#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.70555552840232849"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="16,7.19625"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O25">
+      <dia:attribute name="obj_pos">
+        <dia:point val="16,11"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="15.2963,10.6712;16.7037,11.3287"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#done#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.70555552840232849"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="16,11.1962"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O26">
+      <dia:attribute name="obj_pos">
+        <dia:point val="5,-5"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="5,-5.165;5,-4.835"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>##</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.35277776420116425"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="5,-4.9025"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O27">
+      <dia:attribute name="obj_pos">
+        <dia:point val="6,14.7224"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="4.045,14.3937;7.955,15.0512"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#Routing failed#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.70555552840232849"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="6,14.9187"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+    </dia:object>
+  </dia:layer>
+</dia:diagram>