This repository has been archived on 2024-05-26. You can view files and clone it, but cannot push or open issues or pull requests.
core/docs/architecture.drawio

801 lines
73 KiB
Plaintext
Raw Normal View History

<mxfile host="Electron" modified="2023-07-26T21:54:19.816Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.6.1 Chrome/112.0.5615.204 Electron/24.6.1 Safari/537.36" etag="zGgim0xh6aVywIjIoCqx" version="21.6.1" type="device">
<diagram name="Page-1" id="hWGGHW_Bsmf1wcgqsJl5">
<mxGraphModel dx="2049" dy="1167" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="1654" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="sgZzQmQA5r4gPmcAVD2c-1" value="Main Process" style="swimlane;whiteSpace=wrap;html=1;fillStyle=solid;rounded=0;fillColor=#b0e3e6;strokeColor=#0e8088;strokeWidth=4;" parent="1" vertex="1">
<mxGeometry x="725" y="110" width="890" height="960" as="geometry" />
</mxCell>
<mxCell id="bEImzGkf_4H7QTsFuULF-45" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;fillColor=#f8cecc;strokeColor=#b85450;" parent="sgZzQmQA5r4gPmcAVD2c-1" source="erJn0JmvOIQi-aqMdXCH-35" target="bEImzGkf_4H7QTsFuULF-11" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="343" y="370" />
<mxPoint x="445" y="370" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="erJn0JmvOIQi-aqMdXCH-35" value="Event Channel" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#76608a;strokeColor=#432D57;fontColor=#ffffff;" parent="sgZzQmQA5r4gPmcAVD2c-1" vertex="1">
<mxGeometry x="265" y="390" width="155" height="60" as="geometry" />
</mxCell>
<mxCell id="erJn0JmvOIQi-aqMdXCH-56" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fillColor=#d5e8d4;strokeColor=#82b366;" parent="sgZzQmQA5r4gPmcAVD2c-1" source="erJn0JmvOIQi-aqMdXCH-55" target="erJn0JmvOIQi-aqMdXCH-35" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="erJn0JmvOIQi-aqMdXCH-55" value="Key Input Sync &lt;br&gt;Thread" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;strokeWidth=4;" parent="sgZzQmQA5r4gPmcAVD2c-1" vertex="1">
<mxGeometry x="40" y="390" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="bEImzGkf_4H7QTsFuULF-9" value="Main Loop&lt;br&gt;Thread" style="swimlane;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;strokeWidth=4;startSize=40;" parent="sgZzQmQA5r4gPmcAVD2c-1" vertex="1">
<mxGeometry x="40" y="200" width="810" height="160" as="geometry" />
</mxCell>
<mxCell id="bEImzGkf_4H7QTsFuULF-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="bEImzGkf_4H7QTsFuULF-9" source="bEImzGkf_4H7QTsFuULF-10" target="bEImzGkf_4H7QTsFuULF-11" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="bEImzGkf_4H7QTsFuULF-10" value="Draw UI" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="bEImzGkf_4H7QTsFuULF-9" vertex="1">
<mxGeometry x="120" y="80" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="bEImzGkf_4H7QTsFuULF-14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="bEImzGkf_4H7QTsFuULF-9" source="bEImzGkf_4H7QTsFuULF-11" target="bEImzGkf_4H7QTsFuULF-12" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="bEImzGkf_4H7QTsFuULF-11" value="Await Event" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="bEImzGkf_4H7QTsFuULF-9" vertex="1">
<mxGeometry x="345" y="80" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="bEImzGkf_4H7QTsFuULF-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="bEImzGkf_4H7QTsFuULF-9" source="bEImzGkf_4H7QTsFuULF-12" target="bEImzGkf_4H7QTsFuULF-10" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="750" y="110" />
<mxPoint x="750" y="60" />
<mxPoint x="90" y="60" />
<mxPoint x="90" y="110" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="bEImzGkf_4H7QTsFuULF-59" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="bEImzGkf_4H7QTsFuULF-9" source="bEImzGkf_4H7QTsFuULF-12" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="650" y="-40" as="targetPoint" />
<Array as="points">
<mxPoint x="650" y="-20" />
<mxPoint x="650" y="-20" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="bEImzGkf_4H7QTsFuULF-12" value="Handle Event" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="bEImzGkf_4H7QTsFuULF-9" vertex="1">
<mxGeometry x="570" y="80" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="bEImzGkf_4H7QTsFuULF-46" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;fillColor=#d5e8d4;strokeColor=#82b366;" parent="sgZzQmQA5r4gPmcAVD2c-1" source="bEImzGkf_4H7QTsFuULF-12" target="erJn0JmvOIQi-aqMdXCH-35" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="650" y="420" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="bEImzGkf_4H7QTsFuULF-48" value="Commands" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="bEImzGkf_4H7QTsFuULF-46" vertex="1" connectable="0">
<mxGeometry x="0.5636" relative="1" as="geometry">
<mxPoint x="11" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-1" value="Accounts - Vector" style="swimlane;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#2D7600;" parent="sgZzQmQA5r4gPmcAVD2c-1" vertex="1">
<mxGeometry x="410" y="510" width="450" height="410" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-2" value="Account" style="swimlane;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="z712foycFyuIYEkP9NH4-1" vertex="1">
<mxGeometry x="10" y="40" width="430" height="360" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.183;exitY=-0.075;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;fillColor=#f8cecc;strokeColor=#b85450;exitPerimeter=0;" parent="z712foycFyuIYEkP9NH4-2" source="z712foycFyuIYEkP9NH4-3" target="z712foycFyuIYEkP9NH4-8" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-3" value="Socket Connection" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#76608a;strokeColor=#432D57;fontColor=#ffffff;strokeWidth=5;" parent="z712foycFyuIYEkP9NH4-2" vertex="1">
<mxGeometry x="10" y="300" width="410" height="51" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-7" value="Sync Thread" style="swimlane;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;strokeWidth=4;" parent="z712foycFyuIYEkP9NH4-2" vertex="1">
<mxGeometry x="30" y="170" width="110" height="90" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="z712foycFyuIYEkP9NH4-7" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="119.99999999999977" y="-40" as="targetPoint" />
<mxPoint x="90" y="57" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-8" value="Response?" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="z712foycFyuIYEkP9NH4-7" vertex="1">
<mxGeometry x="25" y="41" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-14" value="N" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="z712foycFyuIYEkP9NH4-7" vertex="1">
<mxGeometry x="5" y="35" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-19" value="Y" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="z712foycFyuIYEkP9NH4-7" vertex="1">
<mxGeometry x="87" y="35" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fillColor=#f8cecc;strokeColor=#b85450;" parent="z712foycFyuIYEkP9NH4-2" source="z712foycFyuIYEkP9NH4-10" target="z712foycFyuIYEkP9NH4-35" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-10" value="Responeses Channel" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#76608a;fontColor=#ffffff;strokeColor=#432D57;" parent="z712foycFyuIYEkP9NH4-2" vertex="1">
<mxGeometry x="90" y="70" width="80" height="60" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-25" value="Backend Call - Function" style="swimlane;whiteSpace=wrap;html=1;fillColor=#0050ef;fontColor=#ffffff;strokeColor=#001DBC;" parent="z712foycFyuIYEkP9NH4-2" vertex="1">
<mxGeometry x="210" y="70" width="170" height="190" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-34" value="Push Call" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="z712foycFyuIYEkP9NH4-25" vertex="1">
<mxGeometry x="10" y="40" width="150" height="30" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-35" value="Await Response" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="z712foycFyuIYEkP9NH4-25" vertex="1">
<mxGeometry x="10" y="90" width="150" height="30" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-36" value="Return Response" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="z712foycFyuIYEkP9NH4-25" vertex="1">
<mxGeometry x="10" y="140" width="150" height="30" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.953;entryY=-0.069;entryDx=0;entryDy=0;entryPerimeter=0;fillColor=#d5e8d4;strokeColor=#82b366;" parent="z712foycFyuIYEkP9NH4-2" source="z712foycFyuIYEkP9NH4-34" target="z712foycFyuIYEkP9NH4-3" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="400" y="125" />
<mxPoint x="400" y="220" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.75;entryY=1;entryDx=0;entryDy=0;fillColor=#d5e8d4;strokeColor=#82b366;" parent="sgZzQmQA5r4gPmcAVD2c-1" target="erJn0JmvOIQi-aqMdXCH-35" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="470" y="776" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-39" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="sgZzQmQA5r4gPmcAVD2c-1" source="bEImzGkf_4H7QTsFuULF-12" target="z712foycFyuIYEkP9NH4-25" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="715" y="410" />
<mxPoint x="715" y="410" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-40" value="Current&lt;br&gt;Account" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="z712foycFyuIYEkP9NH4-39" vertex="1" connectable="0">
<mxGeometry x="-0.1741" y="1" relative="1" as="geometry">
<mxPoint x="-1" y="5" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="erJn0JmvOIQi-aqMdXCH-1" value="Trinitrix - Architecture - v2.1" style="text;strokeColor=none;fillColor=none;html=1;fontSize=24;fontStyle=1;verticalAlign=middle;align=center;" parent="1" vertex="1">
<mxGeometry x="1120" y="20" width="100" height="40" as="geometry" />
</mxCell>
<mxCell id="erJn0JmvOIQi-aqMdXCH-65" value="Color Legend" style="shape=table;startSize=30;container=1;collapsible=0;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=0;strokeColor=default;fontSize=16;strokeWidth=1;" parent="1" vertex="1">
<mxGeometry x="40" y="1310" width="180" height="300" as="geometry" />
</mxCell>
<mxCell id="erJn0JmvOIQi-aqMdXCH-66" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;strokeColor=inherit;fontSize=16;" parent="erJn0JmvOIQi-aqMdXCH-65" vertex="1">
<mxGeometry y="30" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="erJn0JmvOIQi-aqMdXCH-67" value="" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;top=0;left=0;bottom=0;right=0;overflow=hidden;pointerEvents=1;fontSize=16;strokeWidth=1;fillColor=none;" parent="erJn0JmvOIQi-aqMdXCH-66" vertex="1">
<mxGeometry width="40" height="30" as="geometry">
<mxRectangle width="40" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="erJn0JmvOIQi-aqMdXCH-68" value="Thread / Process" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;strokeColor=inherit;fontSize=16;" parent="erJn0JmvOIQi-aqMdXCH-66" vertex="1">
<mxGeometry x="40" width="140" height="30" as="geometry">
<mxRectangle width="140" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="erJn0JmvOIQi-aqMdXCH-69" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;strokeColor=inherit;fontSize=16;" parent="erJn0JmvOIQi-aqMdXCH-65" vertex="1">
<mxGeometry y="60" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="erJn0JmvOIQi-aqMdXCH-70" value="" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;top=0;left=0;bottom=0;right=0;overflow=hidden;fontSize=16;fillColor=none;" parent="erJn0JmvOIQi-aqMdXCH-69" vertex="1">
<mxGeometry width="40" height="30" as="geometry">
<mxRectangle width="40" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="erJn0JmvOIQi-aqMdXCH-71" value="Write" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;strokeColor=inherit;fontSize=16;" parent="erJn0JmvOIQi-aqMdXCH-69" vertex="1">
<mxGeometry x="40" width="140" height="30" as="geometry">
<mxRectangle width="140" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="erJn0JmvOIQi-aqMdXCH-72" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;strokeColor=inherit;fontSize=16;" parent="erJn0JmvOIQi-aqMdXCH-65" vertex="1">
<mxGeometry y="90" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="erJn0JmvOIQi-aqMdXCH-73" value="" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;top=0;left=0;bottom=0;right=0;overflow=hidden;fontSize=16;perimeterSpacing=0;fillStyle=solid;strokeWidth=2;fillColor=none;" parent="erJn0JmvOIQi-aqMdXCH-72" vertex="1">
<mxGeometry width="40" height="30" as="geometry">
<mxRectangle width="40" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="erJn0JmvOIQi-aqMdXCH-74" value="Read" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;strokeColor=inherit;fontSize=16;" parent="erJn0JmvOIQi-aqMdXCH-72" vertex="1">
<mxGeometry x="40" width="140" height="30" as="geometry">
<mxRectangle width="140" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="erJn0JmvOIQi-aqMdXCH-80" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;strokeColor=inherit;fontSize=16;" parent="erJn0JmvOIQi-aqMdXCH-65" vertex="1">
<mxGeometry y="120" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="erJn0JmvOIQi-aqMdXCH-81" value="" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;top=0;left=0;bottom=0;right=0;overflow=hidden;fontSize=16;perimeterSpacing=0;fillStyle=solid;strokeWidth=2;fillColor=none;" parent="erJn0JmvOIQi-aqMdXCH-80" vertex="1">
<mxGeometry width="40" height="30" as="geometry">
<mxRectangle width="40" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="erJn0JmvOIQi-aqMdXCH-82" value="Execution Flow" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;strokeColor=inherit;fontSize=16;" parent="erJn0JmvOIQi-aqMdXCH-80" vertex="1">
<mxGeometry x="40" width="140" height="30" as="geometry">
<mxRectangle width="140" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="bEImzGkf_4H7QTsFuULF-1" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;strokeColor=inherit;fontSize=16;" parent="erJn0JmvOIQi-aqMdXCH-65" vertex="1">
<mxGeometry y="150" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="bEImzGkf_4H7QTsFuULF-2" value="" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;top=0;left=0;bottom=0;right=0;overflow=hidden;fontSize=16;perimeterSpacing=0;fillStyle=solid;strokeWidth=2;fillColor=none;" parent="bEImzGkf_4H7QTsFuULF-1" vertex="1">
<mxGeometry width="40" height="30" as="geometry">
<mxRectangle width="40" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="bEImzGkf_4H7QTsFuULF-3" value="Struct / Object" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;strokeColor=inherit;fontSize=16;" parent="bEImzGkf_4H7QTsFuULF-1" vertex="1">
<mxGeometry x="40" width="140" height="30" as="geometry">
<mxRectangle width="140" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="bEImzGkf_4H7QTsFuULF-5" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;strokeColor=inherit;fontSize=16;" parent="erJn0JmvOIQi-aqMdXCH-65" vertex="1">
<mxGeometry y="180" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="bEImzGkf_4H7QTsFuULF-6" value="" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;top=0;left=0;bottom=0;right=0;overflow=hidden;fontSize=16;perimeterSpacing=0;fillStyle=solid;strokeWidth=2;fillColor=none;" parent="bEImzGkf_4H7QTsFuULF-5" vertex="1">
<mxGeometry width="40" height="30" as="geometry">
<mxRectangle width="40" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="bEImzGkf_4H7QTsFuULF-7" value="Logical Container" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;strokeColor=inherit;fontSize=16;" parent="bEImzGkf_4H7QTsFuULF-5" vertex="1">
<mxGeometry x="40" width="140" height="30" as="geometry">
<mxRectangle width="140" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="bEImzGkf_4H7QTsFuULF-41" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;strokeColor=inherit;fontSize=16;" parent="erJn0JmvOIQi-aqMdXCH-65" vertex="1">
<mxGeometry y="210" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="bEImzGkf_4H7QTsFuULF-42" value="" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;top=0;left=0;bottom=0;right=0;overflow=hidden;fontSize=16;perimeterSpacing=0;fillStyle=solid;strokeWidth=2;fillColor=none;" parent="bEImzGkf_4H7QTsFuULF-41" vertex="1">
<mxGeometry width="40" height="30" as="geometry">
<mxRectangle width="40" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="bEImzGkf_4H7QTsFuULF-43" value="Vector" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;strokeColor=inherit;fontSize=16;" parent="bEImzGkf_4H7QTsFuULF-41" vertex="1">
<mxGeometry x="40" width="140" height="30" as="geometry">
<mxRectangle width="140" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-4" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;strokeColor=inherit;fontSize=16;" parent="erJn0JmvOIQi-aqMdXCH-65" vertex="1">
<mxGeometry y="240" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-5" value="" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;top=0;left=0;bottom=0;right=0;overflow=hidden;fontSize=16;perimeterSpacing=0;fillStyle=solid;strokeWidth=2;fillColor=none;" parent="z712foycFyuIYEkP9NH4-4" vertex="1">
<mxGeometry width="40" height="30" as="geometry">
<mxRectangle width="40" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-6" value="MPSChannel" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;strokeColor=inherit;fontSize=16;" parent="z712foycFyuIYEkP9NH4-4" vertex="1">
<mxGeometry x="40" width="140" height="30" as="geometry">
<mxRectangle width="140" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-21" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;strokeColor=inherit;fontSize=16;" parent="erJn0JmvOIQi-aqMdXCH-65" vertex="1">
<mxGeometry y="270" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-22" value="" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;top=0;left=0;bottom=0;right=0;overflow=hidden;fontSize=16;perimeterSpacing=0;fillStyle=solid;strokeWidth=2;fillColor=none;" parent="z712foycFyuIYEkP9NH4-21" vertex="1">
<mxGeometry width="40" height="30" as="geometry">
<mxRectangle width="40" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-23" value="Function" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;strokeColor=inherit;fontSize=16;" parent="z712foycFyuIYEkP9NH4-21" vertex="1">
<mxGeometry x="40" width="140" height="30" as="geometry">
<mxRectangle width="140" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="erJn0JmvOIQi-aqMdXCH-77" value="" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#f8cecc;strokeColor=#b85450;strokeWidth=2;" parent="1" vertex="1">
<mxGeometry x="50" y="1407" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="erJn0JmvOIQi-aqMdXCH-78" value="" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#d5e8d4;strokeColor=#82b366;strokeWidth=2;" parent="1" vertex="1">
<mxGeometry x="50" y="1376" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="erJn0JmvOIQi-aqMdXCH-79" value="" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#ffe6cc;strokeColor=#d79b00;strokeWidth=2;" parent="1" vertex="1">
<mxGeometry x="50" y="1346" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="erJn0JmvOIQi-aqMdXCH-83" value="" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#d0cee2;strokeColor=#56517e;strokeWidth=2;" parent="1" vertex="1">
<mxGeometry x="50" y="1437" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="bEImzGkf_4H7QTsFuULF-4" value="" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=2;" parent="1" vertex="1">
<mxGeometry x="50" y="1467" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="bEImzGkf_4H7QTsFuULF-8" value="" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#b0e3e6;strokeColor=#0e8088;strokeWidth=2;" parent="1" vertex="1">
<mxGeometry x="50" y="1496" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="bEImzGkf_4H7QTsFuULF-40" value="" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#7FE01F;strokeColor=#2D7600;strokeWidth=2;fontColor=#ffffff;" parent="1" vertex="1">
<mxGeometry x="50" y="1526" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="bEImzGkf_4H7QTsFuULF-44" value="" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#76608a;strokeColor=#432D57;strokeWidth=2;fontColor=#ffffff;" parent="1" vertex="1">
<mxGeometry x="50" y="1555" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="bEImzGkf_4H7QTsFuULF-58" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" source="bEImzGkf_4H7QTsFuULF-50" target="bEImzGkf_4H7QTsFuULF-10" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="950" y="310" />
<mxPoint x="950" y="310" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="bEImzGkf_4H7QTsFuULF-50" value="Status" style="swimlane;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="765" y="160" width="810" height="110" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-24" value="" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#0050ef;strokeColor=#001DBC;strokeWidth=2;fontColor=#ffffff;" parent="1" vertex="1">
<mxGeometry x="50" y="1582" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-41" value="Backend Process (one per account)" style="swimlane;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;strokeWidth=5;gradientColor=none;" parent="1" vertex="1">
<mxGeometry x="1135" y="1210" width="450" height="400" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-45" value="Main Thread" style="swimlane;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;strokeWidth=5;" parent="z712foycFyuIYEkP9NH4-41" vertex="1">
<mxGeometry x="20" y="240" width="410" height="140" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-49" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="z712foycFyuIYEkP9NH4-45" source="z712foycFyuIYEkP9NH4-47" target="z712foycFyuIYEkP9NH4-48" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-47" value="Await" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="z712foycFyuIYEkP9NH4-45" vertex="1">
<mxGeometry x="240" y="50" width="120" height="50" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-51" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="z712foycFyuIYEkP9NH4-45" source="z712foycFyuIYEkP9NH4-48" target="z712foycFyuIYEkP9NH4-47" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="30" y="75" />
<mxPoint x="30" y="120" />
<mxPoint x="380" y="120" />
<mxPoint x="380" y="75" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-48" value="Handle" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="z712foycFyuIYEkP9NH4-45" vertex="1">
<mxGeometry x="50" y="50" width="120" height="50" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-52" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.665;entryY=-0.066;entryDx=0;entryDy=0;entryPerimeter=0;fillColor=#f8cecc;strokeColor=#b85450;" parent="z712foycFyuIYEkP9NH4-41" source="z712foycFyuIYEkP9NH4-42" target="z712foycFyuIYEkP9NH4-47" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-42" value="Event Channel" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#76608a;strokeColor=#432D57;fontColor=#ffffff;" parent="z712foycFyuIYEkP9NH4-41" vertex="1">
<mxGeometry x="310" y="160" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-55" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.539;entryY=0.017;entryDx=0;entryDy=0;entryPerimeter=0;fillColor=#d5e8d4;strokeColor=#82b366;" parent="z712foycFyuIYEkP9NH4-41" source="z712foycFyuIYEkP9NH4-53" target="z712foycFyuIYEkP9NH4-42" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-53" value="Sync Thread" style="swimlane;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;strokeWidth=4;" parent="z712foycFyuIYEkP9NH4-41" vertex="1">
<mxGeometry x="330" y="60" width="90" height="70" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-64" value="Core Call - Function" style="swimlane;whiteSpace=wrap;html=1;fillColor=#0050ef;fontColor=#ffffff;strokeColor=#001DBC;" parent="z712foycFyuIYEkP9NH4-41" vertex="1">
<mxGeometry x="40" y="80" width="120" height="90" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-65" value="Push Call" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="z712foycFyuIYEkP9NH4-64" vertex="1">
<mxGeometry x="10" y="40" width="100" height="30" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-68" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.75;entryY=1;entryDx=0;entryDy=0;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="z712foycFyuIYEkP9NH4-41" source="z712foycFyuIYEkP9NH4-48" target="z712foycFyuIYEkP9NH4-64" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="130" y="180" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-56" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.864;entryY=1.056;entryDx=0;entryDy=0;entryPerimeter=0;startArrow=classic;startFill=1;endArrow=none;endFill=0;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" source="z712foycFyuIYEkP9NH4-53" target="z712foycFyuIYEkP9NH4-3" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-60" value="Backend&lt;br&gt;Specific&lt;br&gt;Stuff" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="1315" y="1260" width="110" height="170" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-61" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" source="z712foycFyuIYEkP9NH4-48" target="z712foycFyuIYEkP9NH4-60" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-63" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.986;entryY=0.831;entryDx=0;entryDy=0;entryPerimeter=0;startArrow=classic;startFill=1;endArrow=none;endFill=0;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" source="z712foycFyuIYEkP9NH4-42" target="z712foycFyuIYEkP9NH4-60" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-71" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" source="z712foycFyuIYEkP9NH4-65" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1245" y="1009" as="targetPoint" />
<Array as="points">
<mxPoint x="1305" y="1345" />
<mxPoint x="1305" y="1270" />
<mxPoint x="1245" y="1270" />
<mxPoint x="1245" y="1009" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-73" value="Call" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="z712foycFyuIYEkP9NH4-71" vertex="1" connectable="0">
<mxGeometry x="0.3283" y="-2" relative="1" as="geometry">
<mxPoint x="-3" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-72" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=0;exitDx=0;exitDy=0;entryX=0.093;entryY=0.955;entryDx=0;entryDy=0;entryPerimeter=0;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" source="z712foycFyuIYEkP9NH4-48" target="z712foycFyuIYEkP9NH4-3" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1235" y="1420" />
<mxPoint x="1155" y="1420" />
<mxPoint x="1155" y="1256" />
<mxPoint x="1193" y="1256" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="z712foycFyuIYEkP9NH4-74" value="Response" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="z712foycFyuIYEkP9NH4-72" vertex="1" connectable="0">
<mxGeometry x="0.5367" y="-1" relative="1" as="geometry">
<mxPoint x="-2" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-1" value="Main Process" style="swimlane;whiteSpace=wrap;html=1;fillStyle=solid;rounded=0;fillColor=#b0e3e6;strokeColor=#0e8088;strokeWidth=4;" vertex="1" parent="1">
<mxGeometry x="725" y="110" width="890" height="960" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="nlrsVmrCqaMSykwOvEwv-1" source="nlrsVmrCqaMSykwOvEwv-3" target="nlrsVmrCqaMSykwOvEwv-10">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="343" y="370" />
<mxPoint x="445" y="370" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-3" value="Event Channel" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#76608a;strokeColor=#432D57;fontColor=#ffffff;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-1">
<mxGeometry x="265" y="390" width="155" height="60" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="nlrsVmrCqaMSykwOvEwv-1" source="nlrsVmrCqaMSykwOvEwv-5" target="nlrsVmrCqaMSykwOvEwv-3">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-5" value="Key Input Sync &lt;br&gt;Thread" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;strokeWidth=4;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-1">
<mxGeometry x="40" y="390" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-6" value="Main Loop&lt;br&gt;Thread" style="swimlane;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;strokeWidth=4;startSize=40;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-1">
<mxGeometry x="40" y="200" width="810" height="160" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fillColor=#e1d5e7;strokeColor=#9673a6;" edge="1" parent="nlrsVmrCqaMSykwOvEwv-6" source="nlrsVmrCqaMSykwOvEwv-8" target="nlrsVmrCqaMSykwOvEwv-10">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-8" value="Draw UI" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-6">
<mxGeometry x="120" y="80" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fillColor=#e1d5e7;strokeColor=#9673a6;" edge="1" parent="nlrsVmrCqaMSykwOvEwv-6" source="nlrsVmrCqaMSykwOvEwv-10" target="nlrsVmrCqaMSykwOvEwv-13">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-10" value="Await Event" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-6">
<mxGeometry x="345" y="80" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fillColor=#e1d5e7;strokeColor=#9673a6;" edge="1" parent="nlrsVmrCqaMSykwOvEwv-6" source="nlrsVmrCqaMSykwOvEwv-13" target="nlrsVmrCqaMSykwOvEwv-8">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="750" y="110" />
<mxPoint x="750" y="60" />
<mxPoint x="90" y="60" />
<mxPoint x="90" y="110" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="nlrsVmrCqaMSykwOvEwv-6" source="nlrsVmrCqaMSykwOvEwv-13">
<mxGeometry relative="1" as="geometry">
<mxPoint x="650" y="-40" as="targetPoint" />
<Array as="points">
<mxPoint x="650" y="-20" />
<mxPoint x="650" y="-20" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-13" value="Handle Event" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-6">
<mxGeometry x="570" y="80" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="nlrsVmrCqaMSykwOvEwv-1" source="nlrsVmrCqaMSykwOvEwv-13" target="nlrsVmrCqaMSykwOvEwv-3">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="650" y="420" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-15" value="Commands" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="nlrsVmrCqaMSykwOvEwv-14">
<mxGeometry x="0.5636" relative="1" as="geometry">
<mxPoint x="11" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-16" value="Accounts - Vector" style="swimlane;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#2D7600;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-1">
<mxGeometry x="410" y="510" width="450" height="410" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-17" value="Account" style="swimlane;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-16">
<mxGeometry x="10" y="40" width="430" height="360" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.183;exitY=-0.075;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;fillColor=#f8cecc;strokeColor=#b85450;exitPerimeter=0;" edge="1" parent="nlrsVmrCqaMSykwOvEwv-17" source="nlrsVmrCqaMSykwOvEwv-19" target="nlrsVmrCqaMSykwOvEwv-22">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-19" value="Socket Connection" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#76608a;strokeColor=#432D57;fontColor=#ffffff;strokeWidth=5;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-17">
<mxGeometry x="10" y="300" width="410" height="51" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-20" value="Sync Thread" style="swimlane;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;strokeWidth=4;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-17">
<mxGeometry x="30" y="170" width="110" height="90" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="nlrsVmrCqaMSykwOvEwv-20">
<mxGeometry relative="1" as="geometry">
<mxPoint x="119.99999999999977" y="-40" as="targetPoint" />
<mxPoint x="90" y="57" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-22" value="Response?" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-20">
<mxGeometry x="25" y="41" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-23" value="N" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-20">
<mxGeometry x="5" y="35" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-24" value="Y" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-20">
<mxGeometry x="87" y="35" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-25" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="nlrsVmrCqaMSykwOvEwv-17" source="nlrsVmrCqaMSykwOvEwv-26" target="nlrsVmrCqaMSykwOvEwv-29">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-26" value="Responeses Channel" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#76608a;fontColor=#ffffff;strokeColor=#432D57;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-17">
<mxGeometry x="90" y="70" width="80" height="60" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-27" value="Backend Call - Function" style="swimlane;whiteSpace=wrap;html=1;fillColor=#0050ef;fontColor=#ffffff;strokeColor=#001DBC;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-17">
<mxGeometry x="210" y="70" width="170" height="190" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-28" value="Push Call" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-27">
<mxGeometry x="10" y="40" width="150" height="30" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-29" value="Await Response" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-27">
<mxGeometry x="10" y="90" width="150" height="30" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-30" value="Return Response" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-27">
<mxGeometry x="10" y="140" width="150" height="30" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-31" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.953;entryY=-0.069;entryDx=0;entryDy=0;entryPerimeter=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="nlrsVmrCqaMSykwOvEwv-17" source="nlrsVmrCqaMSykwOvEwv-28" target="nlrsVmrCqaMSykwOvEwv-19">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="400" y="125" />
<mxPoint x="400" y="220" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.75;entryY=1;entryDx=0;entryDy=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="nlrsVmrCqaMSykwOvEwv-1" target="nlrsVmrCqaMSykwOvEwv-3">
<mxGeometry relative="1" as="geometry">
<mxPoint x="470" y="776" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-33" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" edge="1" parent="nlrsVmrCqaMSykwOvEwv-1" source="nlrsVmrCqaMSykwOvEwv-13" target="nlrsVmrCqaMSykwOvEwv-27">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="715" y="410" />
<mxPoint x="715" y="410" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-34" value="Current&lt;br&gt;Account" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="nlrsVmrCqaMSykwOvEwv-33">
<mxGeometry x="-0.1741" y="1" relative="1" as="geometry">
<mxPoint x="-1" y="5" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-35" value="Trinitrix - Architecture - v2.1" style="text;strokeColor=none;fillColor=none;html=1;fontSize=24;fontStyle=1;verticalAlign=middle;align=center;" vertex="1" parent="1">
<mxGeometry x="1120" y="20" width="100" height="40" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-36" value="Color Legend" style="shape=table;startSize=30;container=1;collapsible=0;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=0;strokeColor=default;fontSize=16;strokeWidth=1;" vertex="1" parent="1">
<mxGeometry x="40" y="1310" width="180" height="300" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-37" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;strokeColor=inherit;fontSize=16;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-36">
<mxGeometry y="30" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-38" value="" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;top=0;left=0;bottom=0;right=0;overflow=hidden;pointerEvents=1;fontSize=16;strokeWidth=1;fillColor=none;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-37">
<mxGeometry width="40" height="30" as="geometry">
<mxRectangle width="40" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-39" value="Thread / Process" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;strokeColor=inherit;fontSize=16;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-37">
<mxGeometry x="40" width="140" height="30" as="geometry">
<mxRectangle width="140" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-40" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;strokeColor=inherit;fontSize=16;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-36">
<mxGeometry y="60" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-41" value="" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;top=0;left=0;bottom=0;right=0;overflow=hidden;fontSize=16;fillColor=none;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-40">
<mxGeometry width="40" height="30" as="geometry">
<mxRectangle width="40" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-42" value="Write" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;strokeColor=inherit;fontSize=16;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-40">
<mxGeometry x="40" width="140" height="30" as="geometry">
<mxRectangle width="140" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-43" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;strokeColor=inherit;fontSize=16;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-36">
<mxGeometry y="90" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-44" value="" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;top=0;left=0;bottom=0;right=0;overflow=hidden;fontSize=16;perimeterSpacing=0;fillStyle=solid;strokeWidth=2;fillColor=none;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-43">
<mxGeometry width="40" height="30" as="geometry">
<mxRectangle width="40" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-45" value="Read" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;strokeColor=inherit;fontSize=16;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-43">
<mxGeometry x="40" width="140" height="30" as="geometry">
<mxRectangle width="140" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-46" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;strokeColor=inherit;fontSize=16;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-36">
<mxGeometry y="120" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-47" value="" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;top=0;left=0;bottom=0;right=0;overflow=hidden;fontSize=16;perimeterSpacing=0;fillStyle=solid;strokeWidth=2;fillColor=none;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-46">
<mxGeometry width="40" height="30" as="geometry">
<mxRectangle width="40" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-48" value="Execution Flow" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;strokeColor=inherit;fontSize=16;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-46">
<mxGeometry x="40" width="140" height="30" as="geometry">
<mxRectangle width="140" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-49" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;strokeColor=inherit;fontSize=16;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-36">
<mxGeometry y="150" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-50" value="" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;top=0;left=0;bottom=0;right=0;overflow=hidden;fontSize=16;perimeterSpacing=0;fillStyle=solid;strokeWidth=2;fillColor=none;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-49">
<mxGeometry width="40" height="30" as="geometry">
<mxRectangle width="40" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-51" value="Struct / Object" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;strokeColor=inherit;fontSize=16;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-49">
<mxGeometry x="40" width="140" height="30" as="geometry">
<mxRectangle width="140" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-52" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;strokeColor=inherit;fontSize=16;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-36">
<mxGeometry y="180" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-53" value="" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;top=0;left=0;bottom=0;right=0;overflow=hidden;fontSize=16;perimeterSpacing=0;fillStyle=solid;strokeWidth=2;fillColor=none;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-52">
<mxGeometry width="40" height="30" as="geometry">
<mxRectangle width="40" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-54" value="Logical Container" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;strokeColor=inherit;fontSize=16;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-52">
<mxGeometry x="40" width="140" height="30" as="geometry">
<mxRectangle width="140" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-55" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;strokeColor=inherit;fontSize=16;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-36">
<mxGeometry y="210" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-56" value="" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;top=0;left=0;bottom=0;right=0;overflow=hidden;fontSize=16;perimeterSpacing=0;fillStyle=solid;strokeWidth=2;fillColor=none;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-55">
<mxGeometry width="40" height="30" as="geometry">
<mxRectangle width="40" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-57" value="Vector" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;strokeColor=inherit;fontSize=16;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-55">
<mxGeometry x="40" width="140" height="30" as="geometry">
<mxRectangle width="140" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-58" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;strokeColor=inherit;fontSize=16;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-36">
<mxGeometry y="240" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-59" value="" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;top=0;left=0;bottom=0;right=0;overflow=hidden;fontSize=16;perimeterSpacing=0;fillStyle=solid;strokeWidth=2;fillColor=none;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-58">
<mxGeometry width="40" height="30" as="geometry">
<mxRectangle width="40" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-60" value="MPSChannel" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;strokeColor=inherit;fontSize=16;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-58">
<mxGeometry x="40" width="140" height="30" as="geometry">
<mxRectangle width="140" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-61" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;strokeColor=inherit;fontSize=16;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-36">
<mxGeometry y="270" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-62" value="" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;top=0;left=0;bottom=0;right=0;overflow=hidden;fontSize=16;perimeterSpacing=0;fillStyle=solid;strokeWidth=2;fillColor=none;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-61">
<mxGeometry width="40" height="30" as="geometry">
<mxRectangle width="40" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-63" value="Function" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;strokeColor=inherit;fontSize=16;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-61">
<mxGeometry x="40" width="140" height="30" as="geometry">
<mxRectangle width="140" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-64" value="" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#f8cecc;strokeColor=#b85450;strokeWidth=2;" vertex="1" parent="1">
<mxGeometry x="50" y="1407" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-65" value="" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#d5e8d4;strokeColor=#82b366;strokeWidth=2;" vertex="1" parent="1">
<mxGeometry x="50" y="1376" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-66" value="" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#ffe6cc;strokeColor=#d79b00;strokeWidth=2;" vertex="1" parent="1">
<mxGeometry x="50" y="1346" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-67" value="" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#d0cee2;strokeColor=#56517e;strokeWidth=2;" vertex="1" parent="1">
<mxGeometry x="50" y="1437" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-68" value="" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=2;" vertex="1" parent="1">
<mxGeometry x="50" y="1467" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-69" value="" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#b0e3e6;strokeColor=#0e8088;strokeWidth=2;" vertex="1" parent="1">
<mxGeometry x="50" y="1496" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-70" value="" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#7FE01F;strokeColor=#2D7600;strokeWidth=2;fontColor=#ffffff;" vertex="1" parent="1">
<mxGeometry x="50" y="1526" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-71" value="" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#76608a;strokeColor=#432D57;strokeWidth=2;fontColor=#ffffff;" vertex="1" parent="1">
<mxGeometry x="50" y="1555" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-72" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="1" source="nlrsVmrCqaMSykwOvEwv-73" target="nlrsVmrCqaMSykwOvEwv-8">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="950" y="310" />
<mxPoint x="950" y="310" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-73" value="Status" style="swimlane;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="765" y="160" width="810" height="110" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-74" value="" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#0050ef;strokeColor=#001DBC;strokeWidth=2;fontColor=#ffffff;" vertex="1" parent="1">
<mxGeometry x="50" y="1582" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-75" value="Backend Process (one per account)" style="swimlane;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;strokeWidth=5;gradientColor=none;" vertex="1" parent="1">
<mxGeometry x="1135" y="1210" width="450" height="400" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-76" value="Main Thread" style="swimlane;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;strokeWidth=5;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-75">
<mxGeometry x="20" y="240" width="410" height="140" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-77" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;fillColor=#e1d5e7;strokeColor=#9673a6;" edge="1" parent="nlrsVmrCqaMSykwOvEwv-76" source="nlrsVmrCqaMSykwOvEwv-78" target="nlrsVmrCqaMSykwOvEwv-80">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-78" value="Await" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-76">
<mxGeometry x="240" y="50" width="120" height="50" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-79" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;fillColor=#e1d5e7;strokeColor=#9673a6;" edge="1" parent="nlrsVmrCqaMSykwOvEwv-76" source="nlrsVmrCqaMSykwOvEwv-80" target="nlrsVmrCqaMSykwOvEwv-78">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="30" y="75" />
<mxPoint x="30" y="120" />
<mxPoint x="380" y="120" />
<mxPoint x="380" y="75" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-80" value="Handle" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-76">
<mxGeometry x="50" y="50" width="120" height="50" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-81" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.665;entryY=-0.066;entryDx=0;entryDy=0;entryPerimeter=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="nlrsVmrCqaMSykwOvEwv-75" source="nlrsVmrCqaMSykwOvEwv-82" target="nlrsVmrCqaMSykwOvEwv-78">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-82" value="Event Channel" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#76608a;strokeColor=#432D57;fontColor=#ffffff;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-75">
<mxGeometry x="310" y="160" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-83" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.539;entryY=0.017;entryDx=0;entryDy=0;entryPerimeter=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="nlrsVmrCqaMSykwOvEwv-75" source="nlrsVmrCqaMSykwOvEwv-84" target="nlrsVmrCqaMSykwOvEwv-82">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-84" value="Sync Thread" style="swimlane;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;strokeWidth=4;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-75">
<mxGeometry x="330" y="60" width="90" height="70" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-85" value="Core Call - Function" style="swimlane;whiteSpace=wrap;html=1;fillColor=#0050ef;fontColor=#ffffff;strokeColor=#001DBC;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-75">
<mxGeometry x="40" y="80" width="120" height="90" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-86" value="Push Call" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="nlrsVmrCqaMSykwOvEwv-85">
<mxGeometry x="10" y="40" width="100" height="30" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-87" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.75;entryY=1;entryDx=0;entryDy=0;fillColor=#e1d5e7;strokeColor=#9673a6;" edge="1" parent="nlrsVmrCqaMSykwOvEwv-75" source="nlrsVmrCqaMSykwOvEwv-80" target="nlrsVmrCqaMSykwOvEwv-85">
<mxGeometry relative="1" as="geometry">
<mxPoint x="130" y="180" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-88" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.864;entryY=1.056;entryDx=0;entryDy=0;entryPerimeter=0;startArrow=classic;startFill=1;endArrow=none;endFill=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="1" source="nlrsVmrCqaMSykwOvEwv-84" target="nlrsVmrCqaMSykwOvEwv-19">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-89" value="Backend&lt;br&gt;Specific&lt;br&gt;Stuff" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1315" y="1260" width="110" height="170" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-90" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="1" source="nlrsVmrCqaMSykwOvEwv-80" target="nlrsVmrCqaMSykwOvEwv-89">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-91" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.986;entryY=0.831;entryDx=0;entryDy=0;entryPerimeter=0;startArrow=classic;startFill=1;endArrow=none;endFill=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="1" source="nlrsVmrCqaMSykwOvEwv-82" target="nlrsVmrCqaMSykwOvEwv-89">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-92" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="1" source="nlrsVmrCqaMSykwOvEwv-86">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1245" y="1009" as="targetPoint" />
<Array as="points">
<mxPoint x="1305" y="1345" />
<mxPoint x="1305" y="1270" />
<mxPoint x="1245" y="1270" />
<mxPoint x="1245" y="1009" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-93" value="Call" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="nlrsVmrCqaMSykwOvEwv-92">
<mxGeometry x="0.3283" y="-2" relative="1" as="geometry">
<mxPoint x="-3" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-94" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=0;exitDx=0;exitDy=0;entryX=0.093;entryY=0.955;entryDx=0;entryDy=0;entryPerimeter=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="1" source="nlrsVmrCqaMSykwOvEwv-80" target="nlrsVmrCqaMSykwOvEwv-19">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1235" y="1420" />
<mxPoint x="1155" y="1420" />
<mxPoint x="1155" y="1256" />
<mxPoint x="1193" y="1256" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="nlrsVmrCqaMSykwOvEwv-95" value="Response" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="nlrsVmrCqaMSykwOvEwv-94">
<mxGeometry x="0.5367" y="-1" relative="1" as="geometry">
<mxPoint x="-2" as="offset" />
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>