diff --git a/doc/images/Makefile.am b/doc/images/Makefile.am
index 5495b69..0a21b54 100644
--- a/doc/images/Makefile.am
+++ b/doc/images/Makefile.am
@@ -7,6 +7,8 @@ SVG_SRCS =  atomic_queue.svg \
 	odp_traffic_manager.svg \
 	overview.svg \
 	release_git.svg \
+	tm_hierarchy.svg \
+	tm_node.svg \
 	simple_release_git.svg
 
 SVG_TARGETS = $(SVG_SRCS:svg=png)
@@ -80,5 +82,15 @@ simple_release_git.png: simple_release_git.svg
 simple_release_git.eps: simple_release_git.svg
 	convert $< $@
 
+tm_hierarchy.png: tm_hierarchy.svg
+	convert $< $@
+tm_hierarchy.eps: tm_hierarchy.svg
+	convert $< $@
+
+tm_node.png: tm_node.svg
+	convert $< $@
+tm_node.eps: tm_node.svg
+	convert $< $@
+
 resource_management.png: resource_management.msc
 	mscgen -T png -i $< -o $@
diff --git a/doc/images/tm_hierarchy.svg b/doc/images/tm_hierarchy.svg
new file mode 100644
index 0000000..e832cdd
--- /dev/null
+++ b/doc/images/tm_hierarchy.svg
@@ -0,0 +1,769 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.36.0 (20140111.2315)
+ -->
+<!-- Title: four_levels Pages: 1 -->
+<svg width="1362px" height="600px"
+ viewBox="0 0 1362 600" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<defs>
+    <symbol id="queue_symbol" fill="#80f080" stroke="black"
+             stroke-width="5" stroke-linecap="square">
+      <g transform="scale(0.2 0.2)" >
+        <line x1="0"   y1="70" x2="0"   y2="120" />
+        <line x1="100" y1="70" x2="100" y2="120" />
+        <polyline points="0,120 0,170 100,170 100,120" />
+
+        <rect x="0" y="170" width="100" height="50"/>
+        <rect x="0" y="220" width="100" height="50"/>
+        <rect x="0" y="270" width="100" height="50"/>
+        <rect x="0" y="320" width="100" height="50"/>
+        <rect x="0" y="370" width="100" height="50"/>
+        <rect x="0" y="420" width="100" height="50"/>
+      </g>
+    </symbol>
+
+    <symbol id="ArbiterLevel3" > <!-- shift x left by 39 -->
+        <polygon fill="#F08080" stroke="black" points="54,0  0,0  12,29  42,29  54,0"/>
+    </symbol>
+
+    <symbol id="ArbiterLevel2" > <!-- shift x left by 92 -->
+        <polygon fill="#F0F080" stroke="black" points="116,0  0,0  24,36  92,36  116,0"/>
+    </symbol>
+
+    <symbol id="ArbiterLevel1" > <!-- shift x left by 79 -->
+        <polygon fill="#E080E0" stroke="black" points="101,9  0,9  21,54  79,54  101,9"/>
+    </symbol>
+
+    <symbol id="DownArrowColor1" > <!-- shift x left by 7 and shift y by 5 -->
+        <polygon fill="green" stroke="green" points="14,-10  0,-10  7,10  14,-10"/>
+    </symbol>
+
+    <symbol id="DownArrowColor2" > <!-- shift x left by 7 and shift y by 5 -->
+        <polygon fill="black" stroke="black" points="14,-10  0,-10  7,10  14,-10"/>
+    </symbol>
+
+</defs>
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(30 530)">
+<title>four_levels</title>
+<polygon fill="#E8E8E8" stroke="none" points="-20,40 -20,-520 1320,-520 1320,40 -20,40"/>
+
+<!-- q28 -->
+<g id="node1" class="node"><title>q28</title>
+<use xlink:href="#queue_symbol" x="1107" y="-455"/>
+<text text-anchor="start" x="1115" y="-460" font-family="Times,serif" font-size="10.00">q28</text>
+</g>
+
+<!-- a1 -->
+<g id="node33" class="node"><title>a1</title>
+<use xlink:href="#ArbiterLevel3" x="1130" y="-325"/>
+<text text-anchor="middle" x="1157" y="-308.5" font-family="Times,serif" font-size="10.00">User&#45;18</text>
+</g>
+
+<!-- q28&#45;&gt;a1 -->
+<g id="edge1" class="edge"><title>q28&#45;&gt;a1</title>
+<path fill="none" stroke="green" d="M1127.59,-386.63C1130.6,-378.651 1133.9,-369.975 1137,-362 1140.46,-353.106 1144.34,-343.356 1147.75,-334.847"/>
+<polygon fill="green" stroke="green" points="1151.01,-336.137 1151.5,-325.553 1144.51,-333.521 1151.01,-336.137"/>
+</g>
+
+<!-- q29 -->
+<g id="node2" class="node"><title>q29</title>
+<use xlink:href="#queue_symbol" x="1146" y="-455"/>
+<text text-anchor="middle" x="1154" y="-460" font-family="Times,serif" font-size="10.00">q29</text>
+</g>
+<!-- q29&#45;&gt;a1 -->
+
+<g id="edge2" class="edge"><title>q29&#45;&gt;a1</title>
+<path fill="none" stroke="green" d="M1157,-361.991C1157,-352.879 1157,-343.829 1157,-335.985"/>
+<polygon fill="green" stroke="green" points="1160.5,-335.817 1157,-325.818 1153.5,-335.818 1160.5,-335.817"/>
+</g>
+
+<!-- q30 -->
+<g id="node3" class="node"><title>q30</title>
+<use xlink:href="#queue_symbol" x="1186" y="-455"/>
+<text text-anchor="middle" x="1194" y="-460" font-family="Times,serif" font-size="10.00">q30</text>
+</g>
+<!-- q30&#45;&gt;a1 -->
+
+<g id="edge3" class="edge"><title>q30&#45;&gt;a1</title>
+<path fill="none" stroke="green" d="M1186.49,-387.938C1180.11,-371.51 1172.05,-350.762 1165.97,-335.107"/>
+<polygon fill="green" stroke="green" points="1169.18,-333.706 1162.3,-325.651 1162.66,-336.24 1169.18,-333.706"/>
+</g>
+
+<!-- q31 -->
+<g id="node4" class="node"><title>q31</title>
+<use xlink:href="#queue_symbol" x="1226" y="-455"/>
+<text text-anchor="middle" x="1234" y="-460" font-family="Times,serif" font-size="10.00">q31</text>
+</g>
+<!-- q31&#45;&gt;a1 -->
+
+<g id="edge4" class="edge"><title>q31&#45;&gt;a1</title>
+<path fill="none" stroke="green" d="M1226.49,-381.191C1223.63,-374.515 1220.16,-367.789 1216,-362 1206.05,-348.132 1191.43,-335.706 1179.23,-326.71"/>
+<polygon fill="green" stroke="green" points="1181.06,-323.719 1170.88,-320.795 1177.02,-329.431 1181.06,-323.719"/>
+</g>
+
+<!-- q25 -->
+<g id="node5" class="node"><title>q25</title>
+<use xlink:href="#queue_symbol" x="988" y="-455"/>
+<text text-anchor="middle" x="996" y="-460" font-family="Times,serif" font-size="10.00">q25</text>
+</g>
+
+<!-- a2 -->
+<g id="node34" class="node"><title>a2</title>
+<use xlink:href="#ArbiterLevel3" x="998" y="-325"/>
+<text text-anchor="middle" x="1025" y="-308.5" font-family="Times,serif" font-size="10.00">User&#45;16</text>
+</g>
+
+<!-- q25&#45;&gt;a2 -->
+<g id="edge5" class="edge"><title>q25&#45;&gt;a2</title>
+<path fill="none" stroke="green" d="M1007.51,-376.354C1011.25,-362.579 1015.35,-347.493 1018.64,-335.392"/>
+<polygon fill="green" stroke="green" points="1022.05,-336.202 1021.29,-325.634 1015.29,-334.366 1022.05,-336.202"/>
+</g>
+
+<!-- q26 -->
+<g id="node6" class="node"><title>q26</title>
+<use xlink:href="#queue_symbol" x="1030" y="-455"/>
+<text text-anchor="middle" x="1038" y="-460" font-family="Times,serif" font-size="10.00">q26</text>
+</g>
+
+<!-- q26&#45;&gt;a2 -->
+<g id="edge6" class="edge"><title>q26&#45;&gt;a2</title>
+<path fill="none" stroke="green" d="M1030.82,-361.991C1029.76,-352.879 1028.71,-343.829 1027.79,-335.985"/>
+<polygon fill="green" stroke="green" points="1031.24,-335.345 1026.61,-325.818 1024.29,-336.155 1031.24,-335.345"/>
+</g>
+
+<!-- q27 -->
+<g id="node7" class="node"><title>q27</title>
+<use xlink:href="#queue_symbol" x="1071" y="-455"/>
+<text text-anchor="middle" x="1079" y="-460" font-family="Times,serif" font-size="10.00">q27</text>
+</g>
+
+<!-- a3 -->
+<g id="node35" class="node"><title>a3</title>
+<use xlink:href="#ArbiterLevel3" x="1059" y="-325"/>
+<text text-anchor="middle" x="1086" y="-308.5" font-family="Times,serif" font-size="10.00">User&#45;17</text>
+</g>
+
+<!-- q27&#45;&gt;a3 -->
+<g id="edge7" class="edge"><title>q27&#45;&gt;a3</title>
+<path fill="none" stroke="green" d="M1081.63,-361.991C1082.43,-352.879 1083.22,-343.829 1083.9,-335.985"/>
+<polygon fill="green" stroke="green" points="1087.41,-336.084 1084.79,-325.818 1080.44,-335.475 1087.41,-336.084"/>
+</g>
+
+<!-- q32 -->
+<g id="node8" class="node"><title>q32</title>
+<use xlink:href="#queue_symbol" x="1267" y="-455"/>
+<text text-anchor="middle" x="1274" y="-460" font-family="Times,serif" font-size="10.00">q32</text>
+</g>
+
+<!-- a4 -->
+<g id="node36" class="node"><title>a4</title>
+<use xlink:href="#ArbiterLevel3" x="1220" y="-325"/>
+<text text-anchor="middle" x="1247" y="-308.5" font-family="Times,serif" font-size="10.00">User&#45;19</text>
+</g>
+<!-- q32&#45;&gt;a4 -->
+
+<g id="edge8" class="edge"><title>q32&#45;&gt;a4</title>
+<path fill="none" stroke="green" d="M1266.42,-378.686C1262.23,-364.297 1257.54,-348.171 1253.81,-335.381"/>
+<polygon fill="green" stroke="green" points="1257.1,-334.156 1250.94,-325.534 1250.38,-336.114 1257.1,-334.156"/>
+</g>
+
+<!-- q16 -->
+<g id="node9" class="node"><title>q16</title>
+<use xlink:href="#queue_symbol" x="628" y="-455"/>
+<text text-anchor="middle" x="636" y="-460" font-family="Times,serif" font-size="10.00">q16</text>
+</g>
+
+<!-- a5 -->
+<g id="node37" class="node"><title>a5</title>
+<use xlink:href="#ArbiterLevel3" x="648" y="-325"/>
+<text text-anchor="middle" x="675" y="-308.5" font-family="Times,serif" font-size="10.00">User&#45;11</text>
+</g>
+<!-- q16&#45;&gt;a5 -->
+
+<g id="edge9" class="edge"><title>q16&#45;&gt;a5</title>
+<path fill="none" stroke="green" d="M647.585,-386.309C653.509,-370.252 660.801,-350.488 666.374,-335.38"/>
+<polygon fill="green" stroke="green" points="669.743,-336.361 669.921,-325.767 663.176,-333.938 669.743,-336.361"/>
+</g>
+
+<!-- q17 -->
+<g id="node10" class="node"><title>q17</title>
+<use xlink:href="#queue_symbol" x="670" y="-455"/>
+<text text-anchor="middle" x="677" y="-460" font-family="Times,serif" font-size="10.00">q17</text>
+</g>
+
+<!-- q17&#45;&gt;a5 -->
+<g id="edge10" class="edge"><title>q17&#45;&gt;a5</title>
+<path fill="none" stroke="green" d="M675.971,-361.991C675.794,-352.879 675.618,-343.829 675.466,-335.985"/>
+<polygon fill="green" stroke="green" points="678.962,-335.748 675.268,-325.818 671.963,-335.884 678.962,-335.748"/>
+</g>
+
+<!-- q18 -->
+<g id="node11" class="node"><title>q18</title>
+<use xlink:href="#queue_symbol" x="712" y="-455"/>
+<text text-anchor="middle" x="717" y="-460" font-family="Times,serif" font-size="10.00">q18</text>
+</g>
+
+<!-- a6 -->
+<g id="node38" class="node"><title>a6</title>
+<use xlink:href="#ArbiterLevel3" x="709" y="-325"/>
+<text text-anchor="middle" x="736" y="-308.5" font-family="Times,serif" font-size="10.00">User&#45;12</text>
+</g>
+<!-- q18&#45;&gt;a6 -->
+
+<g id="edge11" class="edge"><title>q18&#45;&gt;a6</title>
+<path fill="none" stroke="green" d="M726.778,-361.991C728.479,-352.774 730.167,-343.621 731.625,-335.715"/>
+<polygon fill="green" stroke="green" points="735.079,-336.287 733.451,-325.818 728.195,-335.017 735.079,-336.287"/>
+</g>
+
+<!-- q19 -->
+<g id="node12" class="node"><title>q19</title>
+<use xlink:href="#queue_symbol" x="750" y="-455"/>
+<text text-anchor="middle" x="758" y="-460" font-family="Times,serif" font-size="10.00">q19</text>
+</g>
+<!-- q19&#45;&gt;a6 -->
+
+<g id="edge12" class="edge"><title>q19&#45;&gt;a6</title>
+<path fill="none" stroke="green" d="M746.438,-363.198C744.478,-353.585 742.521,-343.985 740.84,-335.739"/>
+<polygon fill="green" stroke="green" points="744.239,-334.892 738.812,-325.793 737.38,-336.29 744.239,-334.892"/>
+</g>
+
+<!-- q20 -->
+<g id="node13" class="node"><title>q20</title>
+<use xlink:href="#queue_symbol" x="792" y="-455"/>
+<text text-anchor="middle" x="797" y="-460" font-family="Times,serif" font-size="10.00">q20</text>
+</g>
+
+<!-- a7 -->
+<g id="node39" class="node"><title>a7</title>
+<use xlink:href="#ArbiterLevel3" x="770" y="-325"/>
+<text text-anchor="middle" x="797" y="-308.5" font-family="Times,serif" font-size="10.00">User&#45;13</text>
+</g>
+<!-- q20&#45;&gt;a7 -->
+
+<g id="edge13" class="edge"><title>q20&#45;&gt;a7</title>
+<path fill="none" stroke="green" d="M797,-361.991C797,-352.879 797,-343.829 797,-335.985"/>
+<polygon fill="green" stroke="green" points="800.5,-335.817 797,-325.818 793.5,-335.818 800.5,-335.817"/>
+</g>
+
+<!-- q21 -->
+<g id="node14" class="node"><title>q21</title>
+<use xlink:href="#queue_symbol" x="832" y="-455"/>
+<text text-anchor="middle" x="837" y="-460" font-family="Times,serif" font-size="10.00">q21</text>
+</g>
+
+<!-- a8 -->
+<g id="node40" class="node"><title>a8</title>
+<use xlink:href="#ArbiterLevel3" x="834" y="-325"/>
+<text text-anchor="middle" x="861" y="-308.5" font-family="Times,serif" font-size="10.00">User&#45;14</text>
+</g>
+<!-- q21&#45;&gt;a8 -->
+
+<g id="edge14" class="edge"><title>q21&#45;&gt;a8</title>
+<path fill="none" stroke="green" d="M847.527,-369.823C850.294,-357.948 853.167,-345.618 855.545,-335.41"/>
+<polygon fill="green" stroke="green" points="858.959,-336.181 857.82,-325.648 852.142,-334.593 858.959,-336.181"/>
+</g>
+
+<!-- q22 -->
+<g id="node15" class="node"><title>q22</title>
+<use xlink:href="#queue_symbol" x="870" y="-455"/>
+<text text-anchor="middle" x="878" y="-460" font-family="Times,serif" font-size="10.00">q22</text>
+</g>
+<!-- q22&#45;&gt;a8 -->
+
+<g id="edge15" class="edge"><title>q22&#45;&gt;a8</title>
+<path fill="none" stroke="green" d="M868.766,-361.991C867.334,-352.774 865.912,-343.621 864.684,-335.715"/>
+<polygon fill="green" stroke="green" points="868.14,-335.162 863.146,-325.818 861.223,-336.236 868.14,-335.162"/>
+</g>
+
+<!-- q23 -->
+<g id="node16" class="node"><title>q23</title>
+<use xlink:href="#queue_symbol" x="910" y="-455"/>
+<text text-anchor="middle" x="917" y="-460" font-family="Times,serif" font-size="10.00">q23</text>
+</g>
+
+<!-- a9 -->
+<g id="node41" class="node"><title>a9</title>
+<use xlink:href="#ArbiterLevel3" x="895" y="-325"/>
+<text text-anchor="middle" x="922" y="-308.5" font-family="Times,serif" font-size="10.00">User&#45;15</text>
+</g>
+<!-- q23&#45;&gt;a9 -->
+
+<g id="edge16" class="edge"><title>q23&#45;&gt;a9</title>
+<path fill="none" stroke="green" d="M919.573,-361.991C920.016,-352.879 920.455,-343.829 920.836,-335.985"/>
+<polygon fill="green" stroke="green" points="924.34,-335.976 921.329,-325.818 917.348,-335.636 924.34,-335.976"/>
+</g>
+
+<!-- q24 -->
+<g id="node17" class="node"><title>q24</title>
+<use xlink:href="#queue_symbol" x="948" y="-455"/>
+<text text-anchor="middle" x="956" y="-460" font-family="Times,serif" font-size="10.00">q24</text>
+</g>
+<!-- q24&#45;&gt;a9 -->
+
+<g id="edge17" class="edge"><title>q24&#45;&gt;a9</title>
+<path fill="none" stroke="green" d="M946.499,-384.097C941.184,-368.457 934.839,-349.782 929.937,-335.358"/>
+<polygon fill="green" stroke="green" points="933.19,-334.053 926.659,-325.711 926.563,-336.305 933.19,-334.053"/>
+</g>
+
+<!-- q1 -->
+<g id="node18" class="node"><title>q1</title>
+<use xlink:href="#queue_symbol" x="12" y="-455"/>
+<text text-anchor="middle" x="20" y="-460" font-family="Times,serif" font-size="10.00">q1</text>
+</g>
+
+<!-- a10 -->
+<g id="node42" class="node"><title>a10</title>
+<use xlink:href="#ArbiterLevel3" x="-6" y="-325"/>
+<text text-anchor="middle" x="21" y="-308.5" font-family="Times,serif" font-size="10.00">User&#45;1</text>
+</g>
+<!-- q1&#45;&gt;a10 -->
+
+<g id="edge18" class="edge"><title>q1&#45;&gt;a10</title>
+<path fill="none" stroke="green" d="M21,-361.991C21,-352.879 21,-343.829 21,-335.985"/>
+<polygon fill="green" stroke="green" points="24.5001,-335.817 21,-325.818 17.5001,-335.818 24.5001,-335.817"/>
+</g>
+
+<!-- q2 -->
+<g id="node19" class="node"><title>q2</title>
+<use xlink:href="#queue_symbol" x="59" y="-455"/>
+<text text-anchor="middle" x="64" y="-460" font-family="Times,serif" font-size="10.00">q2</text>
+</g>
+
+<!-- a11 -->
+<g id="node43" class="node"><title>a11</title>
+<use xlink:href="#ArbiterLevel3" x="55" y="-325"/>
+<text text-anchor="middle" x="82" y="-308.5" font-family="Times,serif" font-size="10.00">User&#45;2</text>
+</g>
+<!-- q2&#45;&gt;a11 -->
+
+<g id="edge19" class="edge"><title>q2&#45;&gt;a11</title>
+<path fill="none" stroke="green" d="M73.2636,-361.991C74.8745,-352.774 76.474,-343.621 77.8557,-335.715"/>
+<polygon fill="green" stroke="green" points="81.3115,-336.271 79.5853,-325.818 74.416,-335.066 81.3115,-336.271"/>
+</g>
+
+<!-- q3 -->
+<g id="node20" class="node"><title>q3</title>
+<use xlink:href="#queue_symbol" x="94" y="-455"/>
+<text text-anchor="start" x="99" y="-460" font-family="Times,serif" font-size="10.00">q3</text>
+</g>
+
+<!-- a12-->
+<g id="node44" class="node"><title>a12</title>
+<use xlink:href="#ArbiterLevel3" x="116" y="-325"/>
+<text text-anchor="middle" x="143" y="-308.5" font-family="Times,serif" font-size="10.00">User&#45;3</text>
+</g>
+<!-- q3&#45;&gt;a12 -->
+
+<g id="edge20" class="edge"><title>q3&#45;&gt;a12</title>
+<path fill="none" stroke="green" d="M114.575,-386.939C117.614,-378.886 120.935,-370.094 124,-362 127.32,-353.233 130.976,-343.605 134.187,-335.158"/>
+<polygon fill="green" stroke="green" points="137.547,-336.17 137.83,-325.578 131.004,-333.681 137.547,-336.17"/>
+</g>
+
+<!-- q4 -->
+<g id="node21" class="node"><title>q4</title>
+<use xlink:href="#queue_symbol" x="137" y="-455"/>
+<text text-anchor="middle" x="144" y="-460" font-family="Times,serif" font-size="10.00">q4</text>
+</g>
+<!-- q4&#45;&gt;a12 -->
+
+<g id="edge21" class="edge"><title>q4&#45;&gt;a12</title>
+<path fill="none" stroke="green" d="M143.485,-361.991C143.397,-352.879 143.309,-343.829 143.233,-335.985"/>
+<polygon fill="green" stroke="green" points="146.731,-335.783 143.134,-325.818 139.731,-335.851 146.731,-335.783"/>
+</g>
+
+<!-- q5 -->
+<g id="node22" class="node"><title>q5</title>
+<use xlink:href="#queue_symbol" x="176" y="-455"/>
+<text text-anchor="middle" x="184" y="-460" font-family="Times,serif" font-size="10.00">q5</text>
+</g>
+
+<!-- a13 -->
+<g id="node45" class="node"><title>a13</title>
+<use xlink:href="#ArbiterLevel3" x="186" y="-325"/>
+<text text-anchor="middle" x="213" y="-308.5" font-family="Times,serif" font-size="10.00">User&#45;4</text>
+</g>
+<!-- q5&#45;&gt;a13 -->
+
+<g id="edge22" class="edge"><title>q5&#45;&gt;a13</title>
+<path fill="none" stroke="green" d="M194.552,-377.523C198.485,-363.554 202.837,-348.095 206.327,-335.702"/>
+<polygon fill="green" stroke="green" points="209.797,-336.289 209.138,-325.715 203.059,-334.392 209.797,-336.289"/>
+</g>
+
+<!-- q6 -->
+<g id="node23" class="node"><title>q6</title>
+<use xlink:href="#queue_symbol" x="219" y="-455"/>
+<text text-anchor="middle" x="224" y="-460" font-family="Times,serif" font-size="10.00">q6</text>
+</g>
+<!-- q6&#45;&gt;a13 -->
+
+<g id="edge23" class="edge"><title>q6&#45;&gt;a13</title>
+<path fill="none" stroke="green" d="M218.339,-361.991C217.366,-352.879 216.399,-343.829 215.561,-335.985"/>
+<polygon fill="green" stroke="green" points="219.018,-335.389 214.476,-325.818 212.057,-336.133 219.018,-335.389"/>
+</g>
+
+<!-- q7 -->
+<g id="node24" class="node"><title>q7</title>
+<use xlink:href="#queue_symbol" x="259" y="-455"/>
+<text text-anchor="middle" x="264" y="-460" font-family="Times,serif" font-size="10.00">q7</text>
+</g>
+
+<!-- a14 -->
+<g id="node46" class="node"><title>a14</title>
+<use xlink:href="#ArbiterLevel3" x="247" y="-325"/>
+<text text-anchor="middle" x="274" y="-308.5" font-family="Times,serif" font-size="10.00">User&#45;5</text>
+</g>
+<!-- q7&#45;&gt;a14 -->
+
+<g id="edge24" class="edge"><title>q7&#45;&gt;a14</title>
+<path fill="none" stroke="green" d="M269.146,-361.991C270.031,-352.879 270.91,-343.829 271.671,-335.985"/>
+<polygon fill="green" stroke="green" points="275.176,-336.109 272.658,-325.818 268.208,-335.432 275.176,-336.109"/>
+</g>
+
+<!-- q8 -->
+<g id="node25" class="node"><title>q8</title>
+<use xlink:href="#queue_symbol" x="295" y="-455"/>
+<text text-anchor="middle" x="303" y="-460" font-family="Times,serif" font-size="10.00">q8</text>
+</g>
+<!-- q8&#45;&gt;a14 -->
+
+<g id="edge25" class="edge"><title>q8&#45;&gt;a14</title>
+<path fill="none" stroke="green" d="M293.423,-378.686C289.232,-364.297 284.535,-348.171 280.81,-335.381"/>
+<polygon fill="green" stroke="green" points="284.099,-334.156 277.942,-325.534 277.378,-336.114 284.099,-334.156"/>
+</g>
+
+<!-- q9 -->
+<g id="node26" class="node"><title>q9</title>
+<use xlink:href="#queue_symbol" x="339" y="-455"/>
+<text text-anchor="middle" x="344" y="-460" font-family="Times,serif" font-size="10.00">q9</text>
+</g>
+
+<!-- a15 -->
+<g id="node47" class="node"><title>a15</title>
+<use xlink:href="#ArbiterLevel3" x="308" y="-325"/>
+<text text-anchor="middle" x="335" y="-308.5" font-family="Times,serif" font-size="10.00">User&#45;6</text>
+</g>
+<!-- q9&#45;&gt;a15 -->
+
+<g id="edge26" class="edge"><title>q9&#45;&gt;a15</title>
+<path fill="none" stroke="green" d="M339.368,-361.991C338.572,-352.879 337.781,-343.829 337.096,-335.985"/>
+<polygon fill="green" stroke="green" points="340.565,-335.475 336.207,-325.818 333.591,-336.084 340.565,-335.475"/>
+</g>
+
+<!-- q10 -->
+<g id="node27" class="node"><title>q10</title>
+<use xlink:href="#queue_symbol" x="389" y="-455"/>
+<text text-anchor="middle" x="396" y="-460" font-family="Times,serif" font-size="10.00">q10</text>
+</g>
+
+<!-- a16 -->
+<g id="node48" class="node"><title>a16</title>
+<use xlink:href="#ArbiterLevel3" x="369" y="-325"/>
+<text text-anchor="middle" x="396" y="-308.5" font-family="Times,serif" font-size="10.00">User&#45;7</text>
+</g>
+<!-- q10&#45;&gt;a16 -->
+
+<g id="edge27" class="edge"><title>q10&#45;&gt;a16</title>
+<path fill="none" stroke="green" d="M396,-361.991C396,-352.879 396,-343.829 396,-335.985"/>
+<polygon fill="green" stroke="green" points="399.5,-335.817 396,-325.818 392.5,-335.818 399.5,-335.817"/>
+</g>
+
+<!-- q11 -->
+<g id="node28" class="node"><title>q11</title>
+<use xlink:href="#queue_symbol" x="432" y="-455"/>
+<text text-anchor="middle" x="437" y="-460" font-family="Times,serif" font-size="10.00">q11</text>
+</g>
+
+<!-- a17 -->
+<g id="node49" class="node"><title>a17</title>
+<use xlink:href="#ArbiterLevel3" x="430" y="-325"/>
+<text text-anchor="middle" x="457" y="-308.5" font-family="Times,serif" font-size="10.00">User&#45;8</text>
+</g>
+<!-- q11&#45;&gt;a17 -->
+
+<g id="edge28" class="edge"><title>q11&#45;&gt;a17</title>
+<path fill="none" stroke="green" d="M447.293,-361.991C449.083,-352.774 450.86,-343.621 452.395,-335.715"/>
+<polygon fill="green" stroke="green" points="455.847,-336.301 454.317,-325.818 448.975,-334.967 455.847,-336.301"/>
+</g>
+
+<!-- q12 -->
+<g id="node29" class="node"><title>q12</title>
+<use xlink:href="#queue_symbol" x="468" y="-455"/>
+<text text-anchor="middle" x="476" y="-460" font-family="Times,serif" font-size="10.00">q12</text>
+</g>
+<!-- q12&#45;&gt;a17 -->
+
+<g id="edge29" class="edge"><title>q12&#45;&gt;a17</title>
+<path fill="none" stroke="green" d="M466.707,-361.991C464.917,-352.774 463.14,-343.621 461.605,-335.715"/>
+<polygon fill="green" stroke="green" points="465.025,-334.967 459.683,-325.818 458.153,-336.301 465.025,-334.967"/>
+</g>
+
+<!-- q13 -->
+<g id="node30" class="node"><title>q13</title>
+<use xlink:href="#queue_symbol" x="512" y="-455"/>
+<text text-anchor="middle" x="517" y="-460" font-family="Times,serif" font-size="10.00">q13</text>
+</g>
+
+<!-- a18 -->
+<g id="node50" class="node"><title>a18</title>
+<use xlink:href="#ArbiterLevel3" x="491" y="-325"/>
+<text text-anchor="middle" x="518" y="-308.5" font-family="Times,serif" font-size="10.00">User&#45;9</text>
+</g>
+<!-- q13&#45;&gt;a18 -->
+
+<g id="edge30" class="edge"><title>q13&#45;&gt;a18</title>
+<path fill="none" stroke="green" d="M517.515,-361.991C517.603,-352.879 517.691,-343.829 517.767,-335.985"/>
+<polygon fill="green" stroke="green" points="521.269,-335.851 517.866,-325.818 514.269,-335.783 521.269,-335.851"/>
+</g>
+
+<!-- q14 -->
+<g id="node31" class="node"><title>q14</title>
+<use xlink:href="#queue_symbol" x="552" y="-455"/>
+<text text-anchor="middle" x="557" y="-460" font-family="Times,serif" font-size="10.00">q14</text>
+</g>
+
+<!-- a19 -->
+<g id="node51" class="node"><title>a19</title>
+<use xlink:href="#ArbiterLevel3" x="552" y="-325"/>
+<text text-anchor="middle" x="579" y="-308.5" font-family="Times,serif" font-size="10.00">User&#45;10</text>
+</g>
+<!-- q14&#45;&gt;a19 -->
+
+<g id="edge31" class="edge"><title>q14&#45;&gt;a19</title>
+<path fill="none" stroke="green" d="M567.549,-365.612C569.775,-355.187 572.027,-344.648 573.937,-335.704"/>
+<polygon fill="green" stroke="green" points="577.407,-336.213 576.073,-325.703 570.562,-334.751 577.407,-336.213"/>
+</g>
+
+<!-- q15 -->
+<g id="node32" class="node"><title>q15</title>
+<use xlink:href="#queue_symbol" x="589" y="-455"/>
+<text text-anchor="middle" x="597" y="-460" font-family="Times,serif" font-size="10.00">q15</text>
+</g>
+<!-- q15&#45;&gt;a19 -->
+
+<g id="edge32" class="edge"><title>q15&#45;&gt;a19</title>
+<path fill="none" stroke="green" d="M587.736,-361.991C586.126,-352.774 584.526,-343.621 583.144,-335.715"/>
+<polygon fill="green" stroke="green" points="586.584,-335.066 581.415,-325.818 579.689,-336.271 586.584,-335.066"/>
+</g>
+<!-- b1 -->
+<g id="node52" class="node"><title>b1</title>
+<use xlink:href="#ArbiterLevel2" x="1023" y="-260"/>
+<text text-anchor="middle" x="1086" y="-238.9" font-family="Times,serif" font-size="12.00">Gold&#45;C3</text>
+</g>
+<!-- a1&#45;&gt;b1 -->
+<g id="edge33" class="edge"><title>a1&#45;&gt;b1</title>
+<path fill="none" stroke="black" d="M1142.63,-296.442C1133.7,-288.011 1121.96,-276.931 1111.48,-267.046"/>
+<polygon fill="black" stroke="black" points="1113.81,-264.433 1104.14,-260.116 1109.01,-269.524 1113.81,-264.433"/>
+</g>
+<!-- a2&#45;&gt;b1 -->
+<g id="edge34" class="edge"><title>a2&#45;&gt;b1</title>
+<path fill="none" stroke="black" d="M1037.34,-296.442C1044.82,-288.235 1054.57,-277.518 1063.39,-267.837"/>
+<polygon fill="black" stroke="black" points="1066.05,-270.114 1070.19,-260.363 1060.87,-265.401 1066.05,-270.114"/>
+</g>
+<!-- a3&#45;&gt;b1 -->
+<g id="edge35" class="edge"><title>a3&#45;&gt;b1</title>
+<path fill="none" stroke="black" d="M1086,-296.442C1086,-288.966 1086,-279.408 1086,-270.447"/>
+<polygon fill="black" stroke="black" points="1089.5,-270.363 1086,-260.363 1082.5,-270.363 1089.5,-270.363"/>
+</g>
+
+<!-- a4&#45;&gt;b1 -->
+<g id="edge36" class="edge"><title>a4&#45;&gt;b1</title>
+<path fill="none" stroke="black" d="M1237.26,-295.3 L 1138,-265"/>
+<use transform="rotate(70, 1134,-265)" xlink:href="#DownArrowColor2" x="1128" y="-272"/>
+</g>
+
+<!-- b2 -->
+<g id="node53" class="node"><title>b2</title>
+<use xlink:href="#ArbiterLevel2" x="675" y="-260"/>
+<text text-anchor="middle" x="736" y="-238.9" font-family="Times,serif" font-size="12.00">Bronze&#45;C3</text>
+</g>
+<!-- a5&#45;&gt;b2 -->
+<g id="edge37" class="edge"><title>a5&#45;&gt;b2</title>
+<path fill="none" stroke="black" d="M687.344,-296.442C694.816,-288.235 704.573,-277.518 713.387,-267.837"/>
+<polygon fill="black" stroke="black" points="716.048,-270.114 720.192,-260.363 710.872,-265.401 716.048,-270.114"/>
+</g>
+<!-- a6&#45;&gt;b2 -->
+<g id="edge38" class="edge"><title>a6&#45;&gt;b2</title>
+<path fill="none" stroke="black" d="M736,-296.442C736,-288.966 736,-279.408 736,-270.447"/>
+<polygon fill="black" stroke="black" points="739.5,-270.363 736,-260.363 732.5,-270.363 739.5,-270.363"/>
+</g>
+<!-- a7&#45;&gt;b2 -->
+<g id="edge39" class="edge"><title>a7&#45;&gt;b2</title>
+<path fill="none" stroke="black" d="M784.656,-296.442C777.184,-288.235 767.427,-277.518 758.613,-267.837"/>
+<polygon fill="black" stroke="black" points="761.128,-265.401 751.808,-260.363 755.952,-270.114 761.128,-265.401"/>
+</g>
+<!-- b3 -->
+<g id="node54" class="node"><title>b3</title>
+<use xlink:href="#ArbiterLevel2" x="807" y="-260"/>
+<text text-anchor="middle" x="865" y="-238.9" font-family="Times,serif" font-size="12.00">Silver&#45;C3</text>
+</g>
+<!-- a8&#45;&gt;b3 -->
+<g id="edge40" class="edge"><title>a8&#45;&gt;b3</title>
+<path fill="none" stroke="black" d="M861.809,-296.442C862.256,-288.966 862.826,-279.408 863.361,-270.447"/>
+<polygon fill="black" stroke="black" points="866.861,-270.554 863.963,-260.363 859.874,-270.137 866.861,-270.554"/>
+</g>
+
+<!-- a9&#45;&gt;b3 -->
+<g id="edge41" class="edge"><title>a9&#45;&gt;b3</title>
+<path fill="none" stroke="black" d="M920,-297 L 909,-269"/>
+<use transform="rotate(18, 908,-268)" xlink:href="#DownArrowColor2" x="901.5" y="-271"/>
+</g>
+
+<!-- b4 -->
+<g id="node55" class="node"><title>b4</title>
+<use xlink:href="#ArbiterLevel2" x="57" y="-260"/>
+<text text-anchor="middle" x="111" y="-238.9" font-family="Times,serif" font-size="12.00">Regular&#45;C1</text>
+</g>
+<!-- a10&#45;&gt;b4 -->
+<g id="edge42" class="edge"><title>a10&#45;&gt;b4</title>
+<path fill="none" stroke="black" d="M39.2128,-296.442C50.8676,-287.765 66.2915,-276.283 79.8547,-266.186"/>
+<polygon fill="black" stroke="black" points="82.0776,-268.895 88.0089,-260.116 77.8976,-263.28 82.0776,-268.895"/>
+</g>
+<!-- a11&#45;&gt;b4 -->
+<g id="edge43" class="edge"><title>a11&#45;&gt;b4</title>
+<path fill="none" stroke="black" d="M87.8686,-296.442C91.2097,-288.722 95.5122,-278.782 99.4985,-269.572"/>
+<polygon fill="black" stroke="black" points="102.724,-270.931 103.485,-260.363 96.3003,-268.15 102.724,-270.931"/>
+</g>
+<!-- a12&#45;&gt;b4 -->
+<g id="edge44" class="edge"><title>a12&#45;&gt;b4</title>
+<path fill="none" stroke="black" d="M136.524,-296.442C132.838,-288.722 128.09,-278.782 123.691,-269.572"/>
+<polygon fill="black" stroke="black" points="126.761,-267.878 119.293,-260.363 120.444,-270.895 126.761,-267.878"/>
+</g>
+<!-- b5 -->
+<g id="node56" class="node"><title>b5</title>
+<use xlink:href="#ArbiterLevel2" x="217" y="-260"/>
+<text text-anchor="middle" x="274" y="-238.9" font-family="Times,serif" font-size="12.00">Premium&#45;C1</text>
+</g>
+<!-- a13&#45;&gt;b5 -->
+<g id="edge45" class="edge"><title>a13&#45;&gt;b5</title>
+<path fill="none" stroke="black" d="M225.344,-296.442C232.816,-288.235 242.573,-277.518 251.387,-267.837"/>
+<polygon fill="black" stroke="black" points="254.048,-270.114 258.192,-260.363 248.872,-265.401 254.048,-270.114"/>
+</g>
+<!-- a14&#45;&gt;b5 -->
+<g id="edge46" class="edge"><title>a14&#45;&gt;b5</title>
+<path fill="none" stroke="black" d="M274,-296.442C274,-288.966 274,-279.408 274,-270.447"/>
+<polygon fill="black" stroke="black" points="277.5,-270.363 274,-260.363 270.5,-270.363 277.5,-270.363"/>
+</g>
+<!-- a15&#45;&gt;b5 -->
+<g id="edge47" class="edge"><title>a15&#45;&gt;b5</title>
+<path fill="none" stroke="black" d="M322.656,-296.442C315.184,-288.235 305.427,-277.518 296.613,-267.837"/>
+<polygon fill="black" stroke="black" points="299.128,-265.401 289.808,-260.363 293.952,-270.114 299.128,-265.401"/>
+</g>
+<!-- b6 -->
+<g id="node57" class="node"><title>b6</title>
+<use xlink:href="#ArbiterLevel2" x="366" y="-260"/>
+<text text-anchor="middle" x="427" y="-238.9" font-family="Times,serif" font-size="12.00">Normal&#45;C2</text>
+</g>
+<!-- a16&#45;&gt;b6 -->
+<g id="edge48" class="edge"><title>a16&#45;&gt;b6</title>
+<path fill="none" stroke="black" d="M402.273,-296.442C405.845,-288.722 410.444,-278.782 414.705,-269.572"/>
+<polygon fill="black" stroke="black" points="417.944,-270.908 418.966,-260.363 411.591,-267.969 417.944,-270.908"/>
+</g>
+<!-- a17&#45;&gt;b6 -->
+<g id="edge49" class="edge"><title>a17&#45;&gt;b6</title>
+<path fill="none" stroke="black" d="M450.929,-296.442C447.473,-288.722 443.022,-278.782 438.898,-269.572"/>
+<polygon fill="black" stroke="black" points="442.056,-268.06 434.775,-260.363 435.667,-270.92 442.056,-268.06"/>
+</g>
+<!-- b7 -->
+<g id="node58" class="node"><title>b7</title>
+<use xlink:href="#ArbiterLevel2" x="502" y="-260"/>
+<text text-anchor="middle" x="559" y="-238.9" font-family="Times,serif" font-size="12.00">Turbo&#45;C2</text>
+</g>
+<!-- a18&#45;&gt;b7 -->
+<g id="edge50" class="edge"><title>a18&#45;&gt;b7</title>
+<path fill="none" stroke="black" d="M526.297,-296.442C531.12,-288.56 537.36,-278.363 543.095,-268.992"/>
+<polygon fill="black" stroke="black" points="546.141,-270.72 548.375,-260.363 540.17,-267.066 546.141,-270.72"/>
+</g>
+<!-- a19&#45;&gt;b7 -->
+<g id="edge51" class="edge"><title>a19&#45;&gt;b7</title>
+<path fill="none" stroke="black" d="M574.953,-296.442C572.697,-288.885 569.806,-279.2 567.106,-270.155"/>
+<polygon fill="black" stroke="black" points="570.397,-268.944 564.183,-260.363 563.69,-270.946 570.397,-268.944"/>
+</g>
+
+<!-- c3 -->
+<g id="node59" class="node"><title>c3</title>
+<use xlink:href="#ArbiterLevel1" x="735" y="-179"/>
+<text text-anchor="middle" x="785" y="-146" font-family="Times,serif" font-size="12.00">Company3</text>
+</g>
+
+<!-- b1&#45;&gt;c3 -->
+
+<g id="edge52" class="edge"><title>b1&#45;&gt;c3</title>
+<path fill="none" stroke="green" d="M1043,-227.072 L 845.759,-167.08"/>
+<polygon fill="green" stroke="green" points="846.633,-163.687 836.046,-164.091 844.574,-170.377 846.633,-163.687"/>
+</g>
+
+<!-- b2&#45;&gt;c3 -->
+<g id="edge53" class="edge"><title>b2&#45;&gt;c3</title>
+<path fill="none" stroke="green" d="M748.644,-223.614 L 754,-177"/>
+<use transform="rotate(-10, 754,-177)" xlink:href="#DownArrowColor1" x="747" y="-181"/>
+</g>
+
+<!-- b3&#45;&gt;c3 -->
+<g id="edge54" class="edge"><title>b3&#45;&gt;c3</title>
+<path fill="none" stroke="green" d="M852.158,-223.614 L  818,-177"/>
+<use transform="rotate(30, 818,-177)" xlink:href="#DownArrowColor1" x="811" y="-181"/>
+</g>
+
+<!-- c1 -->
+<g id="node60" class="node"><title>c1</title>
+<use xlink:href="#ArbiterLevel1" x="239" y="-179"/>
+<text text-anchor="middle" x="289" y="-146" font-family="Times,serif" font-size="12.00">Company1</text>
+</g>
+
+<!-- b4&#45;&gt;c1 -->
+<g id="edge55" class="edge"><title>b4&#45;&gt;c1</title>
+<path fill="none" stroke="green" d="M142.815,-223.824C168.036,-210.207 203.523,-191.049 231.23,-176.091"/>
+<polygon fill="green" stroke="green" points="233.164,-179.024 240.301,-171.193 229.839,-172.864 233.164,-179.024"/>
+</g>
+<!-- b5&#45;&gt;c1 -->
+<g id="edge56" class="edge"><title>b5&#45;&gt;c1</title>
+<path fill="none" stroke="green" d="M274,-223.614 L 274,-180"/>
+<use xlink:href="#DownArrowColor1" x="267" y="-180"/>
+</g>
+
+<!-- c2 -->
+<g id="node61" class="node"><title>c2</title>
+<use xlink:href="#ArbiterLevel1" x="443" y="-179"/>
+<text text-anchor="middle" x="493" y="-146" font-family="Times,serif" font-size="12.00">Company2</text>
+</g>
+
+<!-- b6&#45;&gt;c2 -->
+<g id="edge57" class="edge"><title>b6&#45;&gt;c2</title>
+<path fill="none" stroke="green" d="M440.039,-223.614 L 478,-176"/>
+<use transform="rotate(-40, 478,-176)" xlink:href="#DownArrowColor1" x="471" y="-180"/>
+</g>
+
+<!-- b7&#45;&gt;c2 -->
+<g id="edge58" class="edge"><title>b7&#45;&gt;c2</title>
+<path fill="none" stroke="green" d="M545.961,-223.614 L 523,-178"/>
+<use transform="rotate(30, 523,-176)" xlink:href="#DownArrowColor1" x="515" y="-180"/>
+</g>
+
+<!-- o1 -->
+<g id="node62" class="node"><title>o1</title>
+<ellipse fill="#80c0f0" stroke="black" cx="493" cy="-40" rx="36" ry="36"/>
+<ellipse fill="none" stroke="black" cx="493" cy="-40" rx="40" ry="40"/>
+<text text-anchor="middle" x="493" y="-36.9" font-family="Times,serif" font-size="12.00">xgbe1</text>
+</g>
+
+<!-- c3&#45;&gt;o1 -->
+<g id="edge59" class="edge"><title>c3&#45;&gt;o1</title>
+<path fill="none" stroke="black" d="M752.014,-133.24 L 540.051,-57.8586"/>
+<polygon fill="black" stroke="black" points="541.222,-54.5604 530.627,-54.4821 538.861,-61.1502 541.222,-54.5604"/>
+</g>
+
+<!-- c1&#45;&gt;o1 -->
+<g id="edge60" class="edge"><title>c1&#45;&gt;o1</title>
+<path fill="none" stroke="black" d="M319.91,-127.94C357.719,-108.949 411.009,-82.1826 448.443,-63.38"/>
+<polygon fill="black" stroke="black" points="450.235,-66.397 457.6,-58.7808 447.093,-60.1417 450.235,-66.397"/>
+</g>
+
+<!-- c3&#45;&gt;o1 -->
+<g id="edge61" class="edge"><title>c3&#45;&gt;o1</title>
+<path fill="none" stroke="black" d="M493,-125 L 493,-90.616"/>
+<polygon fill="black" stroke="black" points="496.5,-90.3557 493,-80.3557 489.5,-90.3558 496.5,-90.3557"/>
+</g>
+
+</g>
+</svg>
diff --git a/doc/images/tm_node.svg b/doc/images/tm_node.svg
new file mode 100644
index 0000000..58fe2bb
--- /dev/null
+++ b/doc/images/tm_node.svg
@@ -0,0 +1,1178 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="765"
+   height="990"
+   viewBox="320 155 425.98732 552.68812"
+   id="svg3293"
+   version="1.1"
+   inkscape:version="0.48.2 r9819">
+  <metadata
+     id="metadata3599">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs3597">
+    <font
+       horiz-adv-x="1024"
+       id="font46307"
+       inkscape:label="font 1"
+       horiz-origin-x="0"
+       horiz-origin-y="0"
+       vert-origin-x="45"
+       vert-origin-y="90"
+       vert-adv-y="90">
+      <font-face
+         units-per-em="1024"
+         id="font-face46309"
+         font-family="SVGFont 1" />
+      <missing-glyph
+         d="M0,0h1000v1024h-1000z"
+         id="missing-glyph46311" />
+    </font>
+    <font
+       horiz-adv-x="1024"
+       id="font46313"
+       inkscape:label="font 2"
+       horiz-origin-x="0"
+       horiz-origin-y="0"
+       vert-origin-x="45"
+       vert-origin-y="90"
+       vert-adv-y="90">
+      <font-face
+         units-per-em="1024"
+         id="font-face46315"
+         font-family="SVGFont 2" />
+      <missing-glyph
+         d="M0,0h1000v1024h-1000z"
+         id="missing-glyph46317" />
+    </font>
+  </defs>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1178"
+     inkscape:window-height="965"
+     id="namedview3595"
+     showgrid="false"
+     fit-margin-top="1.6"
+     fit-margin-left="1"
+     fit-margin-right="1"
+     fit-margin-bottom="1"
+     units="in"
+     showborder="true"
+     inkscape:zoom="0.78398474"
+     inkscape:cx="382.52479"
+     inkscape:cy="496.87739"
+     inkscape:window-x="210"
+     inkscape:window-y="0"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg3293"
+     borderlayer="false" />
+  <path
+     style="fill:#f0e9ef;fill-opacity:1;stroke:#000000;stroke-width:1.7864666;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+     d="m 353.0075,287.90468 360,0 -40,349.6 -280,0 z"
+     id="path46246"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="ccccc" />
+  <g
+     id="g3295"
+     transform="matrix(0.6,0,0,0.6,171.12812,207.13875)">
+    <line
+       style="fill:none;stroke:#000000;stroke-width:2"
+       x1="618.62598"
+       y1="452.25"
+       x2="618.62598"
+       y2="452.25"
+       id="line3297" />
+    <polygon
+       style="fill:#000000"
+       points="608.626,457.25 611.126,452.25 608.626,447.25 618.626,452.25 "
+       id="polygon3299" />
+    <polygon
+       style="fill:none;stroke:#000000;stroke-width:2"
+       points="608.626,457.25 611.126,452.25 608.626,447.25 618.626,452.25 "
+       id="polygon3301" />
+  </g>
+  <g
+     id="g3303"
+     transform="matrix(0.6,0,0,0.6,171.12812,207.13875)">
+    <line
+       style="fill:none;stroke:#000000;stroke-width:2"
+       x1="618.62598"
+       y1="452.25"
+       x2="618.62598"
+       y2="452.25"
+       id="line3305" />
+    <polygon
+       style="fill:#000000"
+       points="608.626,457.25 611.126,452.25 608.626,447.25 618.626,452.25 "
+       id="polygon3307" />
+    <polygon
+       style="fill:none;stroke:#000000;stroke-width:2"
+       points="608.626,457.25 611.126,452.25 608.626,447.25 618.626,452.25 "
+       id="polygon3309" />
+  </g>
+  <g
+     id="g3311"
+     transform="matrix(0.6,0,0,0.6,171.12812,207.13875)">
+    <line
+       style="fill:none;stroke:#000000;stroke-width:2"
+       x1="618.62598"
+       y1="452.25"
+       x2="618.62598"
+       y2="452.25"
+       id="line3313" />
+    <polygon
+       style="fill:#000000"
+       points="608.626,457.25 611.126,452.25 608.626,447.25 618.626,452.25 "
+       id="polygon3315" />
+    <polygon
+       style="fill:none;stroke:#000000;stroke-width:2"
+       points="608.626,457.25 611.126,452.25 608.626,447.25 618.626,452.25 "
+       id="polygon3317" />
+  </g>
+  <g
+     id="g3319"
+     transform="matrix(0.6,0,0,0.6,171.12812,207.13875)">
+    <line
+       style="fill:none;stroke:#000000;stroke-width:2"
+       x1="618.62598"
+       y1="452.25"
+       x2="618.62598"
+       y2="452.25"
+       id="line3321" />
+    <polygon
+       style="fill:#000000"
+       points="608.626,457.25 611.126,452.25 608.626,447.25 618.626,452.25 "
+       id="polygon3323" />
+    <polygon
+       style="fill:none;stroke:#000000;stroke-width:2"
+       points="608.626,457.25 611.126,452.25 608.626,447.25 618.626,452.25 "
+       id="polygon3325" />
+  </g>
+  <text
+     font-size="12.7998"
+     style="font-size:7.67987967px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;font-family:sans-serif"
+     x="542.30371"
+     y="478.4895"
+     id="text3327">
+    <tspan
+       x="542.30371"
+       y="478.4895"
+       id="tspan3329" />
+  </text>
+  <text
+     font-size="12.7998"
+     style="font-size:7.67987967px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;font-family:sans-serif"
+     x="542.30371"
+     y="478.4895"
+     id="text3331">
+    <tspan
+       x="542.30371"
+       y="478.4895"
+       id="tspan3333" />
+  </text>
+  <text
+     font-size="12.7998"
+     style="font-size:7.67987967px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;font-family:sans-serif"
+     x="542.30371"
+     y="478.4895"
+     id="text3335">
+    <tspan
+       x="542.30371"
+       y="478.4895"
+       id="tspan3337" />
+  </text>
+  <text
+     font-size="12.7998"
+     style="font-size:7.67987967px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;font-family:sans-serif"
+     x="542.30371"
+     y="478.4895"
+     id="text3339">
+    <tspan
+       x="542.30371"
+       y="478.4895"
+       id="tspan3341" />
+  </text>
+  <text
+     font-size="12.7998"
+     style="font-size:7.67987967px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;font-family:sans-serif"
+     x="542.30371"
+     y="478.4895"
+     id="text3343">
+    <tspan
+       x="542.30371"
+       y="478.4895"
+       id="tspan3345" />
+  </text>
+  <text
+     font-size="12.7998"
+     style="font-size:7.67987967px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;font-family:sans-serif"
+     x="542.30371"
+     y="478.4895"
+     id="text3347">
+    <tspan
+       x="542.30371"
+       y="478.4895"
+       id="tspan3349" />
+  </text>
+  <text
+     font-size="12.7998"
+     style="font-size:7.67987967px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;font-family:sans-serif"
+     x="542.30371"
+     y="478.4895"
+     id="text3351">
+    <tspan
+       x="542.30371"
+       y="478.4895"
+       id="tspan3353" />
+  </text>
+  <text
+     font-size="12.7998"
+     style="font-size:7.67987967px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;font-family:sans-serif"
+     x="542.30371"
+     y="478.4895"
+     id="text3355">
+    <tspan
+       x="542.30371"
+       y="478.4895"
+       id="tspan3357" />
+  </text>
+  <text
+     font-size="12.7998"
+     style="font-size:7.67987967px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;font-family:sans-serif"
+     x="542.30371"
+     y="478.4895"
+     id="text3359">
+    <tspan
+       x="542.30371"
+       y="478.4895"
+       id="tspan3361" />
+  </text>
+  <text
+     font-size="12.7998"
+     style="font-size:7.67987967px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;font-family:sans-serif"
+     x="488.75369"
+     y="461.9895"
+     id="text3363">
+    <tspan
+       x="488.75369"
+       y="461.9895"
+       id="tspan3365" />
+  </text>
+  <text
+     font-size="12.7998"
+     style="font-size:7.67987967px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;font-family:sans-serif"
+     x="577.55371"
+     y="443.9895"
+     id="text3367">
+    <tspan
+       x="577.55371"
+       y="443.9895"
+       id="tspan3369" />
+  </text>
+  <g
+     id="g3391"
+     transform="matrix(0.36822672,0,0,0.6,306.07498,207.13875)">
+    <ellipse
+       style="fill:#ffffff"
+       cx="619.35498"
+       cy="492.38599"
+       rx="154.5"
+       ry="46"
+       id="ellipse3393"/>
+
+    <!-- <path
+       d="m 773.85498,492.38599 c 0,25.40509 -69.17201,46 -154.5,46 -85.32799,0 -154.5,-20.59491 -154.5,-46 0,-25.4051 69.17201,-46 154.5,-46 85.32799,0 154.5,20.5949 154.5,46 z" /> -->
+
+    <ellipse
+       style="fill:none;stroke:#000000;stroke-width:2"
+       cx="619.35498"
+       cy="492.38599"
+       rx="154.5"
+       ry="46"
+       id="ellipse3395" />
+
+    <!-- <path
+       d="m 773.85498,492.38599 c 0,25.40509 -69.17201,46 -154.5,46 -85.32799,0 -154.5,-20.59491 -154.5,-46 0,-25.4051 69.17201,-46 154.5,-46 85.32799,0 154.5,20.5949 154.5,46 z" /> -->
+
+  </g>
+  <g
+     id="g3397"
+     transform="matrix(1.2836753,0,0,0.71637906,-268.40447,153.70656)">
+    <path
+       style="fill:#ffffff"
+       d="m 624.31,653.825 c 31.831,0 31.831,-47.745 31.831,-79.575 -15.915,0 -47.746,0 -63.661,0 0,31.83 0,79.575 31.83,79.575 z"
+       id="path3399"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2"
+       d="m 624.31,653.825 c 31.831,0 31.831,-47.745 31.831,-79.575 -15.915,0 -47.746,0 -63.661,0 0,31.83 0,79.575 31.83,79.575"
+       id="path3401"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:0.2"
+       d="m 624.31,653.825 c 31.831,0 31.831,-47.745 31.831,-79.575 -15.915,0 -47.746,0 -63.661,0 0,31.83 0,79.575 31.83,79.575"
+       id="path3403"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     id="g3405"
+     transform="matrix(0.6,0,0,0.33664343,158.3969,402.52795)"
+     style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1">
+    <line
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-opacity:1"
+       x1="624.31"
+       y1="653.82501"
+       x2="624.35199"
+       y2="775.586"
+       id="line3407" />
+    <polygon
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
+       points="624.355,783.086 619.351,773.088 624.352,775.586 629.351,773.084 "
+       id="polygon3409" />
+    <polygon
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-opacity:1"
+       points="624.355,783.086 619.351,773.088 624.352,775.586 629.351,773.084 "
+       id="polygon3411" />
+  </g>
+  <g
+     id="g3413"
+     transform="matrix(0.6,0,0,1.0385789,160.4258,-29.14563)"
+     style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1">
+    <line
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-opacity:1"
+       x1="620.72998"
+       y1="538.75"
+       x2="620.99701"
+       y2="562.79102"
+       id="line3415" />
+    <polygon
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
+       points="621.08,570.291 615.97,560.347 620.997,562.791 625.969,560.236 "
+       id="polygon3417" />
+    <polygon
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-opacity:1"
+       points="621.08,570.291 615.97,560.347 620.997,562.791 625.969,560.236 "
+       id="polygon3419" />
+  </g>
+  <text
+     font-size="12.7998"
+     style="font-size:10.71879959px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;font-family:Sans;-inkscape-font-specification:Sans"
+     x="515.39581"
+     y="505.40701"
+     id="text3421"
+     sodipodi:linespacing="125%">
+    <tspan
+       x="515.39581"
+       y="505.40701"
+       id="tspan3423"
+       style="font-size:10.71879959px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans">Shaper</tspan>
+  </text>
+  <g
+     id="g3435"
+     transform="matrix(0.68275674,0,-0.0185135,0.47151591,121.83991,265.95426)">
+    <line
+       style="fill:none;stroke:#000000;stroke-width:2.19180131"
+       x1="612.85498"
+       y1="399.51315"
+       x2="613.99902"
+       y2="437.06961"
+       id="line3437" />
+    <polygon
+       style="fill:#000000"
+       points="618.905,430.975 614.274,441.152 608.911,431.341 613.999,433.657 "
+       id="polygon3439" />
+    <polygon
+       style="fill:none;stroke:#000000;stroke-width:2"
+       points="618.905,430.975 614.274,441.152 608.911,431.341 613.999,433.657 "
+       id="polygon3441" />
+  </g>
+  <g
+     id="g3483"
+     transform="matrix(0.46064658,0,0,0.67930938,233.06856,182.00415)">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2"
+       d="m 428.855,330.386 c 34.5,37 112.5,60 151.924,52.759"
+       id="path3485"
+       inkscape:connector-curvature="0" />
+    <polygon
+       style="fill:#000000"
+       points="580.779,383.145 577.417,378.679 588.156,381.79 579.224,388.514 "
+       id="polygon3487" />
+    <polygon
+       style="fill:none;stroke:#000000;stroke-width:2"
+       points="580.779,383.145 577.417,378.679 588.156,381.79 579.224,388.514 "
+       id="polygon3489" />
+  </g>
+  <g
+     id="g3491"
+     transform="matrix(0.54809168,0,0,0.74784284,211.99528,158.68288)">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2"
+       d="m 788.355,329.386 c -42,31 -103,54 -143.271,52.389"
+       id="path3493"
+       inkscape:connector-curvature="0" />
+    <polygon
+       style="fill:#000000"
+       points="647.382,386.871 637.59,381.475 647.781,376.879 645.084,381.775 "
+       id="polygon3495" />
+    <polygon
+       style="fill:none;stroke:#000000;stroke-width:2"
+       points="647.382,386.871 637.59,381.475 647.781,376.879 645.084,381.775 "
+       id="polygon3497" />
+  </g>
+  <g
+     id="g3499"
+     transform="matrix(0.41682002,0,0,0.63577084,271.70535,195.4459)">
+    <line
+       style="fill:none;stroke:#000000;stroke-width:2"
+       x1="545.85498"
+       y1="329.38599"
+       x2="589.07098"
+       y2="360.811"
+       id="line3501" />
+    <polygon
+       style="fill:#000000"
+       points="595.137,365.222 584.109,363.385 589.071,360.811 589.99,355.297 "
+       id="polygon3503" />
+    <polygon
+       style="fill:none;stroke:#000000;stroke-width:2"
+       points="595.137,365.222 584.109,363.385 589.071,360.811 589.99,355.297 "
+       id="polygon3505" />
+  </g>
+  <g
+     id="g3507"
+     transform="matrix(0.7502618,0,0,0.69104314,70.399378,177.15041)">
+    <line
+       style="fill:none;stroke:#000000;stroke-width:2"
+       x1="669.35498"
+       y1="330.38599"
+       x2="638.61102"
+       y2="357.89401"
+       id="line3509" />
+    <polygon
+       style="fill:#000000"
+       points="638.611,357.894 643.808,359.953 633.022,362.895 637.14,352.501 "
+       id="polygon3511" />
+    <polygon
+       style="fill:none;stroke:#000000;stroke-width:2"
+       points="638.611,357.894 643.808,359.953 633.022,362.895 637.14,352.501 "
+       id="polygon3513" />
+  </g>
+  <g
+     id="g3523"
+     transform="matrix(0.6,0,0,0.6,171.12812,208.92521)">
+    <line
+       style="fill:none;stroke:#000000;stroke-width:2"
+       x1="517.98901"
+       y1="80"
+       x2="520.242"
+       y2="256.28699"
+       id="line3525" />
+    <polygon
+       style="fill:#000000"
+       points="525.177,253.661 520.432,263.784 515.18,253.915 520.242,256.287 "
+       id="polygon3527" />
+    <polygon
+       style="fill:none;stroke:#000000;stroke-width:2"
+       points="525.177,253.661 520.432,263.784 515.18,253.915 520.242,256.287 "
+       id="polygon3529" />
+  </g>
+  <g
+     id="g3531"
+     transform="matrix(0.6,0,0,0.6,171.12812,207.13875)">
+    <line
+       style="fill:none;stroke:#000000;stroke-width:2"
+       x1="549.48901"
+       y1="80"
+       x2="546.78497"
+       y2="258.78799"
+       id="line3533" />
+    <polygon
+       style="fill:#000000"
+       points="541.864,256.137 546.785,258.788 551.859,256.442 546.557,266.285 "
+       id="polygon3535" />
+    <polygon
+       style="fill:none;stroke:#000000;stroke-width:2"
+       points="541.864,256.137 546.785,258.788 551.859,256.442 546.557,266.285 "
+       id="polygon3537" />
+  </g>
+  <g
+     id="g3539"
+     transform="matrix(0.6,0,0,0.6,171.12812,207.13875)">
+    <line
+       style="fill:none;stroke:#000000;stroke-width:2"
+       x1="571.98901"
+       y1="80"
+       x2="567.47998"
+       y2="259.79599"
+       id="line3541" />
+    <polygon
+       style="fill:#000000"
+       points="562.613,257.047 567.48,259.796 572.6,257.552 567.102,267.287 "
+       id="polygon3543" />
+    <polygon
+       style="fill:none;stroke:#000000;stroke-width:2"
+       points="562.613,257.047 567.48,259.796 572.6,257.552 567.102,267.287 "
+       id="polygon3545" />
+  </g>
+  <g
+     id="g3547"
+     transform="matrix(0.6,0,0,0.6,171.12812,207.13875)">
+    <line
+       style="fill:none;stroke:#000000;stroke-width:2"
+       x1="646.48901"
+       y1="80"
+       x2="642.91699"
+       y2="257.293"
+       id="line3549" />
+    <polygon
+       style="fill:#000000"
+       points="638.031,254.576 642.917,257.293 648.022,255.015 642.587,264.786 "
+       id="polygon3551" />
+    <polygon
+       style="fill:none;stroke:#000000;stroke-width:2"
+       points="638.031,254.576 642.917,257.293 648.022,255.015 642.587,264.786 "
+       id="polygon3553" />
+  </g>
+  <g
+     id="g3555"
+     transform="matrix(0.6,0,0,0.6,171.12812,207.13875)">
+    <line
+       style="fill:none;stroke:#000000;stroke-width:2"
+       x1="681.48901"
+       y1="80"
+       x2="674.79797"
+       y2="256.81699"
+       id="line3557" />
+    <polygon
+       style="fill:#000000"
+       points="670.022,253.911 674.798,256.817 679.988,254.741 674.175,264.291 "
+       id="polygon3559" />
+    <polygon
+       style="fill:none;stroke:#000000;stroke-width:2"
+       points="670.022,253.911 674.798,256.817 679.988,254.741 674.175,264.291 "
+       id="polygon3561" />
+  </g>
+  <g
+     id="g3563"
+     transform="matrix(0.6,0,0,0.6,171.12812,207.13875)">
+    <line
+       style="fill:none;stroke:#000000;stroke-width:2"
+       x1="706.98901"
+       y1="80"
+       x2="698.99701"
+       y2="257.836"
+       id="line3565" />
+    <polygon
+       style="fill:#000000"
+       points="694.282,254.832 698.997,257.836 704.228,255.867 698.22,265.296 "
+       id="polygon3567" />
+    <polygon
+       style="fill:none;stroke:#000000;stroke-width:2"
+       points="694.282,254.832 698.997,257.836 704.228,255.867 698.22,265.296 "
+       id="polygon3569" />
+  </g>
+  <g
+     id="g3571"
+     transform="matrix(0.6,0,0,0.6,171.12812,207.13875)">
+    <line
+       style="fill:none;stroke:#000000;stroke-width:2"
+       x1="754.98901"
+       y1="80"
+       x2="763.82397"
+       y2="258.354"
+       id="line3573" />
+    <polygon
+       style="fill:#000000"
+       points="758.561,256.47 763.824,258.354 768.489,255.274 764.722,265.8 "
+       id="polygon3575" />
+    <polygon
+       style="fill:none;stroke:#000000;stroke-width:2"
+       points="758.561,256.47 763.824,258.354 768.489,255.274 764.722,265.8 "
+       id="polygon3577" />
+  </g>
+  <g
+     id="g3579"
+     transform="matrix(0.6,0,0,0.6,171.12812,207.13875)">
+    <line
+       style="fill:none;stroke:#000000;stroke-width:2"
+       x1="793.98901"
+       y1="80"
+       x2="785.16803"
+       y2="259.85501"
+       id="line3581" />
+    <polygon
+       style="fill:#000000"
+       points="780.507,256.768 785.168,259.855 790.433,257.979 784.26,267.3 "
+       id="polygon3583" />
+    <polygon
+       style="fill:none;stroke:#000000;stroke-width:2"
+       points="780.507,256.768 785.168,259.855 790.433,257.979 784.26,267.3 "
+       id="polygon3585" />
+  </g>
+  <g
+     id="g3587"
+     transform="matrix(0.6,0,0,0.64733675,171.12812,194.48507)">
+    <line
+       style="fill:none;stroke:#000000;stroke-width:2"
+       x1="817.48901"
+       y1="90"
+       x2="806.52002"
+       y2="259.905"
+       id="line3589" />
+    <polygon
+       style="fill:#000000"
+       points="806.52,259.905 811.851,258.222 805.341,267.312 801.975,256.65 "
+       id="polygon3591" />
+    <polygon
+       style="fill:none;stroke:#000000;stroke-width:2"
+       points="806.52,259.905 811.851,258.222 805.341,267.312 801.975,256.65 "
+       id="polygon3593" />
+  </g>
+  <path
+     style="fill:#fcfffa;fill-opacity:1;stroke:#000000;stroke-width:0.8932333;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+     d="m 499.51125,428.12127 66.9925,0 -11.16542,26.797 -44.66166,0 z"
+     id="path46249"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="ccccc" />
+  <text
+     xml:space="preserve"
+     style="font-size:8.93233299px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+     x="516.63232"
+     y="439.0816"
+     id="text46251"
+     sodipodi:linespacing="125%"><tspan
+       sodipodi:role="line"
+       id="tspan46253"
+       x="516.63232"
+       y="439.0816">priority</tspan><tspan
+       sodipodi:role="line"
+       x="516.63232"
+       y="450.24701"
+       id="tspan46255">encoder</tspan></text>
+  <g
+     id="g3523-1"
+     transform="matrix(0.60000001,0,0,0.60000001,130.12915,207.76531)">
+    <line
+       style="fill:none;stroke:#000000;stroke-width:2"
+       x1="517.98901"
+       y1="80"
+       x2="520.242"
+       y2="256.28699"
+       id="line3525-7" />
+    <polygon
+       style="fill:#000000"
+       points="515.18,253.915 520.242,256.287 525.177,253.661 520.432,263.784 "
+       id="polygon3527-4" />
+    <polygon
+       style="fill:none;stroke:#000000;stroke-width:2"
+       points="515.18,253.915 520.242,256.287 525.177,253.661 520.432,263.784 "
+       id="polygon3529-0" />
+  </g>
+  <g
+     id="g3523-9"
+     transform="matrix(0.60000001,0,0,0.60000001,100.34145,207.76531)">
+    <line
+       style="fill:none;stroke:#000000;stroke-width:2"
+       x1="517.98901"
+       y1="80"
+       x2="520.242"
+       y2="256.28699"
+       id="line3525-4" />
+    <polygon
+       style="fill:#000000"
+       points="515.18,253.915 520.242,256.287 525.177,253.661 520.432,263.784 "
+       id="polygon3527-8" />
+    <polygon
+       style="fill:none;stroke:#000000;stroke-width:2"
+       points="515.18,253.915 520.242,256.287 525.177,253.661 520.432,263.784 "
+       id="polygon3529-8" />
+  </g>
+  <g
+     id="g46325"
+     transform="matrix(0.8,0,0,0.8,53.007498,95.104671)">
+    <g
+       transform="matrix(0.75,0,0,0.75,147.65078,140.04258)"
+       id="g3443">
+      <path
+         inkscape:connector-curvature="0"
+         id="path3445"
+         d="m 397.784,269.386 62.143,0 12.428,30.5 -12.428,30.5 -62.143,0 -12.429,-30.5 12.429,-30.5 z"
+         style="fill:#ffffff" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3447"
+         d="m 397.784,269.386 62.143,0 12.428,30.5 -12.428,30.5 -62.143,0 -12.429,-30.5 12.429,-30.5"
+         style="fill:none;stroke:#000000;stroke-width:2" />
+      <text
+         id="text3449"
+         y="304.88599"
+         x="428.85501"
+         style="font-size:12.79979992px;font-style:normal;font-weight:normal;text-anchor:middle;fill:#000000;font-family:sans-serif"
+         font-size="12.7998">
+        <tspan
+           id="tspan3451"
+           y="304.88599"
+           x="428.85501" />
+      </text>
+    </g>
+    <text
+       id="text3519"
+       y="361.48743"
+       x="457.09674"
+       style="font-size:9.5998497px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-anchor:start;fill:#000000;font-family:Arial;-inkscape-font-specification:Arial"
+       font-size="12.7998">
+      <tspan
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial"
+         id="tspan3521"
+         y="361.48743"
+         x="457.09674">WFQ</tspan>
+      <tspan
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial"
+         id="tspan46297"
+         y="361.48743"
+         x="457.09674" />
+      <tspan
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial"
+         id="tspan46305"
+         y="361.48743"
+         x="457.09674" />
+      <tspan
+         id="tspan46319"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial"
+         y="361.48743"
+         x="457.09674" />
+    </text>
+    <text
+       sodipodi:linespacing="125%"
+       id="text46321"
+       y="376.47391"
+       x="447.76807"
+       style="font-size:11.16541672px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       xml:space="preserve"><tspan
+         y="376.47391"
+         x="447.76807"
+         id="tspan46323"
+         sodipodi:role="line">priority 0</tspan></text>
+  </g>
+  <g
+     transform="matrix(0.8,0,0,0.8,124.22629,95.104671)"
+     id="g46325-2">
+    <g
+       transform="matrix(0.75,0,0,0.75,147.65078,140.04258)"
+       id="g3443-4">
+      <path
+         inkscape:connector-curvature="0"
+         id="path3445-5"
+         d="m 397.784,269.386 62.143,0 12.428,30.5 -12.428,30.5 -62.143,0 -12.429,-30.5 12.429,-30.5 z"
+         style="fill:#ffffff" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3447-5"
+         d="m 397.784,269.386 62.143,0 12.428,30.5 -12.428,30.5 -62.143,0 -12.429,-30.5 12.429,-30.5"
+         style="fill:none;stroke:#000000;stroke-width:2" />
+      <text
+         id="text3449-1"
+         y="304.88599"
+         x="428.85501"
+         style="font-size:12.79979992px;font-style:normal;font-weight:normal;text-anchor:middle;fill:#000000;font-family:sans-serif"
+         font-size="12.7998">
+        <tspan
+           id="tspan3451-7"
+           y="304.88599"
+           x="428.85501" />
+      </text>
+    </g>
+    <text
+       id="text3519-1"
+       y="361.48743"
+       x="457.09674"
+       style="font-size:9.5998497px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-anchor:start;fill:#000000;font-family:Arial;-inkscape-font-specification:Arial"
+       font-size="12.7998">
+      <tspan
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial"
+         id="tspan3521-1"
+         y="361.48743"
+         x="457.09674">WFQ</tspan>
+      <tspan
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial"
+         id="tspan46297-5"
+         y="361.48743"
+         x="457.09674" />
+      <tspan
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial"
+         id="tspan46305-2"
+         y="361.48743"
+         x="457.09674" />
+      <tspan
+         id="tspan46319-7"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial"
+         y="361.48743"
+         x="457.09674" />
+    </text>
+    <text
+       sodipodi:linespacing="125%"
+       id="text46321-6"
+       y="376.47391"
+       x="447.76807"
+       style="font-size:11.16541672px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       xml:space="preserve"><tspan
+         y="376.47391"
+         x="447.76807"
+         id="tspan46323-1"
+         sodipodi:role="line">priority 1</tspan></text>
+  </g>
+  <g
+     transform="matrix(0.8,0,0,0.8,195.44508,95.104671)"
+     id="g46325-4">
+    <g
+       transform="matrix(0.75,0,0,0.75,147.65078,140.04258)"
+       id="g3443-2">
+      <path
+         inkscape:connector-curvature="0"
+         id="path3445-3"
+         d="m 397.784,269.386 62.143,0 12.428,30.5 -12.428,30.5 -62.143,0 -12.429,-30.5 12.429,-30.5 z"
+         style="fill:#ffffff" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3447-2"
+         d="m 397.784,269.386 62.143,0 12.428,30.5 -12.428,30.5 -62.143,0 -12.429,-30.5 12.429,-30.5"
+         style="fill:none;stroke:#000000;stroke-width:2" />
+      <text
+         id="text3449-2"
+         y="304.88599"
+         x="428.85501"
+         style="font-size:12.79979992px;font-style:normal;font-weight:normal;text-anchor:middle;fill:#000000;font-family:sans-serif"
+         font-size="12.7998">
+        <tspan
+           id="tspan3451-1"
+           y="304.88599"
+           x="428.85501" />
+      </text>
+    </g>
+    <text
+       id="text3519-6"
+       y="361.48743"
+       x="457.09674"
+       style="font-size:9.5998497px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-anchor:start;fill:#000000;font-family:Arial;-inkscape-font-specification:Arial"
+       font-size="12.7998">
+      <tspan
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial"
+         id="tspan3521-8"
+         y="361.48743"
+         x="457.09674">WFQ</tspan>
+      <tspan
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial"
+         id="tspan46297-57"
+         y="361.48743"
+         x="457.09674" />
+      <tspan
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial"
+         id="tspan46305-6"
+         y="361.48743"
+         x="457.09674" />
+      <tspan
+         id="tspan46319-1"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial"
+         y="361.48743"
+         x="457.09674" />
+    </text>
+    <text
+       sodipodi:linespacing="125%"
+       id="text46321-8"
+       y="376.47391"
+       x="447.76807"
+       style="font-size:11.16541672px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       xml:space="preserve"><tspan
+         y="376.47391"
+         x="447.76807"
+         id="tspan46323-9"
+         sodipodi:role="line">priority 2</tspan></text>
+  </g>
+  <g
+     transform="matrix(0.8,0,0,0.8,266.66388,95.104671)"
+     id="g46325-27">
+    <g
+       transform="matrix(0.75,0,0,0.75,147.65078,140.04258)"
+       id="g3443-9">
+      <path
+         inkscape:connector-curvature="0"
+         id="path3445-54"
+         d="m 397.784,269.386 62.143,0 12.428,30.5 -12.428,30.5 -62.143,0 -12.429,-30.5 12.429,-30.5 z"
+         style="fill:#ffffff" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3447-3"
+         d="m 397.784,269.386 62.143,0 12.428,30.5 -12.428,30.5 -62.143,0 -12.429,-30.5 12.429,-30.5"
+         style="fill:none;stroke:#000000;stroke-width:2" />
+      <text
+         id="text3449-12"
+         y="304.88599"
+         x="428.85501"
+         style="font-size:12.79979992px;font-style:normal;font-weight:normal;text-anchor:middle;fill:#000000;font-family:sans-serif"
+         font-size="12.7998">
+        <tspan
+           id="tspan3451-3"
+           y="304.88599"
+           x="428.85501" />
+      </text>
+    </g>
+    <text
+       id="text3519-3"
+       y="361.48743"
+       x="457.09674"
+       style="font-size:9.5998497px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-anchor:start;fill:#000000;font-family:Arial;-inkscape-font-specification:Arial"
+       font-size="12.7998">
+      <tspan
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial"
+         id="tspan3521-4"
+         y="361.48743"
+         x="457.09674">WFQ</tspan>
+      <tspan
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial"
+         id="tspan46297-1"
+         y="361.48743"
+         x="457.09674" />
+      <tspan
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial"
+         id="tspan46305-1"
+         y="361.48743"
+         x="457.09674" />
+      <tspan
+         id="tspan46319-3"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial"
+         y="361.48743"
+         x="457.09674" />
+    </text>
+    <text
+       sodipodi:linespacing="125%"
+       id="text46321-87"
+       y="376.47391"
+       x="447.76807"
+       style="font-size:11.16541672px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       xml:space="preserve"><tspan
+         y="376.47391"
+         x="447.76807"
+         id="tspan46323-4"
+         sodipodi:role="line">priority 3</tspan></text>
+  </g>
+  <g
+     id="g47752"
+     transform="translate(-6.6992502,-25.680463)">
+    <text
+       sodipodi:linespacing="125%"
+       id="text47149"
+       y="596.4021"
+       x="410.2587"
+       style="font-size:22.33083344px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       xml:space="preserve"><tspan
+         y="596.4021"
+         x="410.2587"
+         id="tspan47151"
+         sodipodi:role="line">Arbiter</tspan></text>
+    <text
+       sodipodi:linespacing="125%"
+       id="text47153"
+       y="568.61426"
+       x="401.6915"
+       style="font-size:22.33083344px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       xml:space="preserve"><tspan
+         y="568.61426"
+         x="401.6915"
+         id="tspan47155"
+         sodipodi:role="line">Example</tspan></text>
+  </g>
+  <g
+     id="g47678"
+     transform="translate(7.8157919,34.612792)">
+    <path
+       sodipodi:nodetypes="cccc"
+       inkscape:connector-curvature="0"
+       id="path47161"
+       d="m 619.50693,452.08839 0,31.11649 29.63476,-0.12548 -0.12548,-30.77762"
+       style="fill:#a6f7f6;fill-opacity:1;stroke:#000000;stroke-width:1.67481244;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <path
+       transform="matrix(0.5996485,0,0,0.58354585,296.78803,141.0335)"
+       d="m 586.56837,534.1488 c 0,6.22986 -10.69475,11.28016 -23.8874,11.28016 -13.19265,0 -23.8874,-5.0503 -23.8874,-11.28016 0,-6.22986 10.69475,-11.28016 23.8874,-11.28016 13.19265,0 23.8874,5.0503 23.8874,11.28016 z"
+       sodipodi:ry="11.280161"
+       sodipodi:rx="23.8874"
+       sodipodi:cy="534.1488"
+       sodipodi:cx="562.68097"
+       id="path47159"
+       style="fill:#d78379;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       sodipodi:type="arc" />
+  </g>
+  <rect
+     style="fill:#d7f3d0;fill-opacity:1;stroke:#000000;stroke-width:1.95772398;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+     id="rect47750"
+     width="172.22704"
+     height="53.179165"
+     x="448.71371"
+     y="165.66377" />
+  <text
+     xml:space="preserve"
+     style="font-size:13.39849949px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+     x="614.41779"
+     y="538.091"
+     id="text47672"
+     sodipodi:linespacing="125%"><tspan
+       sodipodi:role="line"
+       id="tspan47674"
+       x="614.41779"
+       y="538.091">pkt delay</tspan><tspan
+       sodipodi:role="line"
+       x="614.41779"
+       y="554.83911"
+       id="tspan47676"> storage</tspan></text>
+  <path
+     style="fill:none;stroke:#0000f7;stroke-width:1.63484418;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+     d="m 591.18645,501.73693 34.19353,0"
+     id="path47682"
+     inkscape:connector-curvature="0" />
+  <text
+     xml:space="preserve"
+     style="font-size:11.16541672px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+     x="503.8782"
+     y="590.54254"
+     id="text47684"
+     sodipodi:linespacing="125%"><tspan
+       sodipodi:role="line"
+       id="tspan47686"
+       x="503.8782"
+       y="590.54254">propagation</tspan><tspan
+       sodipodi:role="line"
+       x="503.8782"
+       y="604.49933"
+       id="tspan47688">    table</tspan></text>
+  <text
+     xml:space="preserve"
+     style="font-size:11.16541672px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+     x="404.19299"
+     y="238.52974"
+     id="text47690"
+     sodipodi:linespacing="125%"><tspan
+       sodipodi:role="line"
+       id="tspan47692"
+       x="404.19299"
+       y="238.52974">Priority 0</tspan><tspan
+       sodipodi:role="line"
+       x="404.19299"
+       y="252.48651"
+       id="tspan47694">  Fan-in</tspan></text>
+  <text
+     xml:space="preserve"
+     style="font-size:10.04887486px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+     x="459.87775"
+     y="183.29376"
+     id="text47696"
+     sodipodi:linespacing="125%"><tspan
+       sodipodi:role="line"
+       id="tspan47698"
+       x="459.87775"
+       y="183.29376"> Note that the fan-in to each WFQ</tspan><tspan
+       sodipodi:role="line"
+       x="459.87775"
+       y="195.85486"
+       id="tspan47700">function could range from several</tspan><tspan
+       sodipodi:role="line"
+       x="459.87775"
+       y="208.41595"
+       id="tspan47702">    to more than ten thousand.</tspan></text>
+  <text
+     xml:space="preserve"
+     style="font-size:11.16541672px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+     x="474.75385"
+     y="238.52974"
+     id="text47690-2"
+     sodipodi:linespacing="125%"><tspan
+       sodipodi:role="line"
+       id="tspan47692-7"
+       x="474.75385"
+       y="238.52974">Priority 1</tspan><tspan
+       sodipodi:role="line"
+       x="474.75385"
+       y="252.48651"
+       id="tspan47694-7">  Fan-in</tspan></text>
+  <text
+     xml:space="preserve"
+     style="font-size:11.16541672px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+     x="553.58514"
+     y="238.52974"
+     id="text47690-9"
+     sodipodi:linespacing="125%"><tspan
+       sodipodi:role="line"
+       id="tspan47692-3"
+       x="553.58514"
+       y="238.52974">Priority 2</tspan><tspan
+       sodipodi:role="line"
+       x="553.58514"
+       y="252.48651"
+       id="tspan47694-1">  Fan-in</tspan></text>
+  <text
+     xml:space="preserve"
+     style="font-size:11.16541672px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+     x="620.65051"
+     y="238.52974"
+     id="text47690-98"
+     sodipodi:linespacing="125%"><tspan
+       sodipodi:role="line"
+       id="tspan47692-6"
+       x="620.65051"
+       y="238.52974">Priority 3</tspan><tspan
+       sodipodi:role="line"
+       x="620.65051"
+       y="252.48651"
+       id="tspan47694-5">  Fan-in</tspan></text>
+  <text
+     xml:space="preserve"
+     style="font-size:13.39849949px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+     x="473.90018"
+     y="676.49622"
+     id="text47758"
+     sodipodi:linespacing="125%"><tspan
+       sodipodi:role="line"
+       id="tspan47760"
+       x="473.90018"
+       y="676.49622">Arbiter output to next</tspan><tspan
+       sodipodi:role="line"
+       x="473.90018"
+       y="693.24432"
+       id="tspan47762"> arbiter or TM output</tspan></text>
+  <polygon
+     transform="matrix(0.54809168,0,0,0.74784285,242.28683,216.46556)"
+     style="fill:#0000f7;fill-opacity:1;stroke:#0000f7;stroke-width:2;stroke-opacity:1"
+     points="647.382,386.871 637.59,381.475 647.781,376.879 645.084,381.775 "
+     id="polygon3497-2"
+     inkscape:transform-center-x="599.50146"
+     inkscape:transform-center-y="-530.62257" />
+  <polygon
+     transform="matrix(-0.54809168,0,0,-0.74784285,975.33153,787.2)"
+     style="fill:#0000f7;fill-opacity:1;stroke:#0000f7;stroke-width:2;stroke-opacity:1"
+     points="647.781,376.879 645.084,381.775 647.382,386.871 637.59,381.475 "
+     id="polygon3497-8"
+     inkscape:transform-center-x="-625.01224"
+     inkscape:transform-center-y="488.52994" />
+</svg>
