Uebung-hk1-Schrom01-Fassban.../Klassendiagramm.svg

4 lines
133 KiB
XML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="UTF-8"?>
<!-- Do not edit this file with editors other than diagrams.net -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="2601px" height="2210px" viewBox="-0.5 -0.5 2601 2210" content="&lt;mxfile host=&quot;Electron&quot; modified=&quot;2022-04-16T17:20:57.099Z&quot; agent=&quot;5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/17.2.1 Chrome/96.0.4664.174 Electron/16.1.0 Safari/537.36&quot; etag=&quot;NvST5MnDjkijMmkzUQJS&quot; version=&quot;17.2.1&quot; type=&quot;device&quot;&gt;&lt;diagram id=&quot;E9rHy_gAgqXRi0qXOPk2&quot; name=&quot;Seite-1&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;"><defs><clipPath id="mx-clip-544-159-152-26-0"><rect x="544" y="159" width="152" height="26"/></clipPath><clipPath id="mx-clip-714-1495-422-26-0"><rect x="714" y="1495" width="422" height="26"/></clipPath><clipPath id="mx-clip-714-1521-422-26-0"><rect x="714" y="1521" width="422" height="26"/></clipPath><clipPath id="mx-clip-714-1547-422-26-0"><rect x="714" y="1547" width="422" height="26"/></clipPath><clipPath id="mx-clip-714-1573-422-26-0"><rect x="714" y="1573" width="422" height="26"/></clipPath><clipPath id="mx-clip-714-1599-422-26-0"><rect x="714" y="1599" width="422" height="26"/></clipPath><clipPath id="mx-clip-714-1625-422-26-0"><rect x="714" y="1625" width="422" height="26"/></clipPath><clipPath id="mx-clip-714-1659-422-40-0"><rect x="714" y="1659" width="422" height="40"/></clipPath><clipPath id="mx-clip-714-1699-422-40-0"><rect x="714" y="1699" width="422" height="40"/></clipPath><clipPath id="mx-clip-714-1739-422-40-0"><rect x="714" y="1739" width="422" height="40"/></clipPath><clipPath id="mx-clip-714-1779-422-40-0"><rect x="714" y="1779" width="422" height="40"/></clipPath><clipPath id="mx-clip-714-1819-422-40-0"><rect x="714" y="1819" width="422" height="40"/></clipPath><clipPath id="mx-clip-714-1859-422-40-0"><rect x="714" y="1859" width="422" height="40"/></clipPath><clipPath id="mx-clip-714-1899-422-26-0"><rect x="714" y="1899" width="422" height="26"/></clipPath><clipPath id="mx-clip-714-1925-422-26-0"><rect x="714" y="1925" width="422" height="26"/></clipPath><clipPath id="mx-clip-714-1951-422-26-0"><rect x="714" y="1951" width="422" height="26"/></clipPath><clipPath id="mx-clip-714-1977-422-26-0"><rect x="714" y="1977" width="422" height="26"/></clipPath><clipPath id="mx-clip-714-2003-422-26-0"><rect x="714" y="2003" width="422" height="26"/></clipPath><clipPath id="mx-clip-714-2029-422-26-0"><rect x="714" y="2029" width="422" height="26"/></clipPath><clipPath id="mx-clip-714-2055-422-26-0"><rect x="714" y="2055" width="422" height="26"/></clipPath><clipPath id="mx-clip-714-2081-422-26-0"><rect x="714" y="2081" width="422" height="26"/></clipPath><clipPath id="mx-clip-714-2107-422-26-0"><rect x="714" y="2107" width="422" height="26"/></clipPath><clipPath id="mx-clip-714-2133-422-26-0"><rect x="714" y="2133" width="422" height="26"/></clipPath><clipPath id="mx-clip-714-2159-422-26-0"><rect x="714" y="2159" width="422" height="26"/></clipPath><clipPath id="mx-clip-714-2185-422-26-0"><rect x="714" y="2185" width="422" height="26"/></clipPath><clipPath id="mx-clip-832-289-244-26-0"><rect x="832" y="289" width="244" height="26"/></clipPath><clipPath id="mx-clip-832-315-244-26-0"><rect x="832" y="315" width="244" height="26"/></clipPath><clipPath id="mx-clip-832-159-244-20-0"><rect x="832" y="159" width="244" height="20"/></clipPath><clipPath id="mx-clip-884-1294-132-30-0"><rect x="884" y="1294" width="132" height="30"/></clipPath><clipPath id="mx-clip-4-635-382-26-0"><rect x="4" y="635" width="382" height="26"/></clipPath><clipPath id="mx-clip-4-661-382-26-0"><rect x="4" y="661" width="382" height="26"/></clipPath><clipPath id="mx-clip-4-695-382-34-0"><rect x="4" y="695" width="382" height="34"/></clipPath><clipPath id="mx-clip-4-729-382-26-0"><rect x="4" y="729" width="382" height="26"/></clipPath><clipPath id="mx-clip-4-755-382-26-0"><rect x="4" y="755" width="382" height="26"/></clipPath><clipPath id="mx-clip-4-781-382-26-0"><rect x="4" y="781" width="382" height="26"/></clipPath><clipPath id="mx-clip-124-1265-472-22-0"><rect x="124" y="1265" width="472" height="22"/></clipPath><clipPath id="mx-clip-124-1287-472-26-0"><rect x="124" y="1287" width="472" height="26"/></clipPath><clipPath id="mx-clip-124-1313-472-26-0"><rect x="124" y="1313" width="472" height="26"/></clipPath><clipPath id="mx-clip-124-1339-472-26-0"><rect x="124" y="1339" width="472" height="26"/></clipPath><clipPath id="mx-clip-124-1365-472-26-0"><rect x="124" y="1365" width="472" height="26"/></clipPath><clipPath id="mx-clip-124-1391-472-26-0"><rect x="124" y="1391" width="472" height="26"/></clipPath><clipPath id="mx-clip-124-1417-472-26-0"><rect x="124" y="1417" width="472" height="26"/></clipPath><clipPath id="mx-clip-124-1443-472-26-0"><rect x="124" y="1443" width="472" height="26"/></clipPath><clipPath id="mx-clip-124-1469-472-26-0"><rect x="124" y="1469" width="472" height="26"/></clipPath><clipPath id="mx-clip-124-1495-472-26-0"><rect x="124" y="1495" width="472" height="26"/></clipPath><clipPath id="mx-clip-124-1521-472-26-0"><rect x="124" y="1521" width="472" height="26"/></clipPath><clipPath id="mx-clip-124-1547-472-26-0"><rect x="124" y="1547" width="472" height="26"/></clipPath><clipPath id="mx-clip-124-1573-472-26-0"><rect x="124" y="1573" width="472" height="26"/></clipPath><clipPath id="mx-clip-124-1607-472-26-0"><rect x="124" y="1607" width="472" height="26"/></clipPath><clipPath id="mx-clip-124-1633-472-26-0"><rect x="124" y="1633" width="472" height="26"/></clipPath><clipPath id="mx-clip-124-1659-472-26-0"><rect x="124" y="1659" width="472" height="26"/></clipPath><clipPath id="mx-clip-124-1685-472-26-0"><rect x="124" y="1685" width="472" height="26"/></clipPath><clipPath id="mx-clip-124-1711-472-26-0"><rect x="124" y="1711" width="472" height="26"/></clipPath><clipPath id="mx-clip-124-1737-472-26-0"><rect x="124" y="1737" width="472" height="26"/></clipPath><clipPath id="mx-clip-124-1763-472-26-0"><rect x="124" y="1763" width="472" height="26"/></clipPath><clipPath id="mx-clip-124-1789-472-26-0"><rect x="124" y="1789" width="472" height="26"/></clipPath><clipPath id="mx-clip-124-1815-472-26-0"><rect x="124" y="1815" width="472" height="26"/></clipPath><clipPath id="mx-clip-124-1841-472-26-0"><rect x="124" y="1841" width="472" height="26"/></clipPath><clipPath id="mx-clip-124-1867-472-26-0"><rect x="124" y="1867" width="472" height="26"/></clipPath><clipPath id="mx-clip-124-1893-472-26-0"><rect x="124" y="1893" width="472" height="26"/></clipPath><clipPath id="mx-clip-124-1919-472-26-0"><rect x="124" y="1919" width="472" height="26"/></clipPath><clipPath id="mx-clip-124-1945-472-26-0"><rect x="124" y="1945" width="472" height="26"/></clipPath><clipPath id="mx-clip-124-1971-472-26-0"><rect x="124" y="1971" width="472" height="26"/></clipPath><clipPath id="mx-clip-124-1997-472-26-0"><rect x="124" y="1997" width="472" height="26"/></clipPath><clipPath id="mx-clip-1474-31-392-26-0"><rect x="1474" y="31" width="392" height="26"/></clipPath><clipPath id="mx-clip-1474-57-392-26-0"><rect x="1474" y="57" width="392" height="26"/></clipPath><clipPath id="mx-clip-1474-91-392-26-0"><rect x="1474" y="91" width="392" height="26"/></clipPath><clipPath id="mx-clip-1474-117-392-26-0"><rect x="1474" y="117" width="392" height="26"/></clipPath><clipPath id="mx-clip-1474-143-392-26-0"><rect x="1474" y="143" width="392" height="26"/></clipPath><clipPath id="mx-clip-1474-169-392-26-0"><rect x="1474" y="169" width="392" height="26"/></clipPath><clipPath id="mx-clip-1474-195-392-26-0"><rect x="1474" y="195" width="392" height="26"/></clipPath><clipPath id="mx-clip-1694-351-192-26-0"><rect x="1694" y="351" width="192" height="26"/></clipPath><clipPath id="mx-clip-1694-385-192-26-0"><rect x="1694" y="385" width="192" height="26"/></clipPath><clipPath id="mx-clip-1694-411-192-26-0"><rect x="1694" y="411" width="192" height="26"/></clipPath><clipPath id="mx-clip-1694-437-192-26-0"><rect x="1694" y="437" width="192" height="26"/></clipPath><clipPath id="mx-clip-1694-463-192-26-0"><rect x="1694" y="463" width="192" height="26"/></clipPath><clipPath id="mx-clip-1694-489-192-26-0"><rect x="1694" y="489" width="192" height="26"/></clipPath><clipPath id="mx-clip-1694-515-192-26-0"><rect x="1694" y="515" width="192" height="26"/></clipPath><clipPath id="mx-clip-1694-541-192-26-0"><rect x="1694" y="541" width="192" height="26"/></clipPath><clipPath id="mx-clip-1694-567-192-26-0"><rect x="1694" y="567" width="192" height="26"/></clipPath><clipPath id="mx-clip-1484-351-192-26-0"><rect x="1484" y="351" width="192" height="26"/></clipPath><clipPath id="mx-clip-1484-385-192-26-0"><rect x="1484" y="385" width="192" height="26"/></clipPath><clipPath id="mx-clip-1484-411-192-26-0"><rect x="1484" y="411" width="192" height="26"/></clipPath><clipPath id="mx-clip-1484-437-192-26-0"><rect x="1484" y="437" width="192" height="26"/></clipPath><clipPath id="mx-clip-1484-463-192-26-0"><rect x="1484" y="463" width="192" height="26"/></clipPath><clipPath id="mx-clip-1484-489-192-26-0"><rect x="1484" y="489" width="192" height="26"/></clipPath><clipPath id="mx-clip-1484-515-192-26-0"><rect x="1484" y="515" width="192" height="26"/></clipPath><clipPath id="mx-clip-1484-541-192-26-0"><rect x="1484" y="541" width="192" height="26"/></clipPath><clipPath id="mx-clip-1484-567-192-26-0"><rect x="1484" y="567" width="192" height="26"/></clipPath><clipPath id="mx-clip-2264-1205-332-26-0"><rect x="2264" y="1205" width="332" height="26"/></clipPath><clipPath id="mx-clip-2264-1231-332-26-0"><rect x="2264" y="1231" width="332" height="26"/></clipPath><clipPath id="mx-clip-2264-1265-332-26-0"><rect x="2264" y="1265" width="332" height="26"/></clipPath><clipPath id="mx-clip-2264-1291-332-26-0"><rect x="2264" y="1291" width="332" height="26"/></clipPath><clipPath id="mx-clip-2264-1317-332-26-0"><rect x="2264" y="1317" width="332" height="26"/></clipPath><clipPath id="mx-clip-2264-1343-332-26-0"><rect x="2264" y="1343" width="332" height="26"/></clipPath><clipPath id="mx-clip-1774-1495-592-26-0"><rect x="1774" y="1495" width="592" height="26"/></clipPath><clipPath id="mx-clip-1774-1521-592-26-0"><rect x="1774" y="1521" width="592" height="26"/></clipPath><clipPath id="mx-clip-1774-1547-592-26-0"><rect x="1774" y="1547" width="592" height="26"/></clipPath><clipPath id="mx-clip-1774-1573-592-26-0"><rect x="1774" y="1573" width="592" height="26"/></clipPath><clipPath id="mx-clip-1774-1599-592-26-0"><rect x="1774" y="1599" width="592" height="26"/></clipPath><clipPath id="mx-clip-1774-1633-592-26-0"><rect x="1774" y="1633" width="592" height="26"/></clipPath><clipPath id="mx-clip-1774-1659-592-26-0"><rect x="1774" y="1659" width="592" height="26"/></clipPath><clipPath id="mx-clip-1774-1685-592-26-0"><rect x="1774" y="1685" width="592" height="26"/></clipPath><clipPath id="mx-clip-1774-1711-592-26-0"><rect x="1774" y="1711" width="592" height="26"/></clipPath><clipPath id="mx-clip-1774-1737-592-26-0"><rect x="1774" y="1737" width="592" height="26"/></clipPath><clipPath id="mx-clip-1774-1763-592-26-0"><rect x="1774" y="1763" width="592" height="26"/></clipPath><clipPath id="mx-clip-1774-1789-592-26-0"><rect x="1774" y="1789" width="592" height="26"/></clipPath><clipPath id="mx-clip-1774-1815-592-26-0"><rect x="1774" y="1815" width="592" height="26"/></clipPath><clipPath id="mx-clip-1774-1841-592-26-0"><rect x="1774" y="1841" width="592" height="26"/></clipPath><clipPath id="mx-clip-1364-681-642-26-0"><rect x="1364" y="681" width="642" height="26"/></clipPath><clipPath id="mx-clip-1364-707-642-26-0"><rect x="1364" y="707" width="642" height="26"/></clipPath><clipPath id="mx-clip-1364-733-642-26-0"><rect x="1364" y="733" width="642" height="26"/></clipPath><clipPath id="mx-clip-1364-759-642-26-0"><rect x="1364" y="759" width="642" height="26"/></clipPath><clipPath id="mx-clip-1364-785-642-26-0"><rect x="1364" y="785" width="642" height="26"/></clipPath><clipPath id="mx-clip-1364-811-642-26-0"><rect x="1364" y="811" width="642" height="26"/></clipPath><clipPath id="mx-clip-1364-837-642-26-0"><rect x="1364" y="837" width="642" height="26"/></clipPath><clipPath id="mx-clip-1364-863-642-26-0"><rect x="1364" y="863" width="642" height="26"/></clipPath><clipPath id="mx-clip-1364-897-642-20-0"><rect x="1364" y="897" width="642" height="20"/></clipPath><clipPath id="mx-clip-1364-917-642-20-0"><rect x="1364" y="917" width="642" height="20"/></clipPath><clipPath id="mx-clip-1364-937-642-20-0"><rect x="1364" y="937" width="642" height="20"/></clipPath><clipPath id="mx-clip-1364-957-642-20-0"><rect x="1364" y="957" width="642" height="20"/></clipPath><clipPath id="mx-clip-1364-977-642-20-0"><rect x="1364" y="977" width="642" height="20"/></clipPath><clipPath id="mx-clip-1364-997-642-20-0"><rect x="1364" y="997" width="642" height="20"/></clipPath><clipPath id="mx-clip-1364-1017-642-20-0"><rect x="1364" y="1017" width="642" height="20"/></clipPath><clipPath id="mx-clip-1364-1037-642-20-0"><rect x="1364" y="1037" width="642" height="20"/></clipPath><clipPath id="mx-clip-1364-1057-642-20-0"><rect x="1364" y="1057" width="642" height="20"/></clipPath><clipPath id="mx-clip-1494-1213-332-26-0"><rect x="1494" y="1213" width="332" height="26"/></clipPath><clipPath id="mx-clip-1494-1239-332-26-0"><rect x="1494" y="1239" width="332" height="26"/></clipPath><clipPath id="mx-clip-1494-1265-332-26-0"><rect x="1494" y="1265" width="332" height="26"/></clipPath><clipPath id="mx-clip-1494-1291-332-26-0"><rect x="1494" y="1291" width="332" height="26"/></clipPath><clipPath id="mx-clip-1494-1317-332-26-0"><rect x="1494" y="1317" width="332" height="26"/></clipPath><clipPath id="mx-clip-1494-1343-332-26-0"><rect x="1494" y="1343" width="332" height="26"/></clipPath><clipPath id="mx-clip-444-635-382-26-0"><rect x="444" y="635" width="382" height="26"/></clipPath><clipPath id="mx-clip-444-661-382-26-0"><rect x="444" y="661" width="382" height="26"/></clipPath><clipPath id="mx-clip-444-687-382-26-0"><rect x="444" y="687" width="382" height="26"/></clipPath><clipPath id="mx-clip-444-713-382-26-0"><rect x="444" y="713" width="382" height="26"/></clipPath><clipPath id="mx-clip-444-747-382-34-0"><rect x="444" y="747" width="382" height="34"/></clipPath><clipPath id="mx-clip-444-781-382-26-0"><rect x="444" y="781" width="382" height="26"/></clipPath><clipPath id="mx-clip-444-807-382-26-0"><rect x="444" y="807" width="382" height="26"/></clipPath><clipPath id="mx-clip-444-833-382-26-0"><rect x="444" y="833" width="382" height="26"/></clipPath><clipPath id="mx-clip-444-859-382-26-0"><rect x="444" y="859" width="382" height="26"/></clipPath><clipPath id="mx-clip-444-885-382-26-0"><rect x="444" y="885" width="382" height="26"/></clipPath><clipPath id="mx-clip-944-635-332-26-0"><rect x="944" y="635" width="332" height="26"/></clipPath><clipPath id="mx-clip-944-661-332-26-0"><rect x="944" y="661" width="332" height="26"/></clipPath><clipPath id="mx-clip-944-687-332-26-0"><rect x="944" y="687" width="332" height="26"/></clipPath></defs><g><rect x="900" y="1254" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1264px; margin-left: 910px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><span style="color: rgba(0 , 0 , 0 , 0) ; font-family: monospace ; font-size: 0px">%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20style%3D%22edgeStyle%3DorthogonalEdgeStyle%3Brounded%3D0%3BorthogonalLoop%3D1%3BjettySize%3Dauto%3Bhtml%3D1%3BentryX%3D0%3BentryY%3D0.25%3BentryDx%3D0%3BentryDy%3D0%3BendArrow%3Dclassic%3BendFill%3D1%3B%22%20edge%3D%221%22%20source%3D%223%22%20target%3D%2230%22%20parent%3D%221%22%3E%3CmxGeometry%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CArray%20as%3D%22points%22%3E%3CmxPoint%20x%3D%22470%22%20y%3D%2260%22%2F%3E%3CmxPoint%20x%3D%22470%22%20y%3D%22178%22%2F%3E%3C%2FArray%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%223%22%20value%3D%22Client%22%20style%3D%22swimlane%3BfontStyle%3D2%3Balign%3Dcenter%3BverticalAlign%3Dtop%3BchildLayout%3DstackLayout%3Bhorizontal%3D1%3BstartSize%3D26%3BhorizontalStack%3D0%3BresizeParent%3D1%3BresizeLast%3D0%3Bcollapsible%3D1%3BmarginBottom%3D0%3Brounded%3D0%3Bshadow%3D0%3BstrokeWidth%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22220%22%20y%3D%2220%22%20width%3D%22160%22%20height%3D%2280%22%20as%3D%22geometry%22%3E%3CmxRectangle%20x%3D%22230%22%20y%3D%22140%22%20width%3D%22160%22%20height%3D%2226%22%20as%3D%22alternateBounds%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%224%22%20value%3D%22%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%223%22%3E%3CmxGeometry%20y%3D%2226%22%20width%3D%22160%22%20height%3D%2224%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%225%22%20value%3D%22%2B%20main(args%3AString%5B%5D)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BfontStyle%3D4%22%20vertex%3D%221%22%20parent%3D%223%22%3E%3CmxGeometry%20y%3D%2250%22%20width%3D%22160%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%226%22%20value%3D%22ClientConnectionHandler%22%20style%3D%22swimlane%3BfontStyle%3D0%3Balign%3Dcenter%3BverticalAlign%3Dtop%3BchildLayout%3DstackLayout%3Bhorizontal%3D1%3BstartSize%3D26%3BhorizontalStack%3D0%3BresizeParent%3D1%3BresizeLast%3D0%3Bcollapsible%3D1%3BmarginBottom%3D0%3Brounded%3D0%3Bshadow%3D0%3BstrokeWidth%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%2220%22%20y%3D%22150%22%20width%3D%22430%22%20height%3D%22594%22%20as%3D%22geometry%22%3E%3CmxRectangle%20x%3D%22130%22%20y%3D%22380%22%20width%3D%22160%22%20height%3D%2226%22%20as%3D%22alternateBounds%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%227%22%20value%3D%22-%20connection%3A%C2%A0NetworkHandler.NetworkConnection%26lt%3BString%26gt%3B%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%2226%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%228%22%20value%3D%22-%20controller%3A%C2%A0ChatWindowController%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%2252%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%229%22%20value%3D%22-%20DATA_TYPE_CONNECT%3A%20String%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%2278%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2210%22%20value%3D%22-%20DATA_TYPE_CONFIRM%3A%20String%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22104%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2211%22%20value%3D%22-%20DATA_TYPE_DISCONNECT%3A%20String%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22130%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2212%22%20value%3D%22-%20DATA_TYPE_MESSAGE%3A%20String%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22156%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2213%22%20value%3D%22-%20DATA_TYPE_ERROR%3A%20String%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22182%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2214%22%20value%3D%22%2B%20USER_NONE%3A%20String%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22208%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2215%22%20value%3D%22%2B%20USER_ALL%3A%20String%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22234%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2216%22%20value%3D%22-%20userName%3A%20String%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22260%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2217%22%20value%3D%22-%20state%3A%20State%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22286%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2218%22%20value%3D%22%22%20style%3D%22line%3Bhtml%3D1%3BstrokeWidth%3D1%3Balign%3Dleft%3BverticalAlign%3Dmiddle%3BspacingTop%3D-1%3BspacingLeft%3D3%3BspacingRight%3D3%3Brotatable%3D0%3BlabelPosition%3Dright%3Bpoints%3D%5B%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22312%22%20width%3D%22430%22%20height%3D%228%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2219%22%20value%3D%22%2B%20ClientEventHandler(NetworkHandler.NetworkConnection%26lt%3BString%26gt%3B%20connection%2C%26%2310%3B%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0String%20userName%2C%20ChatWindowController%20controller)%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BfontStyle%3D0%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22320%22%20width%3D%22430%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2220%22%20value%3D%22%2B%C2%A0getState()%3A%20State%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22360%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2221%22%20value%3D%22%2B%C2%A0setState%20(State%20newState)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22386%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2222%22%20value%3D%22%2B%C2%A0run%20()%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22412%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2223%22%20value%3D%22%2B%C2%A0startReceiving()%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22438%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2224%22%20value%3D%22-%C2%A0processData(String%20data)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22464%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2225%22%20value%3D%22%2B%C2%A0sendData(String%20sender%2C%20String%20receiver%2C%20String%20type%2C%20String%20payload)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22490%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2226%22%20value%3D%22%2B%C2%A0connect()%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22516%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2227%22%20value%3D%22%2B%C2%A0disconnect()%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22542%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2228%22%20value%3D%22%2B%C2%A0message(String%20receiver%2C%20String%20message)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%226%22%3E%3CmxGeometry%20y%3D%22568%22%20width%3D%22430%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2229%22%20style%3D%22edgeStyle%3DorthogonalEdgeStyle%3Brounded%3D0%3BorthogonalLoop%3D1%3BjettySize%3Dauto%3Bhtml%3D1%3BendArrow%3Dblock%3BendFill%3D0%3BentryX%3D0.5%3BentryY%3D1%3BentryDx%3D0%3BentryDy%3D0%3B%22%20edge%3D%221%22%20source%3D%2230%22%20target%3D%2234%22%20parent%3D%221%22%3E%3CmxGeometry%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22588%22%20y%3D%22120%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2230%22%20value%3D%22ClientUI%22%20style%3D%22swimlane%3BfontStyle%3D0%3Balign%3Dcenter%3BverticalAlign%3Dtop%3BchildLayout%3DstackLayout%3Bhorizontal%3D1%3BstartSize%3D26%3BhorizontalStack%3D0%3BresizeParent%3D1%3BresizeLast%3D0%3Bcollapsible%3D1%3BmarginBottom%3D0%3Brounded%3D0%3Bshadow%3D0%3BstrokeWidth%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22508%22%20y%3D%22150%22%20width%3D%22252%22%20height%3D%22110%22%20as%3D%22geometry%22%3E%3CmxRectangle%20x%3D%22550%22%20y%3D%22140%22%20width%3D%22160%22%20height%3D%2226%22%20as%3D%22alternateBounds%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2231%22%20value%3D%22%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%2230%22%3E%3CmxGeometry%20y%3D%2226%22%20width%3D%22252%22%20height%3D%2224%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2232%22%20value%3D%22%2B%20start(primaryStage%3A%20Stage)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2230%22%3E%3CmxGeometry%20y%3D%2250%22%20width%3D%22252%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2233%22%20value%3D%22-%20chatWindow(primaryStage%3A%20Stage)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2230%22%3E%3CmxGeometry%20y%3D%2276%22%20width%3D%22252%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2234%22%20value%3D%22%26lt%3B%26lt%3Babstract%26gt%3B%26gt%3B%20Client%22%20style%3D%22swimlane%3BfontStyle%3D2%3Balign%3Dcenter%3BverticalAlign%3Dtop%3BchildLayout%3DstackLayout%3Bhorizontal%3D1%3BstartSize%3D26%3BhorizontalStack%3D0%3BresizeParent%3D1%3BresizeLast%3D0%3Bcollapsible%3D1%3BmarginBottom%3D0%3Brounded%3D0%3Bshadow%3D0%3BstrokeWidth%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22508%22%20y%3D%2220%22%20width%3D%22252%22%20height%3D%2280%22%20as%3D%22geometry%22%3E%3CmxRectangle%20x%3D%22230%22%20y%3D%22140%22%20width%3D%22160%22%20height%3D%2226%22%20as%3D%22alternateBounds%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2235%22%20value%3D%22%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%2234%22%3E%3CmxGeometry%20y%3D%2226%22%20width%3D%22252%22%20height%3D%2224%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2236%22%20value%3D%22%2B%20start(primaryStage%3A%20Stage)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BfontStyle%3D4%22%20vertex%3D%221%22%20parent%3D%2234%22%3E%3CmxGeometry%20y%3D%2250%22%20width%3D%22252%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2237%22%20style%3D%22edgeStyle%3DorthogonalEdgeStyle%3Brounded%3D0%3BorthogonalLoop%3D1%3BjettySize%3Dauto%3Bhtml%3D1%3BendArrow%3Dblock%3BendFill%3D0%3BexitX%3D0.5%3BexitY%3D0%3BexitDx%3D0%3BexitDy%3D0%3B%22%20edge%3D%221%22%20source%3D%226%22%20target%3D%2238%22%20parent%3D%221%22%3E%3CmxGeometry%20relative%3D%221%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2238%22%20value%3D%22%26lt%3B%26lt%3Binterface%26gt%3B%26gt%3B%20Runnable%22%20style%3D%22swimlane%3BfontStyle%3D0%3BchildLayout%3DstackLayout%3Bhorizontal%3D1%3BstartSize%3D30%3BhorizontalStack%3D0%3BresizeParent%3D1%3BresizeParentMax%3D0%3BresizeLast%3D0%3Bcollapsible%3D1%3BmarginBottom%3D0%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%2220%22%20y%3D%2220%22%20width%3D%22140%22%20height%3D%2280%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2239%22%20value%3D%22%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%2238%22%3E%3CmxGeometry%20y%3D%2230%22%20width%3D%22140%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2240%22%20value%3D%22%2B%20run()%3A%20void%22%20style%3D%22text%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dleft%3BverticalAlign%3Dmiddle%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brotatable%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2238%22%3E%3CmxGeometry%20y%3D%2250%22%20width%3D%22140%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2241%22%20value%3D%22ClientMessageList%22%20style%3D%22swimlane%3BfontStyle%3D0%3Balign%3Dcenter%3BverticalAlign%3Dtop%3BchildLayout%3DstackLayout%3Bhorizontal%3D1%3BstartSize%3D26%3BhorizontalStack%3D0%3BresizeParent%3D1%3BresizeLast%3D0%3Bcollapsible%3D1%3BmarginBottom%3D0%3Brounded%3D0%3Bshadow%3D0%3BstrokeWidth%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22508%22%20y%3D%22288%22%20width%3D%22272%22%20height%3D%22336%22%20as%3D%22geometry%22%3E%3CmxRectangle%20x%3D%22130%22%20y%3D%22380%22%20width%3D%22160%22%20height%3D%2226%22%20as%3D%22alternateBounds%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2242%22%20value%3D%22-%C2%A0typeList%3A%C2%A0List%26lt%3BMessageType%26gt%3B%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2241%22%3E%3CmxGeometry%20y%3D%2226%22%20width%3D%22272%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2243%22%20value%3D%22-%C2%A0senderList%3A%C2%A0List%26lt%3BString%26gt%3B%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2241%22%3E%3CmxGeometry%20y%3D%2252%22%20width%3D%22272%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2244%22%20value%3D%22-%C2%A0receiverList%3A%C2%A0List%26lt%3BString%26gt%3B%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2241%22%3E%3CmxGeometry%20y%3D%2278%22%20width%3D%22272%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2245%22%20value%3D%22-%C2%A0messageList%3A%C2%A0List%26lt%3BString%26gt%3B%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2241%22%3E%3CmxGeometry%20y%3D%22104%22%20width%3D%22272%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2246%22%20value%3D%22-%C2%A0gui%3A%20ChatWindowController%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2241%22%3E%3CmxGeometry%20y%3D%22130%22%20width%3D%22272%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2247%22%20value%3D%22%22%20style%3D%22line%3Bhtml%3D1%3BstrokeWidth%3D1%3Balign%3Dleft%3BverticalAlign%3Dmiddle%3BspacingTop%3D-1%3BspacingLeft%3D3%3BspacingRight%3D3%3Brotatable%3D0%3BlabelPosition%3Dright%3Bpoints%3D%5B%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2241%22%3E%3CmxGeometry%20y%3D%22156%22%20width%3D%22272%22%20height%3D%228%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2248%22%20value%3D%22%2B%C2%A0ClientMessageList(ChatWindowController%20gui)%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2241%22%3E%3CmxGeometry%20y%3D%22164%22%20width%3D%22272%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2249%22%20value%3D%22%2B%C2%A0addMessage(MessageType%20type%2C%20String%20sender%2C%26%2310%3B%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0%20%C2%A0String%20receiver%2C%20String%20message)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2241%22%3E%3CmxGeometry%20y%3D%22190%22%20width%3D%22272%22%20height%3D%2250%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2250%22%20value%3D%22%2B%C2%A0writeFilteredMessages(String%20filter)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2241%22%3E%3CmxGeometry%20y%3D%22240%22%20width%3D%22272%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2251%22%20value%3D%22%26amp%3Blt%3B%26amp%3Blt%3BEnumeration%26amp%3Bgt%3B%26amp%3Bgt%3B%20MessageType%26lt%3Bbr%26gt%3B-%26amp%3Bnbsp%3BINFO%26lt%3Bbr%26gt%3B-%26amp%3Bnbsp%3BMESSAGE%26lt%3Bbr%26gt%3B-%26amp%3Bnbsp%3BERROR%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Balign%3Dleft%3B%22%20vertex%3D%221%22%20parent%3D%2241%22%3E%3CmxGeometry%20y%3D%22266%22%20width%3D%22272%22%20height%3D%2270%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2252%22%20value%3D%22ChatWindowController%22%20style%3D%22swimlane%3BfontStyle%3D0%3Balign%3Dcenter%3BverticalAlign%3Dtop%3BchildLayout%3DstackLayout%3Bhorizontal%3D1%3BstartSize%3D26%3BhorizontalStack%3D0%3BresizeParent%3D1%3BresizeLast%3D0%3Bcollapsible%3D1%3BmarginBottom%3D0%3Brounded%3D0%3Bshadow%3D0%3BstrokeWidth%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22480%22%20y%3D%22670%22%20width%3D%22390%22%20height%3D%22978%22%20as%3D%22geometry%22%3E%3CmxRectangle%20x%3D%22130%22%20y%3D%22380%22%20width%3D%22160%22%20height%3D%2226%22%20as%3D%22alternateBounds%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2253%22%20value%3D%22-%C2%A0messagePattern%3A%C2%A0Pattern%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%2226%22%20width%3D%22390%22%20height%3D%2222%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2254%22%20value%3D%22-%C2%A0connectionHandler%3A%C2%A0ClientConnectionHandler%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%2248%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2255%22%20value%3D%22-%C2%A0messages%3A%C2%A0ClientMessageList%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%2274%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2256%22%20value%3D%22-%20windowCloseHandler%3A%C2%A0WindowCloseHandler%20%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22100%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2257%22%20value%3D%22-%C2%A0rootPane%3A%C2%A0Pane%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22126%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2258%22%20value%3D%22-%C2%A0serverAddressField%3A%C2%A0TextField%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22152%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2259%22%20value%3D%22-%C2%A0serverPortField%3A%C2%A0TextField%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22178%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2260%22%20value%3D%22-%C2%A0userNameField%3A%C2%A0TextField%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22204%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2261%22%20value%3D%22-%C2%A0messageField%3A%C2%A0TextField%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22230%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2262%22%20value%3D%22-%C2%A0messageArea%3A%C2%A0TextArea%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22256%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2263%22%20value%3D%22-%C2%A0connectButton%3A%C2%A0Button%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22282%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2264%22%20value%3D%22-%C2%A0sendButton%3A%C2%A0Button%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22308%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2265%22%20value%3D%22-%C2%A0filterValue%3A%C2%A0TextField%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22334%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2266%22%20value%3D%22%22%20style%3D%22line%3Bhtml%3D1%3BstrokeWidth%3D1%3Balign%3Dleft%3BverticalAlign%3Dmiddle%3BspacingTop%3D-1%3BspacingLeft%3D3%3BspacingRight%3D3%3Brotatable%3D0%3BlabelPosition%3Dright%3Bpoints%3D%5B%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22360%22%20width%3D%22390%22%20height%3D%228%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2267%22%20value%3D%22%2B%C2%A0initialize()%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22368%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2268%22%20value%3D%22-%C2%A0applicationClose()%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22394%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2269%22%20value%3D%22-%C2%A0toggleConnection()%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22420%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2270%22%20value%3D%22-%C2%A0connect()%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22446%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2271%22%20value%3D%22-%C2%A0disconnect()%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22472%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2272%22%20value%3D%22-%C2%A0disconnect()%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22498%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2273%22%20value%3D%22-%C2%A0message()%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22524%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2274%22%20value%3D%22-%C2%A0applyFilter(%20)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22550%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2275%22%20value%3D%22-%C2%A0terminateConnectionHandler()%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22576%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2276%22%20value%3D%22%2B%C2%A0stateChanged(State%20newState)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22602%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2277%22%20value%3D%22%2B%C2%A0setUserName(String%20userName)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22628%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2278%22%20value%3D%22%2B%C2%A0setServerAddress(String%20serverAddress)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22654%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2279%22%20value%3D%22%2B%C2%A0setServerPort(int%20serverPort)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22680%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2280%22%20value%3D%22%2B%C2%A0addMessage(String%20sender%2C%20String%20receiver%2C%20String%20message)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22706%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2281%22%20value%3D%22%2B%C2%A0addInfo(String%20message)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22732%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2282%22%20value%3D%22%2B%C2%A0addError(String%20message)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22758%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2283%22%20value%3D%22%2B%C2%A0clearMessageArea()%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22784%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2284%22%20value%3D%22-%C2%A0redrawMessageList()%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22810%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2285%22%20value%3D%22%2B%20writeError(String%20message)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22836%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2286%22%20value%3D%22%2B%20writeInfo(String%20message)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22862%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2287%22%20value%3D%22%2B%20writeMessage(String%20sender%2C%20String%20reciever%2C%20String%20message)%3A%20void%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22888%22%20width%3D%22390%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2288%22%20value%3D%22%26amp%3Blt%3B%26amp%3Blt%3BClass%26amp%3Bgt%3B%26amp%3Bgt%3B%20WindowCloseHandler%26lt%3Bbr%26gt%3B%2B%20handle(WindowEvent%20event)%3A%20void%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Balign%3Dleft%3B%22%20vertex%3D%221%22%20parent%3D%2252%22%3E%3CmxGeometry%20y%3D%22914%22%20width%3D%22390%22%20height%3D%2264%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E</span></div></div></div></foreignObject><text x="910" y="1268" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">%3C...</text></switch></g><path d="M 700 144 L 790 144 L 790 261.43 L 825.76 261.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 819.88 264.98 L 826.88 261.5 L 819.89 257.98" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 540 130 L 540 104 L 700 104 L 700 130" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 540 130 L 540 184 L 700 184 L 700 130" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 540 130 L 700 130" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-style="italic" pointer-events="none" text-anchor="middle" font-size="12px"><text x="619.5" y="121.5">Client</text></g><rect x="540" y="130" width="160" height="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-544-159-152-26-0)" font-size="12px"><text x="545.5" y="171.5">+ main(args:String[]): void</text></g><path d="M 710 1490 L 710 1464 L 1140 1464 L 1140 1490" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 710 1490 L 710 2206 L 1140 2206 L 1140 1490" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 710 1490 L 1140 1490" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="924.5" y="1481.5">ClientConnectionHandler</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-714-1495-422-26-0)" font-size="12px"><text x="715.5" y="1507.5">- messagePattern:Pattern{final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-714-1521-422-26-0)" font-size="12px"><text x="715.5" y="1533.5">-userName:SimpleStringProperty</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-714-1547-422-26-0)" font-size="12px"><text x="715.5" y="1559.5">- state:SimpleObjectProperty&lt;State&gt;</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-714-1573-422-26-0)" font-size="12px"><text x="715.5" y="1585.5">- messages:ClientMessageList</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-714-1599-422-26-0)" font-size="12px"><text x="715.5" y="1611.5">- serverAddress:SimpleStringProperty</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-714-1625-422-26-0)" font-size="12px"><text x="715.5" y="1637.5">- serverPort:SimpleIntegerProperty</text></g><path d="M 710 1650 L 1140 1650" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-714-1659-422-40-0)" font-size="12px"><text x="715.5" y="1671.5">+ ClientConnectionHandler(messages:ClientMessageList)</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-714-1699-422-40-0)" font-size="12px"><text x="715.5" y="1711.5">+initialize(serverAddress:String,serverPort:int,userName:String):void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-714-1739-422-40-0)" font-size="12px"><text x="715.5" y="1751.5">+getServerAddressProperty():SimpleStringProperty</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-714-1779-422-40-0)" font-size="12px"><text x="715.5" y="1791.5">+getServerPortProperty():SimpleIntegerProperty</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-714-1819-422-40-0)" font-size="12px"><text x="715.5" y="1831.5">+getStateProperty():SimpleObjectProperty</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-714-1859-422-40-0)" font-size="12px"><text x="715.5" y="1871.5">+getUsernameProperty():SimpleStringProperty</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-714-1899-422-26-0)" font-size="12px"><text x="715.5" y="1911.5">+ setState (State newState): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-714-1925-422-26-0)" font-size="12px"><text x="715.5" y="1937.5">+ run (): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-714-1951-422-26-0)" font-size="12px"><text x="715.5" y="1963.5">+ startReceiving(): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-714-1977-422-26-0)" font-size="12px"><text x="715.5" y="1989.5">+ stopReceiving(): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-714-2003-422-26-0)" font-size="12px"><text x="715.5" y="2015.5">- processData(String data): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-714-2029-422-26-0)" font-size="12px"><text x="715.5" y="2041.5">-caseConfirm(sender:String):void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-714-2055-422-26-0)" font-size="12px"><text x="715.5" y="2067.5">-caseMessage(sender:String,reciever:String,type:String,payload:String):void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-714-2081-422-26-0)" font-size="12px"><text x="715.5" y="2093.5">-caseDisconnect():void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-714-2107-422-26-0)" font-size="12px"><text x="715.5" y="2119.5">-caseError():void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-714-2133-422-26-0)" font-size="12px"><text x="715.5" y="2145.5">+ connect(): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-714-2159-422-26-0)" font-size="12px"><text x="715.5" y="2171.5">+ disconnect(): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-714-2185-422-26-0)" font-size="12px"><text x="715.5" y="2197.5">+ message(String receiver, String message): void</text></g><path d="M 954 234 L 954 192.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 954 185.12 L 957.5 192.12 L 950.5 192.12 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 828 260 L 828 234 L 1080 234 L 1080 260" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 828 260 L 828 344 L 1080 344 L 1080 260" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 828 260 L 1080 260" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="953.5" y="251.5">ClientUI</text></g><rect x="828" y="260" width="252" height="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-832-289-244-26-0)" font-size="12px"><text x="833.5" y="301.5">+ start(primaryStage: Stage): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-832-315-244-26-0)" font-size="12px"><text x="833.5" y="327.5">- chatWindow(primaryStage: Stage): void</text></g><path d="M 828 130 L 828 104 L 1080 104 L 1080 130" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 828 130 L 828 184 L 1080 184 L 1080 130" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 828 130 L 1080 130" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-style="italic" pointer-events="none" text-anchor="middle" font-size="12px"><text x="953.5" y="121.5">&lt;&lt;abstract&gt;&gt; Client</text></g><rect x="828" y="130" width="252" height="24" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-832-159-244-20-0)" font-size="12px"><text x="833.5" y="171.5">+ start(primaryStage: Stage): void</text></g><path d="M 925 1464 L 950 1464 L 950 1332.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 950 1325.12 L 953.5 1332.12 L 946.5 1332.12 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 880 1274 L 880 1244 L 1020 1244 L 1020 1274" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 880 1274 L 880 1324 L 1020 1324 L 1020 1274" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 880 1274 L 1020 1274" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="949.5" y="1263.5">&lt;&lt;interface&gt;&gt; Runnable</text></g><rect x="880" y="1274" width="140" height="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-884-1294-132-30-0)" font-size="12px"><text x="885.5" y="1313.5">+ run(): void</text></g><path d="M 0 630 L 0 604 L 390 604 L 390 630" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 630 L 0 804 L 390 804 L 390 630" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 630 L 390 630" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="194.5" y="621.5">ClientMessageList</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-4-635-382-26-0)" font-size="12px"><text x="5.5" y="647.5">- messages: List&lt;Message&gt; {final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-4-661-382-26-0)" font-size="12px"><text x="5.5" y="673.5">- changed:SimpleBooleanProperty</text></g><path d="M 0 686 L 390 686" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-4-695-382-34-0)" font-size="12px"><text x="5.5" y="707.5">+ addMessage(message:Message): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-4-729-382-26-0)" font-size="12px"><text x="5.5" y="741.5">+ getFilteredMessages(filter:string):String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-4-755-382-26-0)" font-size="12px"><text x="5.5" y="767.5">+ clear():void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-4-781-382-26-0)" font-size="12px"><text x="5.5" y="793.5">+ getChangedProperty():SimpleBooleanProperty</text></g><path d="M 120 1260 L 120 1234 L 600 1234 L 600 1260" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 120 1260 L 120 2082 L 600 2082 L 600 1260" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 120 1260 L 600 1260" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="359.5" y="1251.5">ChatWindowController</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-124-1265-472-22-0)" font-size="12px"><text x="125.5" y="1277.5">- messagePattern: Pattern {final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-124-1287-472-26-0)" font-size="12px"><text x="125.5" y="1299.5">- messages: ClientMessageList</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-124-1313-472-26-0)" font-size="12px"><text x="125.5" y="1325.5">- windowCloseHandler: WindowCloseHandler {final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-124-1339-472-26-0)" font-size="12px"><text x="125.5" y="1351.5">- rootPane: Pane</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-124-1365-472-26-0)" font-size="12px"><text x="125.5" y="1377.5">- serverAddressField: TextField</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-124-1391-472-26-0)" font-size="12px"><text x="125.5" y="1403.5">- serverPortField: TextField</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-124-1417-472-26-0)" font-size="12px"><text x="125.5" y="1429.5">- connectionHandler: ClientConnectionHandler</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-124-1443-472-26-0)" font-size="12px"><text x="125.5" y="1455.5">- userNameField: TextField</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-124-1469-472-26-0)" font-size="12px"><text x="125.5" y="1481.5">- messageField: TextField</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-124-1495-472-26-0)" font-size="12px"><text x="125.5" y="1507.5">- messageArea: TextArea</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-124-1521-472-26-0)" font-size="12px"><text x="125.5" y="1533.5">- connectButton: Button</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-124-1547-472-26-0)" font-size="12px"><text x="125.5" y="1559.5">- sendButton: Button</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-124-1573-472-26-0)" font-size="12px"><text x="125.5" y="1585.5">- filterValue: TextField</text></g><path d="M 120 1598 L 600 1598" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-124-1607-472-26-0)" font-size="12px"><text x="125.5" y="1619.5">+ setMessages(messages:ClientMessageList): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-124-1633-472-26-0)" font-size="12px"><text x="125.5" y="1645.5">+ setConnectionHandler(connectionHandler:ClientConnectionHandler): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-124-1659-472-26-0)" font-size="12px"><text x="125.5" y="1671.5">- applicationClose(): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-124-1685-472-26-0)" font-size="12px"><text x="125.5" y="1697.5">- toggleConnection(): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-124-1711-472-26-0)" font-size="12px"><text x="125.5" y="1723.5">- connect(): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-124-1737-472-26-0)" font-size="12px"><text x="125.5" y="1749.5">- disconnect(): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-124-1763-472-26-0)" font-size="12px"><text x="125.5" y="1775.5">- message(): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-124-1789-472-26-0)" font-size="12px"><text x="125.5" y="1801.5">- applyFilter( ): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-124-1815-472-26-0)" font-size="12px"><text x="125.5" y="1827.5">- startConnectionHandler( ): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-124-1841-472-26-0)" font-size="12px"><text x="125.5" y="1853.5">+ stateChanged(State newState): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-124-1867-472-26-0)" font-size="12px"><text x="125.5" y="1879.5">+ setServerAddress(String serverAddress): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-124-1893-472-26-0)" font-size="12px"><text x="125.5" y="1905.5">+ setServerPort(int serverPort): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-124-1919-472-26-0)" font-size="12px"><text x="125.5" y="1931.5">+ setUserName(String userName): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-124-1945-472-26-0)" font-size="12px"><text x="125.5" y="1957.5">+ addError(String message): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-124-1971-472-26-0)" font-size="12px"><text x="125.5" y="1983.5">- startConnectionHandlerListener( ): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-124-1997-472-26-0)" font-size="12px"><text x="125.5" y="2009.5">-messageListener():void</text></g><rect x="120" y="2018" width="480" height="64" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 478px; height: 1px; padding-top: 2050px; margin-left: 122px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">&lt;&lt;Class&gt;&gt; WindowCloseHandler<br />+ handle(WindowEvent event): void</div></div></div></foreignObject><text x="122" y="2054" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">&lt;&lt;Class&gt;&gt; WindowCloseHandler...</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 190px; margin-left: 1330px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: nowrap;"><span style="color: rgba(0 , 0 , 0 , 0) ; font-family: monospace ; font-size: 0px">%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22NetworkHandler%22%20style%3D%22swimlane%3BfontStyle%3D2%3Balign%3Dcenter%3BverticalAlign%3Dtop%3BchildLayout%3DstackLayout%3Bhorizontal%3D1%3BstartSize%3D26%3BhorizontalStack%3D0%3BresizeParent%3D1%3BresizeLast%3D0%3Bcollapsible%3D1%3BmarginBottom%3D0%3Brounded%3D0%3Bshadow%3D0%3BstrokeWidth%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%2270%22%20y%3D%22320%22%20width%3D%22400%22%20height%3D%22216%22%20as%3D%22geometry%22%3E%3CmxRectangle%20x%3D%22230%22%20y%3D%22140%22%20width%3D%22160%22%20height%3D%2226%22%20as%3D%22alternateBounds%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%223%22%20value%3D%22%2BDEFAULT_ADDRESS%3AInetAddress%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BfontStyle%3D4%22%20vertex%3D%221%22%20parent%3D%222%22%3E%3CmxGeometry%20y%3D%2226%22%20width%3D%22400%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%224%22%20value%3D%22%2BDEFAULT_PORT%3Aint%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3Brounded%3D0%3Bshadow%3D0%3Bhtml%3D0%3BfontStyle%3D4%22%20vertex%3D%221%22%20parent%3D%222%22%3E%3CmxGeometry%20y%3D%2252%22%20width%3D%22400%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%225%22%20value%3D%22%22%20style%3D%22line%3Bhtml%3D1%3BstrokeWidth%3D1%3Balign%3Dleft%3BverticalAlign%3Dmiddle%3BspacingTop%3D-1%3BspacingLeft%3D3%3BspacingRight%3D3%3Brotatable%3D0%3BlabelPosition%3Dright%3Bpoints%3D%5B%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%222%22%3E%3CmxGeometry%20y%3D%2278%22%20width%3D%22400%22%20height%3D%228%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%226%22%20value%3D%22%2BcreateServer(port%3Aint)%3ANetworkServer%26lt%3BT%26gt%3B%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%222%22%3E%3CmxGeometry%20y%3D%2286%22%20width%3D%22400%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%227%22%20value%3D%22%2BcreatServer()%3ANetworkServer%26lt%3BT%26gt%3B%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%222%22%3E%3CmxGeometry%20y%3D%22112%22%20width%3D%22400%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%228%22%20value%3D%22%2BopenConnection(address%3AInetAddress%2Cport%3Aint)%3ANetworkConnection%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%222%22%3E%3CmxGeometry%20y%3D%22138%22%20width%3D%22400%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%229%22%20value%3D%22%2BopenConnection(hostname%3AString%2Cport%3Aint)%3ANetworkConnection%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%222%22%3E%3CmxGeometry%20y%3D%22164%22%20width%3D%22400%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2210%22%20value%3D%22%2BopenConnection()%3ANetworkConnection%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%222%22%3E%3CmxGeometry%20y%3D%22190%22%20width%3D%22400%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2211%22%20value%3D%22NetworkServer%22%20style%3D%22swimlane%3BfontStyle%3D0%3Balign%3Dcenter%3BverticalAlign%3Dtop%3BchildLayout%3DstackLayout%3Bhorizontal%3D1%3BstartSize%3D26%3BhorizontalStack%3D0%3BresizeParent%3D1%3BresizeLast%3D0%3Bcollapsible%3D1%3BmarginBottom%3D0%3Brounded%3D0%3Bshadow%3D0%3BstrokeWidth%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22540%22%20y%3D%22320%22%20width%3D%22200%22%20height%3D%22270%22%20as%3D%22geometry%22%3E%3CmxRectangle%20x%3D%22550%22%20y%3D%22140%22%20width%3D%22160%22%20height%3D%2226%22%20as%3D%22alternateBounds%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2212%22%20value%3D%22-serverSocket%3AServerSocket%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BfontStyle%3D4%22%20vertex%3D%221%22%20parent%3D%2211%22%3E%3CmxGeometry%20y%3D%2226%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2213%22%20value%3D%22%22%20style%3D%22line%3Bhtml%3D1%3BstrokeWidth%3D1%3Balign%3Dleft%3BverticalAlign%3Dmiddle%3BspacingTop%3D-1%3BspacingLeft%3D3%3BspacingRight%3D3%3Brotatable%3D0%3BlabelPosition%3Dright%3Bpoints%3D%5B%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2211%22%3E%3CmxGeometry%20y%3D%2252%22%20width%3D%22200%22%20height%3D%228%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2214%22%20value%3D%22-NetworkServer(port%3Aint)%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2211%22%3E%3CmxGeometry%20y%3D%2260%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2215%22%20value%3D%22-NetworkServer()%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2211%22%3E%3CmxGeometry%20y%3D%2286%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2216%22%20value%3D%22%2BwaitForConnection()%3ANetworkConnection%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2211%22%3E%3CmxGeometry%20y%3D%22112%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2217%22%20value%3D%22%2BisAvailable()%3Aboolean%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2211%22%3E%3CmxGeometry%20y%3D%22138%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2218%22%20value%3D%22%2BisClosed()%3Aboolean%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2211%22%3E%3CmxGeometry%20y%3D%22164%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2219%22%20value%3D%22%2BgetHostPort()%3Aboolean%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2211%22%3E%3CmxGeometry%20y%3D%22190%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2220%22%20value%3D%22%2BgetHostAddress()%3AString%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2211%22%3E%3CmxGeometry%20y%3D%22216%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2221%22%20value%3D%22%2Bclose()%3Avoid%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2211%22%3E%3CmxGeometry%20y%3D%22242%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2222%22%20value%3D%22NetworkConnection%22%20style%3D%22swimlane%3BfontStyle%3D0%3Balign%3Dcenter%3BverticalAlign%3Dtop%3BchildLayout%3DstackLayout%3Bhorizontal%3D1%3BstartSize%3D26%3BhorizontalStack%3D0%3BresizeParent%3D1%3BresizeLast%3D0%3Bcollapsible%3D1%3BmarginBottom%3D0%3Brounded%3D0%3Bshadow%3D0%3BstrokeWidth%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22190%22%20y%3D%22580%22%20width%3D%22200%22%20height%3D%22270%22%20as%3D%22geometry%22%3E%3CmxRectangle%20x%3D%22550%22%20y%3D%22140%22%20width%3D%22160%22%20height%3D%2226%22%20as%3D%22alternateBounds%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2223%22%20value%3D%22-socket%3ASocket%7Bfinal%7D%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BfontStyle%3D4%22%20vertex%3D%221%22%20parent%3D%2222%22%3E%3CmxGeometry%20y%3D%2226%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2224%22%20value%3D%22%22%20style%3D%22line%3Bhtml%3D1%3BstrokeWidth%3D1%3Balign%3Dleft%3BverticalAlign%3Dmiddle%3BspacingTop%3D-1%3BspacingLeft%3D3%3BspacingRight%3D3%3Brotatable%3D0%3BlabelPosition%3Dright%3Bpoints%3D%5B%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2222%22%3E%3CmxGeometry%20y%3D%2252%22%20width%3D%22200%22%20height%3D%228%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2225%22%20value%3D%22-NetworkConnection(socket%3ASocket)%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2222%22%3E%3CmxGeometry%20y%3D%2260%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2226%22%20value%3D%22%2Bsend(data%3AT)%3Avoid%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2222%22%3E%3CmxGeometry%20y%3D%2286%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2227%22%20value%3D%22%2Breceive()%3AT%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2222%22%3E%3CmxGeometry%20y%3D%22112%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2228%22%20value%3D%22%2BisAvailable()%3Aboolean%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2222%22%3E%3CmxGeometry%20y%3D%22138%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2229%22%20value%3D%22%2BisClosed()%3Aboolean%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2222%22%3E%3CmxGeometry%20y%3D%22164%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2230%22%20value%3D%22%2BgetRemotePort()%3Aint%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2222%22%3E%3CmxGeometry%20y%3D%22190%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2231%22%20value%3D%22%2BgetRemoteHost()%3AString%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2222%22%3E%3CmxGeometry%20y%3D%22216%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2232%22%20value%3D%22%2Bclose()%3Avoid%22%20style%3D%22text%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3B%22%20vertex%3D%221%22%20parent%3D%2222%22%3E%3CmxGeometry%20y%3D%22242%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E</span></div></div></div></foreignObject><text x="1330" y="194" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">%3C...</text></switch></g><path d="M 1470 26 L 1470 0 L 1870 0 L 1870 26" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1470 26 L 1470 216 L 1870 216 L 1870 26" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1470 26 L 1870 26" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-style="italic" pointer-events="none" text-anchor="middle" font-size="12px"><text x="1669.5" y="17.5">NetworkHandler</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1474-31-392-26-0)" font-size="12px"><text x="1475.5" y="43.5">+DEFAULT_ADDRESS:InetAddress{final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1474-57-392-26-0)" font-size="12px"><text x="1475.5" y="69.5">+DEFAULT_PORT:int{final}</text></g><path d="M 1470 82 L 1870 82" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1474-91-392-26-0)" font-size="12px"><text x="1475.5" y="103.5">+createServer(port:int):NetworkServer&lt;T&gt;</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1474-117-392-26-0)" font-size="12px"><text x="1475.5" y="129.5">+creatServer():NetworkServer&lt;T&gt;</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1474-143-392-26-0)" font-size="12px"><text x="1475.5" y="155.5">+openConnection(address:InetAddress,port:int):NetworkConnection</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1474-169-392-26-0)" font-size="12px"><text x="1475.5" y="181.5">+openConnection(hostname:String,port:int):NetworkConnection</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1474-195-392-26-0)" font-size="12px"><text x="1475.5" y="207.5">+openConnection():NetworkConnection</text></g><path d="M 1690 346 L 1690 320 L 1890 320 L 1890 346" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1690 346 L 1690 590 L 1890 590 L 1890 346" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1690 346 L 1890 346" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="1789.5" y="337.5">NetworkServer</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1694-351-192-26-0)" font-size="12px"><text x="1695.5" y="363.5">-serverSocket:ServerSocket{final}</text></g><path d="M 1690 376 L 1890 376" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1694-385-192-26-0)" font-size="12px"><text x="1695.5" y="397.5">-NetworkServer(port:int)</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1694-411-192-26-0)" font-size="12px"><text x="1695.5" y="423.5">-NetworkServer()</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1694-437-192-26-0)" font-size="12px"><text x="1695.5" y="449.5">+waitForConnection():NetworkConnection</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1694-463-192-26-0)" font-size="12px"><text x="1695.5" y="475.5">+isAvailable():boolean</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1694-489-192-26-0)" font-size="12px"><text x="1695.5" y="501.5">+isClosed():boolean</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1694-515-192-26-0)" font-size="12px"><text x="1695.5" y="527.5">+getHostPort():boolean</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1694-541-192-26-0)" font-size="12px"><text x="1695.5" y="553.5">+getHostAddress():String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1694-567-192-26-0)" font-size="12px"><text x="1695.5" y="579.5">+close():void</text></g><path d="M 1480 346 L 1480 320 L 1680 320 L 1680 346" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1480 346 L 1480 590 L 1680 590 L 1680 346" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1480 346 L 1680 346" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="1579.5" y="337.5">NetworkConnection</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1484-351-192-26-0)" font-size="12px"><text x="1485.5" y="363.5">-socket:Socket{final}</text></g><path d="M 1480 376 L 1680 376" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1484-385-192-26-0)" font-size="12px"><text x="1485.5" y="397.5">-NetworkConnection(socket:Socket)</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1484-411-192-26-0)" font-size="12px"><text x="1485.5" y="423.5">+send(data:T):void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1484-437-192-26-0)" font-size="12px"><text x="1485.5" y="449.5">+receive():T</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1484-463-192-26-0)" font-size="12px"><text x="1485.5" y="475.5">+isAvailable():boolean</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1484-489-192-26-0)" font-size="12px"><text x="1485.5" y="501.5">+isClosed():boolean</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1484-515-192-26-0)" font-size="12px"><text x="1485.5" y="527.5">+getRemotePort():int</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1484-541-192-26-0)" font-size="12px"><text x="1485.5" y="553.5">+getRemoteHost():String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1484-567-192-26-0)" font-size="12px"><text x="1485.5" y="579.5">+close():void</text></g><path d="M 2260 1200 L 2260 1174 L 2600 1174 L 2600 1200" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 2260 1200 L 2260 1364 L 2600 1364 L 2600 1200" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 2260 1200 L 2600 1200" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-style="italic" pointer-events="none" text-anchor="middle" font-size="12px"><text x="2429.5" y="1191.5">Server</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-2264-1205-332-26-0)" font-size="12px"><text x="2265.5" y="1217.5">-NetworkHandler.NetworkServer&lt;String&gt; networkServer{final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-2264-1231-332-26-0)" font-size="12px"><text x="2265.5" y="1243.5">-Map&lt;String,ServerConnectionHandler&gt; connections{final}</text></g><path d="M 2260 1256 L 2600 1256" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-2264-1265-332-26-0)" font-size="12px"><text x="2265.5" y="1277.5">+main(args:String[]):void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-2264-1291-332-26-0)" font-size="12px"><text x="2265.5" y="1303.5">+Server(serverPort:int)</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-2264-1317-332-26-0)" font-size="12px"><text x="2265.5" y="1329.5">-start():void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-2264-1343-332-26-0)" font-size="12px"><text x="2265.5" y="1355.5">-terminate():void</text></g><path d="M 1770 1490 L 1770 1464 L 2370 1464 L 2370 1490" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1770 1490 L 1770 1874 L 2370 1874 L 2370 1490" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1770 1490 L 2370 1490" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="2069.5" y="1481.5">ServerConnectionHandler</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1774-1495-592-26-0)" font-size="12px"><text x="1775.5" y="1507.5">-connectionCounter:AtomicInteger{final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1774-1521-592-26-0)" font-size="12px"><text x="1775.5" y="1533.5">-connectionId:int{final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1774-1547-592-26-0)" font-size="12px"><text x="1775.5" y="1559.5">-connectionRegistry:Map&lt;String,ServerConnectionHandler&gt;{final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1774-1573-592-26-0)" font-size="12px"><text x="1775.5" y="1585.5">-userName:String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1774-1599-592-26-0)" font-size="12px"><text x="1775.5" y="1611.5">-state:State</text></g><path d="M 1770 1624 L 2370 1624" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1774-1633-592-26-0)" font-size="12px"><text x="1775.5" y="1645.5">+ServerConnenctionHandler(connection:NetworkConnection,registry:Map&lt;String,ServerConnectionHandler)</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1774-1659-592-26-0)" font-size="12px"><text x="1775.5" y="1671.5">+getUserName():String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1774-1685-592-26-0)" font-size="12px"><text x="1775.5" y="1697.5">+getState():State</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1774-1711-592-26-0)" font-size="12px"><text x="1775.5" y="1723.5">+startReceiving():void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1774-1737-592-26-0)" font-size="12px"><text x="1775.5" y="1749.5">+stopReceiving():void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1774-1763-592-26-0)" font-size="12px"><text x="1775.5" y="1775.5">-processData(data:String):void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1774-1789-592-26-0)" font-size="12px"><text x="1775.5" y="1801.5">-caseConnect(sender:String):void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1774-1815-592-26-0)" font-size="12px"><text x="1775.5" y="1827.5">-caseDisconnect():void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1774-1841-592-26-0)" font-size="12px"><text x="1775.5" y="1853.5">-caseMessage(sender:String,reciever:String,type:String,payload:String):void</text></g><path d="M 1669.62 223.99 L 1669.71 260 L 1580 260 L 1580 317.76" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1669.6 216.99 L 1671.67 220.48 L 1669.62 223.99 L 1667.55 220.49 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1576.5 311.88 L 1580 318.88 L 1583.5 311.88" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1680 223.99 L 1680 260 L 1790 260 L 1790 317.76" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1680 216.99 L 1682.06 220.49 L 1680 223.99 L 1677.94 220.49 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1786.5 311.88 L 1790 318.88 L 1793.5 311.88" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1360 676 L 1360 650 L 2010 650 L 2010 676" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1360 676 L 1360 1072 L 2010 1072 L 2010 676" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1360 676 L 2010 676" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-style="italic" pointer-events="none" text-anchor="middle" font-size="12px"><text x="1684.5" y="667.5">&lt;&lt;abstract&gt;&gt; ConnectionHandler</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1364-681-642-26-0)" font-size="12px"><text x="1365.5" y="693.5">-DATA_TYPE_MESSAGE:String{final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1364-707-642-26-0)" font-size="12px"><text x="1365.5" y="719.5">-DATA_TYPE_CONNECT:String{final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1364-733-642-26-0)" font-size="12px"><text x="1365.5" y="745.5">-DATA_TYPE_CONFIRM:String{final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1364-759-642-26-0)" font-size="12px"><text x="1365.5" y="771.5">-DATA_TYPE_DISCONNECT:String{final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1364-785-642-26-0)" font-size="12px"><text x="1365.5" y="797.5">-DATA_TYPE_ERROR:String{final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1364-811-642-26-0)" font-size="12px"><text x="1365.5" y="823.5">+USER_NONE:String{final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1364-837-642-26-0)" font-size="12px"><text x="1365.5" y="849.5">+USER_ALL:String{final}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1364-863-642-26-0)" font-size="12px"><text x="1365.5" y="875.5">-connection:NetworkConnection&lt;String&gt;{final}</text></g><rect x="1360" y="884" width="650" height="8" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1364-897-642-20-0)" font-size="12px"><text x="1365.5" y="909.5">+ getDataTypeConnect(): String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1364-917-642-20-0)" font-size="12px"><text x="1365.5" y="929.5">+ getDataTypeConnfirm(): String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1364-937-642-20-0)" font-size="12px"><text x="1365.5" y="949.5">+ getDataTypeDisconnect(): String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1364-957-642-20-0)" font-size="12px"><text x="1365.5" y="969.5">+ getDataTypeMessage(): String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1364-977-642-20-0)" font-size="12px"><text x="1365.5" y="989.5">+ getDataTypeError(): String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1364-997-642-20-0)" font-size="12px"><text x="1365.5" y="1009.5">+ getConnection(): NetworkConnection&lt;String&gt;</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1364-1017-642-20-0)" font-size="12px"><text x="1365.5" y="1029.5"># setConnection(): NetworkConnection&lt;String&gt;</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1364-1037-642-20-0)" font-size="12px"><text x="1365.5" y="1049.5">#processData(scanner:Scanner,sender:StringBuilder,reciever:StringBuilder,type:StringBuilder,payload:StringBuilder)</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-1364-1057-642-20-0)" font-size="12px"><text x="1365.5" y="1069.5">#sendData(sender:String,reciever:String,type:String,payload:String):void</text></g><path d="M 1490 1200 L 1490 1174 L 1830 1174 L 1830 1200" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1490 1200 L 1490 1364 L 1830 1364 L 1830 1200" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1490 1200 L 1830 1200" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-style="italic" pointer-events="none" text-anchor="middle" font-size="12px"><text x="1659.5" y="1191.5">&lt;&lt;enumeration&gt;&gt; STATE</text></g><path d="M 1490 1204 L 1830 1204" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1494-1213-332-26-0)" font-size="12px"><text x="1495.5" y="1225.5">NEW</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1494-1239-332-26-0)" font-size="12px"><text x="1495.5" y="1251.5">CONFIRM_CONNECT</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1494-1265-332-26-0)" font-size="12px"><text x="1495.5" y="1277.5">CONNECTED</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1494-1291-332-26-0)" font-size="12px"><text x="1495.5" y="1303.5">CONFIRM_DISCONNECT</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1494-1317-332-26-0)" font-size="12px"><text x="1495.5" y="1329.5">DISCONNECTED</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1494-1343-332-26-0)" font-size="12px"><text x="1495.5" y="1355.5">ERROR</text></g><path d="M 1661.47 1081.09 L 1660.04 1171.76" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1661.58 1074.09 L 1663.59 1077.62 L 1661.47 1081.09 L 1659.47 1077.55 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1656.63 1165.83 L 1660.02 1172.88 L 1663.63 1165.94" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 440 630 L 440 604 L 830 604 L 830 630" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 440 630 L 440 906 L 830 906 L 830 630" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 440 630 L 830 630" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="634.5" y="621.5">Message</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-444-635-382-26-0)" font-size="12px"><text x="445.5" y="647.5">- type:MessageType</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-444-661-382-26-0)" font-size="12px"><text x="445.5" y="673.5">- sender:String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-444-687-382-26-0)" font-size="12px"><text x="445.5" y="699.5">- reciever:String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-444-713-382-26-0)" font-size="12px"><text x="445.5" y="725.5">- text:String</text></g><path d="M 440 738 L 830 738" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-444-747-382-34-0)" font-size="12px"><text x="445.5" y="759.5">+ Message(type:String,sender:String,reciever:String,text:String)</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-444-781-382-26-0)" font-size="12px"><text x="445.5" y="793.5">+ matchesFiler(filter:String):boolean</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-444-807-382-26-0)" font-size="12px"><text x="445.5" y="819.5">+ getType():MessageType</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-444-833-382-26-0)" font-size="12px"><text x="445.5" y="845.5">+ getSender():String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-444-859-382-26-0)" font-size="12px"><text x="445.5" y="871.5">+ getReciever():String</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-444-885-382-26-0)" font-size="12px"><text x="445.5" y="897.5">+ getText():String</text></g><path d="M 940 630 L 940 604 L 1280 604 L 1280 630" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 940 630 L 940 716 L 1280 716 L 1280 630" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 940 630 L 1280 630" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-style="italic" pointer-events="none" text-anchor="middle" font-size="12px"><text x="1109.5" y="621.5">&lt;&lt;enumeration&gt;&gt; MessageType</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-944-635-332-26-0)" font-size="12px"><text x="945.5" y="647.5">ERROR</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-944-661-332-26-0)" font-size="12px"><text x="945.5" y="673.5">Message</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-944-687-332-26-0)" font-size="12px"><text x="945.5" y="699.5">Info</text></g><path d="M 940 712 L 1280 712" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 600 1581 L 707.76 1581" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 701.88 1584.5 L 708.88 1581 L 701.88 1577.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1360 650 L 1360 575.14 L 1477.76 575" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1471.89 578.51 L 1478.88 575 L 1471.88 571.51" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1351.88 962 L 1110 962 L 1110 1464 L 1032.5 1464" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1358.88 962 L 1351.88 965.5 L 1351.88 958.5 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 2070 1464 L 2070 962 L 2018.12 962" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 2011.12 962 L 2018.12 958.5 L 2018.12 965.5 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1892.24 523 L 2430 523.14 L 2430 1174" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1898.12 519.5 L 1891.12 523 L 1898.12 526.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 2260 1351 L 2220 1351.14 L 2220 1461.76" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 2216.5 1455.88 L 2220 1462.88 L 2223.5 1455.88" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 837.99 604 L 937.76 604" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 830.99 604 L 834.49 601.94 L 837.99 604 L 834.49 606.06 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 931.88 607.5 L 938.88 604 L 931.88 600.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 195 806.24 L 195.14 1234 L 240 1234" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 198.5 812.12 L 195 805.12 L 191.5 812.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 817.5 1464 L 740 1464 L 740 1084 L 302.86 1084 L 303 806.24" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 306.5 812.12 L 303 805.12 L 299.5 812.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 480 1234 L 420 1234 L 420 893.14 L 437.76 893.02" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 431.91 896.56 L 438.88 893.01 L 431.86 889.56" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 817.5 1464 L 860 1464 L 860 893.14 L 832.24 893.01" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 838.13 889.54 L 831.12 893.01 L 838.1 896.54" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 240 1234 L 410 1234 L 410 323.14 L 825.76 323" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 819.88 326.5 L 826.88 323 L 819.88 319.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1060 1464 L 1060 1454 L 1060 894.86 L 900 894.86 L 900 394 L 1140 394 L 1140 323.14 L 1082.24 323.01" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 1088.13 319.52 L 1081.12 323 L 1088.11 326.52" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 97.5 604 L 97.43 296.86 L 825.76 297" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 819.88 300.5 L 826.88 297 L 819.88 293.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>