xs/hkexsh/hkexsh-vis.gv.svg

720 lines
56 KiB
XML
Raw Normal View History

<?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.40.1 (20161225.0304)
-->
<!-- Title: gocallvis Pages: 1 -->
<svg width="967pt" height="1938pt"
viewBox="0.00 0.00 966.52 1938.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 1938)">
<title>gocallvis</title>
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,-1938 966.5204,-1938 966.5204,0 0,0"/>
<text text-anchor="middle" x="102" y="-7.8" font-family="Arial" font-size="14.00" fill="#000000">blitter.com/go/hkexsh/hkexsh</text>
<g id="clust1" class="cluster">
<title>cluster_focus</title>
<polygon fill="#e6ecfa" stroke="#000000" stroke-width=".5" points="8,-31 8,-1930 958.5204,-1930 958.5204,-31 8,-31"/>
<text text-anchor="middle" x="483.2602" y="-1911.6" font-family="Arial" font-size="18.00" fill="#000000">main</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_blitter.com/go/hkexsh</title>
<g id="a_clust2"><a xlink:href="/?f=blitter.com/go/hkexsh" xlink:title="package: blitter.com/go/hkexsh">
<polygon fill="#ffffe0" stroke="#000000" stroke-width=".8" points="647.8627,-39 647.8627,-828 787.067,-828 787.067,-39 647.8627,-39"/>
<text text-anchor="middle" x="717.4649" y="-811.2" font-family="bold" font-size="16.00" fill="#000000">[hkexsh]</text>
</a>
</g>
</g>
<g id="clust3" class="cluster">
<title>cluster_*blitter.com/go/hkexsh.Session</title>
<g id="a_clust3"><a xlink:href="/?f=blitter.com/go/hkexsh" xlink:title="type: *blitter.com/go/hkexsh.Session">
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M679.1134,-717C679.1134,-717 755.8163,-717 755.8163,-717 761.8163,-717 767.8163,-723 767.8163,-729 767.8163,-729 767.8163,-782 767.8163,-782 767.8163,-788 761.8163,-794 755.8163,-794 755.8163,-794 679.1134,-794 679.1134,-794 673.1134,-794 667.1134,-788 667.1134,-782 667.1134,-782 667.1134,-729 667.1134,-729 667.1134,-723 673.1134,-717 679.1134,-717"/>
<text text-anchor="middle" x="717.4649" y="-726" font-family="bold" font-size="15.00" fill="#222222">(*Session)</text>
</a>
</g>
</g>
<g id="clust4" class="cluster">
<title>cluster_blitter.com/go/hkexsh.Session</title>
<g id="a_clust4"><a xlink:href="/?f=blitter.com/go/hkexsh" xlink:title="type: blitter.com/go/hkexsh.Session">
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M671.9632,-91C671.9632,-91 762.9666,-91 762.9666,-91 768.9666,-91 774.9666,-97 774.9666,-103 774.9666,-103 774.9666,-522 774.9666,-522 774.9666,-528 768.9666,-534 762.9666,-534 762.9666,-534 671.9632,-534 671.9632,-534 665.9632,-534 659.9632,-528 659.9632,-522 659.9632,-522 659.9632,-103 659.9632,-103 659.9632,-97 665.9632,-91 671.9632,-91"/>
<text text-anchor="middle" x="717.4649" y="-100" font-family="bold" font-size="15.00" fill="#222222">(Session)</text>
</a>
</g>
</g>
<g id="clust5" class="cluster">
<title>cluster_blitter.com/go/hkexsh/hkexnet</title>
<g id="a_clust5"><a xlink:href="/?f=blitter.com/go/hkexsh/hkexnet" xlink:title="package: blitter.com/go/hkexsh/hkexnet">
<polygon fill="#ffffe0" stroke="#000000" stroke-width=".8" points="637.1126,-941 637.1126,-1747 797.8171,-1747 797.8171,-941 637.1126,-941"/>
<text text-anchor="middle" x="717.4649" y="-1730.2" font-family="bold" font-size="16.00" fill="#000000">[hkexnet]</text>
</a>
</g>
</g>
<g id="clust6" class="cluster">
<title>cluster_*blitter.com/go/hkexsh/hkexnet.Conn</title>
<g id="a_clust6"><a xlink:href="/?f=blitter.com/go/hkexsh/hkexnet" xlink:title="type: *blitter.com/go/hkexsh/hkexnet.Conn">
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M657.1126,-1270C657.1126,-1270 777.8171,-1270 777.8171,-1270 783.8171,-1270 789.8171,-1276 789.8171,-1282 789.8171,-1282 789.8171,-1701 789.8171,-1701 789.8171,-1707 783.8171,-1713 777.8171,-1713 777.8171,-1713 657.1126,-1713 657.1126,-1713 651.1126,-1713 645.1126,-1707 645.1126,-1701 645.1126,-1701 645.1126,-1282 645.1126,-1282 645.1126,-1276 651.1126,-1270 657.1126,-1270"/>
<text text-anchor="middle" x="717.4649" y="-1279" font-family="bold" font-size="15.00" fill="#222222">(*Conn)</text>
</a>
</g>
</g>
<g id="clust7" class="cluster">
<title>cluster_blitter.com/go/hkexsh/hkexnet.Conn</title>
<g id="a_clust7"><a xlink:href="/?f=blitter.com/go/hkexsh/hkexnet" xlink:title="type: blitter.com/go/hkexsh/hkexnet.Conn">
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M678.0134,-949C678.0134,-949 756.9164,-949 756.9164,-949 762.9164,-949 768.9164,-955 768.9164,-961 768.9164,-961 768.9164,-1136 768.9164,-1136 768.9164,-1142 762.9164,-1148 756.9164,-1148 756.9164,-1148 678.0134,-1148 678.0134,-1148 672.0134,-1148 666.0134,-1142 666.0134,-1136 666.0134,-1136 666.0134,-961 666.0134,-961 666.0134,-955 672.0134,-949 678.0134,-949"/>
<text text-anchor="middle" x="717.4649" y="-958" font-family="bold" font-size="15.00" fill="#222222">(Conn)</text>
</a>
</g>
</g>
<g id="clust8" class="cluster">
<title>cluster_blitter.com/go/hkexsh/logger</title>
<g id="a_clust8"><a xlink:href="/?f=blitter.com/go/hkexsh/logger" xlink:title="package: blitter.com/go/hkexsh/logger">
<polygon fill="#ffffe0" stroke="#000000" stroke-width=".8" points="664.3633,-1755 664.3633,-1894 770.5664,-1894 770.5664,-1755 664.3633,-1755"/>
<text text-anchor="middle" x="717.4649" y="-1877.2" font-family="bold" font-size="16.00" fill="#000000">[logger]</text>
</a>
</g>
</g>
<g id="clust9" class="cluster">
<title>cluster_blitter.com/go/hkexsh/spinsult</title>
<g id="a_clust9"><a xlink:href="/?f=blitter.com/go/hkexsh/spinsult" xlink:title="package: blitter.com/go/hkexsh/spinsult">
<polygon fill="#ffffe0" stroke="#000000" stroke-width=".8" points="407.1069,-553 407.1069,-631 534.2108,-631 534.2108,-553 407.1069,-553"/>
<text text-anchor="middle" x="470.6588" y="-614.2" font-family="bold" font-size="16.00" fill="#000000">[spinsult]</text>
</a>
</g>
</g>
<g id="clust10" class="cluster">
<title>cluster_github.com/mattn/go&#45;isatty</title>
<g id="a_clust10"><a xlink:href="/?f=github.com/mattn/go-isatty" xlink:title="package: github.com/mattn/go&#45;isatty">
<polygon fill="#ffffe0" stroke="#000000" stroke-width=".8" points="175.7014,-1601 175.7014,-1679 281.9045,-1679 281.9045,-1601 175.7014,-1601"/>
<text text-anchor="middle" x="228.803" y="-1662.2" font-family="bold" font-size="16.00" fill="#000000">[isatty]</text>
</a>
</g>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doShellMode$2 -->
<g id="node1" class="node">
<title>blitter.com/go/hkexsh/hkexsh.doShellMode$2</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-dasharray="1,5" cx="470.6588" cy="-966" rx="64.8047" ry="18"/>
<text text-anchor="middle" x="470.6588" y="-962.3" font-family="Verdana" font-size="14.00" fill="#000000">doShellMode$2</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doShellMode$2$1 -->
<g id="node2" class="node">
<title>blitter.com/go/hkexsh/hkexsh.doShellMode$2$1</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-dasharray="1,5" cx="717.4649" cy="-854" rx="74.6057" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-850.3" font-family="Verdana" font-size="14.00" fill="#000000">doShellMode$2$1</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doShellMode$2&#45;&gt;blitter.com/go/hkexsh/hkexsh.doShellMode$2$1 -->
<g id="edge1" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.doShellMode$2&#45;&gt;blitter.com/go/hkexsh/hkexsh.doShellMode$2$1</title>
<path fill="none" stroke="#000000" d="M500.2651,-949.9572C538.2467,-929.4949 602.1524,-895.4985 626.7117,-885 637.835,-880.2451 649.9546,-875.6921 661.609,-871.6095"/>
<polygon fill="#000000" stroke="#000000" points="662.9358,-874.8545 671.2571,-868.2966 660.6625,-868.2339 662.9358,-874.8545"/>
</g>
<!-- blitter.com/go/hkexsh.Restore -->
<g id="node19" class="node">
<title>blitter.com/go/hkexsh.Restore</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-691" rx="34.8031" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-687.3" font-family="Verdana" font-size="14.00" fill="#000000">Restore</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doShellMode$2&#45;&gt;blitter.com/go/hkexsh.Restore -->
<g id="edge2" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.doShellMode$2&#45;&gt;blitter.com/go/hkexsh.Restore</title>
<path fill="none" stroke="#8b4513" d="M509.8872,-951.4861C525.3311,-944.0936 542.1099,-933.718 553.7117,-920 585.2096,-882.757 590.5209,-745.7015 626.7117,-713 639.1447,-701.7657 656.332,-696.0168 672.4077,-693.1552"/>
<polygon fill="#8b4513" stroke="#8b4513" points="673.3525,-696.5552 682.7502,-691.663 672.3528,-689.6269 673.3525,-696.5552"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doCopyMode -->
<g id="node3" class="node">
<title>blitter.com/go/hkexsh/hkexsh.doCopyMode</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-width=".5" cx="470.6588" cy="-1088" rx="56.2041" ry="18"/>
<text text-anchor="middle" x="470.6588" y="-1084.3" font-family="Verdana" font-size="14.00" fill="#000000">doCopyMode</text>
</g>
<!-- (blitter.com/go/hkexsh.Session).Cmd -->
<g id="node24" class="node">
<title>(blitter.com/go/hkexsh.Session).Cmd</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-508" rx="27" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-504.3" font-family="Verdana" font-size="14.00" fill="#000000">Cmd</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doCopyMode&#45;&gt;(blitter.com/go/hkexsh.Session).Cmd -->
<g id="edge3" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.doCopyMode&#45;&gt;(blitter.com/go/hkexsh.Session).Cmd</title>
<path fill="none" stroke="#8b4513" d="M520.4797,-1079.5903C533.036,-1075.1493 545.317,-1068.3646 553.7117,-1058 702.815,-873.9095 467.8192,-705.7107 626.7117,-530 640.1068,-515.1871 661.6248,-509.5359 680.3464,-507.6593"/>
<polygon fill="#8b4513" stroke="#8b4513" points="680.6531,-511.1466 690.3903,-506.9708 680.1743,-504.1629 680.6531,-511.1466"/>
</g>
<!-- (*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket -->
<g id="node33" class="node">
<title>(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-1382" rx="50.7037" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-1378.3" font-family="Verdana" font-size="14.00" fill="#000000">WritePacket</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doCopyMode&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket -->
<g id="edge4" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.doCopyMode&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket</title>
<path fill="none" stroke="#8b4513" d="M486.6617,-1105.5987C511.757,-1133.9606 560.6047,-1192.3484 590.7117,-1249 613.469,-1291.8218 592.1318,-1318.0024 626.7117,-1352 636.1413,-1361.2707 648.4939,-1367.6767 661.0361,-1372.1032"/>
<polygon fill="#8b4513" stroke="#8b4513" points="660.0295,-1375.4556 670.6189,-1375.1169 662.1296,-1368.778 660.0295,-1375.4556"/>
</g>
<!-- (*blitter.com/go/hkexsh/hkexnet.Conn).SetStatus -->
<g id="node34" class="node">
<title>(*blitter.com/go/hkexsh/hkexnet.Conn).SetStatus</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-1321" rx="42.2035" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-1317.3" font-family="Verdana" font-size="14.00" fill="#000000">SetStatus</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doCopyMode&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).SetStatus -->
<g id="edge6" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.doCopyMode&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).SetStatus</title>
<path fill="none" stroke="#8b4513" d="M520.9301,-1096.2446C545.3402,-1102.7796 573.1224,-1114.4059 590.7117,-1135 639.1767,-1191.7445 574.5211,-1245.6621 626.7117,-1299 636.748,-1309.2569 650.6937,-1315.051 664.6454,-1318.2422"/>
<polygon fill="#8b4513" stroke="#8b4513" points="664.2767,-1321.7339 674.7498,-1320.1325 665.5639,-1314.8532 664.2767,-1321.7339"/>
</g>
<!-- (blitter.com/go/hkexsh/hkexnet.Conn).Read -->
<g id="node40" class="node">
<title>(blitter.com/go/hkexsh/hkexnet.Conn).Read</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-1122" rx="27" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-1118.3" font-family="Verdana" font-size="14.00" fill="#000000">Read</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doCopyMode&#45;&gt;(blitter.com/go/hkexsh/hkexnet.Conn).Read -->
<g id="edge5" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.doCopyMode&#45;&gt;(blitter.com/go/hkexsh/hkexnet.Conn).Read</title>
<path fill="none" stroke="#8b4513" d="M522.3975,-1095.1275C569.8294,-1101.6617 638.8779,-1111.1739 680.8341,-1116.9537"/>
<polygon fill="#8b4513" stroke="#8b4513" points="680.5034,-1120.4412 690.8875,-1118.3387 681.4588,-1113.5067 680.5034,-1120.4412"/>
</g>
<!-- (blitter.com/go/hkexsh/hkexnet.Conn).GetStatus -->
<g id="node41" class="node">
<title>(blitter.com/go/hkexsh/hkexnet.Conn).GetStatus</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-1061" rx="43.4031" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-1057.3" font-family="Verdana" font-size="14.00" fill="#000000">GetStatus</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doCopyMode&#45;&gt;(blitter.com/go/hkexsh/hkexnet.Conn).GetStatus -->
<g id="edge7" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.doCopyMode&#45;&gt;(blitter.com/go/hkexsh/hkexnet.Conn).GetStatus</title>
<path fill="none" stroke="#8b4513" d="M523.9082,-1082.1746C565.7119,-1077.6014 623.5992,-1071.2687 665.1584,-1066.7222"/>
<polygon fill="#8b4513" stroke="#8b4513" points="665.7928,-1070.1738 675.3528,-1065.607 665.0315,-1063.2153 665.7928,-1070.1738"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main$1 -->
<g id="node4" class="node">
<title>blitter.com/go/hkexsh/hkexsh.main$1</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-dasharray="1,5" cx="228.803" cy="-734" rx="34.8031" ry="18"/>
<text text-anchor="middle" x="228.803" y="-730.3" font-family="Verdana" font-size="14.00" fill="#000000">main$1</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main$1&#45;&gt;blitter.com/go/hkexsh.Restore -->
<g id="edge8" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main$1&#45;&gt;blitter.com/go/hkexsh.Restore</title>
<path fill="none" stroke="#8b4513" d="M263.1647,-730.9763C349.7329,-723.3587 576.7323,-703.3838 673.1363,-694.9007"/>
<polygon fill="#8b4513" stroke="#8b4513" points="673.4864,-698.3835 683.1411,-694.0203 672.8728,-691.4105 673.4864,-698.3835"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main$2 -->
<g id="node5" class="node">
<title>blitter.com/go/hkexsh/hkexsh.main$2</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-dasharray="1,5" cx="228.803" cy="-1240" rx="34.8031" ry="18"/>
<text text-anchor="middle" x="228.803" y="-1236.3" font-family="Verdana" font-size="14.00" fill="#000000">main$2</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main$2&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket -->
<g id="edge9" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main$2&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket</title>
<path fill="none" stroke="#8b4513" d="M263.3847,-1238.0454C331.4001,-1235.8389 485.1221,-1239.0934 590.7117,-1304 613.4295,-1317.9648 605.0592,-1336.4347 626.7117,-1352 637.5562,-1359.7958 650.5522,-1365.655 663.2748,-1370.0247"/>
<polygon fill="#8b4513" stroke="#8b4513" points="662.3202,-1373.3937 672.9105,-1373.0833 664.4381,-1366.7218 662.3202,-1373.3937"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.handleTermResizes$1 -->
<g id="node6" class="node">
<title>blitter.com/go/hkexsh/hkexsh.handleTermResizes$1</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-dasharray="1,5" cx="717.4649" cy="-915" rx="90.507" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-911.3" font-family="Verdana" font-size="14.00" fill="#000000">handleTermResizes$1</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.GetSize -->
<g id="node7" class="node">
<title>blitter.com/go/hkexsh/hkexsh.GetSize</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-width="1.5" cx="915.8692" cy="-915" rx="34.8031" ry="18"/>
<text text-anchor="middle" x="915.8692" y="-911.3" font-family="Verdana" font-size="14.00" fill="#000000">GetSize</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.handleTermResizes$1&#45;&gt;blitter.com/go/hkexsh/hkexsh.GetSize -->
<g id="edge10" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.handleTermResizes$1&#45;&gt;blitter.com/go/hkexsh/hkexsh.GetSize</title>
<path fill="none" stroke="#000000" d="M808.2478,-915C830.0141,-915 852.3249,-915 870.9481,-915"/>
<polygon fill="#000000" stroke="#000000" points="871.1707,-918.5001 881.1707,-915 871.1706,-911.5001 871.1707,-918.5001"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.handleTermResizes$1&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket -->
<g id="edge11" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.handleTermResizes$1&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket</title>
<path fill="none" stroke="#8b4513" d="M644.5277,-925.8547C629.6036,-931.9067 616.1819,-941.2176 608.7117,-955.5 588.9371,-993.3075 588.9371,-1301.6925 608.7117,-1339.5 618.5215,-1358.2555 638.4208,-1368.7817 658.5474,-1374.6713"/>
<polygon fill="#8b4513" stroke="#8b4513" points="657.8461,-1378.1048 668.4027,-1377.2058 659.5897,-1371.3254 657.8461,-1378.1048"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.rejectUserMsg -->
<g id="node8" class="node">
<title>blitter.com/go/hkexsh/hkexsh.rejectUserMsg</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-width=".5" cx="228.803" cy="-588" rx="61.1043" ry="18"/>
<text text-anchor="middle" x="228.803" y="-584.3" font-family="Verdana" font-size="14.00" fill="#000000">rejectUserMsg</text>
</g>
<!-- blitter.com/go/hkexsh/spinsult.GetSentence -->
<g id="node45" class="node">
<title>blitter.com/go/hkexsh/spinsult.GetSentence</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="470.6588" cy="-579" rx="55.6039" ry="18"/>
<text text-anchor="middle" x="470.6588" y="-575.3" font-family="Verdana" font-size="14.00" fill="#000000">GetSentence</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.rejectUserMsg&#45;&gt;blitter.com/go/hkexsh/spinsult.GetSentence -->
<g id="edge12" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.rejectUserMsg&#45;&gt;blitter.com/go/hkexsh/spinsult.GetSentence</title>
<path fill="none" stroke="#8b4513" d="M289.5212,-585.7405C324.6712,-584.4325 368.9331,-582.7854 404.9044,-581.4469"/>
<polygon fill="#8b4513" stroke="#8b4513" points="405.4349,-584.9296 415.2978,-581.0601 405.1745,-577.9345 405.4349,-584.9296"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.reqTunnel -->
<g id="node9" class="node">
<title>blitter.com/go/hkexsh/hkexsh.reqTunnel</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-width=".5" cx="470.6588" cy="-1458" rx="43.4031" ry="18"/>
<text text-anchor="middle" x="470.6588" y="-1454.3" font-family="Verdana" font-size="14.00" fill="#000000">reqTunnel</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.reqTunnel&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket -->
<g id="edge14" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.reqTunnel&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket</title>
<path fill="none" stroke="#8b4513" d="M505.758,-1447.1918C548.588,-1434.0029 621.2203,-1411.637 669.2669,-1396.8418"/>
<polygon fill="#8b4513" stroke="#8b4513" points="670.3023,-1400.1852 678.8294,-1393.8972 668.2422,-1393.4952 670.3023,-1400.1852"/>
</g>
<!-- blitter.com/go/hkexsh/logger.LogDebug -->
<g id="node43" class="node">
<title>blitter.com/go/hkexsh/logger.LogDebug</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-1781" rx="45.2034" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-1777.3" font-family="Verdana" font-size="14.00" fill="#000000">LogDebug</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.reqTunnel&#45;&gt;blitter.com/go/hkexsh/logger.LogDebug -->
<g id="edge13" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.reqTunnel&#45;&gt;blitter.com/go/hkexsh/logger.LogDebug</title>
<path fill="none" stroke="#8b4513" d="M492.8813,-1473.689C520.1178,-1494.111 565.7211,-1532.3856 590.7117,-1576 623.2949,-1632.8652 589.2185,-1665.2453 626.7117,-1719 639.5399,-1737.392 659.7144,-1751.9632 677.7874,-1762.346"/>
<polygon fill="#8b4513" stroke="#8b4513" points="676.5451,-1765.6562 686.9969,-1767.3917 679.9087,-1759.5172 676.5451,-1765.6562"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.launchTuns -->
<g id="node10" class="node">
<title>blitter.com/go/hkexsh/hkexsh.launchTuns</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-width=".5" cx="228.803" cy="-1458" rx="48.3036" ry="18"/>
<text text-anchor="middle" x="228.803" y="-1454.3" font-family="Verdana" font-size="14.00" fill="#000000">launchTuns</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.launchTuns&#45;&gt;blitter.com/go/hkexsh/hkexsh.reqTunnel -->
<g id="edge15" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.launchTuns&#45;&gt;blitter.com/go/hkexsh/hkexsh.reqTunnel</title>
<path fill="none" stroke="#000000" d="M277.4552,-1458C317.7663,-1458 375.0023,-1458 416.7102,-1458"/>
<polygon fill="#000000" stroke="#000000" points="416.9596,-1461.5001 426.9596,-1458 416.9596,-1454.5001 416.9596,-1461.5001"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.sendSessionParams -->
<g id="node11" class="node">
<title>blitter.com/go/hkexsh/hkexsh.sendSessionParams</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-width=".5" cx="470.6588" cy="-366" rx="83.1058" ry="18"/>
<text text-anchor="middle" x="470.6588" y="-362.3" font-family="Verdana" font-size="14.00" fill="#000000">sendSessionParams</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.sendSessionParams&#45;&gt;(blitter.com/go/hkexsh.Session).Cmd -->
<g id="edge20" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.sendSessionParams&#45;&gt;(blitter.com/go/hkexsh.Session).Cmd</title>
<path fill="none" stroke="#8b4513" d="M491.0418,-383.7641C519.6465,-407.9318 574.1097,-451.2214 626.7117,-478 644.2659,-486.9365 665.0531,-494.0356 682.3009,-499.08"/>
<polygon fill="#8b4513" stroke="#8b4513" points="681.4215,-502.4684 691.9959,-501.8109 683.3195,-495.7306 681.4215,-502.4684"/>
</g>
<!-- (blitter.com/go/hkexsh.Session).Op -->
<g id="node25" class="node">
<title>(blitter.com/go/hkexsh.Session).Op</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-386" rx="27" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-382.3" font-family="Verdana" font-size="14.00" fill="#000000">Op</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.sendSessionParams&#45;&gt;(blitter.com/go/hkexsh.Session).Op -->
<g id="edge16" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.sendSessionParams&#45;&gt;(blitter.com/go/hkexsh.Session).Op</title>
<path fill="none" stroke="#8b4513" d="M548.7498,-372.3281C592.7763,-375.8958 645.7384,-380.1876 680.4321,-382.999"/>
<polygon fill="#8b4513" stroke="#8b4513" points="680.3324,-386.5023 690.5825,-383.8216 680.8979,-379.5252 680.3324,-386.5023"/>
</g>
<!-- (blitter.com/go/hkexsh.Session).Who -->
<g id="node26" class="node">
<title>(blitter.com/go/hkexsh.Session).Who</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-142" rx="27" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-138.3" font-family="Verdana" font-size="14.00" fill="#000000">Who</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.sendSessionParams&#45;&gt;(blitter.com/go/hkexsh.Session).Who -->
<g id="edge17" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.sendSessionParams&#45;&gt;(blitter.com/go/hkexsh.Session).Who</title>
<path fill="none" stroke="#8b4513" d="M480.454,-348.0086C501.9514,-310.1528 556.9583,-221.7527 626.7117,-173 643.0249,-161.5982 663.8912,-154.0853 681.5015,-149.3154"/>
<polygon fill="#8b4513" stroke="#8b4513" points="682.5916,-152.6503 691.4349,-146.8153 680.8831,-145.862 682.5916,-152.6503"/>
</g>
<!-- (blitter.com/go/hkexsh.Session).ConnHost -->
<g id="node27" class="node">
<title>(blitter.com/go/hkexsh.Session).ConnHost</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-203" rx="42.8032" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-199.3" font-family="Verdana" font-size="14.00" fill="#000000">ConnHost</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.sendSessionParams&#45;&gt;(blitter.com/go/hkexsh.Session).ConnHost -->
<g id="edge18" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.sendSessionParams&#45;&gt;(blitter.com/go/hkexsh.Session).ConnHost</title>
<path fill="none" stroke="#8b4513" d="M487.2677,-348.1889C514.1427,-320.3006 569.9085,-266.1942 626.7117,-234 640.2461,-226.3292 655.9905,-220.1282 670.5288,-215.3459"/>
<polygon fill="#8b4513" stroke="#8b4513" points="671.8657,-218.5947 680.359,-212.2612 669.7698,-211.9159 671.8657,-218.5947"/>
</g>
<!-- (blitter.com/go/hkexsh.Session).TermType -->
<g id="node28" class="node">
<title>(blitter.com/go/hkexsh.Session).TermType</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-264" rx="42.8032" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-260.3" font-family="Verdana" font-size="14.00" fill="#000000">TermType</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.sendSessionParams&#45;&gt;(blitter.com/go/hkexsh.Session).TermType -->
<g id="edge19" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.sendSessionParams&#45;&gt;(blitter.com/go/hkexsh.Session).TermType</title>
<path fill="none" stroke="#8b4513" d="M504.3412,-349.5182C535.6711,-334.4657 583.8344,-312.0299 626.7117,-295 641.8168,-289.0006 658.598,-283.0691 673.5807,-278.026"/>
<polygon fill="#8b4513" stroke="#8b4513" points="674.7474,-281.3265 683.1311,-274.8484 672.5375,-274.6845 674.7474,-281.3265"/>
</g>
<!-- (blitter.com/go/hkexsh.Session).AuthCookie -->
<g id="node29" class="node">
<title>(blitter.com/go/hkexsh.Session).AuthCookie</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-325" rx="49.5034" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-321.3" font-family="Verdana" font-size="14.00" fill="#000000">AuthCookie</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.sendSessionParams&#45;&gt;(blitter.com/go/hkexsh.Session).AuthCookie -->
<g id="edge21" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.sendSessionParams&#45;&gt;(blitter.com/go/hkexsh.Session).AuthCookie</title>
<path fill="none" stroke="#8b4513" d="M536.7983,-355.0128C575.9532,-348.5083 624.9908,-340.362 662.0935,-334.1984"/>
<polygon fill="#8b4513" stroke="#8b4513" points="662.9326,-337.6071 672.2238,-332.5156 661.7854,-330.7017 662.9326,-337.6071"/>
</g>
<!-- (blitter.com/go/hkexsh/hkexnet.Conn).Write -->
<g id="node42" class="node">
<title>(blitter.com/go/hkexsh/hkexnet.Conn).Write</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-1000" rx="27" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-996.3" font-family="Verdana" font-size="14.00" fill="#000000">Write</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.sendSessionParams&#45;&gt;(blitter.com/go/hkexsh/hkexnet.Conn).Write -->
<g id="edge22" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.sendSessionParams&#45;&gt;(blitter.com/go/hkexsh/hkexnet.Conn).Write</title>
<path fill="none" stroke="#8b4513" stroke-dasharray="5,2" d="M480.7925,-383.8723C498.3682,-415.658 534.4643,-484.5545 553.7117,-547 610.9386,-732.6644 494.2271,-835.8944 626.7117,-978 640.2371,-992.5076 661.5622,-998.1733 680.1429,-1000.1349"/>
<polygon fill="#8b4513" stroke="#8b4513" points="679.8842,-1003.6253 690.1162,-1000.8762 680.4031,-996.6445 679.8842,-1003.6253"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doShellMode$1 -->
<g id="node12" class="node">
<title>blitter.com/go/hkexsh/hkexsh.doShellMode$1</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-dasharray="1,5" cx="470.6588" cy="-889" rx="64.8047" ry="18"/>
<text text-anchor="middle" x="470.6588" y="-885.3" font-family="Verdana" font-size="14.00" fill="#000000">doShellMode$1</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doShellMode$1&#45;&gt;blitter.com/go/hkexsh.Restore -->
<g id="edge23" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.doShellMode$1&#45;&gt;blitter.com/go/hkexsh.Restore</title>
<path fill="none" stroke="#8b4513" d="M494.1254,-871.9454C520.1045,-852.21 562.0846,-817.6921 590.7117,-781 611.7468,-754.0388 599.7151,-733.9896 626.7117,-713 639.7306,-702.878 656.7316,-697.3264 672.4948,-694.3113"/>
<polygon fill="#8b4513" stroke="#8b4513" points="673.3076,-697.7254 682.6205,-692.6736 672.1899,-690.8152 673.3076,-697.7254"/>
</g>
<!-- (*blitter.com/go/hkexsh.Session).SetStatus -->
<g id="node23" class="node">
<title>(*blitter.com/go/hkexsh.Session).SetStatus</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-768" rx="42.2035" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-764.3" font-family="Verdana" font-size="14.00" fill="#000000">SetStatus</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doShellMode$1&#45;&gt;(*blitter.com/go/hkexsh.Session).SetStatus -->
<g id="edge25" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.doShellMode$1&#45;&gt;(*blitter.com/go/hkexsh.Session).SetStatus</title>
<path fill="none" stroke="#8b4513" d="M519.6465,-877.0354C542.8713,-869.6506 569.9965,-858.3848 590.7117,-842 612.7582,-824.5622 603.5367,-805.9073 626.7117,-790 638.1086,-782.1772 651.9813,-777.1249 665.4162,-773.8654"/>
<polygon fill="#8b4513" stroke="#8b4513" points="666.5047,-777.2121 675.5564,-771.7061 665.0467,-770.3656 666.5047,-777.2121"/>
</g>
<!-- (blitter.com/go/hkexsh.Session).Status -->
<g id="node30" class="node">
<title>(blitter.com/go/hkexsh.Session).Status</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-447" rx="29.9034" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-443.3" font-family="Verdana" font-size="14.00" fill="#000000">Status</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doShellMode$1&#45;&gt;(blitter.com/go/hkexsh.Session).Status -->
<g id="edge26" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.doShellMode$1&#45;&gt;(blitter.com/go/hkexsh.Session).Status</title>
<path fill="none" stroke="#8b4513" d="M477.7331,-870.907C492.161,-833.958 525.9648,-747.1423 553.7117,-674 586.6827,-587.0868 560.0878,-542.8247 626.7117,-478 640.4776,-464.6058 660.2655,-456.9882 677.8527,-452.6609"/>
<polygon fill="#8b4513" stroke="#8b4513" points="678.8653,-456.0225 687.8914,-450.4744 677.3756,-449.1828 678.8653,-456.0225"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doShellMode$1&#45;&gt;(blitter.com/go/hkexsh/hkexnet.Conn).GetStatus -->
<g id="edge24" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.doShellMode$1&#45;&gt;(blitter.com/go/hkexsh/hkexnet.Conn).GetStatus</title>
<path fill="none" stroke="#8b4513" d="M504.991,-904.4863C520.7909,-912.5641 539.2037,-923.3958 553.7117,-936 593.9088,-970.9221 583.295,-1000.1723 626.7117,-1031 639.0244,-1039.7425 654.0509,-1046.0604 668.3061,-1050.5727"/>
<polygon fill="#8b4513" stroke="#8b4513" points="667.4283,-1053.9626 678.009,-1053.4158 669.3967,-1047.245 667.4283,-1053.9626"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doShellMode -->
<g id="node13" class="node">
<title>blitter.com/go/hkexsh/hkexsh.doShellMode</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-width=".5" cx="228.803" cy="-1032" rx="55.0038" ry="18"/>
<text text-anchor="middle" x="228.803" y="-1028.3" font-family="Verdana" font-size="14.00" fill="#000000">doShellMode</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doShellMode&#45;&gt;blitter.com/go/hkexsh/hkexsh.doShellMode$2 -->
<g id="edge30" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.doShellMode&#45;&gt;blitter.com/go/hkexsh/hkexsh.doShellMode$2</title>
<path fill="none" stroke="#000000" d="M271.2078,-1020.4282C307.2452,-1010.5939 359.674,-996.2866 401.7344,-984.8088"/>
<polygon fill="#000000" stroke="#000000" points="415.4462,-984.695 424.172,-978.6858 413.6033,-977.9419 415.4462,-984.695"/>
<polyline fill="none" stroke="#000000" points="414.5248,-981.3185 409.7011,-982.6348 "/>
<ellipse fill="none" stroke="#000000" cx="405.8422" cy="-983.6879" rx="4" ry="4"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doShellMode&#45;&gt;blitter.com/go/hkexsh/hkexsh.doShellMode$1 -->
<g id="edge27" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.doShellMode&#45;&gt;blitter.com/go/hkexsh/hkexsh.doShellMode$1</title>
<path fill="none" stroke="#000000" d="M265.7906,-1018.6268C281.3423,-1012.3559 299.3321,-1004.227 314.606,-995 350.3126,-973.4296 353.1138,-959.4635 387.606,-936 397.577,-929.2171 408.5923,-922.4917 419.2518,-916.3395"/>
<polygon fill="#000000" stroke="#000000" points="432.5276,-912.9455 439.5576,-905.019 429.119,-906.8314 432.5276,-912.9455"/>
<polyline fill="none" stroke="#000000" points="430.8233,-909.8884 426.4561,-912.3231 "/>
<ellipse fill="none" stroke="#000000" cx="422.9624" cy="-914.2709" rx="4" ry="4"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.handleTermResizes -->
<g id="node14" class="node">
<title>blitter.com/go/hkexsh/hkexsh.handleTermResizes</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-width=".5" cx="470.6588" cy="-1027" rx="80.7059" ry="18"/>
<text text-anchor="middle" x="470.6588" y="-1023.3" font-family="Verdana" font-size="14.00" fill="#000000">handleTermResizes</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doShellMode&#45;&gt;blitter.com/go/hkexsh/hkexsh.handleTermResizes -->
<g id="edge29" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.doShellMode&#45;&gt;blitter.com/go/hkexsh/hkexsh.handleTermResizes</title>
<path fill="none" stroke="#000000" d="M283.9864,-1030.8592C312.2919,-1030.274 347.5017,-1029.5461 379.6895,-1028.8807"/>
<polygon fill="#000000" stroke="#000000" points="380.0958,-1032.3731 390.0213,-1028.6671 379.951,-1025.3746 380.0958,-1032.3731"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.handleTermResizes&#45;&gt;blitter.com/go/hkexsh/hkexsh.handleTermResizes$1 -->
<g id="edge28" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.handleTermResizes&#45;&gt;blitter.com/go/hkexsh/hkexsh.handleTermResizes$1</title>
<path fill="none" stroke="#000000" d="M518.6836,-1012.3296C530.4313,-1008.0199 542.7653,-1002.8635 553.7117,-997 589.286,-977.9445 590.6962,-961.2077 626.7117,-943 630.8239,-940.9211 635.1197,-938.9624 639.5101,-937.1225"/>
<polygon fill="#000000" stroke="#000000" points="652.9417,-935.8915 661.1091,-929.1429 650.5159,-929.3253 652.9417,-935.8915"/>
<polyline fill="none" stroke="#000000" points="651.7288,-932.6084 647.0386,-934.3412 "/>
<ellipse fill="none" stroke="#000000" cx="643.2865" cy="-935.7274" rx="4" ry="4"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main -->
<g id="node15" class="node">
<title>blitter.com/go/hkexsh/hkexsh.main</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-width=".5" cx="43" cy="-1062" rx="27" ry="18"/>
<text text-anchor="middle" x="43" y="-1058.3" font-family="Verdana" font-size="14.00" fill="#000000">main</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.doCopyMode -->
<g id="edge53" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.doCopyMode</title>
<path fill="none" stroke="#000000" d="M70.0764,-1063.6461C136.6865,-1067.6958 310.0162,-1078.2336 405.3898,-1084.0319"/>
<polygon fill="#000000" stroke="#000000" points="405.3018,-1087.5329 415.4958,-1084.6463 405.7267,-1080.5458 405.3018,-1087.5329"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.main$1 -->
<g id="edge38" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.main$1</title>
<path fill="none" stroke="#000000" d="M43.7126,-1043.7425C46.7111,-992.3664 62.2866,-845.0959 143,-765 150.4658,-757.5913 159.8319,-751.9403 169.61,-747.6336"/>
<polygon fill="#000000" stroke="#000000" points="187.0389,-745.5536 195.4333,-739.0895 184.8401,-738.9079 187.0389,-745.5536"/>
<polyline fill="none" stroke="#000000" points="185.9395,-742.2307 181.1926,-743.8013 "/>
<polygon fill="none" stroke="#000000" points="169.8,-747.5708 174.2398,-741.8886 181.1926,-743.8013 176.7528,-749.4836 169.8,-747.5708"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.main$2 -->
<g id="edge49" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.main$2</title>
<path fill="none" stroke="#000000" d="M46.0598,-1079.9895C52.0938,-1109.9103 68.36,-1169.8789 106,-1203 124.1418,-1218.9637 148.972,-1228.042 171.5592,-1233.2037"/>
<polygon fill="#000000" stroke="#000000" points="183.8719,-1239.0019 194.337,-1237.3489 185.1253,-1232.115 183.8719,-1239.0019"/>
<polyline fill="none" stroke="#000000" points="184.4986,-1235.5584 179.5794,-1234.6632 "/>
<ellipse fill="none" stroke="#000000" cx="175.644" cy="-1233.947" rx="4" ry="4"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.rejectUserMsg -->
<g id="edge44" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.rejectUserMsg</title>
<path fill="none" stroke="#000000" d="M43.2681,-1043.7552C44.6996,-970.3618 53.5224,-697.5397 106,-633 120.2857,-615.4307 142.0771,-604.7209 163.3585,-598.1926"/>
<polygon fill="#000000" stroke="#000000" points="164.3831,-601.5404 173.0718,-595.4777 162.4987,-594.7988 164.3831,-601.5404"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.launchTuns -->
<g id="edge50" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.launchTuns</title>
<path fill="none" stroke="#000000" d="M43.7465,-1080.4246C46.784,-1146.3809 60.3177,-1369.5342 106,-1421 122.2881,-1439.3502 147.3071,-1448.7584 170.5228,-1453.5227"/>
<polygon fill="#000000" stroke="#000000" points="170.2154,-1457.0234 180.6767,-1455.3466 171.453,-1450.1337 170.2154,-1457.0234"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.sendSessionParams -->
<g id="edge41" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.sendSessionParams</title>
<path fill="none" stroke="#000000" d="M44.0856,-1043.7633C49.5113,-954.9778 74.6756,-570.5066 106,-528 173.8959,-435.8666 306.0293,-395.1807 391.2126,-377.9103"/>
<polygon fill="#000000" stroke="#000000" points="391.9654,-381.3294 401.1031,-375.9673 390.6159,-374.4607 391.9654,-381.3294"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.doShellMode -->
<g id="edge51" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.doShellMode</title>
<path fill="none" stroke="#000000" d="M69.621,-1057.7017C95.4471,-1053.5318 135.5325,-1047.0596 169.0153,-1041.6534"/>
<polygon fill="#000000" stroke="#000000" points="169.8572,-1045.0629 179.1714,-1040.0136 168.7413,-1038.1524 169.8572,-1045.0629"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.parseNonSwitchArgs -->
<g id="node16" class="node">
<title>blitter.com/go/hkexsh/hkexsh.parseNonSwitchArgs</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-width=".5" cx="228.803" cy="-795" rx="85.6064" ry="18"/>
<text text-anchor="middle" x="228.803" y="-791.3" font-family="Verdana" font-size="14.00" fill="#000000">parseNonSwitchArgs</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.parseNonSwitchArgs -->
<g id="edge31" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.parseNonSwitchArgs</title>
<path fill="none" stroke="#000000" d="M45.6513,-1043.8304C52.9664,-1000.1198 77.4214,-888.1238 143,-826 148.4546,-820.8328 154.8339,-816.5161 161.6079,-812.9122"/>
<polygon fill="#000000" stroke="#000000" points="163.5125,-815.8821 171.0402,-808.4266 160.5062,-809.5605 163.5125,-815.8821"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.usageShell -->
<g id="node17" class="node">
<title>blitter.com/go/hkexsh/hkexsh.usageShell</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-width=".5" cx="228.803" cy="-856" rx="47.7038" ry="18"/>
<text text-anchor="middle" x="228.803" y="-852.3" font-family="Verdana" font-size="14.00" fill="#000000">usageShell</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.usageShell -->
<g id="edge55" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.usageShell</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M48.335,-1044.2904C59.819,-1009.1397 90.2063,-930.2305 143,-887 152.9596,-878.8445 165.2435,-872.7428 177.372,-868.2129"/>
<polygon fill="#000000" stroke="#000000" points="178.6925,-871.4602 187.0181,-864.9077 176.4235,-864.8382 178.6925,-871.4602"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.usageCp -->
<g id="node18" class="node">
<title>blitter.com/go/hkexsh/hkexsh.usageCp</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-width=".5" cx="228.803" cy="-917" rx="39.1028" ry="18"/>
<text text-anchor="middle" x="228.803" y="-913.3" font-family="Verdana" font-size="14.00" fill="#000000">usageCp</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.usageCp -->
<g id="edge56" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.usageCp</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M48.6762,-1044.2895C57.2624,-1020.311 75.8294,-977.7893 106,-954 127.2662,-937.2318 156.0442,-928.0451 180.3961,-923.0209"/>
<polygon fill="#000000" stroke="#000000" points="181.3476,-926.4033 190.5269,-921.1125 180.0518,-919.5243 181.3476,-926.4033"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh.Restore -->
<g id="edge54" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh.Restore</title>
<path fill="none" stroke="#8b4513" d="M45.118,-1043.8461C53.3544,-976.8192 85.6671,-745.0287 143,-704 227.3601,-643.63 553.7914,-672.7688 673.3025,-685.8267"/>
<polygon fill="#8b4513" stroke="#8b4513" points="673.2209,-689.339 683.5456,-686.9621 673.9922,-682.3816 673.2209,-689.339"/>
</g>
<!-- blitter.com/go/hkexsh.MakeRaw -->
<g id="node20" class="node">
<title>blitter.com/go/hkexsh.MakeRaw</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-630" rx="42.2035" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-626.3" font-family="Verdana" font-size="14.00" fill="#000000">MakeRaw</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh.MakeRaw -->
<g id="edge37" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh.MakeRaw</title>
<path fill="none" stroke="#8b4513" d="M44.8578,-1043.5668C52.4663,-971.9761 83.6892,-713.7899 143,-662 172.6541,-636.1062 189.4348,-640 228.803,-640 228.803,-640 228.803,-640 470.6588,-640 537.9188,-640 615.4048,-636.2463 665.3394,-633.3385"/>
<polygon fill="#8b4513" stroke="#8b4513" points="665.7878,-636.8182 675.5631,-632.7325 665.3735,-629.8305 665.7878,-636.8182"/>
</g>
<!-- blitter.com/go/hkexsh.ReadPassword -->
<g id="node21" class="node">
<title>blitter.com/go/hkexsh.ReadPassword</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-65" rx="61.7044" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-61.3" font-family="Verdana" font-size="14.00" fill="#000000">ReadPassword</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh.ReadPassword -->
<g id="edge39" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh.ReadPassword</title>
<path fill="none" stroke="#8b4513" d="M44.3952,-1043.8987C55.0123,-909.1787 125.443,-68 228.803,-68 228.803,-68 228.803,-68 470.6588,-68 529.5674,-68 596.3792,-67.1349 645.6189,-66.3338"/>
<polygon fill="#8b4513" stroke="#8b4513" points="645.9096,-69.8296 655.8502,-66.1642 645.7935,-62.8305 645.9096,-69.8296"/>
</g>
<!-- blitter.com/go/hkexsh.NewSession -->
<g id="node22" class="node">
<title>blitter.com/go/hkexsh.NewSession</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-569" rx="52.0048" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-565.3" font-family="Verdana" font-size="14.00" fill="#000000">NewSession</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh.NewSession -->
<g id="edge40" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh.NewSession</title>
<path fill="none" stroke="#8b4513" d="M43.395,-1043.669C45.1763,-982.8042 54.8189,-782.4747 106,-627 116.8807,-593.9474 115.7302,-579.6153 143,-558 173.9401,-533.4754 189.322,-535 228.803,-535 228.803,-535 228.803,-535 470.6588,-535 537.4263,-535 613.4114,-547.3623 663.2214,-557.1782"/>
<polygon fill="#8b4513" stroke="#8b4513" points="662.6388,-560.631 673.1319,-559.1658 664.0154,-553.7676 662.6388,-560.631"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(*blitter.com/go/hkexsh.Session).SetStatus -->
<g id="edge43" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(*blitter.com/go/hkexsh.Session).SetStatus</title>
<path fill="none" stroke="#8b4513" d="M61.1683,-1048.4447C80.4807,-1034.6925 112.3969,-1013.7997 143,-1002 215.5461,-974.0282 249.9183,-1011.1377 314.606,-968 363.1145,-935.6515 340.5216,-893.3885 387.606,-859 476.9254,-793.7648 519.8061,-818.3688 626.7117,-790 640.8341,-786.2524 656.2608,-782.4169 670.3232,-779.0197"/>
<polygon fill="#8b4513" stroke="#8b4513" points="671.3754,-782.3667 680.2834,-776.6311 669.7429,-775.5597 671.3754,-782.3667"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(blitter.com/go/hkexsh.Session).Status -->
<g id="edge52" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(blitter.com/go/hkexsh.Session).Status</title>
<path fill="none" stroke="#8b4513" d="M54.654,-1045.3418C71.3509,-1022.9653 104.3653,-983.9413 143,-966 212.5539,-933.7003 251.8014,-992.0067 314.606,-948 375.326,-905.4539 344.1074,-858.0413 387.606,-798 447.9247,-714.7417 494.334,-720.932 553.7117,-637 598.6203,-573.5206 569.016,-530.1309 626.7117,-478 640.9629,-465.1234 660.7987,-457.5569 678.2921,-453.1295"/>
<polygon fill="#8b4513" stroke="#8b4513" points="679.2829,-456.4938 688.2614,-450.869 677.7349,-449.667 679.2829,-456.4938"/>
</g>
<!-- blitter.com/go/hkexsh/hkexnet.Init -->
<g id="node31" class="node">
<title>blitter.com/go/hkexsh/hkexnet.Init</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-1183" rx="27" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-1179.3" font-family="Verdana" font-size="14.00" fill="#000000">Init</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexnet.Init -->
<g id="edge33" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexnet.Init</title>
<path fill="none" stroke="#8b4513" d="M57.257,-1077.3305C86.4051,-1106.9169 156.2162,-1169 228.803,-1169 228.803,-1169 228.803,-1169 470.6588,-1169 545.2278,-1169 632.2668,-1175.4492 680.4981,-1179.5932"/>
<polygon fill="#8b4513" stroke="#8b4513" points="680.2012,-1183.0805 690.468,-1180.4647 680.8108,-1176.1071 680.2012,-1183.0805"/>
</g>
<!-- blitter.com/go/hkexsh/hkexnet.Dial -->
<g id="node32" class="node">
<title>blitter.com/go/hkexsh/hkexnet.Dial</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-1244" rx="27" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-1240.3" font-family="Verdana" font-size="14.00" fill="#000000">Dial</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexnet.Dial -->
<g id="edge34" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexnet.Dial</title>
<path fill="none" stroke="#8b4513" d="M53.935,-1078.6377C70.2526,-1101.9225 103.342,-1143.5542 143,-1163 238.7111,-1209.9309 568.8903,-1234.6301 680.3661,-1241.7766"/>
<polygon fill="#8b4513" stroke="#8b4513" points="680.2555,-1245.2765 690.4561,-1242.4135 680.6965,-1238.2904 680.2555,-1245.2765"/>
</g>
<!-- (*blitter.com/go/hkexsh/hkexnet.Conn).Close -->
<g id="node35" class="node">
<title>(*blitter.com/go/hkexsh/hkexnet.Conn).Close</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-1443" rx="27" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-1439.3" font-family="Verdana" font-size="14.00" fill="#000000">Close</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).Close -->
<g id="edge35" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).Close</title>
<path fill="none" stroke="#8b4513" d="M46.5987,-1080.1063C53.9642,-1114.4578 72.9145,-1190.6861 106,-1247 137.1771,-1300.0656 167.2565,-1311 228.803,-1311 228.803,-1311 228.803,-1311 470.6588,-1311 532.2007,-1311 541.0494,-1343.6537 590.7117,-1380 608.2271,-1392.8189 607.991,-1402.0161 626.7117,-1413 638.6203,-1419.9871 652.3745,-1425.6014 665.5167,-1429.9971"/>
<polygon fill="#8b4513" stroke="#8b4513" points="681.0153,-1438.1268 691.5941,-1437.5452 682.9615,-1431.4028 681.0153,-1438.1268"/>
<polyline fill="none" stroke="#8b4513" points="681.9884,-1434.7648 677.1855,-1433.3746 "/>
<polygon fill="none" stroke="#8b4513" points="665.6587,-1430.0382 672.5343,-1427.8641 677.1855,-1433.3746 670.31,-1435.5487 665.6587,-1430.0382"/>
</g>
<!-- (*blitter.com/go/hkexsh/hkexnet.Conn).SetupChaff -->
<g id="node36" class="node">
<title>(*blitter.com/go/hkexsh/hkexnet.Conn).SetupChaff</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-1504" rx="47.7038" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-1500.3" font-family="Verdana" font-size="14.00" fill="#000000">SetupChaff</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).SetupChaff -->
<g id="edge45" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).SetupChaff</title>
<path fill="none" stroke="#8b4513" d="M44.602,-1080.4046C51.6834,-1149.1563 86.467,-1387 228.803,-1387 228.803,-1387 228.803,-1387 470.6588,-1387 524.751,-1387 546.7317,-1375.5084 590.7117,-1407 618.1964,-1426.6802 600.8243,-1452.2616 626.7117,-1474 637.2435,-1482.8439 650.4674,-1489.1057 663.5367,-1493.5304"/>
<polygon fill="#8b4513" stroke="#8b4513" points="662.8669,-1496.9857 673.4535,-1496.5683 664.9173,-1490.2927 662.8669,-1496.9857"/>
</g>
<!-- (*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff -->
<g id="node37" class="node">
<title>(*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-1565" rx="52.0048" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-1561.3" font-family="Verdana" font-size="14.00" fill="#000000">EnableChaff</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff -->
<g id="edge46" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff</title>
<path fill="none" stroke="#8b4513" d="M43.9378,-1080.4294C48.6994,-1152.8561 76.4327,-1414 228.803,-1414 228.803,-1414 228.803,-1414 470.6588,-1414 508.092,-1414 522.1875,-1407.8143 553.7117,-1428 602.1932,-1459.0438 580.7318,-1500.3587 626.7117,-1535 637.0652,-1542.8003 649.5504,-1548.6336 661.9023,-1552.9739"/>
<polygon fill="#8b4513" stroke="#8b4513" points="661.1449,-1556.4071 671.7365,-1556.1438 663.2925,-1549.7446 661.1449,-1556.4071"/>
</g>
<!-- (*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff -->
<g id="node38" class="node">
<title>(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-1626" rx="54.4038" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-1622.3" font-family="Verdana" font-size="14.00" fill="#000000">DisableChaff</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff -->
<g id="edge47" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff</title>
<path fill="none" stroke="#8b4513" d="M43.7385,-1080.1392C46.4497,-1134.5643 58.3496,-1300.5732 106,-1428 117.1061,-1457.6999 116.6163,-1471.4122 143,-1489 175.0928,-1510.3936 190.2331,-1502 228.803,-1502 228.803,-1502 228.803,-1502 470.6588,-1502 524.751,-1502 547.3747,-1489.6293 590.7117,-1522 620.014,-1543.8874 599.1821,-1571.9209 626.7117,-1596 631.8104,-1600.4596 637.5906,-1604.2598 643.7052,-1607.4975"/>
<polygon fill="#8b4513" stroke="#8b4513" points="658.4247,-1617.17 669.009,-1617.6429 661.0298,-1610.6728 658.4247,-1617.17"/>
<polyline fill="none" stroke="#8b4513" points="659.7273,-1613.9214 655.0864,-1612.0607 "/>
<polygon fill="none" stroke="#8b4513" points="643.9483,-1607.5949 651.0059,-1606.1151 655.0864,-1612.0607 648.0287,-1613.5405 643.9483,-1607.5949"/>
</g>
<!-- (*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff -->
<g id="node39" class="node">
<title>(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-1687" rx="64.2048" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-1683.3" font-family="Verdana" font-size="14.00" fill="#000000">ShutdownChaff</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff -->
<g id="edge48" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff</title>
<path fill="none" stroke="#8b4513" d="M43.9354,-1079.9934C47.2221,-1134.7653 60.62,-1303.7214 106,-1435 117.2409,-1467.5184 116.3192,-1481.2759 143,-1503 173.8998,-1528.1593 188.956,-1529 228.803,-1529 228.803,-1529 228.803,-1529 470.6588,-1529 527.9589,-1529 549.2917,-1536.406 590.7117,-1576 619.1892,-1603.222 597.5112,-1630.5552 626.7117,-1657 630.3008,-1660.2504 634.2508,-1663.1495 638.4328,-1665.7353"/>
<polygon fill="#8b4513" stroke="#8b4513" points="652.5837,-1676.0882 663.1318,-1677.0825 655.506,-1669.7274 652.5837,-1676.0882"/>
<polyline fill="none" stroke="#8b4513" points="654.0449,-1672.9078 649.5014,-1670.8204 "/>
<polygon fill="none" stroke="#8b4513" points="638.5971,-1665.8108 645.7191,-1664.6808 649.5014,-1670.8204 642.3794,-1671.9504 638.5971,-1665.8108"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(blitter.com/go/hkexsh/hkexnet.Conn).Read -->
<g id="edge42" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(blitter.com/go/hkexsh/hkexnet.Conn).Read</title>
<path fill="none" stroke="#8b4513" d="M44.9346,-1080.014C50.6583,-1122.9934 71.8471,-1230.9395 143,-1271 209.4597,-1308.4182 239.756,-1285.6457 314.606,-1271 461.5769,-1242.2426 484.1902,-1189.9901 626.7117,-1144 644.4716,-1138.2691 664.6088,-1133.2439 681.3946,-1129.4486"/>
<polygon fill="#8b4513" stroke="#8b4513" points="682.3511,-1132.8218 691.3619,-1127.249 680.8426,-1125.9862 682.3511,-1132.8218"/>
</g>
<!-- blitter.com/go/hkexsh/logger.New -->
<g id="node44" class="node">
<title>blitter.com/go/hkexsh/logger.New</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-1842" rx="27" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-1838.3" font-family="Verdana" font-size="14.00" fill="#000000">New</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/logger.New -->
<g id="edge32" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/logger.New</title>
<path fill="none" stroke="#8b4513" d="M44.3044,-1080.1927C48.6373,-1135.6002 64.6908,-1306.7312 106,-1442 117.5596,-1479.8523 117.6694,-1492.5898 143,-1523 172.7822,-1558.7545 182.2695,-1583 228.803,-1583 228.803,-1583 228.803,-1583 470.6588,-1583 593.8217,-1583 528.3622,-1737.862 626.7117,-1812 642.552,-1823.9407 663.387,-1831.2713 681.0984,-1835.6935"/>
<polygon fill="#8b4513" stroke="#8b4513" points="680.5764,-1839.1642 691.1042,-1837.974 682.132,-1832.3393 680.5764,-1839.1642"/>
</g>
<!-- github.com/mattn/go&#45;isatty.IsTerminal -->
<g id="node46" class="node">
<title>github.com/mattn/go&#45;isatty.IsTerminal</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="228.803" cy="-1627" rx="45.2034" ry="18"/>
<text text-anchor="middle" x="228.803" y="-1623.3" font-family="Verdana" font-size="14.00" fill="#000000">IsTerminal</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;github.com/mattn/go&#45;isatty.IsTerminal -->
<g id="edge36" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;github.com/mattn/go&#45;isatty.IsTerminal</title>
<path fill="none" stroke="#8b4513" d="M44.0707,-1080.0532C49.4258,-1167.9428 74.3079,-1548.5007 106,-1590 121.857,-1610.764 148.9758,-1620.2668 173.7019,-1624.4694"/>
<polygon fill="#8b4513" stroke="#8b4513" points="173.3524,-1627.9552 183.75,-1625.9203 174.3528,-1621.027 173.3524,-1627.9552"/>
</g>
</g>
</svg>