diff options
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | examples/p2p-im/diagram.svg | 535 |
2 files changed, 536 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac index 23544c5..0a07b8f 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ([2.69]) -AC_INIT(TLSd, 0.0.6, defanor@uberspace.net, tlsd, +AC_INIT(TLSd, 0.0.7, defanor@uberspace.net, tlsd, https://defanor.uberspace.net/projects/tlsd/) AM_INIT_AUTOMAKE([-Wall]) AC_CONFIG_SRCDIR([tlsd.c]) diff --git a/examples/p2p-im/diagram.svg b/examples/p2p-im/diagram.svg new file mode 100644 index 0000000..5258867 --- /dev/null +++ b/examples/p2p-im/diagram.svg @@ -0,0 +1,535 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<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="500" + height="450" + viewBox="0 0 500 450.00001" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + sodipodi:docname="diagram.svg"> + <title + id="title14172">P2P IM example diagram</title> + <defs + id="defs4"> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker8913" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lstart"> + <path + transform="matrix(0.8,0,0,0.8,10,0)" + style="fill:#2a7fff;fill-opacity:1;fill-rule:evenodd;stroke:#2a7fff;stroke-width:1pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z" + id="path8915" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lstart" + orient="auto" + refY="0" + refX="0" + id="marker5819" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path5821" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z" + style="fill:#e29898;fill-opacity:1;fill-rule:evenodd;stroke:#e29898;stroke-width:1pt;stroke-opacity:1" + transform="matrix(0.8,0,0,0.8,10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker5743" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend"> + <path + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#2a7fff;fill-opacity:1;fill-rule:evenodd;stroke:#2a7fff;stroke-width:1pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z" + id="path5745" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker5667" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path5669" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z" + style="fill:#e29898;fill-opacity:1;fill-rule:evenodd;stroke:#e29898;stroke-width:1pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker5627" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path5629" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z" + style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker5547" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lstart" + inkscape:collect="always"> + <path + transform="matrix(0.8,0,0,0.8,10,0)" + style="fill:#e29898;fill-opacity:1;fill-rule:evenodd;stroke:#e29898;stroke-width:1pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z" + id="path5549" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker5495" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:collect="always"> + <path + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#e29898;fill-opacity:1;fill-rule:evenodd;stroke:#e29898;stroke-width:1pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z" + id="path5497" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Lstart" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path5163" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z" + style="fill:#2a7fff;fill-opacity:1;fill-rule:evenodd;stroke:#2a7fff;stroke-width:1pt;stroke-opacity:1" + transform="matrix(0.8,0,0,0.8,10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Lend" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path5166" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z" + style="fill:#2a7fff;fill-opacity:1;fill-rule:evenodd;stroke:#2a7fff;stroke-width:1pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.98994949" + inkscape:cx="-20.159661" + inkscape:cy="438.06161" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:window-width="1920" + inkscape:window-height="1099" + inkscape:window-x="0" + inkscape:window-y="28" + inkscape:window-maximized="1" + units="px" /> + <metadata + id="metadata7"> + <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>P2P IM example diagram</dc:title> + <cc:license + rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" /> + <dc:creator> + <cc:Agent> + <dc:title>defanor</dc:title> + </cc:Agent> + </dc:creator> + </cc:Work> + <cc:License + rdf:about="http://creativecommons.org/publicdomain/zero/1.0/"> + <cc:permits + rdf:resource="http://creativecommons.org/ns#Reproduction" /> + <cc:permits + rdf:resource="http://creativecommons.org/ns#Distribution" /> + <cc:permits + rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> + </cc:License> + </rdf:RDF> + </metadata> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="bg" + sodipodi:insensitive="true"> + <path + style="fill:#3d413c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 12.142857,8.5714281 C 176.46627,29.051078 328.86606,10.778986 486.42857,9.2857138 494.79231,82.473527 488.13658,154.97588 453.03274,213.40907 414.74165,277.14771 352.71521,253.02479 311.42857,286.42856 266.15838,323.05531 257.82647,421.28047 200.71493,421.5606 140.23547,421.85724 95.957595,413.48092 22.958668,431.96954 63.269205,115.02677 17.543741,142.10964 12.142857,8.5714281 Z" + id="path14177" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccsascc" /> + </g> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-602.36213)"> + <path + style="fill:#f6d5ff;fill-rule:evenodd;stroke:#672178;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 208.93256,999.23138 c 22.65532,-8.34014 25.84559,-45.97677 11.06647,-71.57461 C 206.66527,904.56232 130.32991,889.52625 92.468901,909.75621 5.8334948,956.04739 122.50464,1031.0482 208.93256,999.23138 Z" + id="path4138-9-9" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ssss" /> + <path + style="fill:#293234;fill-rule:evenodd;stroke:#2d3428;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" + d="m 42.857142,647.3622 c 7.577616,65.55906 30.550569,66.75601 42.857139,156.42858 43.398229,5.19514 82.592189,0.45304 127.857149,-9.28571 1.62876,-51.55394 11.82334,-93.10882 2.85714,-146.42858 -57.85714,-7.11648 -115.71429,-8.80676 -173.571428,-0.71429 z" + id="path5619" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccc" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:16.25px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#beb7c7;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;" + x="58.076153" + y="670.13794" + id="text4140" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4142" + x="58.076153" + y="670.13794">/var/lib/tlsd-im/</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:16.25px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#a9a9a9;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;" + x="79.855362" + y="694.41754" + id="text4144" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4146" + x="79.855362" + y="694.41754"><sha256 hash></tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:16.25px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#e29898;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;" + x="126.27161" + y="731.08502" + id="text4148" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4150" + x="126.27161" + y="731.08502">in</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:16.25px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;" + x="118.60809" + y="712.33417" + id="text4152" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4154" + x="118.60809" + y="712.33417">out</tspan></text> + <path + style="fill:none;fill-rule:evenodd;stroke:#e29898;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5495)" + d="m 156.42857,723.79077 c 79.69851,-0.26633 80.77355,-14.71351 125.70685,-28.85987" + id="path4156" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#2a7fff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Lstart)" + d="m 156.42857,705.21935 c 85.94476,9.9806 92.34989,-20.16373 125.23458,-20.83683" + id="path4158" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:16.25px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#bac5b3;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;" + x="443.34372" + y="716.33209" + id="text4168" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4170" + x="443.34372" + y="716.33209">TLS</tspan></text> + <path + style="fill:#eeaaff;fill-rule:evenodd;stroke:#672178;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 71.576161,934.40795 c -2.75452,38.30892 48.838249,44.80379 93.971819,40.26373 35.44228,-3.5652 52.26131,-7.72616 50.87844,-33.12089 C 214.42147,904.7323 74.703481,890.91437 71.576161,934.40795 Z" + id="path4138-9" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ssss" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:16.25px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="118.28571" + y="965.64783" + id="text4189" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4191" + x="118.28571" + y="965.64783">libpurple</tspan></text> + <path + style="fill:none;fill-rule:evenodd;stroke:#2a7fff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)" + d="M 114.28571,709.50506 C -14.263886,701.32595 74.716431,849.33809 95.000001,902.36221" + id="path4193" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#e29898;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker5547)" + d="M 122.56127,723.94922 C 12.908193,702.01172 74.166781,826.88143 105.71428,903.79077" + id="path4195" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:16.25px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="116.14286" + y="994.2193" + id="text4227" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4229" + x="116.14286" + y="994.2193">an IM client</tspan></text> + <text + sodipodi:linespacing="125%" + id="text5129" + y="750.41748" + x="79.855362" + style="font-style:normal;font-weight:normal;font-size:16.25px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#a9a9a9;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;" + xml:space="preserve"><tspan + y="750.41748" + x="79.855362" + id="tspan5131" + sodipodi:role="line"><sha256 hash></tspan></text> + <text + sodipodi:linespacing="125%" + id="text5133" + y="787.08502" + x="126.27161" + style="font-style:normal;font-weight:normal;font-size:16.25px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#e29898;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;" + xml:space="preserve"><tspan + y="787.08502" + x="126.27161" + id="tspan5135" + sodipodi:role="line">in</tspan></text> + <text + sodipodi:linespacing="125%" + id="text5137" + y="768.33411" + x="118.60809" + style="font-style:normal;font-weight:normal;font-size:16.25px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;" + xml:space="preserve"><tspan + y="768.33411" + x="118.60809" + id="tspan5139" + sodipodi:role="line">out</tspan></text> + <path + style="fill:none;fill-rule:evenodd;stroke:#2a7fff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker8913)" + d="m 152.94274,763.95961 c 48.93905,8.20416 99.03484,-14.72616 130.13531,-12.08742" + id="path5147" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#e29898;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5667)" + d="m 149.02468,781.42807 c 31.97492,-5.61852 68.25609,-6.63802 132.40942,-15.6886" + id="path5149" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#2a7fff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5743)" + d="M 112.14286,766.29077 C 39.008441,755.5811 107.05526,848.10628 122.5,898.79078" + id="path5151" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#e29898;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker5819)" + d="m 120.35714,783.07649 c -71.386875,-14.45986 2.18452,74.07758 13.92857,117.5" + id="path5153" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <path + style="fill:#e580ff;fill-rule:evenodd;stroke:#672178;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 78.999991,933.50505 c -1.18222,-20.00191 36.392029,-20.60948 56.428569,-20.71428 19.20297,-0.10044 54.67819,0.0865 54.28572,19.28571 -0.3617,17.69401 -33.02644,15.12388 -50.71429,15.71429 -20.54764,0.68587 -58.786969,6.23754 -59.999999,-14.28572 z" + id="path9025" + inkscape:connector-curvature="0" + sodipodi:nodetypes="aaaaa" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:16.25px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="87.285721" + y="937.07648" + id="text9027" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan9029" + x="87.285721" + y="937.07648">FIFO plugin</tspan></text> + <path + sodipodi:nodetypes="ccccccccc" + inkscape:connector-curvature="0" + id="path9169" + d="m 311.42768,625.65895 c 31.08157,-1.63804 61.65553,-6.41236 93.94788,-0.5696 -7.52192,44.2439 -4.20481,53.87861 -6.79774,184.51546 -28.64631,5.33365 -57.22685,0.64016 -85.8336,-2.4635 -1.92983,-10.40627 -3.08546,-16.33947 0.99709,-23.47731 84.83651,27.94081 68.32679,-81.86707 -2.66915,-50.0552 -1.4616,-11.24392 -1.10294,-11.476 -0.19536,-19.9469 80.85413,25.75459 78.76874,-77.55437 -0.62299,-50.12312 0,0 -5.34523,-23.20627 1.17387,-37.87983 z" + style="fill:#686f51;fill-rule:evenodd;stroke:#525b2e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" /> + <path + sodipodi:nodetypes="sss" + inkscape:connector-curvature="0" + id="path9171" + d="m 287.20943,759.47424 c 0.49122,21.62796 76.22284,25.31623 70.56455,-3.57143 -4.33509,-22.13223 -71.15342,-22.3558 -70.56455,3.57143 z" + style="fill:#dde9af;fill-rule:evenodd;stroke:#225500;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <text + sodipodi:linespacing="125%" + id="text9173" + y="764.21936" + x="293.14279" + style="font-style:normal;font-weight:normal;font-size:16.25px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#112b00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="764.21936" + x="293.14279" + id="tspan9175" + sodipodi:role="line">std2fifo</tspan></text> + <path + style="fill:#dde9af;fill-rule:evenodd;stroke:#225500;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 286.75407,689.30093 c 0.49122,21.62796 77.36004,24.24699 70.56455,-3.57143 -5.35183,-21.9086 -71.15342,-22.3558 -70.56455,3.57143 z" + id="path9177" + inkscape:connector-curvature="0" + sodipodi:nodetypes="sss" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:16.25px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#112b00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="292.68747" + y="694.04602" + id="text9179" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan9181" + x="292.68747" + y="694.04602">std2fifo</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:16.25px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#b0bf79;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;" + x="340.54709" + y="645.83209" + id="text4164" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4166" + x="340.54709" + y="645.83209">tlsd</tspan></text> + <path + style="fill:none;fill-rule:evenodd;stroke:#2a7fff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 342.14286,673.07649 13.57142,-8.57142" + id="path14133" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#e29898;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 345.71428,701.64792 15.71429,7.14286" + id="path14135" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#2a7fff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 348.57143,745.21935 10,-7.85714" + id="path14137" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#e29898;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 348.57143,771.64792 11.97697,9.07651" + id="path14139" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <path + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path9021" + d="m 398.89049,755.06621 c -25.67753,7.29451 -14.93765,33.80517 -38.22737,26.2228" + style="fill:none;fill-rule:evenodd;stroke:#e29898;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1" /> + <path + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path9019" + d="M 398.01414,750.74461 C 376.97896,753.18547 377.2177,720.064 358.92457,736.55696" + style="fill:none;fill-rule:evenodd;stroke:#2a7fff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1" /> + <g + id="g14145" + transform="translate(-47.561277,122.47823)"> + <path + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path14141" + d="m 447.46192,559.35192 c -25.67753,7.29451 -14.93765,33.80517 -38.22737,26.2228" + style="fill:none;fill-rule:evenodd;stroke:#e29898;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1" /> + <path + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path14143" + d="m 446.58557,555.03032 c -21.03518,2.44086 -24.83705,-29.16538 -43.13018,-12.67242" + style="fill:none;fill-rule:evenodd;stroke:#2a7fff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1" /> + </g> + <path + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path9023" + d="m 399.6007,679.51458 c 15.17949,7.13996 74.60249,8.01665 74.60249,8.01665" + style="fill:none;fill-rule:evenodd;stroke:#9dac93;stroke-width:5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#9dac93;stroke-width:5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 399.06499,752.84717 c 0,0 43.48911,-17.70787 77.45963,-14.7052" + id="path14149" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + </g> +</svg> |