<mxfile host="Electron" modified="2023-08-21T17:01:51.009Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.6.8 Chrome/114.0.5735.289 Electron/25.5.0 Safari/537.36" etag="SaAhqPymAe0yhD8f3wjl" version="21.6.8" type="device">
  <diagram name="Page-1" id="sokioXktdd33dRfyx9Ri">
    <mxGraphModel dx="458" dy="1699" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="kMqUlTXgtKlvbuuDdCDM-1" value="&lt;span data-metadata=&quot;&lt;!--(figmeta)eyJmaWxlS2V5Ijoid0dIeTZWem9zUndhVGhLVzloR2ZFdCIsInBhc3RlSUQiOjE0MDg4NTU5NDgsImRhdGFUeXBlIjoic2NlbmUifQo=(/figmeta)--&gt;&quot;&gt;&lt;/span&gt;&lt;span data-buffer=&quot;&lt;!--(figma)[encoded data, 26164 characters](/figma)--&gt;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;&quot;&gt;The user with the lowest uuid is the first&amp;nbsp;&lt;br&gt;to ask the other user for their code&lt;br&gt;&lt;/span&gt;" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeColor=#DAE8FC;strokeWidth=3;sketch=0;rounded=1;" parent="1" source="kMqUlTXgtKlvbuuDdCDM-3" target="kMqUlTXgtKlvbuuDdCDM-4" edge="1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="kMqUlTXgtKlvbuuDdCDM-2" value="&lt;span data-metadata=&quot;&lt;!--(figmeta)eyJmaWxlS2V5Ijoid0dIeTZWem9zUndhVGhLVzloR2ZFdCIsInBhc3RlSUQiOjE1MTgwMDA0NzgsImRhdGFUeXBlIjoic2NlbmUifQo=(/figmeta)--&gt;&quot;&gt;&lt;/span&gt;&lt;span data-buffer=&quot;&lt;!--(figma)[encoded data, 26180 characters](/figma)--&gt;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;&quot;&gt;The user with the highest &lt;br&gt;uuid is the first to provide&amp;nbsp;&lt;br&gt;their code to the other user&lt;br&gt;&lt;/span&gt;" style="edgeStyle=orthogonalEdgeStyle;sketch=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeColor=#DAE8FC;strokeWidth=3;rounded=1;" parent="1" source="kMqUlTXgtKlvbuuDdCDM-3" target="kMqUlTXgtKlvbuuDdCDM-5" edge="1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="kMqUlTXgtKlvbuuDdCDM-3" value="Start" style="ellipse;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
          <mxGeometry x="630" y="70" width="110" height="50" as="geometry" />
        </mxCell>
        <mxCell id="kMqUlTXgtKlvbuuDdCDM-4" value="WaitForCode" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#B5F4D2;strokeColor=#82b366;" parent="1" vertex="1">
          <mxGeometry x="915" y="-20" width="180" height="50" as="geometry" />
        </mxCell>
        <mxCell id="kMqUlTXgtKlvbuuDdCDM-5" value="&lt;span data-metadata=&quot;&lt;!--(figmeta)eyJmaWxlS2V5Ijoid0dIeTZWem9zUndhVGhLVzloR2ZFdCIsInBhc3RlSUQiOjE3NjI4NjMwNzYsImRhdGFUeXBlIjoic2NlbmUifQo=(/figmeta)--&gt;&quot;&gt;&lt;/span&gt;&lt;span data-buffer=&quot;&lt;!--(figma)[encoded data, 27648 characters](/figma)--&gt;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;&quot;&gt;ProvideCode {totp: u32, step: u32}&lt;/span&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#B5F4D2;strokeColor=#82b366;" parent="1" vertex="1">
          <mxGeometry x="915" y="160" width="180" height="50" as="geometry" />
        </mxCell>
        <mxCell id="kMqUlTXgtKlvbuuDdCDM-6" value="This allows to refetch the&amp;nbsp;&lt;br&gt;totp once it expires" style="edgeStyle=orthogonalEdgeStyle;rounded=1;sketch=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;strokeColor=#DAE8FC;strokeWidth=3;" parent="1" source="kMqUlTXgtKlvbuuDdCDM-7" target="kMqUlTXgtKlvbuuDdCDM-5" edge="1">
          <mxGeometry x="-0.1458" relative="1" as="geometry">
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="kMqUlTXgtKlvbuuDdCDM-7" value="DisplayCode" style="ellipse;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
          <mxGeometry x="630" y="240" width="110" height="50" as="geometry" />
        </mxCell>
        <mxCell id="kMqUlTXgtKlvbuuDdCDM-8" style="edgeStyle=orthogonalEdgeStyle;rounded=1;sketch=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;strokeColor=#DAE8FC;strokeWidth=3;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" source="kMqUlTXgtKlvbuuDdCDM-12" target="kMqUlTXgtKlvbuuDdCDM-5" edge="1">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="685" y="350" />
              <mxPoint x="1005" y="350" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="kMqUlTXgtKlvbuuDdCDM-9" value="&lt;span style=&quot;&quot;&gt;if the code provided was correct and we have the lowest&lt;br&gt;&amp;nbsp;uuid it means we just successfully received the other &lt;br&gt;user&#39;s code and now we have to provide it&amp;nbsp;&lt;br&gt;&lt;/span&gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="kMqUlTXgtKlvbuuDdCDM-8" vertex="1" connectable="0">
          <mxGeometry x="-0.167" y="3" relative="1" as="geometry">
            <mxPoint x="-1" y="1" as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="kMqUlTXgtKlvbuuDdCDM-10" value="if the provided code didn&#39;t match&amp;nbsp;&lt;br&gt;the other user&#39;s code you get CodeFailure,&lt;br&gt;if it was correct refer to the other two&amp;nbsp;&lt;br&gt;responses of SubmitCode" style="edgeStyle=orthogonalEdgeStyle;rounded=1;sketch=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#DAE8FC;strokeWidth=3;" parent="1" source="kMqUlTXgtKlvbuuDdCDM-12" target="kMqUlTXgtKlvbuuDdCDM-13" edge="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="kMqUlTXgtKlvbuuDdCDM-11" value="if the code provided was correct and we have the highest uuid it means we already provided our code&amp;nbsp;&lt;br&gt;and we also successfully just received the other user code, so the flow terminates with success" style="edgeStyle=orthogonalEdgeStyle;rounded=1;sketch=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeColor=#DAE8FC;strokeWidth=3;" parent="1" source="kMqUlTXgtKlvbuuDdCDM-12" target="kMqUlTXgtKlvbuuDdCDM-14" edge="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="kMqUlTXgtKlvbuuDdCDM-12" value="SubmitCode" style="ellipse;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
          <mxGeometry x="630" y="380" width="110" height="50" as="geometry" />
        </mxCell>
        <mxCell id="kMqUlTXgtKlvbuuDdCDM-13" value="CodeFailure" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1">
          <mxGeometry x="990" y="380" width="180" height="50" as="geometry" />
        </mxCell>
        <mxCell id="kMqUlTXgtKlvbuuDdCDM-14" value="Success" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#B5F4D2;strokeColor=#82b366;" parent="1" vertex="1">
          <mxGeometry x="595" y="520" width="180" height="50" as="geometry" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
